きみはねこみたいなにゃんにゃんなまほう

ねこもスクリプトをかくなり

『プロフェッショナルSSL/TLS』を読む - 「第1章 SSL/TLSと暗号技術」から読む

(=˘ ꒳ ˘=) とりあえず Alice と Bob と Mallory だけ覚えておこう...

最近 Kubernetes Dashboard など、HTTPSが有効化されたツールをセットアップする機会が増えてきました。 なのでそろそろきちんと証明書などその辺の技術基盤を理解しないといけない... というか理解した方がそういったツールのトラブルシュートも捗るだろうという目論見でSSL/TLSについて興味を持ち始めております。

というわけで、今読んでいるのは『プロフェッショナルSSL/TLS』という本です。

「はじめに」で実用的な所を知りたければ8、9章を読みましょうとありますが、理論的な所に興味があるのでおとなしく冒頭から順に読んでいきます。

1.3 までは暗号技術の必須要件や歴史なので、とりあえず今は簡単に目を通して飛ばします。 ある程度読み進めてから戻って来たいと思います。

今回は「1.4 暗号技術」の「1.4.1 技術要素」までを読みました。

まず Alice など登場人物の凡例を押さえておく

初めは順序もバラバラに斜め読みしたせいで Alice と Bob と Mallory という登場人物の解釈で迷いましたが、 1.4 の冒頭に

Alice と Bob は暗号技術をわかりやすくせつめいするためによく使われている名前です。

と書かれていました。これだけ押さえたら途端に読みやすくなりました。

1.4 暗号技術

1.4 節の冒頭に暗号技術で解決したいセキュリティにおける重要な問題として

  • 機密性(confidentiality): 秘密が守られること
  • 真正性(authenticity): 本人であることの検証ができること
  • 完全性(integrity): データが改ざんされることなく転送されること

が挙げられていますが、こうやって並べられているだけでは「へぇ、そうなんだ」で通り過ぎてしまいますが、 続く「1.4.1 要素技術」でこれらの言葉がどう使われているかを見ることで、だんだんと具体的なイメージがつかめてきます。

1.4.1 要素技術

1.4.1項で挙げられている要素技術を並べてみると

  • 共通鍵暗号化方式
    • ストリーム暗号化方式、ブロック暗号化方式、パディング
  • ハッシュ関数
    • 原像計算困難性、第二原像計算困難性、衝突耐性
  • MAC(Message Authentication Code、メッセージ認証コード)
  • 暗号化利用モード
    • ECB(Electronic Codebook)モード、CBC(Cipher Block Chaining)モード
  • 公開鍵暗号化方式
  • ディジタル署名
  • 乱数生成器

となりますが、見た感じ機密性と完全性を提供するものに見えますね。 あとは暗号強度を改善する技術でしょうか。 真正性の例は、次の「1.4.2 プロトコル」で Alice と Bob が互いの認証を行う過程で触れられていました。

1.4.1項、1.4.2項の冒頭で繰り返し述べられていることですが

要素技術は、単体ではそれほど便利ではありませんが、 それらをスキームやプロトコルとして組み合わせることで強固なセキュリティを実現できます。

ということで、ここから先はここまで読んできた要素技術の応用編、ということになりそうです。 おそらく度々ここに戻ってきて「公開鍵暗号化方式って具体的にどうだっけ」と読み返すことになるんでしょうね。

一点、機密性、完全性は要素技術で提供されるけれど、真正性はプロトコルで提供される、という違いが気になりました。 節の冒頭で機密性、完全性、真正性と並列に並べられていたのと比較して、ちょっと興味深かったです。 この認識で正しいのかも含めて、この先の内容が楽しみです。

とりあえず読み始めてみて

...と、ここまで読むのに4時間くらいかかりました。

こう言った本にありがちですが、流し読みで理解できる内容ではないんですよね。 ちゃんと読もうとすると一文一文がとにかく重く、行間に気を配っていないとすぐに認識ズレを起こしそうで気力を持って行かれます。 そしてどう読んだところで認識ズレは起こすんだろうなという諦めもあります。

反面、それが楽しくもあるのですけどね。 各項が授業ひとコマ分くらいの密度を持っていてとても読み応えがあります。

みたいな感じで、当サイトでは個々の技術についてはまとめず、どこまで読んでどう思ったかの感想をふわっと書いていこうと思います。 各用語については Wikipedia を見た方がよほど詳しいですしね。