我正在尝试检查我们的 Android 应用程序的 SSL 证书验证。
我在 Mac 上运行 MITM 代理,并将 Mac 用作 Android 手机的代理。我可以在 Mac 上的 MITM 代理中看到 Android 的所有 http/s 请求。
查看 CERT Tapioca 介绍 (http://www.cert.org/blogs/certcc/post.cfm?EntryID=203) 在页面底部附近写道:
正如我之前提到的,如果你在 mitmproxy 中看到 https:// URL,则说明你正在处理无法验证 SSL 证书链的应用程序,或者你手动接受了无效证书。我们可以通过编程轻松检查这一点:
grep "方案,5:https" ~/logs/flows.log
此命令确定客户端是否通过 HTTPS 连接成功发送或检索数据。
有人能解释一下这个命令如何“确定客户端是否通过 HTTPS 连接成功发送或检索数据”吗?据我所知,该命令仅在日志文件中找到“scheme,5:https”的实例……但我如何使用这些信息来了解发生了什么?
答案1
您可以与 mitmproxy 终端窗口交互以查看发生了什么。如果您愿意,您可以用眼睛寻找以“https://”开头的 URI。但 grep 似乎不太容易出错。
只要出现 https URI,就意味着应用已成功通过 HTTPS 连接发送或接收了无效 SSL 链的数据。这种情况要么是因为它刚刚接受了无效证书,要么是因为它发出了警告,而您继续操作。