More Related Content More from @ otsuka752 (20) how to decrypt SSL/TLS without PrivateKey of servers3. about me
• @otsuka752 (@twovs)
• ネコ2人+奥さん1人+可愛い娘
• 無線LAN装置の開発(1999~2004)• 無線LAN装置の開発(1999~2004)
• オンラインゲームのシステム管理者(2004~)
• ただし,ゲームには全く興味無し
• ZFS 最高 !!! beadm 便利 !!!
4. サーバの秘密鍵を使う場合
• サーバは RSA を使う設定に
(DH/ECC/DSA などを使わない設定に)
• サーバ証明書の公開鍵のペアの秘密鍵を
Wireshark に読み込ませる
(秘密鍵は PKCS#8/PEM/パスワード無し)
• そのサーバとの通信だけが解読可能
5. サーバの秘密鍵を使わない場合
• クライアントPC (Win/Mac) だけでも簡単に
• Google も Facebook も Yahoo も解読可能
• ただし Chrome や Firefox の通信だけ• ただし Chrome や Firefox の通信だけ
• NSS(Network Security Services)の機能を使う
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
6. サーバの秘密鍵を使わない場合
• Chrome や Firefox で Key log を出力させ
• Key log を Wireshark に読み込ませる
• どこかでパケットをキャプチャ• どこかでパケットをキャプチャ
(Key log を出す PC 上でなくても OK)
13. 実行例(OS X)
• Key log の出力先を sslkey_OSX.txt に
• Chrome や Firefox を普通に(Dock から)起動
17. 解読できない場合の一例
SSL/TLS の Key Log を出力する前に
SSL/TLS の handshake が完了していて
セッション再開時のパケットだけをセッション再開時のパケットだけを
見ている場合(該当する Key Log が無い場合)
ClientHello -> Session ID Length: 0
で handshake している時の Key Log が必要
18. サンプルファイル
• 通信開始時刻 2015/01/01 00:00:00'00
• 通信元
MAC Addr 00:11:22:33:44:55
IP Addr 10.0.0.1IP Addr 10.0.0.1
Port 10000
• 通信先
MAC Addr 00:aa:bb:cc:dd:ee
IP Addr (google/facebook/yahoo)
Port 443 (HTTPS)
19. サンプルファイルは…
• Tcpreplay で各種ヘッダを書き換えて配布
• tcprewrite ¥
--enet-smac=00:11:22:33:44:55 ¥--enet-smac=00:11:22:33:44:55 ¥
--enet-dmac=00:aa:bb:cc:dd:ee ¥
--pnat=x.x.x.x/32:10.0.0.1/32 ¥
--portmap=yyyyy:10000 ¥
-i origin.pcap ¥
-o sample.pcap