LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 5983|回复: 7

SSH学习的心得,请指正

[复制链接]
发表于 2003-5-22 10:07:43 | 显示全部楼层 |阅读模式
看了一下howto,只是讲如何操作,不讲原理,所以不知为何这么做,为何有好几种认证方法。man了一下午,终于有所体会,希望大家看看,指出其中的错误

一、RSA,DSA都是非对称加密方法,DES,3DES,blowfish等都是对称加密方法,md5,sha是hash单向算法;凡是用公钥加密,只能被相应私钥解开
二、网上要安全通信,关键是交换数据要加密,为何不用直接公钥加密,私钥解密呢?比如双方相互交换公钥,发送方用对方公钥加密要发送数据,接收方用相应私钥解密,很简单么?但是用公钥加密数据的计算量巨大,不适合批量数据,所以采取对话建立时利用公私钥来传送一个对称加密方法的key,以后的通信都是用这个对称加密法和这个确定的key加密来进行的
三、具体大致如下(忽略协商版本等细节):设 Server  Slient 要通信

1、C -----------------------------> S
C提出要和S加密通信


         host_key.pub
         cookie
2、C <----------------------------- S
S把自己的公钥(host_key.pub)、一个随机的cookie数给C



         加密的session_key
3、C ------------------------------> S
C利用cookie和收到的公钥计算一个session_id ,
C自己产生一个session_key,用公钥加密,传给S


        利用session_key加密的数据
4、C <-----------------------------> S
  S用私钥解开session_key
  S用cookie和公钥同样计算session_id,应该和C计算出的一致
  S用session_key和C开始在唯一session上加密数据通信

不知我这样是否理解对了,请大虾们指点
另外有2个问题,从上面过程来看,
虽然从4开始CS之间就是安全的了,但并不能保证第4阶段里C就是第1阶段的C,很明显看2、3,并不能保证C就是第一个的C,只要能伪装IP就可以顶替了
所以ssh2协议里除了一个用public key authentication的办法
就是C也向S提供自身的key.pub用来验证是否是真正想通信的用户,比用口令验证更加好些

另外当利用public key方式进行用户认证时,也会问密码,这个密码是ssh-keygen时输入的passphrase,我的理解这个密码并没有通过网络传送,而是在本地验证,目的是来保护这个存在客户端的private key的,而通过password方式认证时,password是加密后在网上传送的,对吗?

凡是私钥, 如 host_rsa_key,host_dsa_key,$home/.ssh/id_rsa,id_dsa 的属性都必须是600,
而公钥 如 host_rsa_key.pub  $/HOME/.ssh/id_rsa.pub等属性必须是644,sshd才能正常工作,不符合,sshd拒绝认证,这点man中并不清楚,我是错了好些次,在检查log时发现的
发表于 2003-5-22 14:09:45 | 显示全部楼层
呵呵,不错
最上面红色得client写错了。
发表于 2003-6-4 22:28:12 | 显示全部楼层
很好。 我看了很长时间man,也没有弄明白,这下是明白了

最好能结合实际例子说说,那就更好了。
发表于 2003-6-4 22:42:14 | 显示全部楼层
谢谢!
发表于 2003-6-5 00:35:19 | 显示全部楼层
谢谢…… 但小弟在LINUX里升级失败…… 请哥哥们指教……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2003-6-5 09:35:15 | 显示全部楼层
多谢多谢了,终于让我明白了原理!多谢
发表于 2004-5-26 20:38:40 | 显示全部楼层
谢谢  我也正在研究
等有结果了 把心得写上来
发表于 2006-3-26 10:12:31 | 显示全部楼层
好东西啊!本人也爱好安全方面的东西,以后大家多写写心的,共同进步!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表