我试图搜索这条信息,但到目前为止还没有找到任何线索,但我相信这里有人可以纠正我或用正确的逻辑回答我的问题。
当我们在我们的移动应用程序(android / ios)中实现SSL Pinning时,无法从Burp或Wireshark工具中嗅探数据包。所以,我的问题是,在网络上,谁将获得此加密数据包并从中提取域名,然后将解决它?
使用SSL Pinning,我们试图隐藏此客户端和服务器通信,当我们能够隐藏它时,谁(哪个权限)将能够读取此包然后将从中提取域名,并将流量传递给相关服务器在互联网上?
SSL固定基本上确保没有人通过SSL接受与固定ssl不同的数据包。
就嗅探数据包而言,它不是由于特定的SSL固定,而是由于SSL。
但是,有关域解析,SSL固定的查询不用于域解析,域使用全局操作系统解析程序解析,它不是特定于应用程序,并且您的域SSL固定证书在域解析中没有任何作用。
虽然我同意@mdeora,但我试图用简单的方式解释(很长时间)幕后发生的事情,并希望它会有所帮助。
让我们首先定义几个术语
客户端(“C”):使用SSL / TLS库的移动应用程序。此外,客户端可以配置为识别由内部认证机构(CA)签署的证书。
服务器(“S”):服务请求的目标服务器
代理(“P”)或透明代理(“TP”):拦截SSL请求,并通过代表“S”发送证书,但由客户签名,向客户表示它确实是目标服务器。代理服务器创建的内部CA证书。例如。 Burp套房,鱿鱼
DNS服务器:将名称解析为IP地址的服务
客户端DNS服务器:移动设备上配置的DNS服务器的一个或多个IP地址,由于显式配置,或者在移动设备连接到网络时通过网络连接提供(电信或Wifi)
代理DNS服务器:在配置代理服务的同一台机器上配置的DNS服务器的一个或多个IP地址
案例A.当客户端和服务器之间既没有代理也没有透明代理
在这种情况下,Burp Suite / Wireshark无法看到纯文本流量。
案例B.当移动设备配置为使用代理服务器“P”时
如果没有SSL固定,“C”将与“P”(或“TP”)交互,就像它是“S”一样。 “P”将解密流量,并与“S”建立连接,重新加密流量并将其发送到“S”。同样,“P”将从“S”接收响应,并将其发送回“C”。 “C”和“S”两者都不会意识到“P”拦截(并且可能已经改变)了这一事实。
使用SSL固定(https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Pinning_Cheat_Sheet.md)时,如果发现“P”/“TP”提供的证书与真实的“S”证书不匹配,则“C”将不会继续。
情况C.当移动设备使用存在透明代理(“TP”)的网络时
这里,“C”尝试连接到“S”,如情况A,但网络中存在的“TP”截取流量就像“P”一样,其余则跟随情况B(4)向前。
总而言之,当您使用SSL固定时,“C”只有在认为它通过安全通道与真实“S”通信而不是代理时才会与“S”通信。