Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

how to decrypt SSL/TLS without PrivateKey of servers

3,125 views

Published on

tcpdump SSL TLS Wireshark SSLKEYLOGFILE

Published in: Technology
  • Be the first to comment

how to decrypt SSL/TLS without PrivateKey of servers

  1. 1. サーバの秘密鍵を使わず SSL/TLS を解読する方法 2015/01/29 #pakeana 24 @otsuka752 (@twovs)
  2. 2. agenda • 自己紹介 • サーバの秘密鍵を使う場合 • サーバの秘密鍵を使わない場合• サーバの秘密鍵を使わない場合 • 実行例(Win/Linux/OS X)
  3. 3. about me • @otsuka752 (@twovs) • ネコ2人+奥さん1人+可愛い娘 • 無線LAN装置の開発(1999~2004)• 無線LAN装置の開発(1999~2004) • オンラインゲームのシステム管理者(2004~) • ただし,ゲームには全く興味無し • ZFS 最高 !!! beadm 便利 !!!
  4. 4. サーバの秘密鍵を使う場合 • サーバは RSA を使う設定に (DH/ECC/DSA などを使わない設定に) • サーバ証明書の公開鍵のペアの秘密鍵を Wireshark に読み込ませる (秘密鍵は PKCS#8/PEM/パスワード無し) • そのサーバとの通信だけが解読可能
  5. 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. 6. サーバの秘密鍵を使わない場合 • Chrome や Firefox で Key log を出力させ • Key log を Wireshark に読み込ませる • どこかでパケットをキャプチャ• どこかでパケットをキャプチャ (Key log を出す PC 上でなくても OK)
  7. 7. 実行例(Win/Chrome) • Key log の出力先を c:¥sslkey_chrome.txt に • chrome.exe を起動
  8. 8. 実行例(Win/Chrome) 起動した Chrome で起動した Chrome で HTTPS なページを閲覧
  9. 9. 実行例(Win/Firefox) • Key log の出力先を c:¥sslkey_firefox.txt に • firefox.exe を起動
  10. 10. 実行例(Win/Firefox) 起動した Firefox で起動した Firefox で HTTPS なページを閲覧
  11. 11. 実行例(Linux/curl) • Key log の出力先を sslkey_curl.txt に • curl を実行
  12. 12. 実行例(Linux/curl)
  13. 13. 実行例(OS X) • Key log の出力先を sslkey_OSX.txt に • Chrome や Firefox を普通に(Dock から)起動
  14. 14. 実行例(OS X) Dock からブラウザ起動 HTTPS なページを閲覧HTTPS なページを閲覧
  15. 15. サンプルファイルで 解読してみる
  16. 16. 解読できない場合の一例 SSL/TLS の Key Log を出力する前に SSL/TLS の handshake が完了していて セッション再開時のパケットだけをセッション再開時のパケットだけを 見ている場合(該当する Key Log が無い場合) ClientHello -> Session ID Length: 0 で handshake している時の Key Log が必要
  17. 17. サンプルファイル • 通信開始時刻 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)
  18. 18. サンプルファイルは… • 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
  19. 19. お知らせ • 日本語サイト始めてみました! • http://tcpreplay.jp/ • https://github.com/otsuka752/ • Web site in English • http://tcpreplay.appneta.com/ • https://github.com/appneta/tcpreplay/
  20. 20. ENDEND

×