前言:
这篇其实是上一篇的中文版,因为有同学希望我直接提供中文版,因此才又有了这一篇出现~
我的几位朋友问我有关中间人攻击风险的相关问题,因此他们也想了解如何验证App是否潜藏着风险.
以一款受欢迎的App”X”为例,若此App未达到证书绑定(Certificate Pinning)的要求,我们势必可借由像Burp Suite这类的proxy工具来拦截装置与服务器之间所传输的敏感数据.
- 在我的笔电上执行Burp Suite,此时我的笔电便成了一台代理服务器.(别忘了要修改防火墙策略以使得代理服务所倾听的端口可被连入)
- 自Burp Suite下载证书,并且安装于手机之中.
- 在手机的无线网络设定之中设妥代理服务器的ip及端口值.(当然这ip便是我的笔电的ip,而这端口值便是代理服务所倾的端口值)
- 确保Burp Suite已处于拦截封包的模式.
现在我们便可执行”X”这支App并且进行登入.看看Burp可以拦到怎样的数据.令人讶异的是,在拦截(Intecept)页签之下没有任何内容.
而警示(Alert)页签呈现橘色即表示有状况发生了. 从警示内容看来”X”可达成证书绑定的要求.
可别太早下定论. 我们来看一下这App的注册账号功能,于输入ID,用户名称,密码,手机号码,邮箱等信息后点击提交,你们猜怎么着?那些敏感数据已被Burp所拦截了.
看来”X”仍需要确实做好证书绑定,才能避免中间人攻击的风险.现在我的这几位朋友便已得知如何透过使用代理服务的方式来验证证书绑定了.