您的位置:首页 > 其它

支付宝登陆,加密还是编码?

2012-05-04 23:14 78 查看
支付宝登陆认证安全性分析

支付宝登陆认证的安全性主要依赖HTTPS的保密通信,其本身的登陆认证设计存在安全漏洞——使用固定的口令加密密钥,口令密文永远不变。一旦HTTPS被截获解密,用户名和口令或者口令密文就泄漏了,这将被用于恶意重放攻击。然而遗憾的是HTTPS中的数据是可以被截获的。密文永远不变的加密,严格上不叫加密,顶多就是编码。形如支付宝这样的大厂商实在不应该出现如此错误啊。

文章所做的实验基于支付宝控件2.5。实验结果通过乌云平台通知了支付宝厂商:http://www.wooyun.org/bugs/wooyun-2010-05209。厂商回复:“支付宝登录时密码被加密后使用HTTPS传输,保障在传输过程中不被窃取,在安全性足够保障用户账户安全。对于其中加密设计的部分细节,新版本做了进一步加强更新至最新版本即可”。貌似最新版本(3.0)的口令密文任然永远不变。既然他说HTTPS保障传输过程不被窃取,那就拿出来分析分析。

1.
截获HTTPS明文数据

HTTPS中的数据本身是通过安全套接字密文传输,密钥是动态协商的,其本身是很安全的。HTTPS的通信原理图:



所以通过Wireshark之类的嗅探工具抓取的数据都是密文,无法从中得出有用的信息。然而通过设置浏览器HTTPS代理的方法很容易获取HTTPS中的明文数据。HTTPS代理示意图:



设置代理后,浏览器实际在与代理服务器进行加密通信,代理服务器收到数据后加密,然后再与真正的服务器通信。代理服务器转发来自浏览器和服务器的所有数据包,不影响正常通信,同时代理服务器可以看到所有来自浏览器和服务器的明文数据。Burp proxy就是一款很好的代理软件。开启Burp以后,默认监听端口是8080,设置好IE的代理服务器IP和端口,Burp中看到所有的HTTPS网络数据。

黑客怎样窃取HTTPS登陆数据呢?可能用到一些方法:

1)
万能的社会工程学,修改身边朋友同事的浏览器设置。

2)
形如网吧等地的公共计算机。

3)
路由器管理员可以将任意数据流劫持到指定主机,盗取数据,没有商量。

4)
利用病毒木马技术修改IE浏览器设置。相关注册表键:ProxyEnable,ProxyServer,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet

Settings

2.
支付宝登陆数据分析

淘宝和支付宝的登陆认证基本相同,不同是支付宝必须使用安全控件,淘宝可以用或者不用安全控件。通过上面的方法截取淘宝和支付宝登陆数据包,其关键的数据包只有一个Request:

淘宝非控件登陆数据:



可以看到淘宝非安全控件登陆是口令123qwe是明文传输的,暴露无遗,安全漏洞!

支付宝控件登陆数据:



可以看到用户名是明文,口令密文。据分析口令密文十六进制形式,长度是16的整数倍字节。如果输入密码1234567812345678,得到的密文是32字节,且前后16字节相等。很显然这是个8
byte的分组密码加密算法,符合3des加密算法的推测。既然是加密,肯定要有密钥。但是可以看到登陆前没密钥协商或密钥分配的过程,那么密钥要么在登陆数据中,要么就是固定密钥。经过不同时间不同多次发现口令密文永远不变,那么支付宝安全控件登陆将无法避免重放攻击。

3.
支付宝登陆的重放攻击

不用去研究复杂的加密算法,不用去寻找解密密钥。只要把password参数的值替换成成功登陆时的口令密文,就能骗过认证服务器正确登陆了。

攻击方法使用Burp proxy的intercept功能,收到浏览器登陆请求包后修改相应字段数据,然后再forward给服务器。

省略重放攻击截图演示过程……

4.
安全建议

任何信息安全相关的东西,不能依靠实现方法(算法)的保密性来保证安全,而是需要在实现方法和算法都公开的情况还依然能够保证其安全。

对登陆认证实现的建议:

1)
一次一密的公钥对

每次登陆都由服务器生成一公钥对(private_key, public_key),浏览器从服务器获取public_key,用它加密口令。这样口令密文每次都在变,只有拥有私钥的服务器才能解密口令。韩国某知名游戏的网页登陆采用过这种登陆方法。

2)
RSA公钥加密

学习SSL,由客户端生成随机密钥Key,此key用服务器的公钥加密后发送到服务器,服务器用私钥解密得到密钥key。服务器和浏览器通过这个随机密钥key来保护登陆口令。

3)
动态协商密钥

据说RSA受专利保护,使用要交专利费。为了绕开RSA专利,可以使用Diffie-Hellman协商一个加密密钥key,服务器和浏览器通过这个key来保护登陆口令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: