2.2 Interoperation with PAP and CHAP (PAP と CHAP との相互運用)
2.2. Interoperation with PAP and CHAP (PAP と CHAP との相互運用)
PAP の場合, NAS は PAP ID とパスワードを取得し, それらを User-Name と User-Password として Access-Request パケットで送信します。NAS は, PPP サービスが期待されることを RADIUS サーバーへのヒントとして, 属性 Service-Type = Framed-User と Framed-Protocol = PPP を含めることができます (MAY)。
CHAP の場合, NAS はランダムなチャレンジ (できれば 16 オクテット) を生成し, それをユーザーに送信します。ユーザーは CHAP 応答を CHAP ID と CHAP ユーザー名とともに返します。次に, NAS は, CHAP ユーザー名を User-Name として, CHAP ID と CHAP 応答を CHAP-Password (属性 3) として含む Access-Request パケットを RADIUS サーバーに送信します。ランダムチャレンジは CHAP-Challenge 属性に含めることができ, または 16 オクテット長の場合は, Access-Request パケットの Request Authenticator フィールドに配置できます。NAS は, PPP サービスが期待されることを RADIUS サーバーへのヒントとして, 属性 Service-Type = Framed-User と Framed-Protocol = PPP を含めることができます (MAY)。
RADIUS サーバーは User-Name に基づいてパスワードを検索し, CHAP ID オクテット, そのパスワード, CHAP チャレンジ (CHAP-Challenge 属性から, 存在しない場合は Request Authenticator から) に対して MD5 を使用してチャレンジを暗号化し, その結果を CHAP-Password と比較します。それらが一致する場合, サーバーは Access-Accept を送り返し, そうでない場合は Access-Reject を送り返します。
RADIUS サーバーが要求された認証を実行できない場合, Access-Reject を返さなければなりません (MUST)。例えば, CHAP では, CHAP チャレンジを暗号化して CHAP 応答と比較できるように, ユーザーのパスワードがクリアテキストでサーバーに利用可能である必要があります。パスワードが RADIUS サーバーにクリアテキストで利用できない場合, サーバーはクライアントに Access-Reject を送信しなければなりません (MUST)。