SSL 通信は暗号化されているため安全性が高い半面、Troubleshooting を行う場合の弊害になります。 そこで、capture file と private key を用いて SSL 通信を decode する方法を紹介します。
1) private key に password がかかっている場合、最初に password なしの key に変換します。
# openssl rsa -in sv_key.pem -out private_key.pem Enter pass phrase for sv_key.pem: writing RSA key |
2) wireshark を起動し、Edit -> Preferences -> Protocols -> SSL を選択します。
3) RSA key list, SSL debug file に必要事項を記入します。 マウスポインタを近付けると、各 box に何を記入すればよいのか help が表示されます。
今回は下記のように C drive 直下に file をおいているので、下記のように設定します。
RSA keys list : 192.168.71.100,443,http,c:\private_key.pem
SSL debug file: c:\ssl_debug.txt (空の file を作成)
設定後 capture file を開くと下記のように decode された結果が表示されます。
ACE: Hardware architecture から見た SSL 通信 で client から Client key Exchange, change cipher spec, Finish message が送信されていると説明していますが、Finish message は暗号化されたままであったため、下記のように Encrypted Handshake Message と表示されていました。
この file を decode すると上記のように、説明通り Finish message が送信されていることが確認できます。
Wireshark の使用方法に関しては下記をご参照ください。
http://wiki.wireshark.org/SSL
注)
ここに記載されている内容は、あくまで Troubleshooting 用ですので悪用しないでください。
また、private key や password の取扱いには十分注意してください。