PPPその2 PAP、CHAP

PPPの認証

PPPの認証機能には、次の2つの種類があります。

・PAP(Password Authentication Protocol)
・CHAP(Challenge Handshake Authentication Protocol)

どちらがより多く使われているのでしょう?
それは、CHAPです。またあとで詳しく説明しますが、PAPに比べてCHAPの方がセキュリティに優れています。一般的にはCHAPを利用することになります。

また、PPP自体はポイントツーポイント、つまり1対1の関係です。対等な関係の2つのルータで認証を行うので、ピア認証という風に呼ぶこともあります。

PAP

まず、PAPについて見ていきましょう。
PAPは、認証を行うルータ同士(ピア)でお互いのユーザ名とそのユーザ名に対するパスワードの登録を行っておきます。認証は、自分のユーザ名とパスワードをピアに送って、ピアで登録されているユーザ名とパスワードが一致しているかどうかを確認します。一致していれば認証OK、異なっていれば認証NGというきわめてシンプルな認証方法です。認証は片方向だけでなく、両方向で行われることになります。




※図をクリックすると拡大します

ただし、セキュリティ面で注意しなければいけないことがあります。認証のために、送るユーザ名とパスワードは暗号化されません。そのまんまのクリアテキスト送るため、もし悪意のある第三者がPAPのパケットを盗聴すると、ユーザ名、パスワードを知られてしまうことになります。セキュリティを厳密に考えるのであれば、PAPはあまりオススメできないですね。

CHAP

クリアテキストでユーザ名とパスワードが流れてしまうPAPの欠点を解決するためには、CHAPを使います。CHAPでは、クリアテキストでユーザ名とパスワードを流すことはしません。

CHAPによる認証は次のステップで行われていきます。


1.ユーザのダイアルイン
2.ランダムに生成したチャレンジコードを返信
3.チャレンジコードを元にMD5によるハッシュ計算
4.ハッシュ計算した値をレスポンスコードとしてユーザIDと共に送信
5.自身が生成したチャレンジコードを使って、ユーザ側と同様のハッシュ計算
6.2つを比較
7.一致していれば認証OK



MD5のMDはMessage Digestの略です。ダイジェストは要約という意味で、元の情報よりも小さくなります。小さくなった情報から元の情報に戻すことは理論的に不可能です。ですから、もしもレスポンスコートをキャプチャされても解析できないのでCHAPの認証は高いセキュリティを確保することができます。

この例では、ルータでユーザ名とパスワードを管理していますが、このユーザ名とパスワードの管理を認証サーバで一元化することもできます。大規模なネットワークでは、一元化されて認証サーバ(RADIUSやTACACS+)で認証を行っていることが多いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA