索引 / 001 JA
Security Engineering: A Guide to Building Dependable Distributed Systems(セキュリティエンジニアリング) cover

コンピュータサイエンス

コンピュータサイエンス

Security Engineering: A Guide to Building Dependable Distributed Systems(セキュリティエンジニアリング)

Ross Anderson

英語原題: Security Engineering: A Guide to Building Dependable Distributed Systems

悪意、過失、偶発事故に直面しても信頼できるシステムを構築する方法を包括的に扱う書。セキュリティプロトコル、暗号、アクセス制御を、銀行、医療、通信、軍事システム、民生機器の事例研究と組み合わせ、現実のセキュリティの帰結を左右する経済学、心理学、政策を論じる。第3版の全文が著者のサイトから PDF で無料公開されている。

前提知識: 一般的なコンピュータの素養と、オペレーティングシステムとネットワークへのある程度の親しみ。暗号の予備知識は必須ではないが、あれば役立つ。

難易度レベル
中級
学術レベル
上級
security engineeringcryptographysystems securitythreat modellingopen access教科書

01 / 読書ガイド

読書ガイド

引用

Anderson, R. (2020). Security Engineering: A Guide to Building Dependable Distributed Systems (3rd ed.). Wiley. Free official edition: https://www.cl.cam.ac.uk/~rja14/book.html

章の要約

第1章:セキュリティエンジニアリングとは何か

第 I 部は基礎を扱う。冒頭の章は、セキュリティエンジニアリングを悪意、過誤、不運に直面しても信頼できるシステムを作ることと定義し、ポリシー、メカニズム、保証、インセンティブという相互に作用する四つの要素からなる枠組みを示す。保護目標の幅を四つの環境(銀行、軍事基地、病院、家庭)で示した後、システム、主体(プリンシパル)、信頼、秘密性、プライバシー、完全性といった用語を丁寧に定義し、「セキュリティ」が立場によって異なる意味を持つことに注意を促す。

第2章:敵は誰か

この章は脅威となる行為者を四つの見出しのもとで概観する。スパイ(スノーデンの暴露資料なども用いて米国、中国、ロシアの能力を紹介)、犯罪者(サイバー犯罪のエコシステム、ボットネット、マルウェア)、ギーク(バグを責任をもって報告することもある研究者やハッカー)、そして「沼地」(いじめや親密なパートナーによる虐待から政治的操作に至るオンラインの悪用)である。結論は、設計者は使いやすさだけでなく「悪用しやすさ」も考えなければならないというものである。

第3章:心理学とユーザビリティ

現実の攻撃の多くが利用者を標的にしていることから、この章は認知、バイアス、リスク認知、欺瞞に関する心理学の研究を概観し、実際の欺瞞(フィッシングとソーシャルエンジニアリング)を検討する。パスワードを長い事例研究として取り上げ、覚えやすさ、推測されやすさ、利用者の訓練、現実の失敗を扱い、最後に CAPTCHA を論じる。

第4章:プロトコル

セキュリティプロトコルは主体の間に信頼を築く。パスワードの盗聴と単純なチャレンジ・レスポンス認証(自動車の鍵、敵味方識別システム)から始め、中間者攻撃、反射攻撃、リプレイ攻撃、選択プロトコル攻撃といった失敗を整理し、鍵管理(Kerberos 型の方式を含む)と形式検証の限界を論じる。助言は、自分でプロトコルを設計するなというものである。

第5章:暗号

長い章で、エンジニア向けに暗号を紹介する。古典暗号、安全性のモデル(ランダムオラクルモデルと意味論的安全性)、AES などの共通鍵アルゴリズム、暗号利用モード、ハッシュ関数、素因数分解と離散対数に基づく公開鍵の基本要素(署名や楕円曲線を含む)である。まとめでは、システムが失敗するのは通常アルゴリズムが破られるからではなく、安全でない既定のモードなどの誤用や実装の欠陥によることを強調する。

第6章:アクセス制御

アクセス制御をいくつかの層で検討する。オペレーティングシステムの仕組み(グループ、ロール、アクセス制御リスト、ケイパビリティ、そして Unix、Windows、Android などの設計)、ハードウェアによる保護、そしてメモリ安全性のバグや競合状態からサンドボックスの限界まで、何がうまくいかないかである。

第7章:分散システム

並行性、耐障害性、名前付けを敵対的な視点から見直す。古いデータや一貫しない更新、正しい時刻を知ることの難しさ、冗長性とビザンチン障害、そして名前と身元を安全に管理することがなぜ難しいかを扱う。

第8章:経済学

基礎の部の最後の章は、古典経済学、情報の経済学、ゲーム理論、オークション理論を紹介し、それをセキュリティに適用する。インセンティブが技術的な失敗をしばしば説明する理由、ネットワーク効果、ロックイン、情報の非対称性、脆弱性とプライバシーの経済学である。

第9–11章:多段階セキュリティ、境界、推論制御

第 II 部は応用に移る。第9章はセキュリティポリシーモデル、Bell-LaPadula の多段階モデルとその後継を説明し、軍事用の多段階セキュリティがなぜ難しかったか、そして強制アクセス制御が今では Android、iOS、Windows などのプラットフォームを守っていることを示す。第10章は区画化と束モデル、絶滅危惧の野生動物に関するデータの保護、そして医療記録のプライバシーを詳しく論じる。第11章は国勢調査の統計から差分プライバシーに至る推論制御の歴史をたどり、豊かな個人データの匿名化はめったにうまくいかないと論じる。

第12章:銀行業務と簿記

簿記は、真正性と説明責任のために長い時間をかけて進化したシステムとして描かれ、Clark-Wilson モデルとして形式化される。続いて銀行間決済、ATM、クレジットカード、EMV チップカード、オンラインバンキングへの攻撃(フィッシング、マン・イン・ザ・ブラウザ型マルウェア、SIM スワップ)、銀行以外の決済を扱う。

第13–16章:錠と警報、監視と計量、核の指揮統制、セキュリティ印刷と封印

これらの章は物理的なセキュリティと計量のセキュリティを扱う。第13章は抑止、障壁、機械式・電子式の錠、警報システムを論じる。第14章はプリペイド式電力メーター、タクシーメーター、タコグラフ、犯罪者の外出制限用タグを調べる。第15章は、核兵器の管理から無条件に安全な認証符号、共同管理方式、許可行動リンク、条約の検証が生まれた経緯を説明する。第16章はセキュリティ印刷、包装と封印、システム的な脆弱性とその評価法を扱う。

第17–19章:生体認証、耐タンパー性、サイドチャネル

第17章は手書き署名、顔認識、指紋、虹彩コード、音声を比較し、誤り率の統計と失敗の原因を説明する。第18章はハードウェアセキュリティモジュール、スマートカード、セキュリティチップにおける攻撃と防御の繰り返しをたどり、何を守る価値があるかを問う。第19章は電磁放射のセキュリティ、コンピュータ間およびコンピュータ内部の受動的・能動的なサイドチャネル攻撃(タイミング攻撃やキャッシュ攻撃を含む)、環境センサー、社会的なサイドチャネルを扱う。

第20章:高度な暗号工学

ハードウェアとソフトウェアが出会う領域として、ディスク全体の暗号化、Signal のメッセージングプロトコル、Tor、ハードウェアセキュリティモジュール、エンクレーブ、ブロックチェーンを取り上げ、「実現しなかった暗号の夢」で締めくくる。暗号システムにもバグがあり、他のものと同様にパッチが必要だと論じる。

第21–22章:ネットワーク攻撃と防御、電話

第21章はネットワークプロトコルとサービス妨害、マルウェア(トロイの木馬、ワーム、遠隔操作ツール)、フィルタリングから侵入検知までの防御、TLS などの暗号プロトコル、認証局と PKI、ネットワークのトポロジーを扱う。第22章は電話のセキュリティを、固定電話網での初期の不正から GSM、3G、4G、5G、そしてモバイルプラットフォームのセキュリティ、アプリストア、5G をめぐる政治までたどる。

第23–24章:電子戦と情報戦、著作権と DRM

第23章は電子戦(妨害、欺瞞、監視と目標捕捉、敵味方識別、即席爆発装置への対抗策、指向性エネルギー兵器)と、その情報戦やプロパガンダへの広がりを説明する。第24章は著作権保護、汎用コンピュータ上の DRM、情報ハイディングと電子透かし、政策、そしてプリンタのカートリッジ制限のようなアクセサリ制御を扱う。

第25章:新たな方向?

応用の部の最後の章は、2020 年時点の四つの研究の最前線を検討する。自動運転車と遠隔操縦の乗り物、AI と機械学習のセキュリティ、プライバシー強化技術と運用上のセキュリティ、そして選挙である。

第26章:監視かプライバシーか

第 III 部は政治、管理、保証を扱う。この章は政府による監視と諜報、テロリズムと過剰反応、検閲、フォレンジックと証拠の規則、プライバシーとデータ保護の法(大西洋をはさんだ緊張を含む)、情報公開を扱う。

第27–28章:セキュアなシステム開発、保証と持続可能性

第27章はリスク管理、安全重視システムからの教訓、保護目標の優先順位づけ、ウォーターフォールからアジャイルや DevSecOps に至る開発手法、そしてセキュリティチームの管理を扱う。第28章は評価制度(オレンジブック、FIPS 140、コモンクライテリア、安全認証)、信頼性の指標、セーフティとセキュリティの融合、そして耐久消費財のソフトウェアを数十年にわたって保守するという課題を検討する。

第29章:「コンピュータがノーと言う」の先へ

短い結論で、今後の三つのテーマを挙げる。社会的な複雑さ、長く使われる製品におけるソフトウェアの持続可能性、そして政治である。セキュリティはスカラー量ではなく関係だからである。

主要概念

第1–2章:基礎と脅威

  • ポリシー、メカニズム、保証、インセンティブ:信頼できるシステムのためにそろわなければならない四つの要素。
  • 脅威モデル:敵が誰で、何を望み、どう行動するかを明示的に記述したもの。
  • 悪用しやすさ:システムが人を害するためにどう使われうるかで、使いやすさと並べて考えるべきもの。

第3–5章:人、プロトコル、暗号

  • フィッシングとソーシャルエンジニアリング:利用者を狙った欺瞞で、多くの現実の攻撃の主な経路。
  • セキュリティプロトコル:主体が信頼を築くための手順の列で、リプレイ、反射、中間者攻撃に弱い。
  • 暗号利用モード:ブロック暗号を長いメッセージに使う方法で、その誤用はよくある失敗の原因である。

第6–8章:アクセス制御、分散システム、経済学

  • アクセス制御行列:どの主体がどの対象にどの操作を行えるかを表す抽象で、ACL やケイパビリティとして実装される。
  • ビザンチン障害:故障した構成要素が単に止まるのではなく、任意にふるまったり結託したりする障害。
  • インセンティブのずれ:システムを守る側と、その失敗のコストを負う側が一致しないこと。

第9–12章:ポリシーモデルと応用

  • Bell-LaPadula モデル:機密レベル間で「上への読み取り」と「下への書き込み」を禁じる多段階ポリシー。
  • 差分プライバシー:統計的な出力が個人について明かす情報を制限する形式的な保証。
  • Clark-Wilson モデル:簿記に由来する、整形式のトランザクションと職務の分離に基づく完全性ポリシー。

第13–20章:ハードウェアとシステム工学

  • 耐タンパー性:装置内部の秘密を物理的な探査や操作から守ること。
  • サイドチャネル:意図されたインタフェースではなく、タイミング、電力、放射、共有状態を通じて情報が漏れること。
  • 生体認証の誤り率:認識システムの性能を左右する、他人受入と本人拒否の間のトレードオフ。

第21–25章:ネットワークと新しい分野

  • 公開鍵基盤:認証局と証明書によって鍵と名前を結びつける仕組みで、多くの信頼上の問題を抱える。
  • トラフィック分析:内容が暗号化されていても、通信のパターンから情報を推測すること。
  • 敵対的機械学習:学習システムの汎化や訓練のされ方を突く攻撃。

第26–29章:政策、管理、保証

  • セキュリティ・シアター:人々を安心させるがリスクは減らさない、見せるための対策。
  • 保証と評価:コモンクライテリアのように、システムが主張どおりかを確かめる過程で、利害の対立に左右されやすい。
  • 持続可能性:耐久消費財のソフトウェアを数十年にわたってパッチを当て、安全に保つこと。

批判的分析

長所

  • 際立った幅広さ。 暗号、プロトコル、アクセス制御だけでなく、物理的な錠、封印、紙幣の印刷、核の指揮統制、電子戦、選挙までを扱う。第 II 部の導入は、これらの応用が文脈の中で保護の概念を導入する仕組みを説明しており、同じ失敗のパターンがまったく異なる分野で繰り返されることを学生に示す。
  • 現実の失敗に根ざした事例研究。 各章は記録に残る事件と著者の研究・コンサルティングの経験を軸に組み立てられている。自動車の鍵へのリレー攻撃(第4章)からオンラインバンキングにおけるフィッシングや SIM スワップ詐欺(第12章)まで、原理が実際の失敗の証拠に結びつけられている。
  • 経済学、心理学、政策を中核として扱う。 第3章と第8章はユーザビリティとインセンティブを任意の付け足しではなく基礎の一部とし、第 III 部は監視、法律、管理、保証を扱う。多くの失敗はインセンティブの失敗だという著者の主張が反映されている。
  • 役に立つ章末の仕組み。 ほぼすべての章が、まとめ、研究課題のリスト、注釈付きの参考文献で終わり、学生も研究者も文献に入っていきやすい。

短所

  • 非常に長く、深さにむらがある。 無料の PDF で 1,200 ページを超え、授業で通読することはできない。応用の章の一部は技術的な論述というより概観である。
  • 数学的な暗号の教科書ではない。 第5章は概念と落とし穴を説明するが、証明や演習はほとんどない。形式的な定義や帰着による証明が必要な学生は、暗号専門の本を使う必要がある。
  • 演習がない。 章末にあるのはさらなる研究のための研究課題であり、採点できる演習ではないので、教員が課題を作る必要がある。
  • 主張が強く、時代に縛られている。 著者は政策について明確な見解を持ち、強い個人的な語り口で書いている。また多くの内容(5G、機械学習、選挙)は 2020 年ごろのスナップショットである。

本書で扱う応用

応用は第 II 部の中身そのものである。軍事用の多段階システムとデータダイオード、医療記録システムと絶滅危惧の野生動物データの保護、国勢調査の統計、簿記、銀行間決済、ATM、クレジットカードと EMV カード、オンラインバンキング、防犯警報と錠、プリペイド式電力メーター、タクシーメーター、タコグラフ、外出制限用タグ、核の指揮統制、紙幣の印刷と封印、生体認証システム、スマートカードとハードウェアセキュリティモジュール、ディスク全体の暗号化、Signal、Tor、ブロックチェーン、電話網とモバイルネットワーク、電子戦と DRM、そして第25章の自動運転車、機械学習、選挙が含まれる。

コースにおける位置づけ

このセキュリティと暗号の書籍リストで、Anderson はシステムの視点と事例研究の手法をとる本である。Paar、Pelzl、Güneysu の Understanding Cryptography と Easttom の Computer Security Fundamentals は、一般にそれぞれ暗号アルゴリズムと一般的なセキュリティ概念の入門書とされ、Stallings と Brown の Computer Security: Principles and Practice は演習付きの幅広い教科書とされる。学生は体系的な学習には Stallings と Brown や Easttom を使い、システムが実際になぜ失敗するのかを知るために Anderson を使うとよい。

Katz と Lindell の Introduction to Modern Cryptography と Bishop の Computer Security: Art and Science は形式的な側面、すなわち暗号における証明可能安全性と、形式的なセキュリティポリシーやモデルを扱う。Anderson の第5章と第9章はこれらの話題への直感を与えるので、厳密な証明が必要な学生は本書の後に、あるいは並行して形式面を扱う本を読むとよい。

本書の使い方

著者によれば、第 I 部はコンピュータの基本的な素養以外の技術的な背景を前提とせず、ケンブリッジ大学の 1、2 年生向けの内容におおむね対応している。第6、7、21章はオペレーティングシステムとネットワークについて知っていると理解しやすい。初版の序文が主な読者として挙げているのは、現実のシステムを設計する現役のプログラマやエンジニアである。

授業では第 I 部(第1–8章)が中心で、なかでも第3、4、5、8章が重要である。第 II 部からは授業に合った章を選ぶとよい。第12章(銀行)と第21章(ネットワーク)は一般的なセキュリティの授業に、第18–20章はハードウェアと応用暗号に、第22章はモバイルセキュリティに向く。第 III 部(第26–28章)は政策やセキュアな開発の授業に適している。各章の研究課題は議論やプロジェクトの題材に、参考文献リストはさらに深く学ぶために使える。著者のサイトには本書に基づく講義動画と正誤表へのリンクもある。

版と出典

本ガイドは第3版(Wiley、2020 年)に基づき、著者の公式ページ https://www.cl.cam.ac.uk/~rja14/book.html で公開されている全章を収めた無料の PDF(ファイル SEv3.pdf)を読んで作成した。三つの版の序文、目次、第 I・II・III 部の導入、そして全 29 章の各章の導入、すべての節見出し、章末のまとめを参照し、第1章の枠組みの節と第29章は全文を読んでいる。