KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

  1. KENスクール TOP >
  2. KENスクールブログ > ネットワーク > PPP(Point to Point Protocol)その2

ネットワーク

PPP(Point to Point Protocol)その2

今回の記事ではWANプロトコルの一つであるPPP(Point to Point Protocol)の認証の機能について確認していきます。

PPPの認証機能

PPPのLCPは基本的な認証機能を持っています。LCPのリンク確立後に認証を行いますが、認証プロトコルとしてPAPまたはCHAPのいずれかを使用します。

PAPは、接続元であるクライアント側が、自分のユーザー名(ホスト名)とパスワードを接続先のサーバに送信し、サーバがこれに対する認証の可否をクライアントに返信するという、シンプルな認証方式です。

サーバとクライアント間で、2回のやりとりを行うため、「2ウェイハンドシェイク」と呼ばれます。

なお、接続先のサーバには予めユーザデータベース内に、クライアント側のユーザー名(ホスト名)とパスワードを登録しておく必要があります。

LCPリンク確立後の認証フェーズでは、以下のような処理が行われます。

①クライアント側がユーザー名とパスワードをサーバ側に送信する。

②サーバは、クライアント側から受け取ったユーザー名とパスワードが、ユーザデータベースに登録されている情報と一致するかを確認する。一致していれば接続許可通知を、一致しなければ接続拒否通知をクライアント側に送信する。

PAPの場合、クライアント側から送信されるパスワードが暗号化されません。
そのため、セキュリティの観点から推奨されません。
また、認証も最初の一回しか行われません。

CHAPは、サーバと接続元であるクライアント間で3回のやり取りを行うため、「3ウェイハンドシェイク」ともよばれます。

CHAPでは、予めサーバ側の機器にクライアント側のユーザー名(ホスト名)とパスワードを、そしてクライアント側のデバイスにサーバ側のユーザー名(ホスト名)とパスワードを登録しておきます。
この際、サーバ側とクライアント側のパスワードは、必ず一致させておく必要があります。

LCPリンク確立後の認証フェーズでは、以下のような処理が行われます。

①サーバ側が、乱数文字列である「チャレンジコード」を生成する。

サーバはチャレンジコードを含めた「チャレンジメッセージ」をクライアント側に送信する。

②チャレンジを受け取ったクライアント側は、チャレンジコードとID、接続ユーザー名(ホスト名)に対応するパスワードを組み合わせて、ハッシュ関数(MD5)によりレスポンスコード(ハッシュ値)を生成する。 クライアント側は、生成したレスポンスコードを含めた「チャレンジ応答」をサーバ側に送信する。

③ クライアント側からレスポンスコードを受け取ったサーバは、予め認証用DBに登録している情報から、該当するユーザー名(ホスト名)のパスワードを選択し、ハッシュ関数でハッシュ値を生成する。

「サーバ側で生成したハッシュ値」と「クライアント側から送信されてきたハッシュ値」が一致していれば、接続許可通知を送信する。
異なる場合は接続拒否通知をクライアント側に送信する。

CHAPでは、ネットワーク上に流れるものがレスポンスコードであるため、パスワードを直接盗聴される危険性がなくなります。

なお、ハッシュ関数の特性上、チャレンジコードを入手されたとしても、ユーザー名とパスワードがない限り、レスポンスコードは生成できません。 また、レスポンスコードとチャレンジコードの2つを入手したとしても、ユーザー名とパスワードを知ることはできません。 そのため、PAPよりもセキュリティに優れた認証方法といえます。

また、接続中にも何度となく乱数文字列をサーバからクライアントに送信することで、「なりすまし」行為も防止することができます。

いかがでしたでしょうか。

ぜひお勉強の際にお役立て下さい。

この記事に関連する講座

CCNP講師監修による基礎から実践までを網羅したカリキュラム!

詳しくはこちら