📖 实体鉴别
🎯 课程摘要:实体鉴别是通信双方验证对方身份的技术,常用于实际数据传输或访问控制之前。最简单的方法是用户名+口令,但面临重放攻击威胁,需用不重数(nonce)加以防范。使用对称密钥或公钥密码体制配合不重数可实现双向鉴别。公钥体制下若公钥分发不安全,则可能遭受中间人攻击,这凸显了公钥真实性认证的重要性。
📝 详细笔记
1. 实体鉴别的概念
- 实体鉴别:通信双方的一方验证另一方身份的技术,常简称为鉴别
- 实体:可以是人、客户进程或服务器进程
- 本节范围:仅介绍如何鉴别通信对端实体的身份,即验证通信的对方确实是所要通信的实体,而不是其他伪装者
- 应用场景:通信实体的鉴别通常是两个通信实体之间传输实际数据之前或进行访问控制之前的必要过程,是很多安全协议的重要组成部分
2. 最简单的实体鉴别方法
方法一:直接传输用户名和口令
- 安全威胁:直接在网络中传输用户名和口令,面临被攻击者截获的风险
方法二:加密传输用户名和口令
3. 重放攻击
上述简单方法存在明显漏洞:
- 攻击者 C 可从网络中截获 A 发送给 B 的加密报文
- C 不需要对该报文进行解密,而是以后把该报文发送给 B
- 使 B 误认为 C 就是 A,之后 B 就向伪装成 A 的 C 发送许多本应发给 A 的报文
这种攻击称为重放攻击。
4. 使用不重数防范重放攻击
- 不重数(nonce):一个不重复使用的大随机数
- 作用:在实体鉴别过程中,使用户把重复的实体鉴别请求和新的实体鉴别请求区分开
- 原理:每次会话必须使用不同的不重数,攻击者在重放攻击时无法重复使用所截获的不重数,因而无法伪装成 A 或 B
5. 对称密钥密码体制 + 不重数实现双向鉴别
- 由于 K_AB 是 A 和 B 共享的密钥,这里使用的是对称密钥密码体制
- A 解密出 R_A 正确 → A 验证了 B 的身份
- B 解密出 R_B 正确 → B 验证了 A 的身份
6. 公钥密码体制 + 不重数实现双向鉴别
- 由于使用各自的私钥签名,这里使用的是公钥密码体制
7. 中间人攻击
使用公钥密码体制实现实体鉴别时,若公钥分发不安全,仍可能受到攻击。
情况一(欺骗能力较低的攻击):
- 只要 B 给 A 打个电话就能戳穿骗局,因为 A 根本没有和 B 进行通信
情况二(中间人攻击,更具欺骗性):
- ⚠️ 重点/考点:这种更具欺骗性的攻击称为中间人攻击
- 结论:公钥的分发以及公钥真实性的认证也是一个非常重要的问题(下节课介绍公钥分发)
8. 实体鉴别 vs 消息鉴别
| 对比项 | 消息鉴别 | 实体鉴别 |
|---|---|---|
| 鉴别对象 | 报文(验证报文真伪/完整性) | 通信实体(验证对方身份) |
| 关注点 | 每条报文是否被篡改/伪造 | 通信对方是否为所声称的身份 |
| 时效性 | 针对单个报文 | 针对整个会话连接 |
| 威胁 | 篡改、伪造 | 重放攻击、中间人攻击 |
| 防范手段 | 报文摘要、MAC、数字签名 | 不重数(nonce)、时间戳 |
💡 核心总结
- 实体鉴别是验证通信对方身份的技术,常用于数据传输或访问控制之前
- 最简单的方法是用户名+口令,但直接传输或简单加密都面临重放攻击
- 不重数(nonce)是不重复使用的大随机数,可有效防范重放攻击
- 对称密钥或公钥密码体制配合不重数均可实现双向鉴别
- 公钥体制下若公钥分发不安全,会遭受中间人攻击,凸显公钥真实性认证的重要性
❓ 课后思考 / 经典考题
- 什么是重放攻击?如何利用不重数(nonce)防范重放攻击?
- 画图说明使用对称密钥密码体制和不重数实现双向鉴别的过程。
- 画图说明使用公钥密码体制和不重数实现双向鉴别的过程。
- 什么是中间人攻击?为什么说公钥分发和公钥真实性认证非常重要?
- 实体鉴别与消息鉴别有什么区别?各自面临的主要威胁是什么?