CHAP フレームは、リンク確立フェーズ時に構成オプションの 1 つとしてチャレンジハンドシェーク認証プロトコル (CHAP) による同位認証が要求された場合に、同位認証フェーズ時に交換されます。図 A-6 に、通常の CHAP フレームの形式を示します。
アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。
制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。
プロトコル識別子は、フレームの情報フィールドにある情報の種類を識別します。CHAP フレームの場合は、必ず 0xc223 に設定します。
コードフィールドは以下のコードによって CHAP フレームの種類を識別します。長さは 1 オクテットです。
0x01 Challenge 0x02 Response 0x03 Success 0x04 Failure |
識別子フィールドには、要求と応答の照合に使用する識別子があります。長さは 1 オクテットです。
長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される CHAP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないでください。
長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。認証ネゴシエーションに関する情報を、コードフィールドに示されている形式で格納します。
CHAP Challenge フレーム (コード 0x01) は、認証ネゴシエーションを開始するために使用され、認証側によって送信されます。このフレームには、CHAP 名、および単方向ハッシュアルゴリズムによって CHAP シークレットをもとに算出されたチャレンジ値があります。10 個を超える CHAP Challenge フレームを送信しても Response フレームを受信しなかった場合は、認証フェーズが失敗します。
CHAP Response フレーム (コード 0x02) は、認識する CHAP Challenge フレームを受信したときに送信されます。このフレームには、CHAP シークレット、受信したチャレンジ値、単方向ハッシュアルゴリズムを使用して算出された応答値があります。
図 A-7 に、CHAP Challenge フレームと Response フレームの形式を示します。
CHAP 名は、ファイル ppp.conf の send_chap_name パラメータによって指定される文字列で、長さは 1 オクテット以上です。
CHAP Success フレーム (コード 0x03) は、受信可能な CHAP 名と応答値を持つ認識可能な CHAP Response フレームを受信した認証側によって送信されます。
CHAP Failure フレーム (コード 0x04) は、認識できない CHAP response フレームを受信したとき、または受信できない PAP 識別子や PAP パスワードを含む CHAP response フレームを受信したときに、認証側によって送信されます。