CH5 鉴别机制与技术
零基础教学讲义 · 一句话主题「怎么确认你是你」· 配套作业2(安全机制·鉴别技术·访问控制)
🎯学习目标
读完这一章,你应该能回答:
- 什么是鉴别?为什么说它是最重要的安全服务?它和访问控制/完整性/审计是什么关系?
- 实体鉴别系统由哪四方组成?
- 实现鉴别的三种途径(所知/所有/所是)和双因素、多因素认证。
- 鉴别按保护等级分 0~4 级,每一级多防了什么?什么是重放攻击?
- 口令的五大脆弱点与对策;什么是加盐、OTP、挑战-应答?
- 零知识证明的三原则和经典例子(山洞问题等)。
- Kerberos 的组成(KDC=AS+TGS)、三步流程、优缺点。
1鉴别是什么?为什么最重要? ⭐
鉴别(Authentication)就是确认实体"是它所声称的那个"。某一成员(声称者)提交一个身份并声称它是那个主体,鉴别的目的是让验证者获得对该声称事实的信任。
鉴别就是"验明正身",证明你真的是你。
生活例子:你去银行取钱,柜员让你出示身份证,这就是鉴别——银行要确认"你真的是账户主人",而不是冒充的。你登录微信输入密码,也是鉴别——微信要确认"你真的是这个账号的主人"。
为什么最重要:如果鉴别做不好,后面的一切安全措施都没意义。就像你家装了最好的防盗门,但钥匙被小偷拿走了,门再结实也没用。
🔗 鉴别与其他机制的关系(会考)
Authentication
📜 身份鉴别的协议基础
身份鉴别协议 = 通信参与者为完成相互的身份识别而采用的规程、约定、约束和交换信息的总和,分两类:
| 协议 | 英文 | 含义 |
|---|---|---|
| 单向鉴别 | one-way authentication | 两方只有一方被鉴别 |
| 双向鉴别 | mutual authentication | 两方相互鉴别对方身份 |
2实体鉴别系统的组成(四方)
| 角色 | 英文 | 作用 |
|---|---|---|
| 示证者 P | Prover / Claimant(声称者) | 出示证件、声称身份的一方 |
| 验证者 V | Verifier | 检验证件的正确性与合法性,决定是否满足要求 |
| 可信第三方 TP | Trusted third party | 参与调解纠纷 |
| 攻击者 | — | 窃听或伪装声称者,骗取验证者的信任 |
3实现鉴别的三种途径 ⭐
👇 点击卡片翻转,看每种途径的例子
你所知道的
What you KNOW大脑里记着的秘密。
例:登录密码、银行卡 PIN
你所拥有的
What you HAVE手里拿着的实物。
例:U盾、动态令牌
你的个人特征
What you ARE身体本身的特征。
例:刷脸、指纹解锁
认证(Authentication):你是谁?——验证身份。就像你进公司大楼,刷卡证明你是这家公司的员工。
授权(Authorization):你能干什么?——分配权限。就像你刷卡进了大楼后,普通员工只能去普通办公区,而不能去机房;只有IT人员才能进机房。
关系:先认证(确认你是谁),再授权(决定你能做什么)。认证是授权的前提,没有认证就无法授权。
多因素认证就像"多重验证",用多种方式证明你是你。
生活例子:你去银行取钱,需要:① 银行卡(你拥有的东西)+ ② 密码(你知道的东西)。这就是双因素认证。即使小偷偷了你的银行卡,不知道密码也取不走钱。
网上例子:登录支付宝时,输入密码后还要短信验证码。密码可能被猜到,但短信验证码发到你手机上,黑客没有你的手机就无法登录。因素越多,安全性越高。
🎮 小练习:把鉴别因素和它的类别连起来
先点左边一个因素,再点右边对应的类别。连对会变绿。
4鉴别技术分类:按保护等级 0~4 级 ⭐
这是一个递进的保护强度分级。核心思路:等级越高,越能防"重放攻击"。
| 等级 | 提供的保护 | 关键做法 | 缺点 |
|---|---|---|---|
| 0 级 | 无保护 | 口令明文直接发送 | 易暴露、易被重放 |
| 1 级 | 抗泄露 | 单向函数变换后传,真AI不上信道 | 仍易被重放 |
| 2 级 | 抗泄露 + 抗对不同验证者重放 | 加入"预期验证者"唯一特征 | 不能抗对同一验证者重放 |
| 3 级 | 抗泄露 + 抗对同一验证者重放 | 使用唯一数(随机数/时间戳/计数器/密码链) | — |
| 4 级 | 抗泄露 + 抗对相同/不同验证者重放 | 4A唯一数 / 4B质询 / 4C专用加密质询 / 4D计算响应 | 实现最复杂 |
5非密码鉴别之一:口令机制
口令(通行字)是研究和使用最广泛的身份鉴别法,通常为长度 6~8 的字符串。系统事先保存每个用户的二元组:用户身份 + 口令(明文或简单变换后存储)。
典型协议是 PAP(口令鉴别协议),在通信连接建立阶段进行鉴别,数据传输阶段不再做 PAP 鉴别(连接请求端不停发送 ID/Password,直到被响应或连接终止)。
⚠️ 口令机制的五大脆弱点 + 对策(重点)
| 脆弱点 | 说明 | 对策 |
|---|---|---|
| 外部泄露 | 被人偷看/记在纸上 | 教育培训、严格管理、口令定期改、一人一令、输入不回显、不写纸上 |
| 口令猜测 | 被暴力/字典猜出 | 限制非法登录次数、插入实时延迟、限制最小长度(≥6~8)、防与用户特征相关、及时改预设口令、机器产生口令 |
| 线路窃听 | 在网线上被嗅探 | 一次性口令 OTP、引入散列函数、加盐(Salt) |
| 危及验证者 | 验证者的口令文件被偷 | 使用单向函数存储口令的散列值而非明文 |
| 重放攻击 | 录下认证信息再重发 | 随机数、一次性口令 |
🧂 加盐(Salt)—— 防字典攻击
q = H(口令),攻击者可预先把常见口令都算好哈希做成一张大表(彩虹表/字典),拿到 q 反查就能猜出口令。
加盐就是在散列运算时额外输入一个随机字符串(Salt),把 Salt 和口令混合(以特定符号间隔)后再算散列。加盐后即使两人口令相同,散列值也不同,攻击者无法用预先算好的字典表批量破解。
6一次性口令 OTP 与验证码
🔑 一次性口令 OTP(One-Time Password,重点)
确定每次口令的三种方法(两端要保持同步):
- 两端共同拥有一串随机口令,在该串的某一位置保持同步;
- 两端共用一个随机序列生成器,在生成器的初态保持同步;
- 使用时间戳,两端维持同步的时钟。
📉 S/Key 一次性口令协议(OTP 的演进)及其缺陷
🤖 小技巧:验证码(CAPTCHA)
目的:防止用机器人自动注册/登录/灌水,有效防止用特定程序暴力破解式地不断登录尝试。
定义:把一串随机数字/符号生成一幅图片,加入干扰像素,由用户肉眼识别后输入提交,验证成功才能使用某项功能。
7基于挑战-应答的鉴别 ⭐
鉴别时,由验证者给声称者发送一个确定的质询值(challenge),该值参与鉴别信息的运算。由于质询值每次都不同、由验证者随机决定,所以每次传输的鉴别信息都不一样 —— 这能很好地防口令窃听和重放,但需要额外的通信开销。
8基于生物特征 与 个人鉴别令牌
基于个人生理特征(What you are)
基于假设:每个人的生理特征具有唯一性。常见生物特征:
指纹
曲线/分叉等微特征虹膜
瞳孔周围彩色环纹视网膜
眼球后方血管图案语音
声纹识别面部
骨骼/鼻梁/眼眶形状手型
手长/宽/手指几何指纹识别原理:光电扫描 + 图像处理,采集→分析→比对,与数据库中模板指纹匹配以确认身份。
💳 个人鉴别令牌
物理器件用于支持"某人拥有某东西",但通常要与口令或 PIN 结合使用(即双因素)。器件可具有存储、键盘、显示器,更复杂的能支持一次性口令,甚至嵌入处理器和网络通信(如智能卡)。
| IC 卡分类 | 类型 |
|---|---|
| 按接口 | 接触式 / 非接触式 / 双界面卡 |
| 按芯片形式 | 非加密存储卡 / 逻辑加密卡 / CPU 卡(智能卡) |
智能卡软硬件特性:与外界通信前先完成卡与终端的认证;加安全传感器防读写时被改;存储器加密不保存明文;使用需通过双因素认证;支持 DES、3DES 和 RSA 等密码算法。
9零知识证明与身份鉴别 ⭐
向别人证明"知道某事物/拥有某物品"有两种方法:
- 直接证明:直接出示或说出该秘密——但这会让别人也知道,是最大泄漏的证明。
- 间接证明(零知识证明):用一种有效的数学方法证明"我知道",而不泄露秘密内容。
📐 三大原则(必背)
完备性
真的假不了:证明者若确实具备某能力,能被轻易验证通过。
合理性
假的真不了:证明者若不具备该能力,几乎不可能蒙混冒充。
零知识
验证者仅获得"对方具备此能力"这一信息,不获得任何其他知识。
🏔️ 经典例子:山洞问题(最常考)
阿里巴巴(P)知道开暗门的咒语。他先进入 C/D 分叉的环形山洞,盗贼(V)在洞口随机喊"从 C 出"或"从 D 出"。
- 真知道咒语:每次都能按要求那边出来(完备性)。
- 不知道咒语:每轮蒙对概率 1/2,做 16 轮后全蒙对的概率仅 $1/2^{16} = 1/65536$(合理性)。
- 盗贼不能看着 P 从哪边进洞,否则录像给别人看就泄露了"P 有咒语"这一事实——必须保证零知识。
10基于密码算法的鉴别机制
🎯 设计鉴别协议的两大核心问题
保密性
基本鉴别信息和会话密钥必须以保密形式通信,防伪装、防暴露会话密钥。
时效性
防止消息重放攻击——这是核心难点。
重放攻击的常见形式:简单重放、可被日志记录的复制品、不能被检测到的复制品、反向重放(向发送者重放,对称加密时可能发生)。
🔢 防重放的三种"非重复值"(重点)
| 手段 | 原理 | 注意 |
|---|---|---|
| 序列号 | 给每条消息编号,仅接受序号合法的消息 | 双方必须保持上次消息的序号 |
| 时间戳 | 只接受时间戳足够接近当前时间的消息 | 要求时钟同步;同步失败会造成 DoS 或放大攻击窗口 |
| 随机值(质询) | 验证者发不可预测、不重复的随机值 | 即挑战-应答方式 |
🔑 三种密码鉴别机制
| 机制 | 怎么证明身份 |
|---|---|
| 采用对称密码算法 | 通信双方共享一个密钥,在质询-应答协议中加密交换信息(有单向、双向、带可信第三方 4/5 次传送等多种方案) |
| 采用公开密码算法 | 声称者用自己的秘密签名私钥签署某消息证明身份,验证者用其公钥验证;消息含非重复值抗重放 |
| 采用密码校验函数 | 声称者用秘密鉴别密钥 + 特定数据经校验函数算出密码校验值来证明身份(双方共享该密钥) |
11Kerberos 鉴别协议 ⭐
Kerberos 是美国麻省理工学院(MIT)为 Athena 项目开发的身份鉴别协议,采用对称密钥加密技术,公开版本有 V4 和 V5。"Kerberos"本意是希腊神话中守护地狱之门的三头犬。它提供网络环境下的鉴别框架(A:Authentication 鉴别 / Accounting 记账 / Auditing 审计)。
🧩 组成:KDC = AS + TGS
KDC
密钥分发中心(含下面两部分)AS
认证服务器 Authentication ServerTGS
票据授权服务器 Ticket Granting Server还有一个关键概念:TGT(票据授权票据 Ticket-Granting Ticket)。
🔄 三步流程(重点)
⚖️ 优缺点(重点)
优点
单点登录(SSO):拿到 TGT 且未过期,就能通过 TGS 完成到任一服务器的鉴别,不必重新输口令;与授权机制结合;通过交换"跨域密钥"支持双向鉴别。
缺点
① AS 和 TGS 集中式管理,易成瓶颈,性能和安全严重依赖二者;② 时钟同步问题;③ 采用对称加密,随用户增多密钥管理复杂。
12本章小结
- 鉴别 = 确认"你是你",是所有安全服务的基础,对抗假冒;支撑访问控制、完整性、审计。
- 实体鉴别系统四方:示证者 P、验证者 V、可信第三方 TP、攻击者。
- 三种途径:所知(口令)、所有(令牌)、所是(生物特征),组合即双/多因素。
- 按保护等级分 0~4 级,越高越能防泄露和重放。
- 口令防护:OTP / 散列 / 加盐对付窃听、防字典攻击;单向函数对付危及验证者。
- 挑战-应答 和 OTP 都用来防重放;防重放三手段=序列号 / 时间戳 / 随机数。
- 零知识证明:证明知道秘密但不泄露,三原则=完备性 / 合理性 / 零知识,经典例子是山洞问题。
- Kerberos:对称密钥 + 票据,KDC = AS + TGS,优点单点登录,缺点需时钟同步、密钥管理复杂。
📄 配套作业2 📘 配套 CH4 技术体系 📗 配套 CH6 访问控制
⭐重点例题(作业2 · 本章相关精讲)
下面把作业2中与本章鉴别技术相关的题目挑出来逐题精讲,理解了它们,考试就稳了。
6. 基于个人特征的鉴别可使用指纹、虹膜、声音、面部等 生物(生理) 特征。
7. 口令加盐机制在散列中加入随机字符串,以增加 字典 攻击的难度。
8. 零知识证明强调完备性、合理性和 零知识。
判断6:一次性口令可降低口令在网络中被重放利用的风险 → 正确。
判断7:零知识证明中验证者应获得证明者全部秘密才算成功 → 错误(恰恰相反,验证者不获得任何秘密)。
OTP:每次不同、能防重放;但需同步(时间/序列),有 S/Key 小数攻击等缺陷。
质询-应答:防窃听与重放、口令不上网;但增加通信开销、不适合无连接、安全依赖散列函数。
生物特征:唯一、不易丢失、无需记忆;但有误识率、采集设备成本高、生物信息泄露不可更换、有隐私问题。
智能卡:双因素(卡+PIN)、能算密码、安全性高;但会丢失/被盗、需读卡设备、成本较高。
MAC=H(R, 口令散列);③ B 自算比较。这样口令不明文上网(防窃听)、R 每次不同(防重放)、加盐(防字典攻击)。
🎯自测(点击展开参考要点)
鉴别为什么是"最重要的安全服务"?它和访问控制是什么关系?
实现鉴别的三种途径是什么?双因素认证举一个例子。
鉴别保护等级 0~4 级各防了什么?
口令的五大脆弱点是什么?加盐防什么攻击?
挑战-应答和 OTP 都靠什么防重放?
零知识证明的三个原则?山洞问题怎么体现合理性?
Kerberos 的 KDC 由哪两部分组成?三步流程是什么?
防消息重放的三种"非重复值"是什么?时间戳的缺点?
CH6-访问控制.html。
📝强化题库(34 选择 + 30 填空 = 64 题)
覆盖本章全部知识点,含【作业举一反三】变体题。选择题点选即时判分;填空题输入后点"检查"或"显示答案"。