要約

  • RFC 3514 は 2003 年4月1日付の Informational、Independent Stream の風刺文書であり、Internet Standard でも実運用された防御策の証拠でもない。
  • Evil Bit は送信者自身にファイアウォールの判定材料を書かせる。偽のゼロは攻撃を通し、偽の1は正常通信へのサービス拒否を生む。

RFC 3514 を単なる小話として片づけるのは簡単だ。「悪いパケットは evil bit を立てなければならない」。しかし文書は一行で終わらない。断片化、中継、NAT、透過プロキシ、侵入検知、ファイアウォール、誤判定まで、ひとつの自己申告をネットワーク全体が信じたらどうなるかを仕様書の文体で追いかける。笑いの対象はビットではなく、検証されていない申告に執行権を渡す制度である。

まず出版上の身元を確定しなければならない。Steven M. Bellovin による “The Security Flag in the IPv4 Header” は 2003 年4月1日付である。区分は Informational で、本文は Internet standard を一切定めないと明記する。Datatracker は Independent Stream と記録している。RFC Editor の subject registry は humor を、April 1 シリーズや詩、パロディーなどの気まぐれな文書と説明する。RFC 2555 も RFC シリーズに詩とユーモア、とりわけ4月1日の伝統があることを記録した。

この確認が必要なのは、本文が RFC 2119 の MUST や SHOULD を巧みに使うからだ。大文字の要件語は攻撃者が合意した義務の証拠ではない。標準化文書の強い声で、敵対者に不利益な真実を自発的に申告させる。その落差自体が風刺になっている。

仕組みは IPv4 の Fragment Offset フィールド最上位ビットを security flag にする。ゼロなら悪意なしとされ、ホストやネットワーク要素はパケットを無害とみなし、防御措置を取らない。一なら悪意ありで、安全なシステムは防御する。ビット値は確かに観測できる。だが観測できることと、その意味が正しいことは別である。

決定的なのは、攻撃プログラムが自らビットを立てる MUST である。評価される主体が評価結果を入力し、防御側がその値を採用する。キャプチャーにゼロがあった事実は保存できても、送信者が正直だったこと、途中で改変されなかったこと、その後の処理が無害だったことまでは証明できない。

文書は矛盾を多様な場面へ運ぶ。手作りパケットも自分を告発しなければならない。攻撃接続を洗浄する中継には意図の印を付けることが期待される。ポートスキャンは研究目的と攻撃目的を区別する。さらにファイアウォールの内側には攻撃者がいないという「公理」により、内部ホストはビットを立ててはならない。現実にはどれも帰属と文脈の問題だが、二値の告白へ置き換えられている。

断片化の規則は観測地点の差を示す。単体で危険な fragment にはビットが必要だ。一方、悪意あるパケットを中間ルーターが分割し、個々の断片が単独では危険でないなら、断片ではビットを消し、再構成後に戻す。同じ通信でも途中ではゼロ、終端では一になり得る。どこで見たか、誰が変換したか、何を分類単位としたかがなければ、値の来歴は完成しない。

NAT と透過プロキシは書き手を増やす。RFC 3022 の traditional NAT はパケットを変更する。RFC 3514 はその事実を利用し、NAT が悪意を判断して印を変えるという役目を与える。内容を見つけたプロキシにも設定責任が生じる。送信者の意図を示すはずの欄が、中間装置の可視範囲、分類器、方針を表す欄へ変わってしまう。

ファイアウォールには、ビットが一なら必ず捨て、ゼロなら捨ててはならないという規則が与えられる。忠実に従えば、合理的な攻撃者はゼロを選ぶだけだ。第三者が正常な通信を一にできれば、規則そのものがサービス拒否になる。別のテレメトリーを調べるなら、判断を支えるのはその独立証拠であり、evil bit は判決ではなく一つの特徴量に戻る。

侵入検知システムには、false positive と false negative を確率的に補正する余地が用意される。ここで、ビットが不要にするはずだった難問がすべて戻る。モデル、信頼度、しきい値、観測窓、誤りの非対称な費用である。IDS が申告は誤りだと判断できる時点で、自己申告だけでは安全性を決められない。

セキュリティ装置ではないルーターはビットを無視する。この区別は重要だ。転送、観測、帰属、認可、執行、結果確認は同じ行為ではない。同じ箱で実装されても、一つのログがすべての事実を証明するわけではない。

Security Considerations は失敗を明記する。仕組みが正しく働くかどうかはビットが正しく設定されることに決定的に依存する。悪いパケットの偽ゼロはファイアウォールを無力化し、正常パケットの偽1は denial of service を起こす。独立した ground truth がないため、未検証の主張がそのまま実行命令になる。

Errata は出版後の編集記録である。ある verifier note は報告が4月1日になされるべきだったと冗談を添える。訂正はジャンルを裏づけても、標準化、実装、普及を裏づけない。

2026 年9月の draft-traviss-evil-byte-00 は、送信者による自己申告が失敗したとして、信頼された中間者が書く8ビット評価へ風刺を拡張した。Datatracker が示す通り、これは期限があり、更新・置換され得る Internet-Draft、すなわち work in progress である。「24年の運用経験」という語りも測定報告ではなく作品の一部だ。現在の配備を示す証拠には使えない。

残る教訓は、ラベルと対象を分けることだ。ビットは特定の観測点でその値だったことを示す。意図を判断するには、誰が作成・変更したかという来歴、完全性、独立した振る舞い観測、適用方針、執行記録、結果が必要になる。下位の証拠が上位の事実を自動的に証明することはない。

Heng Lu の reality layers で言えば、evil bit は symbolic reality にある。意図、許可、被害は operational reality と physical reality にある。最小仕様は誠実な参加者を協調させられるが、敵対者に真実を強制することはできない。パケットは無害だと名乗れる。ファイアウォールには、なお別の証拠が必要だった。

Sources