对于wireshak、charles等主流网络抓包工具软件,有人会有这样的疑问:
尽管使用https访问网站,但是我在电脑安装了charles的证书并设置手机以后,就可以使用charles抓包同一局域网的iOS设备,也可以抓到手机上post请求,甚至抓包报文可以看到用户名密码明文。不是说https是安全的吗???
1、Https(SSL)加密是发生在应用层与传输层之间,所以在传输层看到的数据才是经过加密的,而我们捕捉到的是应用层的数据,此时还没有经过加密。这些明文信息,其实就是你的本地数据。https是在传输阶段进行加密的,但你本机用抓包软件抓,是在你数据还没进到网卡传送数据之前直接就已经被截获了。真正经过https加密后的数据,即使被截获,我们看到的内容将是一堆乱码。
2、Https是用来确保除客户端和服务端外,中间网络通信过程中不被第三方获取明文。用charles之所以能看到https明文,是因为你允许了charles在你的电脑上做手脚,关键就是你同意charles在你电脑上安装证书并设置了手机IP。加密数据只有客户端和服务器端才能得到明文,如果黑客能直接控制通信的双方(你的电脑,或服务器),那么黑客肯定能看到https明文的。
3、这样的话密码不是会被本地恶意软件截获么?只能说的确存在这样的可能。不过在银行电商等安全防护程度较高的网站,除了https加密外,还有安全控件加密,如手机用户必须通过自定义密码键盘才能输入密码,就算手机键盘被木马监听了,也无法查看密码明文。
4、那么使用charles抓包的作用是什么呢?压力测试、获取接口地址、通讯参数、返回报文并参考分析。