Почему некоторые приложения iphone не завершают ssl рукопожатие с Charles Proxy?
Я использую Charles Proxy, чтобы увидеть весь трафик, который выходит из моего iphone. У меня есть сертификат ssl/профиль, установленный на моем iphone, и я вижу много трафика, который зашифрован ssl. Однако некоторые приложения, похоже, не завершают рукопожатие ssl.
Ошибка: "SSLHandshake: удаленное соединение с узлом удаленного доступа во время рукопожатия", а затем Charles Proxy предлагает настроить приложение, чтобы доверять Чарльз Корневому сертификату. Я думал, что сделал, когда установил профиль на свой iphone?
Любое объяснение этого/способа его исправить?
Ответы
Ответ 1
Есть приложения, которые не просто ожидают, что сертификат подписывает один из доверенных ЦС в системе, но которые ожидают один конкретный сертификат или сертификат, содержащий конкретный открытый ключ. Это называется фиксацией ключа/открытого ключа. Для этого приложения это не сработает, если вы настроите CA of Charles Proxy как надежный в системе, потому что они не будут использовать этот CA.
Любое объяснение этого/способа его исправить?
Если приложение построено так, чтобы доверять только одному сертификату/открытому ключу и никогда не доверять чему-либо только потому, что оно подписано локально доверенным ЦС, тогда вам понадобится исходный сертификат и его закрытый ключ для перехвата SSL. Поскольку у вас их нет, нет способа выполнить перехват SSL.
Ответ 2
Да, привязка SSL - это возможность, хотя с iOS 10.3 вы должны сделать еще один шаг, чтобы доверять Чарльзскому корневому сертификату, который в настоящее время не зарегистрирован на их веб-сайте:
Settings > General > About > Certificate Trust Testings
Источник: https://www.neglectedpotential.com/2017/04/trusting-custom-root-certificates-on-ios-10-3/