PPPOE中的PAP与CHAP

2024-02-05 20:08
文章标签 pppoe pap chap

本文主要是介绍PPPOE中的PAP与CHAP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PPPOE中的PAP与CHAP
2010年09月04日 星期六 07:33

 

一般情况下,我们讨论PAP和CHAP都是讨论的NAS和用户之间的验证方式。当用户上网时,NAS决定对用户采用何种验证方法。下面分别在本地验证和Radius验证两种情况下介绍用户与NAS之间的PAP和CHAP验证方式。
1)NAS本地认证
PAP 验证(Password Authentication Protocol:密码验证协议):用户以明文的形式把用户名和密码传递给NAS。 NAS根据用户名在NAS端查找本地数据库,如果存在相同的用户名和密码表明验证通过,否则表明验证未通过。
CHAP 验证(Challenge Handshake Authentication Protocol:挑战握手验证协议): 当用户请求上网时,服务器产生一个16字节的随机码(challenge)给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独用的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS根据用户名查找自己本地的数据库,得到和用户端进行加密所用的一样的密码,然后根据原来的16字节的随机码进行加密,将其结果与Secret Password作比较,如果相同表明验证通过,如果不相同表明验证失败。
Secret Password = MD5(Chap ID + Password + challenge)
Radius认证
2)RADIUS认证
如果用户配置了RADIUS验证而不是本地验证,过程略有不同。
PAP验证:用户以明文的形式把用户名和他的密码传递给NAS,NAS把用户名和加密过的密码放到验证请求包的相应属性中传递给RADIUS服务器。RADIUS服务器对NAS上传的帐号进行验证并返回结果来决定是否允许用户上网。
Secret password =Password XOR MD5(Challenge + Key)
(Challenge就是Radius报文中的Authenticator)
CHAP验证:当用户请求上网时,NAS产生一个16字节的随机码给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独有的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS把传回来的CHAP ID和Secret Password分别作为用户名和密码,并把原来的16字节随机码传给RADIUS服务器。RADIUS根据用户名在服务器端查找数据库,得到和用户端进行加密所用的一样的密码,然后根据传来的16字节的随机码进行加密,将其结果与传来的Password作比较,如果相同表明验证通过,如果不相同表明验证失败。另外如果验证成功,RADIUS服务器同样可以生成一个16字节的随机码对用户进行挑战询问(魔术字),该部分内容由于应用较少,此处略。
Secret password = MD5(Chap ID + Password + challenge)
从上面的过程看得出来,如果NAS到用户端都是一个用户一个PVC,或者一个用户一个VLAN,这时,BAS到用户端(MODEM)设置为PAP和CHAP都是无所谓的。但是如果BAS到用户端如果不是一个独立的链路,例如是一个VLAN下来到很多用户,这时,最好设置为CHAP。因为对用户的用户名和密码,CHAP是加密传送,而PAP是明文传送的的。但是,现在有些MODEM或系统不支持CHAP,也有NAS不支持,这时就没有选择了。

 

 

先由服务器端给客户端发送一个随机码challenge,客户端根据challenge,对自己掌握的口令、challenge、会话ID进行单向散例,即md5(password1,challenge,ppp_id),然后把这个结果发送给服务器端。服务器端从数据库中取出库存口令password2,进行同样的算法,即md5(password2,challenge,ppp_id),最后,比较加密的结果是否相同。如相同,则认证通过。

优点:安全性较SPAP有了很大改进,不用将密码发送到网络上。
缺点:安全性还不够强健,但也不错、单向加密、单向认证、通过认证后不支持Microsoft点对点加密(MPPE)。

4、MS-CHAP

微软版本的CHAP,和CHAP基本上一样,区别我也不太清楚。认证后支持MPPE,安全性要较CHAP好一点。

5、MS-CHAP V2

微软版本的CHAP第二版,它提供了双向身份验证和更强大的初始数据密钥,而且发送和接收分别使用不同的密钥。如果将VPN连接配置为用 MS-CHAP v2作为唯一的身份验证方法,那么客户端和服务器端都要证明其身份,如果所连接的服务器不提供对自己身份的验证,则连接将被断开。

优点:双向加密、双向认证、安全性相当高。
缺点:不太清楚。

6、EAP:可扩展的认证协议

EAP可以增加对许多身份验证方案的支持,其中包括令牌卡、一次性密码、使用智能卡的公钥身份验证、证书及其他身份验证。最安全的认证方法就是和智能卡一起使用的“可扩展身份验证协议—传输层安全协议”,即EAP-TLS认证。

优点:安全性最好。
缺点:需要PKI(公钥基础设施)支持。(目前PKI还没有真正建立起来)

总结:协议是一个非常复杂的内容,不是三言两语就能说清楚。但是,只要知道了这些基本内容了,就足够我们在搭建VPN时使用了。如果想了解更多内容,请查看RFC。






这篇关于PPPOE中的PAP与CHAP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/682012

相关文章

综合DHCP、ACL、NAT、Telnet和PPPoE进行网络设计练习

描述:企业内网和运营商网络如上图所示。 公网IP段:12.1.1.0/24。 内网IP段:192.168.1.0/24。 公网口PPPOE 拨号采用CHAP认证,用户名:admin 密码:Admin@123 财务PC 配置静态IP:192.168.1.8 R1使用模拟器中的AR201型号,作为交换路由一体机,下图的WAN口为E0/0/8口,可以在该接口下配置IP地址。 可以通过

{Effective Java} Chap 2 创建和销毁对象

This chapter concerns creating and destroying objects: when and how to create them, when and how to avoid creating them, how to ensure they are destroyed in a timely manner, and how to manage any

配置PPPoE多播绑定vlanID并开启IPV6

准备工作 确保你的系统已安装ppp和rp-pppoe包: sudo apt-get install pppoe ppp 创建VLAN接口 假设你有两个VLAN ID,分别为100和200。我们首先创建VLAN接口eth0.100和eth0.200。 sudo ip link add link eth0 name eth0.100 type vlan id 100sudo ip lin

CentOS 安装pppoe

在CentOS release 6.4 (Final) Linux version 2.6.32-358.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) )  版本下安装pppoe 1、使用yum安装: yum  install  ppp

MS-CHAP与CHAP与PAP认证协议

目录 MS-CHAP(微软挑战-握手认证协议) CHAP(挑战-握手认证协议) PAP(密码认证协议) MS-CHAP(微软挑战-握手认证协议)、CHAP(挑战-握手认证协议)和PAP(密码认证协议)都是用于网络连接的认证协议,它们各自具有不同的特点和适用场景。 MS-CHAP(微软挑战-握手认证协议) MS-CHAP是微软在CHAP基础上开发的一种认证协议,它提供了双向的身份

华为ensp中PPPOE (点对点协议)原理和配置命令

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月12日6点30分 PPPoE(PPP over Ethernet)是一种将PPP协议封装到以太网帧中的链路层协议。它可以使以太网网络中的多台主机连接到远端的宽带接入服务器,具有适用范围广、安全性高、计费方便的特点。 华为PPPoE的主要功能和特点包括: 点到点连接:PPPoE 是一种点到点的网络协议,它在物理

华为ensp中PPP(点对点协议)中的CHAP认证 原理和配置命令

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月11日6点00分 PPP协议(Point-to-Point Protocol)是点到点协议,是一种常用的串行链路层协议,用于在两个节点之间建立点对点连接。它可以用于拨号网络、虚拟专用网络(VPN)和其他类型的点对点连接。 关于PPP(点对点协议)的介绍 PPP协议的特性 支持多种认证方式,包括PAP、

网络网络层之(7)PPPOE协议

网络网络层之(7)PPPOE协议 Author: Once Day Date: 2024年4月7日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day的博客-CSDN博客。 参考文章: RFC 1661 - The Point-to-Point Protocol (

ChapJavaAPI

Java API API指的是应用程序编程接口,也就是JDK中提供的各种功能的Java类 1 String类 String类初始化 使用字符串常量初始化字符串 String str1="abc"; 使用String的构造方法初始化字符串对象 public class string {public static void main(String[] args) {//创建一个空的字符串

CCIE-02-PPPoE

目录 实验条件网络拓朴实验目标 开始配置R1验证效果 实验条件 网络拓朴 实验目标 R2为PPPoE Server,已预配了相关信息;R1作为PPPoE Client,进行PPPoE拨号 用户名为R1,密码为cisco , 采用CHAP的认证方式,IP地址协商获取 开始配置 R1 配置拨号模板 interface Dialer0mtu 1492ip addres