MITM Proxy - проверка валидации цепочек сертификатов SSL

1038
Chris

Я пытаюсь проверить валидацию SSL-сертификата нашего приложения для Android.

На моем Mac запущен прокси-сервер MITM, и я использую Mac в качестве прокси для моего телефона Android. Я вижу все запросы http / s Android в MITM Proxy на Mac.

Глядя на вступление CERT Tapioca ( http://www.cert.org/blogs/certcc/post.cfm?EntryID=203 ), оно говорит в нижней части страницы:

Как я упоминал ранее, если вы когда-нибудь увидите URL-адрес https: // в mitmproxy, вы либо имеете дело с приложением, которое не может проверить цепочки сертификатов SSL, либо вы вручную приняли недействительный сертификат. Мы можем легко проверить это программно:

grep "схема, 5: https" ~ / logs / flows.log

Эта команда определяет, успешно ли клиент отправил или получил данные через соединение HTTPS.

Может кто-нибудь объяснить, как эта команда «определяет, успешно ли клиент отправил или получил данные через соединение HTTPS»? Насколько я могу судить, эта команда находит только экземпляры "схема, 5: https" в файле журнала ... но как мне затем использовать эту информацию, чтобы понять, что происходит?

0
Команда действительно только находит экземпляр строки в файле журнала. Ключевым моментом является то, что строка отображается в файле журнала, только если вы использовали HTTPS в качестве протокола, и вы можете использовать HTTPS в качестве протокола связи только в том случае, если приложение не проверяет цепочки сертификатов SSL или вы вручную приняли недействительный сертификат, поскольку сертификат, предоставленный mitmproxy, безусловно, не является действительным сертификатом для сайта. ssnobody 9 лет назад 1
Таким образом, если я удаляю MITMProxy CA со своего Android и все еще получаю звонки с https, это означает, что сертификат не проходит надлежащую проверку. Правильный? Chris 9 лет назад 0
Это правильно, это означает, что кто-то может предоставить сертификат, который не имеет действительной цепочки, к установленному доверенному корню, и рассматриваемое приложение все еще принимает этот сертификат и использует его для связи. ssnobody 9 лет назад 1

1 ответ на вопрос

0
user376105

You can interact with the mitmproxy terminal window to see what is going on. You can use your eyeballs to look for URIs that begin with "https://" if you perfer. But grep seems less prone to mistake.

Any time there's an https URI there, that means that the app has successfully sent or received data over an HTTPS connection with an invalid SSL chain. That either happened because it just accepted the invalid certificate, or because it warned you and you proceeded.