码迷,mamicode.com
首页 > 其他好文 > 详细

SSH协议基本认识

时间:2014-09-01 15:41:43      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:ssh   安全协议   

1.协议功能:在非安全网络上提供安全的远程登录和其他安全网络服务

2.协议运行在TCP/IP协议族的哪层:建应用层和传输层

3.协议提供的两种认证方式:(转自http://blog.sina.com.cn/s/blog_66ed268d01011jw3.html

SSH两种认证方式的特点

从客户端来看,SSH提供两种级别的安全验证。 

第一种级别(基于口令的安全验证)
只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。


简单地说,SSH1的通信过程是这样的:

                服务器                             客户

握手阶段
                                 SYN
                      <---------------------------
                              SYN ACK
                      --------------------------->
                                 ACK
                      <---------------------------

协议协商阶段
                              版本信息
                      --------------------------->
                              版本信息
                      <---------------------------
交换密钥阶段
                           明码传输的服务器公钥
                      --------------------------->
                          服务器公钥加密的会话密钥
                      <---------------------------
认证阶段
                               确认信息
                      <---------------------------
                          会话密钥加密的用户名
                      <---------------------------
                               应答信息
                      --------------------------->
                          会话密钥加密的口令信息
                      <---------------------------
                               应答信息
                      --------------------------->
数据通信阶段
                      ............................

这个过程中,由于监听者处于中间人的地位,它可以在交换密钥的阶段从截获的数据流中取出服务器的公钥,保存起来,然后用自己生成的一对密钥中的公钥替换数据包中的公钥,发送给客户。这样,当客户生成会话密钥的时候就会用我们的公钥加密。当我们收到客户发送的会话密钥的时候,可以用我们所掌握的私钥解密,得到会话密钥,然后再用保存下来的服务器公钥加密,发送给服务器。此时,服务器、客户和监听者都有了同一个会话密钥,以后的通信对于监听者来说就如同明文了。


第二种级别(基于密匙的安全验证)
需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。

 

对于方式二的验证过程不太明确,客户端软件是如何发送请求的,服务器的公钥是如何发送的???

4.SSH和TLS的区别与联系:

TLS是好像是传输层之上的协议,应该是应用协议吧,SSH有一部分协议在传输层,有一部分协议在应用层。此外,TLS侧重提供安全信道,SSH呢,除了保护口令,是不是也可以看做提供安全信道,此外还包括了数据压缩之类的功能。

SSH协议基本认识

标签:ssh   安全协议   

原文地址:http://blog.csdn.net/xiao_bodian/article/details/38979663

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!