案例分析:某企业FTP服务动态密码验证模块存在的问题及建议

来源:互联网 发布:厨师机 知乎 编辑:程序博客网 时间:2024/05/21 07:55

1. 动态密码的生成

分析某企业网关的FTP服务动态密码验证流程,主要分为两部分:动态密码的生成,以及动态密码的验证。其中,动态密码生成过程如图1.1所示。

这里写图片描述

图1.1 动态密码生成算法

2. 登录验证流程

FTP客户端登录及服务端进行动态密码验证的流程如图1.2所示。

这里写图片描述

图1.2 动态密码验证流程

3. 存在问题

(1)所谓的动态密码实际上并非动态密码,只是通过同一套算法生成的密码来验证,使得用户名和密码有多种可能,产生动态的错觉;
(2)通过自定义的加密算法生成的密码,却是明文传输,使用抓包工具一览无余;
(3)加密算法看起来是复杂、可靠的,但在网络安全上却没有起到任何作用,个人认为其安全性并不高于仅使用MD5或SHA1加密;
(4)一旦加密算法或密码生成器被泄露了,打击远大于使用公共加密算法;
(5)虽然加密算法中使用了非对称的单向散列函数(MD5),但是登录验证的却是对称密码。

4. 登录测试

我们使用“aaabbbcccddd”和“111222333444”用户名通过加密算法处理获得的密码,分别是“BXzqL8N6q9Sl”和“CS112dFAEUaf”,成功登录席位网关的FTP服务器,并且通过WireShark抓包。显然,明文传输会使得密码泄露,如图1.3和1.4所示。

这里写图片描述

图1.3 抓获用户aaabbbcccddd登录FTP的数据包

这里写图片描述

图1.4 抓获用户111222333444登录FTP的数据包

5. 初步建议

(1)避免使用明文传输用户密码;
(2)加强席位网关FTP服务的权限管理。

6. 更多建议

(1)如果没有充分理由要求使用动态密码验证,建议取消;
(2)如果确实需要使用动态密码验证,建议服务端维护一个实时的动态用户密码表,然后通过其他手段通知受信任的客户端,并增加约束条件(例如:每个动态密码只能用一次,增加登录失败次数限制);
(3)明文传输改为密文传输,对称密码验证改为公钥密码验证;
(4)采用公开的加密算法,如RSA、AES、DES,md5+salt等;
(5)采用其他FTP的替代方案,如:sftp、https;
(6)如果不作上述修改,那就需要在网关上做好限制用户登录FTP服务后的操作范围及权限。


  打个比方,这种验证方法就相当于:你家的房子装了一扇门,但是这扇门是不用钥匙的,那怎么打开?谁想进来就在门外大喊一声“芝麻开门”,屋里人听到并对上暗号之后就会打开门让你进来。如果其他人想进来也很简单,只要在一旁静静地听别人喊暗号,然后也跟着大喊一声就可以进去了。

1 0
原创粉丝点击