Breaking TLS/SSL server authentication

2003. Fall. Work Shop. Project
Breaking TLS/SSL server authentication
環境情報学部2年 堀田 貴之
監修 安藤 類央
Objective
●SSL/TLSのチャレンジレスポンスの脆
弱性をついた秘匿情報の漏洩
●現状のSSL/TLSよりもセキュアな認証シ
ステムの提示
SSL/TLS(暗号・認証)
TLS V1.0 SSL V3.0 SSL V2.0
セッション鍵公開用
RSA DH RSA
認証用(公開鍵暗号)
RSA DSS/DSA
セッションの暗号化(共通鍵暗号) AES(TLS) RC4 DES/3DES
メッセージ認証用(ハッシュ関数) SHA1 MD5
MD5
赤:非対称暗号 青:対称暗号
SSL/TLS(通信手順)
RSA
暗号化規則
y=xe(mod n)
復号化規則
x=yd(mod n)
<特徴>
・剰余を取っているため、この変換は対数を
取って逆算することができない。
・暗号と復号の処理が対称
・秘密通信にも、ディジタル署名にも利用可能
チャレンジレスポンス認証
●乱数と暗号技術を利用して行う相手認証
●要求者Pと認証者Vが秘密鍵Kを共有する
ことにより、Vの相手がPであることを
認証する。
–
–
–
–
(1) PはVに認証を要求する。
(2) Vは乱数r を生成してPに送る。
(3) Pは E(r, K) をVに送る。
(4) Vは D(E(r, K), K)=r を得
て正当な相手であることを認証
する。
チャレンジレスポンス認証の問題
問題点
1)PとVが秘密を共有する必要がある。
⇒後にV(の管理者)がPになりすます危険性を避けることができな
い。
2)非対称暗号技術を利用する方式では、Pは自分の秘密鍵をVに知
らせることなしに認証してもらうことが可能だが、理論的にはその
間に秘密鍵に関する知識の一部をVに与えている。
⇒後にV(の管理者)がPになりすます可能性(確率)は0ではない。
攻撃手段
攻撃者が、Vの立場で乱数r を生成してPに送り認証する処
理を何度も実施し、その記録を蓄積しておき。後にPになり
すまし、他のサーバにログインする。その際にサーバから送
られてくる乱数r が蓄積してあった記録の中にあれば、Pに
なりすますことに成功することが出来る。
Code Break
Code Break
Code Break
Code Break(demo)
ゼロ知識対話証明を応用した認証
平方剰余問題に基づくゼロ知識対話証明 (数値例)
●鍵
– 秘密鍵:素数 p = 101, q =199, 自然数 m =300
– 認証鍵:n =20099, c (=m 2 mod n ) = 9604
●認証プロトコル
– 第1ラウンド
•
•
•
•
(1) 乱数r =5000、x=r 2 mod n = 16943
(2) b = 0
(3) y =r mod n = 5000
(4) y 2 mod n = 16943, x mod n = 16943 だから、左辺と右辺が一致する。
– 第2ラウンド
•
•
•
•
(1) 乱数r =12000、x=r 2 mod n = 10764
(2) b = 1
(3) y =r ・m mod n = 2279
(4) y 2 mod n = 8299, x ・c mod n = 8299 だから、左辺と右辺が一致する。
– 以下同様にして、16ラウンド程度繰り返し、合格と判断する。
Feige-flat-shamir authentication
今後の展望
• OpenSSLよりセキュアなもの
– ゼロ知識対話証明をRSA ChallengeResponseの代わりにつかう
• より包括的な認証システムの開発
– 様々な認証の組み合わせ