golden-luckyの日記

ツイッターより長くなるやつ

『プロフェッショナルSSL/TLS』(現『プロフェッショナルTLS&PKI 改題第2版』)の読み方(私論)

[2024/04/29 追記]

本書は2023年12月に改訂改題され、『プロフェッショナルTLS&PKI 改題第2版』となっています。改訂により次のようなブラッシュアップが施されていますが、書籍の大きな流れ自体は本記事の旧版と変わっていませんので、引き続き参考にしていただければと思います。

  • TLS 1.3ベースの解説になった
  • 一方で、TLS 1.2以前について知っているべきことも厳選して残されている
  • ウェブでTLSPKIを安全に使うための課題と対策についての解説が拡充され、整理された
  • 書籍後半の設定や運用に関する詳細説明がOpenSSLベースに一本化され、整理された
  • 新たに明らかになった脆弱性やインシデントの解説が追加された

[ここまで2024/04/29 追記]

本記事は、ラムダノートで発売している『プロフェッショナルSSL/TLS』を買っていただいた方向けに「読んで」とお願いするための「私家版、読み方のおすすめ」です。本なので、どう読んでもらってもいいんですが、「買ったはものの積読になっている」という方の背中を押せればと思います。

([2024/04/29 追記]下記は『プロフェッショナルTLS&PKI 改題第2版』の公式ページです)


この本は、プロトコルであるTLSの解説書であると同時に、「インターネットで安全にやっていく」ための感覚のベースラインを与えてくれる本です。 そういうつもりで、まずは第1章を読んでみてください。 知ってる話も知らない話もあると思いますが、20ページくらいしかないので、とりあえず読みましょう。 ここを読むと、現代のTLS以前の古典的な暗号、ハッシュ、認証について、安全かどうかを考えるためのフレームワークが得られます。 カタログ的ではないので、そういうのは期待しないでください。 なお、現在のバージョンには「認証付き暗号」という重要な概念が抜けていますが、これについては次の第2章(および最新の電子版に収録された付録A)で出てきます。([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では第2章がTLS 1.3、第3章がTLS 1.2の解説となり、認証付き暗号についても第2章と第3章で説明されています。)

第1章を読んだら、TLS 1.3に関する付録AがあるPDFをおもちであれば、そこを読みましょう([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では第2章がTLS 1.3の説明です。そのまま読みましょう)。 ない人は、TLS 1.2ベースになりますが、そのまま第2章へ。 本書はTLSの「プロトコルとしての仕様」を説明する本ではないんですが、なにはともあれTLSプロトコルとしてのノリは把握しておく必要があります。 この章(もしくは付録)については、多少ぴんとこない話があっても読み飛ばして、とりあえず目をとおしてください。 そういう「この章だけを読んでもぴんとこない」部分も、あとの章を読むと「そういうことね」と思えるはずです。

次の第3章([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では第4章)も、とりあえず「ぴんとこない部分」は飛ばしていいので、目をとおしましょう。 TLSというプロトコルは、インターネットにおいてはPKIというインフラの上で使うことを前提になっていて、ここはそのPKIの話です。 この章も、どのみちあとで何度も立ち戻ってくることになるので、初見は「だいたいこういうことが書いてあるんだな」という軽い気持ちでまずは目を通してください。

第4章から第7章は、主に歴史の話です([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では第5章から第9章)。 ほんとは歴史の話というわけではなく、歴史をとおして「なんでいまのTLSPKIがこういう姿になっているか」を知るための章なんですが、歴史の話と思って読むとさらさら読めるはずです。 この部分を読みながら、「あれこれはなんの話だっけ?」とおもったら第1章から第3章や付録Aの該当部分に検索や索引を頼りに立ち戻って「なるほどね」と思う、というのが、本書の効率的な読み方かと思います。

が、実はもっと効率的な読み方もあります。それは、次の第8章([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では第11章)を中心とした読み方です。 第4章から第7章は、分脈を知るには不可欠なんですが、分脈はいいからまずは具体的な話をしてくれ、というときもあるでしょう。 そういうときは、「第8章から読む」というかなり乱暴な読み方もありです。 もちろん、それで意味がわからない部分については第1章から第3章や付録A、あるいは第4章から第7章に向き合ってください。

第9章以降は、かなりボリュームはあるものの、最初はボーナスステージという扱いで、「実務で必要になったら読む」でもいいと思います。 とくに第13章以降は、現在ではすべての人に必要な情報というわけでもないので、ここを読み切らなくても「読んだ」といって大丈夫です([2024/04/29 追記]『プロフェッショナルTLS&PKI 改題第2版』では、第9章が暗号のパフォーマンス、第10章がウェブなどでTLSPKIを使うときの課題、第12章と第13章がOpenSSLのコマンドラインツールの使い方という形で整理されたので、読まなくていい箇所はなくなったと言えます。むしろここのほうが実務をやっている人には読みやすいと思うので、ぜひ読んでください!)

というわけで、この本は、ふつうのエンジニアがTLSについて知っておくと捗るすべてのことが書かれた本です。 文字通り「すべて」なんですが、「ふつうのエンジニアが知っておくといいこと」っていうのがポイントで、「前のほうに書いてある細部を全部を頭に入れておかないと読み進められない」という本ではないので、上記のような「本の構成」を把握しながらさくさく読み進めると、ボリュームのわりには「よめるよめるぞ」となる本ではないかと思います。 もちろん、実際に手を動かす段になるとわからないことがいろいろ出てくるはずですが、少なくとも「なにを調べたらいいか」あたりの勘はつくはず。

買った人はぜひ読んでみてください!