在网络流量工具Charles的安装和用法和6.1 分析HTTP/HTTPS网络流量 这两节,我们介绍了对iOS的网络通信进行分析的方法。
利用文章介绍的方法,可以发现有以下几类:
发送明文密码
有的应用一点也不注意用户数据的安全,竟然发送明文密码。读者可以拿自己常用的App试试,应该能发现这种App,我发现我常用的一个电影相关App竟然用HTTP直接发送用户的明文密码。
发送密码的md5
有的应用做得好一点,不发送明文的密码,发送密码的md5,md5对于攻击者来说,大部分其实都相当于明文了。现在甚至有公开的可以查询md5对应的明文的网站。
其技术原理是这样的:先把常用的各种明文算一个md5,然后把这些数据存起来,最后更具md5来倒查明文。
用HTTPS
有的应用以为用HTTPS就安全了,所以就直接传输明文的密码,但是这种很容易遇到中间人攻击,一旦通信链路上有一个环节出了问题,密码一样泄漏。
所以,如果用HTTPS,一定要注意对通信双方的一个身份的认证,比如在客户端保存server证书的相关信息,每次传输之前,验证证书信息,避免中间人攻击。
用HTTPS传输md5都比传输明文好太多。
自定义协议
可以直接建立TCP链接,然后利用自定义协议,传输关键内容,比如用户名密码和其他关键信息。
QQ就是自定义协议,登录和聊天信息都是加密之后再传输。
XMPP
从上个月开始, 很多XMPP服务器开始升级强制加密。我们知道,以前XMPP协议是明文传输的,比如GTalk,比如MSN,以后逐渐XMPP的传输也会加密。
小结
在处理用户登录的时候,请不要传输明文的密码,而且请注意防止重放攻击(replay attack,防止重放攻击的方法就是使用nonce)。
这里并没有拿某个App来分析,希望读者能够利用本系列文章的介绍的工具和方法,拿自己感兴趣的App来动手分析下。