ポイント

●ダイヤルアップ接続などで使われるプロトコルのPPPには,PAPとCHAPという2種類の認証プロトコルが採用されている。

●このうち,PAPはパスワードが平文で流れる。

●CHAPはチャレンジ・レスポンス方式を採用して,パスワードそのものを経路上に流さない

 今回は,認証に関する通信規約(プロトコル)のお話です。

PPPの認証プロトコルがPAPとCHAP

 家庭からのインターネット・アクセスは,ADSLや光接続などのブロードバンド・常時接続が普及していますが,日本でインターネット・アクセスが始まった1990年代半ばは,パソコンにモデムをつないで電話回線経由でプロバイダに接続するダイヤルアップ接続が主流でした。サービスを利用する際は,事前にプロバイダと契約をして発行してもらい,そのIDとパスワードを使って認証を受けるようになっていました。このプロバイダのアクセス・サーバーとパソコン間を結ぶために利用されたのが,PPP(Point to Point Protocol)というプロトコルです。

 PPPはその名の通り,ポイントとポイント間,つまり2点間をつなぐ通信プロトコルです。RFC1661に,PPPの三つの主要な機能についての定義があります。

  • 複数のプロトコルのデータグラムをカプセル化する
  • データリンク・コネクションを確立・設定・テストする(Link Control Protocol)
  • 異なるネットワーク層プロトコルを確立・設定する(Network Control Protocols)
  •  このように,PPPは認証,圧縮,接続してきたパソコンにアドレスを割り振ったりなど,2点間で通信に必要なさまざまな機能を持っています。このうちの認証のためのプロトコルがPAPとCHAPです。例えば,WindowsXPでは,ダイヤルアップ接続のための認証プロトコルとしてPAPとCHAPの両方に対応しています(図1)。

     図1 WindowsXPのダイヤルアップ接続設定画面 PAPとCHAPの両方に対応している。

    PAPはパスワードを平文で流す

     PPPでは物理的なリンクが確立した後,ユーザーIDとパスワードをプロバイダのサーバーへ送って,接続するための認証を受けます。この時に用いられるのがPAPです。

     PAPはPassword Authentication Protocolの略称で,認証のためのIDとパスワードを暗号化せずにサーバーへ送ります。これだと,盗聴などでパスワードが簡単に第三者にバレてしまいます。ところが,家庭からプロバイダに接続する際には,このPAPが多く使われていました。少し不安な感じもしますが,パスワードが平文で流れている区間は電話線になるため,多数の人の目にさらされるインターネットなどよりは比較的安全なのです。

    CHAPはチャレンジ・レスポンス方式を採用

     もう一つの認証プロトコルであるCHAPは,Challenge Handshake Authentication Protocolの略で,チャレンジ・レスポンス方式を用いて,伝送経路上にパスワードそのものを流さないように工夫しています。チャレンジ・レスポンス方式については,前回(第2章の第5回「ワンタイム・パスワード」)で詳しく解説していますので,そちらをご参照下さい。

     よりセキュリティを高めた認証を使いたい場合は,認証プロトコルにCHAPを選択することができます。もちろん,ユーザーのコンピュータと,プロバイダのサーバーのどちらもCHAPに対応している必要があります。

    PPPoEでもPAPやCHAPが使われる

     家庭から利用できるブロードバンド接続サービスにはいろいろありますが,いずれのサービスを利用する場合も,事前に購入した機器,あるいはプロバイダが用意した専用機器に,パソコンをLAN(イーサネット)で接続するのが一般的です。

     しかし,LANは認証の仕組みを持っていません。そこで,多くのプロバイダはPPPoE(PPP over Ethernet)という仕組みを採用しています。もともと認証の機能を持っているPPPをイーサネット上で使えるようにした技術です。

     「PPPをイーサネット上で使用する」というのはイメージしにくいかもしれません。具体的に言うと,PPPフレームにPPPoEのヘッダーを付与し,それをLAN(イーサネット)のフレームで包むのです(図2)。あとは,基本的にPPPのやりとりと同じです。つまり,PPPoEでも認証のためにPAPやCHAPが利用されるわけです。

    図2 PPPoEのフレーム・フォーマット
    PAPとCHAPの両方に対応している。