SSL-прокси работает со всеми приложениями, кроме одного

Я успешно настроил Charles Proxy на своем хост-компьютере, чтобы я мог просматривать SSL-трафик с моего виртуального устройства Android, когда запрос поступает из браузера или из большинства приложений Android на виртуальном устройстве. Однако я не вижу SSL-трафик из одного конкретного приложения. Когда это приложение отправляет SSL-запросы, записи отображаются в Charles как «SSL Handshake: получено фатальное предупреждение: handshake_failure».

Поскольку я могу перехватывать SSL-трафик от других приложений, я думаю, что, возможно, рассматриваемое приложение каким-то образом игнорирует принятый пользователем корневой сертификат. Это возможно? Если да, то можно ли это обойти?


person jvhang    schedule 17.01.2016    source источник


Ответы (1)


Возможно, что приложение, которое не работает, использует проверку открытого ключа (закрепление открытого ключа AKA) во время рукопожатия SSL. Это механизм безопасности, предназначенный для предотвращения атаки «человек посередине». Я думаю, что установка прокси посередине изменяет цепочку сертификатов, передаваемых клиенту во время рукопожатия, и именно по этой причине он не работает.

Если причиной, по которой вы не можете проверить трафик из этого приложения, действительно является закрепление открытого ключа, я боюсь, что нет обходного пути (по крайней мере, ни одного за разумное время). приложение ожидает определенный открытый ключ, которого у вас нет.

подробнее о закреплении открытого ключа: https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning

Надеюсь, это поможет.

person FunkSoulBrother    schedule 17.01.2016