HTTPS復号(中間者攻撃、MitM)
ChuteはMitMによってHTTPSトラフィックを復号できます。詳細についてはWikipediaの記事を参照してください。
証明書ジェネレーターは、デバッグ用の新しいCA証明書を生成し、その証明書をシステムに信頼させるのに役立ちます。Chute MacおよびChute iOSのChute Editorで利用可能です。この証明書はローカルで生成され、プロファイルファイルとシステムキーチェーンにのみ保存されます。新しい証明書の鍵はOpenSSLを使用してランダムに生成されます。
既存のCA証明書も使用できます。証明書をパスフレーズ付きのPKCS#12形式(.p12)でエクスポートしてください。システムの制限により、パスフレーズは空にできませんので注意してください。"base64"コマンドを使用してbase64文字列にエンコードし、以下の設定を設定ファイルに追加してください。
[MITM]
enable = true
ca-p12 = MIIJtQ.........
ca-passphrase = password
hostname = *google.com
Chuteはここで宣言されたホストへのトラフィックのみを復号します。
ワイルドカード文字*と?がサポートされています。
- プレフィックス-を使用してホスト名を除外します。
- デフォルトでは、ポート443へのリクエストのみが復号されます。
- サフィックス:portを使用して他のポートを許可します。
- サフィックス:0を使用して全てのポートを許可します。
例:
-*.apple.com: *.apple.comへのポート443での全てのリクエストを除外します。www.google.com: www.google.comへのポート443でのMitMを許可します。www.google.com:8080: www.google.comへのポート8080でのMitMを許可します。www.google.com:0: www.google.comへの全ポートでのMitMを許可します。*: ポート443での全てのホスト名に対するMitMを許可します。(非推奨)*:0: 全ポートでの全てのホスト名に対するMitMを許可します。(非推奨)
一般的な設定は次のようになります:
hostname = -*.apple.com, -*.icloud.com, *
Chuteは全てのMitMリクエストにURLリライトルールとヘッダーリライトルールを適用します。
一部のアプリケーションは、固定証明書やCAを使用する厳格なセキュリティポリシーを持っています。これらのホストへの復号を有効にすると問題が発生する可能性があります。
オプション
skip-server-cert-verify
skip-server-cert-verify = true
MITM実行中にリモートホストの証明書を検証しません。有効にすると、Chuteは自己署名証明書や無効な証明書を含む、アップストリームサーバーから提示されたあらゆる証明書を受け入れます。開発環境では便利ですが、セキュリティは低下します。
[MITM]
enable = true
ca-p12 = MIIJtQ.........
ca-passphrase = password
skip-server-cert-verify = true
hostname = *google.com
セキュリティ注意:
skip-server-cert-verifyを有効にすると、Chuteとアップストリームサーバー間のMITM接続が中間者攻撃に対して脆弱になります。信頼できるネットワークまたは開発目的でのみ有効にしてください。