More Related Content More from MITSUNARI Shigeo More from MITSUNARI Shigeo (20) プロフェッショナルSSL/TLS 7章2. • 歴史
• 1999年 TLS1.0の標準化
• 2006年, 2008年TLS1.1, TLS1.2がリリース
• しかしTLS1.0が使い続けられる
• 2009年安全でない再ネゴシエーション
• 2011年BEAST
• 2012年CRIME, Lucky13, RC4, TIME
• 2013年BREACH
• 2014年トリプルハンドシェイク, POODLE
プロトコルに対する攻撃
2 / 16
7. • 標的サイトにリダイレクト対応リソースがあると
• オープンリダイレクト:任意のURLにリダイレクト
• これがあるとtarget.comをmytarget.comに誘導できる
• 平文HTTPにダウングレードさせる
• 307を返すリダイレクト(一時的リダイレクト)
• POSTはPOSTのままリダイレクト
• 攻撃者が暗号化されたデータを取得できる
• 標的サイトのアカウントを持たなくても攻撃可能
• その他の影響
• 概念実証ツールは結構ある
• 犠牲者が、あるサーバを攻撃しているように見せかける
リダイレクト
7 / 16
8. • 時間軸(p.190 図7.2)
• プロトコルの修正6カ月
• ライブラリとOSの修正12カ月
• みながパッチを適用24カ月
修正にかかる時間
2009 2010 2011
最初の発見
RFCドラフト
Opera
OpenSSL
RedHat
NSS
Mozilla/GnuTLS
Microsoft
JRE
Ubuntu
Debian
8 / 16
13. • 悪意あるサーバに犠牲者を誘導する(p.224図7.8)
未知の鍵の共有
ClientHello
クライアント 攻撃者 サーバ
ClientHello
ServerHello
Certificate
Certificate
ServerHelloDone
ClientKeyExchange
ClientKeyExchange
ChangeCipherSpec
Finished
Finished
ChangeCipherSpec
Finished
Finished
𝑝𝑚𝑘を自分の秘密鍵で
復号してserverに転送
serverの乱数を受信し
clientに転送
同じパラメータのTLS
接続が2個できる
13 / 16
14. • ステップ2 完全同期
• 現状
• 鍵パラメータは同じ
• サーバ証明書が異なるのでverify_dataが異なる
• セッションリザンプション
• フルハンドシェイクは重たいので出来るだけ省略したい
• SessionIDを用いて再開
• セッション再開時には認証がない
• 接続再開時に共有した鍵パラメータを使うことで
ハンドシェイク完了時に両接続のFinishedメッセージが同じ
• ステップ3 なりすまし
• 攻撃者は2個の接続を完全に制御可能
続き
14 / 16
15. • 原因
• CBCブロックのパディング部分が保護されない
• SSL3.0ではパディングに何が入っていてもよかった
• 暗号化されているので直接解読はできないがパディングの長
さがたまたまあうように攻撃し続ければよかった
• TLS1.0では固定された
POODLE
H e l l o w o r l d ! ? ? ? 3
H e l l o w o r l d ! 3 3 3 3
SSL3.0
TLS1.0
パディング 長さ
15 / 16