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::Streamrustls::ClientConnectionWrite + Read を渡せば復号できるはず
        • ClientConnection に client_random, server_random, master_secret を外部から渡す方法を考える
          • おそらく crate が公開していないインターフェイスを介する必要があるので、rustls 自体に手を加えなければならない


卒論原稿の関連研究・手法を記述

  • 庄司さんの修論・卒論や自分の中間報告書を参考にして記述


今後の予定

  • TLS パケットと共通鍵を与えたら平文の payload が得られる関数を実装する
  • SSLKEYLOGFILE 環境変数の指定で得られる TLS 共通鍵でキャプチャしたパケットを復号する
  • ルールの追加・削除をユーザができる CLI ツールを作成する