要約
- RFC 5421は、EAP-GTCに割り当て済みのType 6をEAP-FAST-GTCが使い、トンネル内で別形式の交換を行うことを記録している。
- 内外の相互禁止とIESGの互換性警告から、EAP-FASTの文脈も方式の識別に関わると読める。これは実装上の含意であり、実測された障害の証拠ではない。
Typeの一バイトだけでは足りない
EAPのTypeフィールドは1オクテットだが、その値が後続処理を振り分ける。RFC 3748はTypeが方式を示し、EAP層がその値に基づいて対応する方式へパケットを渡すと説明する。その役割はトランスポート層のポート番号にもたとえられている。Type 6を見ればGeneric Token Card、と読むのが自然だ。
しかしRFC 5421は、その読み方にトンネルという条件を加える。2009年のInformationalメモが記録するEAP-FAST-GTCは、基本的なパスワード交換のための内部方式だ。旧式のパスワードデータベース、パスワード変更、ワンタイムパスワードなどが想定されている。歴史的事情から、EAP-GTCに割り当てられていたコードを再利用した。IANAの現行レジストリでもType 6の名称は「Generic Token Card」のままで、RFC 5421が別のグローバル割当を作ったわけではない。
違いはパケットの枠と形式にある。EAP-FASTはTLSトンネルを確立し、その内側のフェーズではEAPパケットをEAP Payload TLVに入れる。RFC 5421によれば、EAP-FAST-GTCのペイロード形式はトンネル固有で、外側で使う通常のEAP-GTCと必ずしも互換ではない。そこで「EAP-FAST-GTCをEAP-FASTトンネル外で使わない」「EAP-GTCをその内側で使わない」という対になる規則が置かれた。
この規則は、同じType 6が各場面で何を意味するかも定める。ディスパッチャーがTypeの値だけを残し、パケットが外側の交換から来たのか、EAP-FASTの内側から来たのかを失えば、方式を分けるために仕様が使う情報まで捨ててしまう。これは文書から導かれる実装上の含意であって、現行システムにその誤りがあるという主張ではない。
互換性の注意は明記された
RFC 5421のIESG Noteは、割当済みEAP Type Codeの再利用はRFC 3748の方式交渉と互換性がないと述べる。EAP-GTCには方式固有のバージョン交渉がないため、トンネル内ではType 6をEAP-FAST-GTCとみなすことになる。別ベンダーのEAP-GTCも扱う実装では問題となり得るうえ、同じコードをトンネル内外で動かすと特別扱いが必要になる。今日設計するなら一意のType Codeを使えば避けられる難しさであり、将来はトンネル内メソッドで割当済みTypeに別の意味を持たせるべきでない、とNoteは勧告する。
これは「すべての交渉が失敗する」「Type 6が失効した」「特定の現行製品が欠陥を持つ」という結論ではない。文書が示すのは、文脈に依存する意味を与えたことによる互換性コストだ。レジストリはグローバルな名称を記録し、トンネル規則が内側の利用範囲を定め、IESG Noteが両者の緊張を説明している。
ここでは「動いているコードを重視する」という視点が役立つ。登録簿の一行だけではシステムの動作は決まらず、パケットを受けたコードが層を識別し方式を選ぶ。Heng LuのNote 65はそのための編集上の視点であり、EAPの要件やベンダーの実装状況を証明する資料ではない。
認証情報の保護は別の境界
RFC 5421は、EAP-FAST-GTCがパスワード情報を平文文字列として送る一方、TLSの暗号化トンネル内に置くことも説明する。相手は認証情報を渡す前にサーバーを認証しなければならず、サーバー認証を行わないServer-Unauthenticated Provisioning ModeではEAP-FAST-GTCを使ってはならない。この安全要件は重要だが、Type Codeの問題とは別である。通信路を保護しても方式選択は自動で解決せず、正しい方式を選んでもサーバー認証を証明したことにはならない。
運用レビューでは、どこでType 6を通常のEAP-GTCとEAP-FAST-GTCに分けるのかを確認したい。Typeだけでなくトンネルフェーズを使い、内外の禁止規則を実施する必要がある。通常のGTCを外側で、FAST-GTCを内側で試し、逆の組み合わせを拒否できるかをテストするのは有効な検証案だが、RFCが追加した要件ではない。
RFC 5421はInformationalである。公開資料だけでは現在の普及率、ベンダーの挙動、障害の有無までは分からない。読み取れる教訓は限定的だ。トンネル内でメソッドコードを再利用するなら、そのパケットを包む枠はディスパッチャーが保持すべき実行時文脈になる。
参照資料
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
