rustls ソースコード読解・留学生とのメールのやり取り
先週実施したこと
- TLS パケットの復号手法の調査
- 留学生とのメールのやり取り
- 卒論原稿で概要と背景を記述
留学生とのメールのやり取り
TLS パケットの復号手法の調査
- rustls-decrypter
- https://www.softlab.cs.tsukuba.ac.jp/ がオファーする TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 は AEAD 暗号
- client_random, server_random, master_secret から key_block を作る
- key_block から {client,server}_write_{key,iv} を作る
- client_write_key, client_write_iv を使うと復号できる
- rustls::Stream に rustls::ClientConnection と Write + Read を渡せば復号できるはず
- ClientConnection に client_random, server_random, master_secret を外部から渡す方法を考える
- おそらく crate が公開していないインターフェイスを介する必要があるので、rustls 自体に手を加えなければならない
卒論原稿の関連研究・手法を記述
- 庄司さんの修論・卒論や自分の中間報告書を参考にして記述
今後の予定
- TLS パケットと共通鍵を与えたら平文の payload が得られる関数を実装する
- SSLKEYLOGFILE 環境変数の指定で得られる TLS 共通鍵でキャプチャしたパケットを復号する
- ルールの追加・削除をユーザができる CLI ツールを作成する