我试图搜索这条信息,但到目前为止还没有发现任何线索,但是我相信这里的人可以纠正我或以适当的逻辑回答我的问题。
当我们在移动应用程序(android / ios)中实现SSL固定时,无法从Burp或Wireshark工具中嗅探数据包。因此,我的问题是,在网络上,在哪里和谁将获得此加密的数据包并从中提取域名,然后将其解析?
使用SSL Pinning,我们试图隐藏此客户端与服务器之间的通信,当我们能够隐藏此通信时,谁(哪个权限)将能够读取此程序包,然后从中提取域名,并通过流量到互联网上的相关服务器?
答案 0 :(得分:0)
SSL固定基本上可以确保没有人通过SSL接收与固定ssl不同的数据包。
就嗅探数据包而言,它不是专门由于SSL固定,而仅仅是由于SSL。
但是,关于域解析的查询不会将SSL固定用于域解析,而是使用全局OS解析程序来解析该域,它不是特定于应用程序的,并且域SSL固定证书在域解析中没有任何作用。
答案 1 :(得分:0)
虽然我同意@mdeora的观点,但我试图以一种简单的方式来解释(从长远来看)幕后发生的事情,并希望它会有所帮助。
让我们先定义几个术语
客户端(“ C”):使用SSL / TLS库的移动应用程序。另外,可以将客户端配置为识别由内部证书颁发机构(CA)签名的证书。
服务器(“ S”):服务于请求的目标服务器
代理(“ P”)或透明代理(“ TP”):拦截SSL请求,并通过代表“ S”发送证书向客户端展示它确实是目标服务器的错觉,但是由代理服务器创建的内部CA证书签名。例如。乌贼Burp Suite
DNS服务器:将名称解析为IP地址的服务
客户端DNS服务器:由于明确配置或在移动设备连接到网络(电信或Wifi)时由网络连接提供,因此在移动设备上配置的DNS服务器的一个或多个IP地址
代理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”尝试像情况A一样连接到“ S”,但是网络中存在的“ TP”像“ P”一样拦截流量,其余情况随着情况B(4)继续。
总而言之,当您使用SSL固定时,仅当“ C”认为它正在通过安全通道与真实的“ S”而非代理进行通信时,才会与“ S”进行通信。