POODLE Attackに関して調査し、信頼できる情報から攻撃条件などをまとめてください。
https://github.com/kurenaif/seccamp_pre_challenge/blob/main/poodle/server.py を攻略してください
opensslを使ってサーバーを立てて、クライアントから接続してみてください。
opensslのバージョンは openssl-1.0.2k
を利用してください
opensslを使ったサーバーの起動方法
openssl s_server -accept 4443 -cert server.crt -key server.key
opensslを使ったクライアントの利用方法
openssl s_client -ssl3 -crlf -connect url:port
ここでなにか入力をするとサーバー側に表示されるはず、、、
AES-CBCで暗号化されているので、文字を増やすと16bytesずつ増えていきます。
その様子を確認してみましょう!
s_clientから出るリクエストをwiresharkで観察しパケットの構造を観察してみましょう
OpenSSLのソースコード中のmacを検証している箇所、Paddingを検証している箇所を特定し、それぞれどのような処理になっているか概要を調べてください。また、良ければtls1.0の実装がどうなっているかを調べtls1.0に上げることで対策になるかどうかを調べてみてください。
s_client
のソースコードを改造し、リクエストの直前にブロックを書き換えてPOODLE Attackが成功することを確認してください。
s_client
, s_server
の間に中間者を立て、POOODLE Attackを実行してください。(一定確率で1バイト以上平文を抜き取ることができたら攻撃成功とします。)
以上を整理し、現状わかっている攻撃条件、攻撃手法、影響を整理してください。 また、現実的なケースで攻撃をするとしたらどのようなシナリオがあるかを考えてください。(そのようなケースは思いつかないなどもOKです)
OpenSSLのsslv3を利用したPOODLE Attackに関する問題を1問作問してください。
Q9を使って、他の受講生にPOODLE Attackを説明してみてください。また、フィードバックを得てください。
Q10までがキャンプで行う大まかな流れです。早く終わった場合は、
- TLSの新しい脆弱性を調査してみる(CVE-2014-8730をやってみる, BEAST Attack、鍵を一部漏洩させるバックドアを仕込んでHidden Number ProblemでDH鍵交換から鍵を盗み出してみる、)
- SSL/TLSとは関係ない別の脆弱性を検証してみる
- 解説動画を作ってみる
の選択肢を考えています。ここから先の動きは決めていないので、その時の気分でやっていきましょう!
Q8までの内容を他の受講生と共有し、フィードバックを得てください。