私は、TLS-1.2準拠のサーバーと通信する必要があるiOSでアプリケーションを作成しています。 iOS 9以降、デフォルトでこの機能を有効にするATS(アプリケーション転送セキュリティ)が導入されました。私はチャールズプロキシを使って簡単に私のパケットを見ることができません。charlesproxyのiOSアプリケーション転送セキュリティ
私の周りを検索した後、トラフィックを見るために私のアプリケーションのinfo.plist
で一時的に無効にすることができます。
<key>NSAppTransportSecurity</key>
<dict>
<!--Connect to anything (for dev env only)-->
<key>NSAllowsArbitraryLoads</key>
私はそれを正しく理解していれば、ATSは、データの暗号化ではなくMITMのためです。 MITM予防を実現するには、一種のSSLピンニングが必要です。なぜ私はinfo.plist
を変更せずにチャールズプロキシのトラフィックを見ることができないのですか? (私は他のアプリケーションから他のhttps呼び出しを見ることができます)
MITMはhttpsでは簡単ではありません。 Charles Proxyの場合、コンピュータ管理者として、Charles Proxyが証明書をインストールすることを許可しました。これにより、Charles Proxyのhttpsセッションを受け入れることができました。有効な証明書だけでなく、期待するサーバーに属する証明書が許可されているため、固定するとこれが許可されません。 – zaph