iOS-Charles httpsのパッケージをつかむ(双方向認証)
1804 ワード
最近、テストに合わせて会社が作ったappのバッグをつかむために、httpsをつかむ方法を検討し、出会った穴について話しました.
! Charlesバージョンv 4.0.1を強調
通常はバッグをつかんで、ネット上でとても多くて、勝手に次を検索して検索することができます
同様にipポートを構成してsslを有効にして花瓶を信頼する証明書を捕まえる.
に質問
しかし、自社のappは、ipやポートを配置してsslを有効にして証明書を信頼しても、どのように捕まえても文字化けしています.ピット1:ネット上のほとんどのチュートリアルでは、自分のクライアントの秘密鍵をインポートさせていないが、双方向認証のため、クライアントの秘密鍵をCharlesにインポートする必要があることが分かった. 坑点二:上記の配置設定が完了した後、喜んでバッグをつかむ準備に成功したが、結局バッグをつかむことができず、バッグを起動した後、すべてのインタフェースが呼び出されなかった.最初から信じてたよ!(簡単ですが、信頼の仕方はもちろん携帯電話でchls.pro/sslにアクセスして証明書を入れました).多くの研究によると、ネットワーク層がサービス側の証明書を非常に厳格に検証していることが分かった.Charlesの証明書は何を言っても認めていない.なぜなら、このコードの下部には が使用されているからです.
この列挙をよく見てみると
AFSSLPinningModeNone:クライアントがサーバ側から返された証明書を無条件に信頼することを表します.AFSSLPinningModePublicKey:クライアントがサーバ側から返される証明書とローカルに保存されている証明書のうち、PublicKeyの部分を検証します.正しければ、続けます.AFSSLPinningModeCertificate:クライアントがサーバ側から返される証明書とローカルに保存されている証明書のすべての内容を表し、PublicKeyと証明書部分を含め、すべて検証されます.正しければ、続けます.AFNetWork SSLリファレンスサイト
これで真相が明らかになり、彼を取り除くだけで終わりだ.(私の処理方法はdebugモードで、この文を有効にしない)このようにテストして正常にhttpsのパッケージを捕まえました!
もし皆さんが他の穴に出会ったら、具体的な詳細は伝言を残して交流することができます.
! Charlesバージョンv 4.0.1を強調
通常はバッグをつかんで、ネット上でとても多くて、勝手に次を検索して検索することができます
同様にipポートを構成してsslを有効にして花瓶を信頼する証明書を捕まえる.
に質問
しかし、自社のappは、ipやポートを配置してsslを有効にして証明書を信頼しても、どのように捕まえても文字化けしています.
Proxy -> SSLProxying Setting -> Cilent Certificates add ip choose p12 , ( , )
You may need to configure your browser or application to trust the Charles Root Certificate
+ (AFSecurityPolicy *)securityPolicy
{
AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
[securityPolicy setAllowInvalidCertificates:NO];
[securityPolicy setValidatesDomainName:YES];
return securityPolicy;
}
この列挙をよく見てみると
typedef NS_ENUM(NSUInteger, AFSSLPinningMode) {
AFSSLPinningModeNone,
AFSSLPinningModePublicKey,
AFSSLPinningModeCertificate,
};
AFSSLPinningModeNone:クライアントがサーバ側から返された証明書を無条件に信頼することを表します.AFSSLPinningModePublicKey:クライアントがサーバ側から返される証明書とローカルに保存されている証明書のうち、PublicKeyの部分を検証します.正しければ、続けます.AFSSLPinningModeCertificate:クライアントがサーバ側から返される証明書とローカルに保存されている証明書のすべての内容を表し、PublicKeyと証明書部分を含め、すべて検証されます.正しければ、続けます.AFNetWork SSLリファレンスサイト
これで真相が明らかになり、彼を取り除くだけで終わりだ.(私の処理方法はdebugモードで、この文を有効にしない)このようにテストして正常にhttpsのパッケージを捕まえました!
もし皆さんが他の穴に出会ったら、具体的な詳細は伝言を残して交流することができます.