SSL/TLSは現代のインターネットにおけるセキュリティの基礎技術の中で一番重要といっても過言ではありません. しかも, 今後SSL/TLSにはTLS 1.3という大きなバージョンアップが予定されています. このゼミでは実際にRFCを読みながらTLS 1.3に対応したプロトコルスタックを開発し, 好きな暗号をその上に載せ, 実際に好きな暗号がTLS上を駆け巡ることが可能になるようにしてもらいたいと考えています.
このゼミで指している「TLS 1.3のRFCドラフト」はリビジョン26を指しています. リンク: https://tools.ietf.org/html/draft-ietf-tls-tls13-26
基本的にはRFCドラフトを読みながら開発をしていきます. 最初の一週間でRFCドラフトの概要を掴み, その後は実装を開始しつつ詳しく見ていく形にする予定です. 開発に利用する言語は自由に決めていただいて構いませんが, プロトコルスタック部分は時間がかかることが予想されるため, 2名の採用となった場合には共同で開発を進めてもらうことになります. プロトコルスタックの実装が完了次第, サーバー/クライアントを実装します.
キャンプ中は楽しいことをします. それはTLS 1.3の通信の上で, 自分の好きな暗号を使わせることです. 最近話題の軽量暗号や, 最近攻撃手法の提案されたMISTY-1, Ring-LWEを用いた鍵交換プロトコルもいいですね. 論文を探してきてもいいですし, 自分の考えた暗号でも良いでしょう. 緑川はその希望を事前学習中に聞き, その後の理論理解の手助けをします. なので, ほぼわからないが楽しそう, というレベルの暗号を実装するのでも大丈夫です!
キャンプ期間中は自分の好きな暗号の実装に加えてRFC適合度チェック, 実装した暗号の安全性についての議論や, 実装の高速化を行うことを考えています.
- 大前提ですが, 「暗号に興味がある」「プログラミングが好き」な方を対象としています.
- あんまりやる気, 暗号やプログラミングに熱が無いと思われる応募の場合は, 残念ながら選考時に落とさざるを得なくなってしまいます...
- レベルは問いませんが, 少なくとも英語に拒否反応が無いことは前提にします!
- RFCドラフトを読むにあたり, 英語は必須となってしまうため, 読もうとする心意気だけでもあれば! という感じです.
- 多くの専門用語が出てきて若干怖いかもしれませんが, 知ってしまえば「当たり前」になると思います. ちょっとぐらい怖くても一歩進んでしまいましょう!