第 3 章:身份认证与访问控制 —— "你是谁"和"你能做什么"¶
场景: 你回到家,先用钥匙开门(身份认证),然后进入不同房间——卧室你可以随便进,但父母的保险柜房间你不能进(访问控制)。信息系统的安全同样从这两个问题开始:你是谁?你能做什么?
3.1 身份认证的三类方式¶
核心比喻:认证就是证明"你是你"
怎么证明你是你?三种方式:
- 你知道什么 (密码)—— 像门锁密码
- 你有什么 (令牌)—— 像门禁卡
- 你是什么 (生物特征)—— 像指纹锁
| 认证因素 | 类型 | 示例 | 优点 | 缺点 |
|---|---|---|---|---|
| 知识因素 | 你知道什么 | 密码、PIN 码、安全问题 | 简单、零成本 | 易遗忘、易被猜测 |
| 持有因素 | 你有什么 | 智能卡、U-Key、手机 | 不易复制 | 可能丢失或被盗 |
| 固有因素 | 你是什么 | 指纹、人脸、虹膜 | 不会丢失 | 隐私问题、不可更改 |
多因素认证(MFA)¶
双因素认证(2FA)
同时使用两种不同类别的认证因素,安全性大幅提升:
- 密码 + 短信验证码(知识 + 持有)
- 指纹 + PIN 码(固有 + 知识)
- 密码 + U-Key(知识 + 持有)
即使密码泄露,攻击者没有你的手机/U-Key 也无法登录。
3.2 认证协议¶
基于口令的认证¶
密码存储安全
绝对不要明文存储密码! 应该存储密码的哈希值(加盐):
"加盐"(Salt)是在密码后附加随机字符串再哈希,防止彩虹表攻击。
Kerberos 协议¶
Kerberos 是经典的网络认证协议,使用"票据"机制:
客户端 ──→ AS(认证服务器) : "我是 Alice,请求票据"
AS ──→ 客户端 : "这是你的 TGT(票据授予票据)"
客户端 ──→ TGS(票据授予服务): "用 TGT 换访问文件服务器的票据"
TGS ──→ 客户端 : "这是访问文件服务器的票据"
客户端 ──→ 文件服务器 : "这是我的票据,让我访问"
| 组件 | 全称 | 作用 |
|---|---|---|
| AS | Authentication Server | 验证用户身份,发放 TGT |
| TGS | Ticket Granting Server | 发放访问特定服务的票据 |
| TGT | Ticket Granting Ticket | 用户身份的临时凭证 |
3.3 访问控制模型¶
核心比喻:访问控制就是"不同房间配不同钥匙"
家里每个人有不同的钥匙串:
- 孩子:只能开自己卧室和客厅
- 父母:能开所有房间
- 客人:只能进客厅和客卫
自主访问控制(DAC)¶
| 特点 | 说明 |
|---|---|
| 控制权 | 资源所有者决定谁可以访问 |
| 灵活性 | 高,用户可以自主授权 |
| 安全性 | 较低,权限可能被滥用 |
| 典型实现 | Linux 文件权限(rwx)、Windows NTFS 权限 |
强制访问控制(MAC)¶
| 特点 | 说明 |
|---|---|
| 控制权 | 系统根据安全策略强制控制 |
| 灵活性 | 低,用户不能自主授权 |
| 安全性 | 高,防止权限滥用 |
| 典型实现 | SELinux、AppArmor |
基于角色的访问控制(RBAC)¶
| 特点 | 说明 |
|---|---|
| 核心思想 | 权限不直接授予用户,而是授予角色 |
| 灵活性 | 高,便于管理 |
| 安全性 | 较高 |
| 典型实现 | 企业 ERP 系统、云平台 IAM |
3.4 常见考试题型¶
例题 1: 以下属于"你有什么"认证因素的是( )。
A. 密码 B. 指纹 C. 智能卡 D. PIN 码
查看答案
答案:C
智能卡属于持有因素(你有什么)。密码和 PIN 码属于知识因素(你知道什么),指纹属于固有因素(你是什么)。
例题 2: RBAC 访问控制模型中,权限被授予( )。
A. 用户 B. 角色 C. 组 D. 进程
查看答案
答案:B
RBAC(Role-Based Access Control)的核心是将权限授予角色,再将角色分配给用户。这样当用户职责变化时,只需更改其角色,无需逐一修改权限。
例题 3: 以下关于密码存储的说法,正确的是( )。
A. 明文存储便于找回密码 B. 使用 MD5 哈希存储即可 C. 应使用加盐哈希存储 D. 加密存储比哈希存储更安全
查看答案
答案:C
密码应使用加盐哈希存储。明文存储极其危险;MD5 已被破解,不适合安全场景;加密存储意味着可以解密还原,不如哈希(单向不可逆)安全。
要点总结¶
- 三类认证因素:知识(密码)、持有(令牌)、固有(生物特征)
- 多因素认证(MFA)结合两类以上因素,安全性大幅提升
- 密码存储必须加盐哈希,绝不能明文
- DAC:所有者自主授权;MAC:系统强制控制;RBAC:基于角色授权
- Kerberos 使用票据机制实现安全的网络认证
课后练习¶
-
认证设计 :为某网上银行设计登录认证方案,要求至少使用两种认证因素。
-
模型对比 :从控制权、灵活性、安全性三个维度对比 DAC、MAC 和 RBAC。
-
真题演练 :在 RBAC 模型中,用户通过( )获得相应的操作权限。
下一章预告: 身份确认了,权限也分配好了。但网络层面的攻击怎么防御?防火墙、IDS/IPS、VPN 如何保护我们的网络?第 4 章见。