チャレンジハンドシェイク認証プロトコル

コンピューティングにおいて、チャレンジハンドシェイク認証プロトコルCHAP)は、元々はポイントツーポイントプロトコル(PPP)でユーザー認証に使用されていた認証プロトコルです。CHAPは、 RADIUSDiameterなどの他の認証プロトコルにも採用されています。

ほぼすべてのネットワーク オペレーティング システムは、CHAP を使用した PPP をサポートしています。ほとんどのネットワーク アクセス サーバーも同様です。CHAP は、DSL ユーザーの認証のために PPPoEでも使用されます。

PPPはデータを暗号化せずに「平文」で送信するため、CHAPはPPPセッションを観察できる攻撃者に対して脆弱です。攻撃者はユーザー名、CHAPチャレンジ、CHAPレスポンス、その他PPPセッションに関連する情報を見ることができます。攻撃者はオフライン辞書攻撃を仕掛け、元のパスワードを盗み出すことができます。PPPで使用される場合、CHAPは認証装置(通常はネットワークアクセスサーバー)によって生成されるチャレンジを使用することで、ピアからのリプレイ攻撃に対する保護も提供します。

他のプロトコルでCHAPが使用される場合、CHAPは平文で送信されるか、トランスポート層セキュリティ(TLS)などのセキュリティ層で保護されることがあります。例えば、CHAPがユーザーデータグラムプロトコル(UDP)を使用してRADIUS経由で送信される場合、RADIUSパケットを観測できる攻撃者は、PPPと同様にオフライン辞書攻撃を仕掛けることができます。

CHAPでは、クライアントとサーバーの両方がパスワードの平文バージョンを知っている必要がありますが、パスワード自体はネットワーク上に送信されることはありません。そのため、PPPで使用する場合、CHAPは、これらの理由の両方で脆弱なパスワード認証プロトコル(PAP)と比較して、より優れたセキュリティを提供します。

CHAPの利点

ピアがCHAPを送信すると、認証サーバーはそれを受信し、データベースから「既知の有効な」パスワードを取得し、CHAP計算を実行します。計算結果のハッシュが一致した場合、ユーザーは認証されたとみなされます。ハッシュが一致しない場合、ユーザーの認証試行は拒否されます。

認証サーバーはパスワードを平文で保存する必要があるため、保存するパスワードに異なる形式を使用することはできません。攻撃者がパスワードデータベース全体を盗んだ場合、すべてのパスワードがデータベース内で「平文」で閲覧可能になります。

その結果、 PPP リンクで使用する場合、 CHAP は PAP よりも安全ですが、PAPなどの他の方法よりも安全な「保存時」のストレージが妨げられます。

変種

MS-CHAPは CHAP に似ていますが、異なるハッシュ アルゴリズムを使用し、各当事者がお互いを認証できるようにします。

作業サイクル

CHAPは、元々はポイントツーポイントプロトコル(PPP)サーバーがリモートクライアントのIDを検証するために使用していた認証方式です。CHAPは、3ウェイハンドシェイクを用いてクライアントのIDを定期的に検証します。これは初期リンク(LCP)の確立時に行われ、その後もいつでも再度行われる可能性があります。検証は共有秘密(クライアントのパスワードなど)に基づいて行われます。[ 1 ]

  1. リンク確立フェーズが完了すると、認証者はピアに「チャレンジ」メッセージを送信します。
  2. ピアは、チャレンジとシークレットを組み合わせた一方向ハッシュ関数を使用して計算された値で応答します。
  3. 認証器は、レスポンスを自身の期待ハッシュ値と照合します。値が一致した場合、認証器は認証を承認し、一致しない場合は接続を終了します。
  4. PPP では、認証者はランダムな間隔で新しいチャレンジをピアに送信し、手順 1 ~ 3 を繰り返します。ただし、ほとんどの状況で CHAP が使用される場合 ( RADIUSなど)、この手順は実行されません。

CHAPパケット

説明 1バイト 1バイト 2バイト 1バイト 変数 変数
チャレンジ コード = 1 ID 長さ チャレンジの長さ チャレンジ価値 名前
応答 コード = 2 ID 長さ 応答の長さ 応答値 名前
成功 コード = 3 ID 長さ メッセージ
失敗 コード = 4 ID 長さ メッセージ

ランダムチャレンジに選択されたIDは、対応するレスポンス、成功、および失敗パケットにも使用されます。新しいIDを持つ新しいチャレンジは、別のIDを持つ前回のチャレンジとは異なる必要があります。成功または失敗の通知が失われた場合、同じレスポンスを再度送信することができ、同じ成功または失敗の表示がトリガーされます。MD5ハッシュの場合レスポンス値はMD5(ID||secret||challenge)ID、秘密鍵、およびチャレンジを連結したMD5です。[ 2 ]

参照

参考文献

  1. ^ Forouzan (2007). 『データ通信とネットワーキング 4E』 McGraw-Hill Education (India) Pvt Limited. pp. 352–. ISBN 978-0-07-063414-5. 2012年11月24日閲覧
  2. ^ 「PPP CHAP認証の理解と設定」シスコ技術ノート2005年2011年8月14日閲覧
  • RFC  1994 PPP チャレンジハンドシェイク認証プロトコル (CHAP)
  • RFC  2865リモート認証ダイヤルインユーザーサービス(RADIUS):PAPまたはCHAPを使用
  • RFC  3748拡張認証プロトコル(EAP):CHAPについて説明