要約
Password Authentication Protocol(PAP)は、Point-to-Point Protocol(PPP)接続内で使用される、パスワードベースのシンプルな方式です。2ウェイハンドシェイクによってユーザーのアイデンティティを検証します。認証情報が暗号化されていないプレーンテキストとして送信されるため、PAPは脆弱な認証方式と見なされ、傍受されやすいという脆弱性があります。Challenge-Handshake Authentication Protocol(CHAP)は、こうした弱点に対処するために開発されたもので、ネットワーク経由でパスワードを送信する代わりに、3ウェイハンドシェイクと暗号化ハッシュを使用します。CHAPを最初に試行し、必要な場合にのみPAPにフォールバックするようにシステムを構成することがベストプラクティスです。
PAPの概要と仕組み
PAPは、パスワードを使用してユーザーを検証するPPP認証方式です。インターネット標準(Request for Comments(RFC)1334)のパスワードベースの認証プロトコルです。
PAPを使用する場合、データは暗号化されません。認証サーバーにプレーンテキストで送信されます。PAPは、ユーザーが提供したユーザー名とパスワードに基づいてユーザーを認証するために、2ウェイ・ハンドシェイクを使用します。簡単に導入でき、シンプルな認証方式です。
双方向ハンドシェイクを使用して、PAPは次の2つのステップでユーザーを認証します。
- サーバーとのPPPセッションを確立しようとするユーザー(クライアント)は、認証要求パケットを介してユーザー名とパスワードをサーバーに送信します。
- サーバーがリクエストをリッスンしているとき、サーバーはこれらの認証情報を受け入れ、システムに保存されているものと一致することを確認します。一致が確認されると、認証応答パケットがユーザーに送り返され、サーバーはサーバーとユーザー間のPPPセッションを確立します。認証情報が一致しない場合、PPPセッションは確立されず、許可拒否応答パケットがユーザーに送り返されます。
パスワード認証プロトコルはデータを平文で送信するため、パケットスニッフィング攻撃に対して脆弱になる可能性があります。この攻撃では、攻撃者がネットワークトラフィックを傍受してPPPセッションを閲覧し、ユーザー名とパスワードを窃取します。PAP認証リクエストを暗号化チャネル経由で送信する方法もありますが、代わりにCHAPなどの代替手段が使用されることがよくあります。
PAPは認証情報をどのように送信しますか?
PPPで使用する場合、パスワード認証プロトコルは脆弱な認証スキームと見なされます。データは暗号化されていないため、PPPセッションを閲覧できる悪意のある攻撃者に対して脆弱であり、可視化されます。
CHAPを使用すると、3ウェイハンドシェイクプロセスが追加され、PPPセッションのセキュリティをさらに強化できます。PAPは、ユーザー認証のためのPPP方式として使用される標準的なログイン手順です。
PAPはどこで使われますか?
PAPでは、サーバーがログイン要求のプロンプトを送信してユーザーの応答を待つのではなく、ユーザー名とパスワードがLink Control Protocol(LCP)パケットでリモートアクセスサーバーに送信されます。PAPの用途には、以下のようなものがあります。
- CHAPがサポートされていないインスタンス(すべてのソフトウェアがCHAPをサポートしているわけではありません)
- 単純なプレーンテキストパスワードを必要とするリモートホストでログインをシミュレートする場合
- 異なるベンダーがCHAPのさまざまな実装を行っている場合など、不整合の問題が発生した場合
PAPとCHAPの違いとは何ですか?
PAPとCHAPは、ハンドシェイクのプロセス、認証情報の送信方法、およびそれぞれが提供するセキュリティのレベルが異なります。以下の表は、既存のコンテンツから導き出された主な相違点をまとめたものです。
| 機能 | PAP | CHAP |
|---|---|---|
| ハンドシェイクタイプ | 双方向 | 3者間 |
| パスワードの送信 | ネットワーク経由でプレーンテキストとして送信されます | ネットワーク経由で送信されることはありません |
| 暗号化方式 | 無効 | 共有秘密鍵を使用した暗号学的な一方向ハッシュ |
| セッション中の再認証 | サポートされていません | 対応済み — セッションの途中で繰り返し実行可能 |
| セキュリティレベル | 弱い;パケットスニッフィングに対して脆弱です。 | より強力;PAPの脆弱性に対応します |
CHAPが作成された理由は何ですか?
CHAPは、PAPポイントツーポイント認証方式内のセキュリティ脆弱性に対処するために作成されました。
PAPとは異なり、CHAPはパスワードをネットワーク経由で送信しません。代わりに、CHAPは暗号化方式を使用します。これには、サーバーとクライアントが秘密鍵を持つ暗号化ハッシュの使用が含まれます。
CHAPは、リモートデバイスの切断後にポートが開いたままになっている場合に、脅威アクターがセッションの途中でPPP接続を拾うのを防ぐために、セッション中に繰り返し認証を実行するように設定することもできます。CHAPは、PAPにはないセキュリティ機能をPPPセッションに追加します。
CHAPはどのように機能しますか?
CHAPの3ウェイハンドシェイクプロセスは、次の3つのステップで機能します。
- リンクが確立されると、認証器は認証のチャレンジを送信します。ネットワークアクセスサーバーがユーザーのホスト名ルックアップを実行し、CHAP認証を開始するために、ランダムに生成されたチャレンジ文字列を含む「アスクチャレンジ」をユーザーに送信します。
- ユーザーはホスト名のルックアップを実行します。ユーザーは、ユーザーとサーバーの両方が知っているパスワードを使用して、暗号化された一方向ハッシュを作成します。この暗号化されたハッシュは、チャレンジ文字列に基づいています。
- 次に、サーバーはハッシュを復号化して、最初のチャレンジ文字列と一致することを確認することにより、ハッシュを検証します。文字列が一致すると、認証成功メッセージが送信され、PPPセッションが確立されます。文字列が一致しない場合、認証失敗メッセージが生成され、セッションは終了します。
PPPは、認証にPAPまたはCHAPのいずれかを使用できます。プロトコルは直接連携することはできませんが、どちらかと連携することはできます。たとえば、管理者は、より安全なCHAPを使用して最初に認証を試み、必要に応じてPAPにフォールバックするように通信プロトコルを設定できます。
よくある質問(FAQ)
パスワード認証プロトコル(PAP)が脆弱な認証方式と考えられているのはなぜですか?
PAPは、双方向ハンドシェイクのプロセス中に、ユーザー名とパスワードを暗号化されていないプレーンテキストとして送信します。これにより、PPPセッションを傍受できる者は誰でも認証情報を閲覧できるようになり、攻撃者がパケットスニッフィング攻撃でログイン情報を盗まれる危険があります。
システムがChallenge-Handshake Authentication Protocol(CHAP)ではなくPassword Authentication Protocol(PAP)を使用するのはどのような場合ですか?
PAPは通常、使用中のソフトウェアでCHAPがサポートされていない場合、リモートホストがログインをシミュレートするために平文のパスワードを必要とする場合、またはベンダーごとにCHAPの実装方法が異なるために不整合が生じる場合に使用されます。
Password Authentication Protocol(PAP)とChallenge-Handshake Authentication Protocol(CHAP)の主な技術的な違いは何ですか?
PAPは双方向ハンドシェイクを使用し、パスワードを平文のままネットワーク経由で直接送信します。CHAPは3ウェイハンドシェイクを使用し、パスワードを送信することはありません。その代わり、サーバーとクライアントの両方が秘密鍵を共有し、チャレンジ文字列に基づく暗号化された一方向ハッシュを使用します。
Password Authentication Protocol(PAP)とChallenge-Handshake Authentication Protocol(CHAP)を同じシステムで併用することはできますか?
PAPとCHAPは直接連携できませんが、システムを構成して、まずCHAP認証を試行し、CHAPが利用できない場合はPAPにフォールバックさせることができます。このアプローチにより、互換性を維持しながらセキュリティを最大限に高めることができます。
チャレンジハンドシェイク認証プロトコル(CHAP)におけるセッション中の再認証とは何か、また、なぜそれが重要なのでしょうか。
CHAPは、ログイン時だけでなく、アクティブなセッション中に認証チェックを繰り返し実行するように設定できます。これにより、攻撃者はセッションの途中で開いているPPP接続を乗っ取ることができなくなります。これは、リモートデバイスの切断後もポートが開いたままになる場合などに発生する脆弱性ですが、PAPでは対処できません。
チャレンジハンドシェイク認証プロトコル(CHAP)のスリーウェイハンドシェイクは、どのように認証情報を保護するのですか?
リンクが確立されると、認証器はランダムに生成されたチャレンジ文字列をユーザーに送信します。ユーザーは、そのチャレンジ文字列と共有シークレットパスワードを使用して、暗号化された一方向ハッシュを作成し、そのハッシュを返送します。サーバーはハッシュを復号して、元のチャレンジ文字列と照合して検証します。実際のパスワードがネットワーク経由で送信されることは一切ありません。
こちらの情報も併せてご活用ください
ポイントツーポイントプロトコルの詳細については、こちらをご覧ください。PAPとCHAPの違いに関する詳細についてはこちらを、PPPパス構成ファイル(ppp.conf)の編集方法についてはこちらをご覧ください。
CHAPは、パスワード認証プロトコルよりも安全であると考えられています。可能な限り、CHAPを最初に有効にし、PAPをバックアップとして使用する必要があります。
参考文献
PPP認証プロトコル。(1992年10月)Internet Engineering Task Force (IETF)
スニッフィング攻撃とその防御方法。(2021年9月)Ciso Mag
ポイントツーポイントプロトコルのネットワーク(2012)組込みソフトウェア(第2版)
PAPとCHAPを使用したピア認証。(2010年、Oracle Corporation。
PPPパス構成ファイル(ppp.conf)の編集。(2010年、Oracle Corporation。