要約

  • RFC 791のタイプ130は、Security、Compartments、Handling Restrictions、TCCを持つ固定11オクテットだったが、後継仕様は番号を残したまま形式を置き換えた。
  • RFC 1108のBasic Security Optionでは、分類値と保護機関フラグをインターフェースの許容範囲と照合し、環境によって明示ラベルと暗黙ラベルを使い分けた。
  • RFC 1108がHistoricとなり、公開インターネットでは通常見えないはずの機能になっても、閉域MLS網では削除が誤分類を招くため、汎用機器の既定動作は除去や破棄ではなかった。

消すことがデータの意味を変える

RFC 7126 が示す最も重要な故障は、ラベル付きパケットへの攻撃ではなく、途中装置によるラベル除去である。Basic Security Optionが取り去られると、受信側は正しくラベル付けされていないとしてパケットを捨てる可能性が高い。場合によっては受け入れながら、誤った感度を関連付ける。

誤りは一方向ではない。必要以上に高い感度を付けるupgradeは利用を妨げ、高位システムへ不要なデータを混入させる。低い感度を付けるdowngradeは、許されない領域へ情報を露出し得る。「Security」という語を消した装置は脅威を無害化したのではなく、受信ポリシーの入力を無断で交換したことになる。

タイプ130は暗号ではない。ペイロードを秘匿せず、送信者を認証せず、clearanceの証明にもならない。信頼された端点、中継、設定、保護された環境が揃って初めて、強制アクセス制御のラベルとして作用する。

最初の形式は四つの統制軸を持った

RFC 791 はSecurityをタイプ130、固定長11オクテットとして定義した。タイプと長さの後に、16ビットSecurity、16ビットCompartments、16ビットHandling Restrictions、24ビットTransmission Control Codeが並ぶ。

Securityは命名された等級を選ぶ。Compartmentsは非階層の区分、Handling Restrictionsは取扱いと開示の標識、TCCは統制された関心共同体を表した。単一の「秘密度」だけでなく、外部の情報統制制度をヘッダーへ運ぼうとした形式だった。

コピー・ビットは1で、フラグメントごとにラベルが複写される。一つのデータグラムには最大一回しか現れない。IP層の分割によって、一部だけラベルを失わないためである。

RFC 791はオプション一般について、各パケットに送るかは任意でも、IPモジュールによる実装は任意ではないとした。環境によっては全データグラムにSecurity Optionを要求し得るとも述べた。世界共通形式が、局所制度にだけ必要な強い規則を受け止めていた。

ただし複写は真実性を保証しない。ラベルには暗号学的完全性も発行者証明もなく、外部の信頼が不可欠だった。

番号は同じでも本文は別物になった

1988年のRFC 1038 はタイプ130を可変長Basic Security Optionへ改訂した。固定のCompartments、Handling、TCCはなくなり、classification levelとprotection-authority flagsが中心になった。

同じタイプ値は、同じペイロード形式を意味しない。130という一バイトだけを見て後続をRFC 791どおりに読むことはできず、長さと支配仕様が必要である。登録値の連続性は互換性の証明ではない。

RFC 1038は、信頼された構成要素がラベルを使って送信適否を検証し、経路と宛先の保護水準を確保し、セキュリティモデルに共通ラベルを供給する構想を示した。その成立にはラベル対応ルーティングと認定済み機器が必要で、ヘッダーだけでは実現しない。

RFC 1108 はRFC 1038を廃止し、DoD Basic/Extended Security Optionsを定義した。Basicはなおタイプ130だが、Protection Authority欄を省略する場合の最小長は3オクテットとなった。

分類コードは数の大小を拒んだ

RFC 1108のClassification Levelは一オクテットである。Top Secret、Secret、Confidential、Unclassifiedに割り当てられたビット列は疎らで、別の列はreservedだった。

順序は表が定義し、数値の大小は定義しない。既知コードへの一致はビット比較でよいが、整数の範囲比較で「Confidential以上Secret以下」と判定すると、未割当や無効値まで範囲に入る。

有効コード間には最小4のハミング距離が設けられた。少数ビットの反転が別の合法等級へ直接化けにくい。しかしこれは検出距離であって暗号でも認証でもない。悪意ある送信者は構造上有効なコードを書ける。

政策順序を数値順序から切り離した設計は、ラベルが単なる整数でなく、管理された語彙であることを示す。

保護機関フラグは資格証ではない

分類値の後には可変長Protection Authority欄が続く。各オクテットの先頭7ビットがフラグで、末尾ビットは継続の有無を示す。複数機関の規則が一つのデータグラムへ同時に適用でき、最小適合実装でも少なくとも2オクテットを処理できなければならなかった。

フラグは情報保護規則を持つプログラムを指す。RFC 1108は、似て見えてもaccreditation authoritiesではないと明記する。ホストを認証せず、利用者へclearanceを発行しない。

末尾に全ゼロの継続オクテットを付けない最小表現が必要で、継続ビットが示す長さとオプション長も一致しなければならない。壊れた拡張は未知バッジの列ではなく、プロトコル・エラーだった。

割当を誰かが審査・公開するという事実も重要である。パケットは管理名前空間の選択を運ぶだけで、規則を創設しない。

インターフェースが等級境界になる

RFC 1108はシステム全体とper-portのパラメータを定めた。このportはTCP/UDP番号ではなく、ネットワーク接続面を意味する。送信時、受信時、または双方でBSO必須を設定できる。

機密データを扱うシステムは原則として明示ラベルを生成する。例外はdedicatedまたはsystem-highネットワークで、各パケットではなく入口インターフェースから暗黙ラベルを得られる。ラベルなしを許すポートでは、PORT-IMPLICIT-LABELが欠けた文脈を補う。

だから削除は中立化ではない。同じ無ラベル・パケットが、ある入口ではUnclassified、別の入口では保護等級付きと解釈される。明示値を消すと、別のラベル源が作動する。

入力処理は分類コードの正当性、ポート上限、許可された機関フラグを順に確認する。出力では、ラベルがポートの最小・最大等級内にあり、機関集合も出力許可内でなければならない。パケットが値を提示し、インターフェースが範囲を与える。

エラー応答も統制対象だった

BSO必須の入口に無ラベル・パケットが来ると、RFC 1108はICMP Parameter Problem Code 1で必須オプション欠落を伝える。壊れたラベルは通常のParameter Problem、範囲外はCommunication Administratively Prohibitedを使い得る。

ただし、これは許される中で最も制限の弱い動作である。局所政策は記録、保安担当者への通知、または応答禁止を選べた。返答を出すインターフェースの等級も判断に影響する。

全てのIPv4必須オプションへ一般化できる話ではない。既存のICMP記事は欠落を表す文法を扱った。本稿では、ラベルが実際の入場制御に組み込まれていた証拠としてのみ扱う。

旧形式を退け、改訂版を残す

RFC 1122 はRFC 791とRFC 1038のSecurity Optionをobsoleteとし、DoD用途をRFC 1108系の指針へ導いた。ラベルを必要とする全環境の消滅までは宣言していない。

RFC 1812 はルーター要件を分けた。旧形式はobsoleteだが、ルーターはRFC 1108の改訂オプションを実装すべきとした。複数等級ネットワーク用ルーターはIPSOラベルでフィルタできるべきだった。

各インターフェースには感度の下限と上限を設定する。範囲外ラベルは黙って捨て、カウンターで数える。これは経路指定ではなく、その境界で許容される等級かを検査する仕組みである。

一つの標準状態では全経緯を表せない。初期形式がobsoleteとなり、後継は条件付き能力として残り、そのRFCがHistoricになっても局所需要は続いた。

Historicはゼロ利用の測定ではない

RFC 7126は、IPSOパケットが公開インターネットで通常見えるべきではないとする。同時に、閉じたmulti-level-secureネットワークでは市販・オープンソース機器上でBasic/Extended Security Optionsが使われると記す。IESGがStandards Trackから外した時より、MLSとIPSOの配備が増えた可能性さえ述べる。

機能が公開標準の主流から退き、専門閉域で成長することは両立する。HistoricはRFCの標準上の位置であって、パケット数ゼロの統計でも登録削除でもない。

同じ製品が公開網とMLS網のどちらにも置かれる。製造時点の装置はtype 130が不要な異物か必須ラベルかを先験的に知らない。最終判断は配置を知る管理者へ残す必要がある。

保存する既定値は信頼する既定値ではない

RFC 7126の論理は条件付きである。必要環境では削除・破棄が明確な運用障害を生む一方、不要環境で単に保持しても、その存在だけで特定の新しい脅威は生じない。したがって既定設定は、BSOを変更・除去せず、存在だけを理由にパケットを落とさない。

IPSOを使わないと分かっている環境ではdropを設定できる。装置はインターフェース単位の件数記録、存在または値によるフィルタも支えるべきである。公開網がラベルを解釈せよという命令ではなく、汎用装置が配置政策より先に意味を破壊するなという規則だ。

そのまま通す中継がラベルを信用する必要もない。保存と権威承認は別である。

TCPは条件付き実装注記へ移した

現行TCP仕様のRFC 9293 は古い継承を記録する。初期TCPはIP security/compartmentを接続処理へ含めた。2022年にはRFC 1108がHistoricでも、RFC 791自体はSecurity Optionを削る更新を受けていなかった。

残る説明は実装注記に置かれた。MLS実装ではsecurity/compartmentが関連し得るが、非MLS実装は無視できる。この条件分岐こそ、二つの環境へ一律動作を強要しない現実的な境界である。

不一致でTCP接続をresetする旧ロジックは、攻撃面になり得るとも記された。十分な信頼モデルのラベルは入場制御を助けるが、古い層間規則を機械的に適用すれば中断手段にもなる。

タイプ130から証明できる範囲

キャプチャのtype 130は、歴史的にラベルへ割り当てられた場所にバイトがあると示す。長さと形式から、どの仕様に従うよう見えるかを推定できる。RFC 1108の有効分類コードと整ったauthority欄は構造適合を示す。

送信者のclearance、ラベルの真実、暗号化、経路保護、次の境界での受諾までは証明しない。そこには安全な割当、信頼機器、インターフェース範囲と実ネットワークの証拠が必要である。

一方、ラベル不在もUnclassifiedの証明ではない。暗黙ラベルを設定した入口は、欠落へ局所等級を与える。インターフェース設定を失ったキャプチャから、完全な安全判断は復元できない。

タイプ130の教訓は、全IPパケットにsecurityを付けることではない。メタデータの除去も意味を変える操作だということだ。強制アクセス制御に使われるフィールドは、受信環境を知らずに消す方が、理解しないまま保存するより危険になり得る。

情報源と証拠の限界

閉じた証拠集合は RFC 791RFC 1038RFC 1108RFC 1122RFC 1812RFC 7126RFC 9293 である。形式変化、処理モデル、標準史、条件付きフィルタ助言は確認できる。機密配備、現在の通信量、製品適合率、観測パケットのラベル真偽は確認できない。