要約

  • RFC 1036は、指定されたMessage-IDの記事がローカルにある場合にcancelを実行し、取り消せなければ要求を隣接ホストへ転送しないよう求めた。
  • 制御メッセージ自体は通常の記事と同じニュースグループの仕組みで配布される一方、送信者は著者またはローカルのニュース管理者に限られ、ヘッダー照合が必要だった。
  • これはホスト単位の仕様であり、記事が全サーバー、アーカイブ、読者の手元から消えたことを示す記録ではない。

cancelは全ネットワークへの削除命令ではなかった

Usenetの記事は一か所だけに置かれていたわけではない。複数のホストがそれぞれ記事を受け取り、保存し、管理していた。だからRFC 1036のcancelは、まず到着先のシステムに問いかける。指定されたMessage-IDの記事を、ここで見つけられるか。

1987年12月のRFC 1036は、cancelとMessage-IDを組み合わせた制御メッセージを記述する。該当記事がローカルシステムに存在すれば、そのシステムで取り消す。依頼どおりの取り消しができない場合は、隣接するシステムへ要求を転送しない。要求がどこから来たかではなく、このホストが手元のコピーに対して動けるかどうかが停止点になる。

この短い条件は、配送と権限を分けている。メッセージがネットワークを進むことは、あらゆる場所で削除する権限があることを意味しない。あるホストは、自分が持たない記事の存在や状態を確定できない。RFC 1036はその外側へ命令を拡張する仕組みを定めていない。

制御メッセージはニュースの配送に乗った

Controlヘッダーのある記事は、ユーザーが読む通常の本文ではなく、Usenetホスト間の制御に使われる。RFC 1036によれば、これらも一般の記事と同じニュースグループ配送方式で配布される。実装者や管理者は自動処理とキュー処理を選べるが、手作業で扱う場合は速やかに対応する。失敗した制御メッセージは発信者ではなく、ローカルのusenetアカウントに送る。

つまり、伝達路は共有されても実行結果は各ホストに残る。プログラムはMessage-IDをローカルの記事と照合し、送信者の条件を確認する。受信した制御メッセージの一覧をネットワーク全体の削除台帳として扱う仕組みではない。

誰が送れるかはヘッダーで照合した

RFC 1036がcancelを認めるのは記事の著者かローカルのニュース管理者である。送信者の確認にはSender欄を使い、ない場合はFrom欄を使う。cancelの確認済み送信者は、元記事のSenderまたはFromのいずれかと一致しなければならない。元記事のFromが未確認でも、cancel側の確認済み送信者と一致することは許される。

RFC 822は、著者とは異なる投稿者をSenderで示す役割を説明する。RFC 1036はその欄をcancelの照合に使う。ただしこれはヘッダー値の比較であり、電子署名でも、現在のアカウント認証でもない。仕様が示すのは比較方法であって、記載されたアドレスの偽造不能性や各サイトの実装実績ではない。

RFC 850から追加された停止条件

RFC 1036はNewsプログラムB2.11に合わせてRFC 850を更新・置換した。1983年のRFC 850にも、ローカルにある記事を著者またはローカルのスーパーユーザーが取り消せるという規定があった。1987年版では「ローカルのニュース管理者」という役割が示され、さらに失敗時の条件が明記された。取り消せないホストは要求を先へ送らない。

これは仕様書の変化であり、すべてのUsenetホストがいつ更新されたかを示すものではない。RFC 1036自身、Internet標準を定める文書ではないと明記している。伝送に用いる機器やソフトウェア、記事のバッチ化には各ホストの選択余地が残された。書かれたルールと実際の普及を混同してはいけない。

ローカルの結果から全コピーは分からない

あるサーバーが記事を持っていて、条件を満たす要求を処理することはあり得る。別のサーバーは記事を見つけられず、要求を止めるかもしれない。さらに別の保存先やアーカイブにコピーが残る可能性もある。仕様はローカル処理の境界を定めるが、記事、検索結果、引用、既読の記憶まで消えるとは述べていない。

失敗後の転送を止めることは、ローカルで実行できない命令をむやみに広げないためだと読める。ただしこれは編集上の推論で、RFCが動機として説明したことではない。狭いルールを全域的な削除や検閲の物語に変えないためにも、本文の記述と現在の解釈を分けておきたい。

出典と限界

根拠は RFC 1036 のControlおよびCancel節、前身の RFC 850、Sender欄を扱う RFC 822 である。仕様の内容は確認できるが、採用率、各ホストの実挙動、実際の伝搬時間、暗号学的な認証、全域からの消去は確認できない。