Challenge-Handshake Authentication Protocol

出典: フリー百科事典『ウィキペディア(Wikipedia)』
CHAPから転送)

コンピュータネットワークにおいて、Challenge-Handshake Authentication Protocol (チャレンジ・ハンドシェイク・オーセンティケーション・プロトコル、CHAP) は、ユーザやネットワークホストに対する認証プロトコルである。例えば、この認証はインターネットサービスプロバイダによって行われる。

RFC 1994: PPP Challenge Handshake Authentication Protocol (CHAP) がこのプロトコルを定義している。

CHAP は Point-to-Point Protocol (PPP) が、リモートクライアントの正当性を確認するための認証方法として使用される。CHAP は3ウェイ・ハンドシェイクによって、定期的にクライアントの正当性を確認する。これは、最初のデータ通信リンクを確立するときに行われ、その後はいつでも行われる可能性がある。この確認は、共有秘密英語版 (例えばクライアントユーザのパスワード) に基づいている。

  1. データリンク確立フェーズの後、認証者は "チャレンジ" メッセージを被認証者に送る。
  2. 被認証者は、MD5 チェックサムハッシュ関数のような、一方向性関数を使って計算した値のレスポンス返送する。
  3. 認証者は、期待すべきハッシュ値の計算を自分で行い、レスポンス内容を確認する。もし、値が一致するならば、認証者は被認証者を正当な相手として承認する。
  4. ランダムな間隔で、認証者は新しい "チャレンジ" を送り、ステップ 1 から 3 を繰り返す。

CHAP は、増加していく識別子と、可変の "チャレンジ" 値を用いることにより、相手からの反射攻撃に対する防御を提供する。 CHAP は、クライアントとサーバが秘密鍵の平文を知っていることを必要とするが、これがネットワークに対して送られることはない。

マイクロソフトは、MS-CHAP英語版 と呼ばれる CHAP のバリエーションを実装した。これは相手が秘密鍵の平文を知ることさえ要求しない。

動作[編集]

  • チャレンジ (Challenge) パケット (システムからユーザ)
  • 応答 (Response) パケット (ユーザからシステム)
  • 成功 (Success) /失敗 (Failure) パケット (システムからユーザ)

CHAP パケット[編集]

説明 1 バイト 1 バイト 2 バイト 1 バイト 可変長 可変長
Challenge Code = 1 ID 長さ "チャレンジ" の長さ "チャレンジ" の値 名前
Response Code = 2 ID 長さ 応答の長さ 応答の値 名前
Success Code = 3 ID 長さ メッセージ
Failure Code = 4 ID 長さ メッセージ

CHAP パケットは PPPフレームに埋め込まれる。プロトコルフィールドの値は C223(16進数) である。

フラグ アドレス コントロール プロトコル (C223(16進数)) Payload (上記の表) FCS フラグ

関連項目[編集]

外部リンク[編集]

  • RFC 1994
  • Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate
  • カプセル化されていない MS-CHAP v2 認証により、情報漏えいが起こる
  • MS-CHAP v2 の認証情報漏えいの問題に関する注意喚起