Ich erstelle eine Anwendung in iOS, die mit meinem TLS-1.2-kompatiblen Server sprechen muss. Nach iOS 9 wurde ATS (Application Transport Security) eingeführt, das diese Funktion standardmäßig aktiviert. Ich kann das Paket nicht mehr einfach mit CharlesProxy anzeigen.iOS-Anwendung Transportsicherheit für CharlesProxy
Nach der Suche fand ich, dass wir es in der meiner Anwendung vorübergehend deaktivieren können, um den Verkehr zu sehen.
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (for dev env only)-->
<key>NSAllowsArbitraryLoads</key>
Wenn ich es richtig verstehe, ist ATS für die Datenverschlüsselung und nicht das MITM. Wir brauchen eine Art SSL-Pinning, um MITM-Prävention zu erreichen. Meine Frage kommt, warum ich den Verkehr auf Charles Proxy nicht sehen kann, ohne die zu ändern? (Ich kann jedoch andere https Anruf von anderen Anwendungen sehen)
MITM ist nicht einfach, mit https. Im Fall von Charles Proxy haben Sie als Computeradministrator die Installation eines Zertifikats durch Charles Proxy zugelassen. Dadurch konnte eine https-Sitzung von Charles Proxy akzeptiert werden. Pinning würde dies nicht erlauben, da nicht nur irgendein gültiges Zertifikat erlaubt wäre, sondern das Zertifikat, das zu dem Server gehört, den Sie erwarten. – zaph