SSL接続をデバッグする方法は?
-
27-10-2019 - |
質問
HTTPSを介したWebサービスに接続するクライアントアプリケーションがあります。 Webサービスとクライアントの間のすべてのネットワークトラフィックを「スニッフィング」する必要があります。すべてが問題ないかどうかを確認する必要があります。つまり、接続をデバッグする必要があります。
Wiresharkを試しましたが、サーバーの秘密鍵がないので、Wireshark画面に表示されるデータはもちろん暗号化されています。
サーバー自体、したがってプライベートキーやその他の関連するものにアクセスできない場合、クライアントとWebサービスの間にSSLネットワークトラフィックを観察する方法はありますか?
前もって感謝します。
解決
これを参照してください: SSL通信のデバッグ.
理論的にはそれができることを知っています - ターゲットWebサービスと通信するプロキシをセットアップすることができ、このプロキシを介してアプリケーションに接続するように向けます。その既知の制限-HTTPSは、マシンにインストールされているすべてのプロキシと証明書を信頼することを前提としています。その形式 中間の攻撃.
かどうかを確認します フィドラー いくつかの役割を果たすでしょう。
中間の攻撃では、攻撃者はユーザートラフィックを傍受して資格情報やその他の関連情報をキャプチャします。攻撃者はこの情報を使用して、実際の宛先ネットワークにアクセスします。プロセス中、攻撃者は通常、誤ったSSL VPNサイトをユーザーに提示するプロキシ/ゲートウェイとして機能します。このプロキシ/ゲートウェイは、ユーザーが実際の宛先サイトに入力する認証を渡します。
他のヒント
げっぷスイート (無料エディションでも)SSLの「プロキシ」を設定することができ、アプリケーションに別の証明書を提示し、トラフィックを復号化(および表示)します。また、ローカルホストのサーバーでテストしたい場合は、プロキシを設定することもできます(WiresharkのWireshark、およびFiddlerでできなかったこと)。
サーバーの秘密キーにアクセスできない場合、SSL/TLSによって何が保護されているかを確認するためにできることはあまりありません。 (少なくとも最初の握手を見ることができます。)
クライアントに完全な制御がある場合は、秘密キーと制御する証明書を持つ偽のサーバーを作成することができます。このためには、クライアントに自分の証明書を信頼させる必要があるため、クライアントを制御する必要があります。対応するものを調整する方が簡単かもしれません hosts
クライアントにファイルをファイルして、DNSスプーフィングを実行し、適切なホスト名への接続を行うために、代わりに偽のサーバーに移動します。