4.3 PPP 认证:PAP 与 CHAP
PPP 支持安全性认证,主要有两种协议:PAP (密码认证协议) 和 CHAP (挑战握手认证协议)。
认证由 认证方 (Authenticator) 和 被认证方 (Peer) 组成。通常在 ISP 拨号场景中,运营商局端是认证方,用户端是被认证方。
1. PAP (Password Authentication Protocol)
PAP 是一种简单的两次握手 (2-Way Handshake) 认证协议。
1.1 工作原理
认证过程由被认证方发起:
- Authenticate-Request: 被认证方直接发送用户名和密码给认证方。
- Authenticate-Ack/Nak: 认证方根据本地数据库校验。成功回 Ack,失败回 Nak。
1.2 缺点
- 明文传输:密码在网络上是明文传输的,极易被抓包窃取。
- 重放攻击 (Replay Attack):认证请求可能会被攻击者截获并重放。
1.3 配置实战
场景:AR3 (认证方) 验证 AR2 (被认证方)。
AR3 (认证方):
bash
# 1. 创建用户数据库
[AR3] aaa
[AR3-aaa] local-user hw password cipher 123
[AR3-aaa] local-user hw service-type ppp
# 2. 接口开启认证
[AR3] interface Serial 1/0/0
[AR3-Serial1/0/0] link-protocol ppp
[AR3-Serial1/0/0] ppp authentication-mode pap # 模式选 PAPAR2 (被认证方):
bash
[AR2] interface Serial 1/0/1
[AR2-Serial1/0/1] link-protocol ppp
# 发送用户名 hw 和密码 123
[AR2-Serial1/0/1] ppp pap local-user hw password simple 1232. CHAP (Challenge Handshake Authentication Protocol)
CHAP 是一种更安全的三次握手 (3-Way Handshake) 认证协议。
2.1 工作原理 (挑战-响应机制)
认证过程由认证方发起:
- Challenge (挑战):认证方主动发送一个 随机数 (Random Number) 和 ID 给被认证方。
- 意图:“想要连我?先解开这道题。”
- Response (响应):被认证方收到挑战后,使用 MD5算法 计算摘要:
Hash = MD5(ID + 随机数 + 自己的密码)。将生成的 Hash 值和自己的用户名发回给认证方。- 关键点:密码本身不在网络上传输!
- Success/Failure (验证):认证方根据用户名查到密码,用同样的公式
MD5(ID + 随机数 + 本地存的密码)计算 Hash。- 如果计算结果一致 -> 发送
Success。 - 如果不一致 -> 发送
Failure。
- 如果计算结果一致 -> 发送
2.2 优点
- 安全性高:密码不在网络上传输,只传输 Hash 值。
- 防重放:每次认证的随机数都不同,生成的 Hash 也不同,攻击者抓到的包无法用于下一次认证。
2.3 配置实战
AR3 (认证方):
bash
[AR3] aaa
[AR3-aaa] local-user hw password cipher 123
[AR3-aaa] local-user hw service-type ppp
[AR3] interface Serial 1/0/0
[AR3-Serial1/0/0] ppp authentication-mode chap # 模式选 CHAPAR2 (被认证方):
bash
[AR2] interface Serial 1/0/1
# 配置自己的用户名
[AR2-Serial1/0/1] ppp chap user hw
# 配置密码 (用于计算 MD5)
[AR2-Serial1/0/1] ppp chap password simple 1233. MD5 算法简介
CHAP 中用到了 MD5 (Message-Digest Algorithm 5)。
- 散列函数:将任意长度的输入转换为固定长度 (128 bit) 的输出 (Hash/指纹)。
- 不可逆:无法从 Hash 值反推出原始密码。
- 雪崩效应:输入微小的变化会导致输出巨大的变化。
eNSP/EVE-NG 拓扑
(此处待补充 PAP/CHAP 认证抓包截图)