对中间人窃听SSH加密通信的个人认识---用密钥登录比口令登录安全,口令登录易被中间人截获


分类:信息安全安全技术
日期:2012-05-24作者:老曾阅读:2,568 views

引用请注明出处,本文地址:http://www.laozeng.net/index.php/archives/287

SSH安全验证级别

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

    • 先为自己创建一对密匙,并把公匙放在需要访问的服务器上;
    • 客户端软件会向服务器发出请求,请求用你的密匙进行安全验证;
    • 服务器收到请求之后,在该服务器目录下寻找公匙,然后把它和你发送过来的公匙进行比较。若两密匙一致,服务器就用公匙加密“质询”(challenge)并把它发送给客户端软件;
    • 客户端软件收到“质询”之后就可以用 私密 解密再把它发送给服务器。

用这种方式,你必须知道自己密匙的口令。但是,与第一种级别相比,第二种级别不需要在网络上传送口令,它不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒

 

下面说的就是基于口令的安全验证,中间人如何攻击窃听。

服务器与客户端相互安全通信是通过对称加密算法(如DES、3DES、Blowfish和RC4对称加密算法,密钥只有一个,这便是会话密钥,服务器与客户端都拿此密钥去解密对方传输过来的密文。第三方没有密钥是无法破解通信的。

所以会话密钥保密性决定了整个通信的安全。

 

但服务器与客户端需要通过网络先交换会话密钥方可通信,又不能明文传输通信密钥。这时候就使用到了非对称加密(如RSA、DSA)帮助交换会话密钥:

 

1.服务器生成公钥A和私钥B。明文传输公钥A给客户端。

2.客户端使用公钥A加密会话密钥C,传回给服务器。这时候,只有拿到私钥B,才能解密出会话密钥C。而私钥B只有服务器有。

3.服务器使用第一步的私钥B解密,得出会话密钥C

4.服务器、客户端使用会话密钥C加密通信(对称加密算法)。

 

过程可参我做的一张图:


当SSH遇到中间人:

1.服务器传输公钥A给客户端,中间人截取公钥A。中间人自己另外生成公钥E,私钥F。中间人伪装成服务器,向客户端发送公钥E,客户端误认为是服务器发送过来的公钥A,使用公钥E加密会话密钥C,并发回给服务器。

2.中间人再次拦截客户端加密数据,使用私钥F即可解出会话密钥C。中间人使用第一步截获的公钥A,加密密钥C,传回给服务器。这时候中间人已经获取会话密钥,因为SSH使用的算法都是公开的,有密钥就可以随意监听密码通信。

3.服务器用私钥B解密得出会话密钥C,认为这一切都正常。但其实会话密钥已经泄露给中间人。

4.服务器客户端使用会话密钥C加密通信。中间人截取,使用C解密,获取通信。 

参考下图:

Tags:   SSH  ,   SSH协议  ,   审计SSH
3条评论
  1. echoloyuk  说:

    听说一些企业的网络都是可以监听SSH的,你的所有消息都知道。具体什么原理我不懂

    [回复]

    老曾 回复:

    这就是网络审计产品的功能。数据库类协议(Oracle、Informix、DB2、DB2-DAS、Microsoft SQL Server、Sybase、MySQL、PostgreSQL、Teradata、Cache,Sybase),运营维护类协议(SSH、Telnet、Rlogin、X11),文件操作类协议(SCP、SFTP、FTP、NFS、SunRPC/PCNFSD、Windows网上邻居),互联网类协议(HTTP 、HTTPS、SMTP、POP3),以及其他一些协议类型(Windows远程桌面、Radius、自定义协议)都可以审计到,也就是你的这些协议行为都会被监听到。甚至支持回放功能,非但可以监听到,还可以模拟回放你的操作。我现在的工作就这些。

    [回复]

    POST:2012-05-26 21:17   回复
  2. Christopher Meng  说:

    这个不是中间人攻击吗?我的服务器全是密钥登录,但是觉得不方便。。。

    [回复]

    admin 回复:

    是中间人攻击。密钥登陆最安全

    [回复]

    POST:2012-09-12 19:07   回复
  3. 闻健  说:

    好文当如斯也,再三把玩,依旧回味无穷

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值