読書メモ:暗号技術入門(第3版)

読書メモ:暗号技術入門(第3版)

August 31, 2023

セキュリティの勉強の一環で読書。著者の結城さんは技術系の本を数多く出版していることで有名。

本書の巻末のまとめ部分から、内容の一部を以下にメモしておく。


防御は完全でなければならないが、攻撃は一点を破ればよい #

本書で解説してきたような暗号技術を用いれば、あるいは完全な暗号技術が開発されれば、完全なセキュリティを実現できるでしょうか。残念ながら、そうはいきません。なぜなら、セキュリティ全体の中で暗号技術がカバーしている範囲は限られているからです。

いかなる暗号技術があろうとも、防御側よりも攻撃側が有利であるというのが事実です。

システムを防御するためには、攻撃者からのありとあらゆる攻撃に備えなければなりません。しかも、それを 24 時間ずっと続けなければなりません。一方、システムを攻撃するには、有効な攻撃をたった1つ見つければ十分で、しかも防御側の一瞬の隙をつくだけでもいいのです。このことだけでも、防御よりは攻撃が有利だということが想像できるでしょう。

一点を破ればよい、という具体例をお話します。1000 人のユーザを持ち、パスワードによる認証を行なっているシステムがインターネット上にあるとしましょう。能動的攻撃者マロリーは、正規ユーザになりすまして、そのシステムに侵入しようと考えました。その際にマロリーは、1000 人いるユーザの全員になりすます必要はありません。1000 人のうち、たった1人になりすますことができれば十分なのです。

さて、1000 人のユーザの1人であるボブは、次のように考えました。

「ログインするたびにパスワードを入力しなくちゃいけないから、あまり長くて覚えにくいものを使うと、不便でしょうがないな。ぼくのパスワードを暴いて侵入する人なんかどうせ誰もいないさ。それに、ぼくのコンピュータには、大事な情報は何も保存していないから、侵入されたって困らないし。だから短いパスワードでもいいや。」

でも、この考えは非常に危険です。

確かにボブのコンピュータに大事な情報はないかもしれません。しかし、マロリーはボブのコンピュータにいったん侵入した後、そのコンピュータを別のコンピュータへ侵入する踏み台にするかもしれないことを忘れてはいけません。

強固な暗号や認証を備えたシステムがあり、1000 人のうち 999 人のセキュリティ意識が高くても、残り1人がずさんな管理をしていたら、その人を足がかりとしてシステムに侵入される可能性があります。攻撃者は、システムのうち最も弱い箇所を1点だけ破れば十分なのです。

攻撃例 #

暗号ソフトウェア PGP(Pretty Good Privacy)を使って暗号化したメールへの攻撃を考えてみましょう。

いま、アリスが会社にいるボブにメールを送るとします。能動的攻撃者マロリーは、そのメールを読みたがっています。注意深いアリスは、PGP を使って暗号化してからボブへメールしました。さあ、マロリーはどうするでしょうか。PGP で暗号化されたメールを解読するため、RSA で使われている大きな数をがんばって素因数分解しようとするでしょうか。

たぶん、マロリーはそんなことはしません。暗号技術を正面から攻撃するよりも効果的な攻撃がたくさんあるからです。

マロリーは、ボブが会社から帰った後、ボブのコンピュータに侵入して復号化された後のメールを盗み出すかもしれません。あるいはまた、ボブが不用意にプリントアウトしたメールを、会社のゴミ箱から回収するかもしれません。(マロリーは、オフィス清掃会社の制服を着て社内に入り込むのです。)

ボブが利用している社内プリントサーバに、前もって悪意のあるプログラムを仕掛けておくという手もあります。そして、ボブがプリンタで印刷する内容をすべてネットワーク経由でマロリーのところに送らせるのです。

もっと直接的な攻撃もあります。ボブのメールソフトにプログラムを仕掛けておき、PGP の復号化ボタンを押した後に表示されるメールをこっそりマロリーへ送らせるのです。

もしも、ボブのコンピュータに侵入するのが難しかったら、アリスのふりをして、マルウェアを添付したメールを送ればいいでしょう。

また、マロリーは、ボブの会社のシステム管理者を買収して、ボブのコンピュータに悪意のあるプログラムを仕掛けてもらうこともできます。買収に必要な金額は、RSA を破れるほどの高性能なコンピュータを作るよりも、きっと安上がりです。

また、買収すら必要ないかもしれません。マロリー本人がシステム管理者のふりをしてボブからパスワードを聞き出すのです。これはソーシャル・エンジニアリングと呼ばれる攻撃の一種です。

……などなど、その気になればいくらでも、アリスのメールを読む方法を考えることができます。しかも、それらの方法は、PGP で使われている暗号の強度とはまったく関係がありません。用意周到なマロリーの攻撃を防ぐためには、常時注意している必要があるということがわかるでしょう。

「セキュリティは製品ではなくプロセスである」 というのは、「暗号技術大全」の著者ブルース・シュナイアーの言葉です。

暗号技術が完全になっても、人間は不完全 #

私たちは人間は古代から、暗号技術を進歩させてきました。完全な暗号技術がたとえできたとしても、完全なセキュリティが達成できるわけではありません。そこには、必ず人間、不完全な私たち、が介在するからです。