メインコンテンツまでスキップ

20. DHCP メッセージの認証

この節では, メッセージ交換, リレー動作, DUID, IA_NA, IA_TA, IA_PD, DHCP オプション, RKAP 認証, IANA レジストリ, 規範的要件, 付録のオプション出現マトリクスを含む DHCPv6 に関する RFC 本文を保持する.

RFC 原文

20.  DHCP メッセージの認証

この文書は, DHCP メッセージの認証のために 2 つのセキュリティ機構を
定義する: (1) IPsec を使用してサーバと relay agent の間で送信される
メッセージの認証 (および暗号化), (2) 悪意ある DHCP サーバが送信した
Reconfigure メッセージによって引き起こされるクライアントの
誤設定に対する保護.

20.1. サーバと relay agent の間で送信されるメッセージのセキュリティ

メッセージを交換する relay agent とサーバは, [RFC8213] に詳述される
ように IPsec を使用できる.

20.2. DHCP 認証の概要

DHCP メッセージの認証は Authentication option (Section 21.11 を参照)
の使用によって実現される. Authentication option で運ばれる認証情報は,
DHCP メッセージの送信元を信頼できる形で識別し, DHCP メッセージの内容が
改ざんされていないことを確認するために使用できる.

Authentication option は複数の認証プロトコルのための framework を
提供する. そのようなプロトコルの 1 つである RKAP は Section 20.4 で
定義される. 将来定義される他のプロトコルは, 別個の文書で規定される.

いかなる DHCP メッセージも, 複数の Authentication option を含んでは
MUST NOT ならない.

Authentication option 内の protocol フィールドは, その option で運ばれる
認証情報を生成するために使用された具体的なプロトコルを識別する.
algorithm フィールドは, 認証プロトコル内の具体的なアルゴリズムを
識別する. 例えば, algorithm フィールドは Authentication option 内の
Message Authentication Code (MAC) を生成するために使用されるハッシュ
アルゴリズムを指定する. RDM フィールドは, replay detection フィールド
で使用される replay detection の種類を指定する.

20.3. Replay Detection

Authentication option の RDM フィールド (Section 21.11 を参照) は,
replay detection フィールドで使用される replay detection の種類を
決定する.

RDM フィールドが 0x00 を含む場合, replay detection フィールドは,
厳密に単調増加する 64-bit unsigned integer (modulo 2^64) の値に MUST
設定される. この技術を使用すると replay attack の危険を低減できる.
この方法はすべての Authentication option プロトコルで MUST サポート
される. 1 つの選択肢は 64-bit NTP timestamp format [RFC5905]) を
使用することである.

RDM フィールドが 0x00 に設定されたメッセージを受信したクライアントは,
その replay detection フィールドを, 同じサーバが以前に送信した値
(Server Identifier option に基づく; Section 21.3 を参照) と MUST
比較し, 受信値がより大きい場合にのみメッセージを受け入れ, これを
新しい値として記録する. クライアントがサーバから送信された
Authentication option を初めて処理する場合, クライアントは replay
detection 値を MUST 記録し, replay detection check をスキップする.

reconfigure mechanism をサポートするサーバは, replay detection 値が
再起動間で保持されることを MUST 確保する. これを行わないと,
クライアントがサーバから送信された Reconfigure メッセージを拒否し,
reconfigure mechanism が実質的に無用になる可能性がある.

20.4. Reconfiguration Key Authentication Protocol (RKAP)

RKAP は, 悪意ある DHCP サーバが送信した Reconfigure メッセージに
よって引き起こされるクライアントの誤設定に対する保護を提供する.
このプロトコルでは, DHCP サーバは DHCP メッセージの初期交換で
reconfigure key をクライアントに送信する. クライアントは, その
サーバからの後続の Reconfigure メッセージを認証するために使用する
reconfigure key を記録する. その後, サーバは後続の Reconfigure
メッセージに, reconfigure key から計算された Hashed Message
Authentication Code (HMAC) を含める.

サーバからクライアントへ送信される reconfigure key と, 後続の
Reconfigure メッセージ内の HMAC はどちらも, Authentication option
(Section 21.11 を参照) 内の認証情報として運ばれる. 認証情報の形式は
次の節で定義される.

RKAP は, クライアントとサーバが Reconfigure メッセージの使用を交渉
している場合にのみ (サーバにより開始されて) 使用される.

20.4.1. RKAP における Authentication option の使用

RKAP では, Authentication option (Section 21.11 を参照) 内に次の
フィールドが設定される:

* protocol: 3

* algorithm: 1

* RDM: 0

The format of the authentication information for RKAP is:

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Value (128 bits) |
+-+-+-+-+-+-+-+-+ |
. .
. .
. +-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

図 11: RKAP 認証情報

Type: この option で運ばれる Value フィールド内のデータの種類:

1 Reconfigure key value (Reply メッセージで使用).

2 メッセージの HMAC-MD5 digest (Reconfigure メッセージで使用).

1-octet フィールド.

Value: Type フィールドで定義されるデータ. 16-octet フィールド.

20.4.2. RKAP に関するサーバの考慮事項

サーバは, Request/Reply, Solicit/Reply, または
Information-request/Reply メッセージ交換中に, クライアント用の
reconfigure key を選択する. サーバは reconfigure key を記録し, Reply
メッセージ内の Authentication option (Section 21.11 を参照) でその key
をクライアントへ送信する.

reconfigure key は 128 bits 長であり, 容易に予測できない暗号学的に強い
random または pseudorandom number で MUST ある.

Reconfigure メッセージの認証を提供するため, サーバはサーバが選択した
RDM に従って replay detection 値を選択し, クライアント用の
reconfigure key を使用して Reconfigure メッセージの HMAC-MD5 を計算
する. サーバは, Authentication option を含む DHCP Reconfigure
メッセージ全体に対して HMAC-MD5 を計算する. Authentication option 内の
HMAC-MD5 フィールドは, HMAC-MD5 計算のために 0 に設定される. サーバは,
クライアントへ送信される Reconfigure メッセージに含まれる
Authentication option の authentication information フィールドに
HMAC-MD5 を含める.

20.4.3. RKAP に関するクライアントの考慮事項

クライアントは, サーバからの初期 Reply メッセージ内の Authentication
option (Section 21.11 を参照) で reconfigure key を受信する.
クライアントは, 後続の Reconfigure メッセージを認証するために使用する
reconfigure key を記録する.

Reconfigure メッセージを認証するため, クライアントはサーバから受信した
reconfigure key を使用し, HMAC-MD5 フィールドをゼロで置き換えて,
Reconfigure メッセージ全体に対する HMAC-MD5 を計算する. この計算された
HMAC-MD5 が Authentication option 内の値と一致する場合, クライアントは
Reconfigure メッセージを受け入れる.