# 情報フロー制御 ## 定義 情報フロー制御(information flow control)とは、未信頼のプログラムをある区画(compartment)に閉じ込め(confinement)、他の区画へ情報が漏れないことを、読み書きの規則によって強制する**非裁量アクセス制御**の一種である。*Principles of Computer System Design* 第11章は、第三者から入手した未監査プログラム(Webブラウザ拡張機能など)にデータへのアクセスを与えざるを得ない状況を動機として導入する。作成者に権限者(authority)の裁量を与える裁量アクセス制御と異なり、区画外への裁量的な共有を根本から不可能にする。(Source: [[@2009__MITOCW__Principles of Computer System Design - Chapter 11 Information Security]] ch.11 §11.6.5) ![[_attachments/principles-of-computer-system-design-part-ii/ch11-fig11.7.png]] (図11.7. 未信頼プログラムを区画(compartment)に閉じ込める構図。ガードがプリンシパルとオブジェクトの間を仲介する。Source: ch.11 §11.6.5) 具体例として、財務(financial)と製品(product)の2区画に情報を分けた会社が挙げられる。各スレッドは自身が読んだことのある区画ラベルの集合(`Tmaxlabels`)を記録し、以下の2規則で運用する。**読み取り規則(no read up)**: オブジェクトのラベル集合が `Tmaxlabels` の部分集合である場合のみ読み取りを許可し、読み取り後は `Tlabelsseen` を更新する。**書き込み規則(no write down)**: スレッドが読んだ区画ラベルの集合が書き込み先オブジェクトのラベル集合の部分集合である場合のみ書き込みを許可する。これにより、複数区画を読んだスレッドが一部の区画にしか属さないオブジェクトへ情報を漏らすことを防ぐ。区画間で情報を移す(格下げ、declassification)には、プログラムではなく人間による判断が必要だとされる。この規則群は米国国家安全保障局(NSA)や国防総省のOrange Book(Department of Defense Trusted Computer System Evaluation Criteria)が要求する水準の基盤となる。(Source: [[@2009__MITOCW__Principles of Computer System Design - Chapter 11 Information Security]] ch.11 §11.6.5.1) 情報フロー制御による完全な閉じ込めは、共有資源を持つシステムでは原理的に困難であり、この限界を示すのが**隠れチャネル(covert channel)**である。共有資源を持つ計算機システムには必ず隠れチャネルが存在し、2つのスレッドが「壁を叩く」ような、明示的な共有オブジェクトへの書き込みより微妙な手段でビットを伝達しうる。隠れチャネルを発見すること自体が難しく、遮断する一般的な解法は存在しないと本章は明言する。(Source: [[@2009__MITOCW__Principles of Computer System Design - Chapter 11 Information Security]] ch.11 §11.6.5.2) ## 横断的知見 (本ページは本章のみを出典とする初出概念である。まだ複数ソースを突き合わせた横断的知見は蓄積されていない。) ## 未解決の問い - 情報フロー制御の"no read up / no write down"規則は静的な区画分類を前提とするが、実行時に動的に区画が変化する(例: マルチテナントクラウド環境でのラベル継承)場合の拡張については本章に記載がない。 - 隠れチャネルには「遮断する一般解はない」と本章は明言するが、タイミング隠れチャネル・電力解析など、本章執筆(2009年)以降に重要性が増した攻撃手法との関係は当然ながら扱われていない。他ソースとの突き合わせが必要。 - 情報フロー制御と [[認可モデル]] のケアテイカーモデルはどちらも「単純ガードモデルを超える」枠組みだが、両者を併用する実装(例えば非裁量ラベル付きオブジェクトに対する任意メソッドの制約)が可能かどうかは本章で明示的に論じられていない。 ## 関連 - ソース: [[@2009__MITOCW__Principles of Computer System Design - Chapter 11 Information Security]](§11.6.5, §11.6.5.1, §11.6.5.2) - 概念: [[認可モデル]](単純ガードモデルとの対比) / [[セキュリティ設計原則]](separate mechanism from policyの実践例) ## 出典 - Jerome H. Saltzer and M. Frans Kaashoek, *Principles of Computer System Design: An Introduction*, Version 5.0, 2009, Chapter 11 §11.6.5. MIT OpenCourseWare, CC BY-NC-SA 3.0 US.