ゆるTLSアドベントカレンダー 1日目:TLSと私

この記事は ゆるTLS Advent Calendar 2021 の1日目の記事です。

 

 

[『プロフェッショナルSSL/TLS』]

2021年3月から『プロフェッショナルSSL/TLS*1を読みはじめた。

 

2021年12月1日現在、第6章の終盤にあたる181ページまで読み進めている。

紙の書籍本編が487ページ、PDF版ではTLS1.3に関する解説が約30ページ加筆されて520ページあるので、PDF版を基準にすると大体三分の一程度を読み終えたことになる。

 

そもそもこの本を読み始めたのは、仕事でTLSに触れたのがきっかけだった。

数年前から、とあるサービスの開発や運用に携わるようになった。Web APIをメインの機能として提供しているため、時たまやってくる「Web APIに接続できない!」という問い合わせに回答するのも自分の仕事になった。

 

問い合わせの大半は、接続のためのAPIキーが間違っているとか、API側の設定変更が必要だとか、既存のQ&Aを参考にしながら回答できた。しかし、ごく稀にTLSに関連する内容を調査しないと、回答できない問い合わせにぶつかることがあった。

問い合わせに回答するために調べ物を進める中で、TLSの暗号スイートの存在やServer Name Indicationという拡張などについて、ふんわりとした理解をすることはできた。

 

ふんわりとした理解のまま数年を過ごしたものの、もっと自信を持って問い合わせに回答したい、もう少し仕組みを深く理解したい、と思うようになった。

いくつか参考になりそうな書籍を探す中で、以下の本も検討したが、2003年出版ではさすがに内容が古そうなのでやめておいた。

 

[読書メモ]

せっかく分厚い『プロフェッショナルSSL/TLS*2を読んだのに、自分の中だけにためておくのはもったいない、ということで、読み進めつつZennで読書メモを残している。

zenn.dev

 

メモの内容としては、本書の内容のまとめ以外に、本書で参照されているRFCへのリンクを追加したり、RFCで示されているハンドシェイクメッセージの構造体をメモしたりしている。

 

また、本書の脚注に記載されているリンクが2017年以降に閲覧できなくなっている場合があるため、Internet Archiveからアーカイブをひっぱり出してリンクを貼っている。

 

[TLSらじお]

読書メモを元に、TLSらじおという社内勉強会を開催している。週に1回、30分ほどTLSについてあれこれ話すだけの時間である。

 

この勉強会を開催する目的は2つある。

 

1つ目は、せっかくまとめた読書メモがあるのだから、誰かに読んでもらいたい、というもの。裏を返せば、社内で話の通じる人を増やしておきたい、ということでもある。

 

2つ目は、自分の勉強のためである。

放っておくと途中で分厚い本を読むのをやめてしまいそうだったので、勉強会という形で1週間ごとのチェックポイントを設けて、そこまでに無理やり数ページ読んで話すスタイルにしたというのが本当のところ。

また、読んで、書いて、話すことで、最低でも3回同じ内容に触れることができるので、一度読んで終わりにしてしまうよりは、頭に定着する度合いが高い、はずである。

 

社内勉強会「TLSらじお」は前半と後半の二部制をとっている。

 

前半では、1週間の間に見つけたTLS関連のネット上のニュースや書き込みを取り上げている。TLS1.0/1.1を非推奨とするRFC 8996や、クロスプロトコル攻撃の一種であるALPACA攻撃など、2021年はいろいろなニュースがあった。

ニュースは1週間分をGitHub上でIssueの形で管理している。

github.com

 

後半は、『プロフェッショナルSSL/TLS』読書メモをひたすら読み上げつつ、TLSについて理解を深めている。

 

[まとめ]

  • 2021年3月から『プロフェッショナルSSL/TLS』を読みはじめた
  • 社内勉強会として読んだ内容とTLS関連ニュースについて話す「TLSらじお」を30週以上継続中
  • この1人アドベントカレンダーではTLSらじおの過程で学んだ内容を雑多にまとめる予定

*1:原著Bulletproof SSL and TLSは2013年に出版され、2017年に改訂版が出版された。ラムダノート社から出ている本書は2017年の改訂版をもとに翻訳されている。2020年にはTLS1.3が加筆され、章の構成が大きく変わったBulletproof TLS and PKIが出版された。

*2:講談社文庫版の『姑獲鳥の夏』よりも分厚い。