# 一、密码学基础
# 1.1 基本概念
# 保密通信模型
| 要素 | 说明 |
|---|---|
| 明文 | 原始可读信息 |
| 密文 | 加密后的信息 |
| 加密密钥 | 用于加密过程的参数 |
| 解密密钥 | 用于解密过程的参数 |
通信流程:
- 发送方使用加密密钥将明文转为密文
- 密文通过公共信道传输
- 接收方使用解密密钥还原明文
- 安全关键: 密钥传输的安全性
# 密码系统安全性
科克霍夫准则(Kerckhoffs's Principle):
- 系统安全性应仅依赖于密钥的保密性,而非算法的保密性
- 算法公开、密钥保密 → 可评估的安全模型
安全性评估要点:
- 即使截获密文,攻击者无法获取明文
- 密钥传输需独立的安全通道
- 典型威胁:中间人攻击获取密钥
# 密码算法分类
| 类型 | 特点 | 典型算法 | 关键问题 |
|---|---|---|---|
| 对称密码 | 加解密使用相同密钥 | DES、3DES、AES、SM4 | 密钥分发安全 |
| 非对称密码 | 使用公钥 / 私钥对 | RSA、ECC、SM2 | 计算复杂度高 |
# 1.2 密码学发展
# 发展阶段(CSP 4.2 版本三代划分法)
| 阶段 | 时间 | 核心特征 | 里程碑 |
|---|---|---|---|
| 古典密码学 | 1949 年前 | 数据安全完全依赖算法保密 | 凯撒密码、恩尼格玛机 |
| 近代密码学 | 1949–1975 | 密码学成为科学学科 | 香农《保密系统的通信理论》 |
| 现代密码学 | 1976 年至今 | 公钥密码学诞生 | Diffie-Hellman 密钥交换 |
注意: 不同资料可能有不同分期方式,以当前教材为准。
# 古典密码学
典型分类:
| 类型 | 原理 | 示例 |
|---|---|---|
| 替代密码 | 用新字符集替换原字符集 | abcde → 12345 |
| 置换密码 | 保持字符不变,仅改变位置 | abcde → edcba |
实际中常将两种方法结合使用提高安全性。
例题:凯撒密码
- 加密原理:典型的替代密码,字母位移固定量(A→D, T→W, T→W, A→D, C→F, K→N,即 ATTACK → DWWDFN)
- 安全缺陷:字符对应关系固定,易被频率分析破解
例题:恩尼格玛密码
- 机械结构:键盘–转子–灯泡的三部件机电系统
- 核心创新:转子每日变更初始位置,实现变代换
- 加密流程:
- 设置转子初始位置(如 AAA)
- 每输入字符转子前进 1 位(AAA → AAB)
- 通过导线连接输出加密字符
- 历史意义:二战中广泛使用,最终被盟军破解
# 现代密码学
革命性突破: 1976 年 Diffie & Hellman 提出非对称加密(公钥密码学)
- 核心价值:解决密钥分发与管理难题
- 新功能:支持数字签名等
DH 算法原理:
- 数学基础:离散对数问题(P 为大素数,G 为原根)
- 密钥生成过程:
- 双方各自选择私钥(如 x=2, y=3)
- 计算公钥并交换:、
- 各自计算共享密钥:
- 安全本质:离散对数问题的计算不可行性
# 密码系统安全性的三大影响因素
| 因素 | 说明 |
|---|---|
| 算法复杂度 | 算法的数学强度 |
| 密钥机密性 | 密钥是否被泄露 |
| 密钥长度 | 如 100 位密钥需 次穷举尝试 |
实用安全标准:(满足其一即可视为安全)
- 破译计算量不可实现
- 破译时间超过信息生命周期
- 破译成本超过信息价值
# 1.3 对称密码算法
# 基本概念
- 定义: 加密密钥和解密密钥相同或实质上等同的算法
- 优点: 加密效率高(相比非对称加密快约 100 倍)
- 缺点:
- 密钥交换存在安全隐患
- 密钥管理复杂度随用户数量呈指数增长( 个用户需 个密钥)
# 分组密码工作模式
对称分组密码需配合工作模式使用,CISP 常考以下模式:
| 模式 | 全称 | 特点 | 安全性 |
|---|---|---|---|
| ECB | 电子密码本模式 | 每块独立加密,可并行 | 相同明文得相同密文,不安全 |
| CBC | 密码分组链接模式 | 前一块密文参与后一块加密 | 需 IV,抵抗重放攻击 ⭐最常用 |
| CFB | 密文反馈模式 | 将分组密码转为流密码 | 适合实时数据传输 |
| OFB | 输出反馈模式 | 密钥流独立于明文 / 密文 | 传输中比特翻转影响小 |
| CTR | 计数器模式 | 使用递增计数器生成密钥流 | 可并行加密 / 解密,效率高 |
考试重点: CBC 是最常用的工作模式,ECB 安全性最弱应避免使用。
# DES 算法
| 属性 | 说明 |
|---|---|
| 全称 | Data Encryption Standard(数据加密标准) |
| 历史 | 由 IBM "Lucifer" 算法改进,1977 年被美国政府采纳为联邦标准 |
| 密钥长度 | 64 位(实际有效 56 位 + 8 位校验) |
| 分组长度 | 64 位 |
| 加密轮数 | 16 轮 |
| 特点 | 基于 XOR 运算,随计算性能提升已不再安全 |
# 3DES(三重 DES)
- 本质:对 DES 进行三次加密(加密–解密–加密,即 EDE)
- 有效密钥长度:112 位或 168 位
- 缺点:效率低(DES 的三倍时间),现已被 AES 取代
# AES 算法
| 属性 | 说明 |
|---|---|
| 全称 | Advanced Encryption Standard(高级加密标准) |
| 分组长度 | 128 位 |
| 密钥长度 | 可选 128/192/256 位 |
| 加密轮数 | 10/12/14 轮(对应不同密钥长度) |
| 优势 | 安全性显著高于 DES,执行效率也更高 |
# SM4 算法(国产)
| 属性 | 说明 |
|---|---|
| 地位 | 中国国家密码管理局发布的分组密码标准(GM/T 0002-2012) |
| 分组长度 | 128 位 |
| 密钥长度 | 128 位 |
| 加密轮数 | 32 轮 |
| 应用 | 无线局域网标准 WAPI、商用密码应用 |
| 特点 | 算法公开,设计高效,安全性高 |
CISP 考点: SM4 是我国商用密码标准,需与非对称算法 SM2、哈希算法 SM3 区分记忆。
# 1.4 非对称密码算法
# 基本概念
- 别名: 公钥密码算法
- 核心特征: 加密密钥和解密密钥不同
- 公钥: 公开的加密密钥(可公开传播)
- 私钥: 保密的解密密钥(永不传输,保存在本地设备)
- 加密规则: 公钥加密需私钥解密,私钥加密需公钥解密
安全本质: 无法从公钥反向推导私钥(基于数学难题)。
| 典型算法 | 数学基础 |
|---|---|
| RSA | 大整数因数分解难题 |
| ECC | 椭圆曲线离散对数问题 |
| ElGamal | 离散对数问题 |
| SM2(国产) | 椭圆曲线公钥密码算法 |
# 对称 vs 非对称算法对比
| 对比维度 | 对称算法 | 非对称算法 |
|---|---|---|
| 加密速度 | 快(约 100 倍) | 慢(计算复杂度高) |
| 密钥管理 | 个用户需 个密钥 | 个用户只需 对密钥 |
| 安全信道 | 需额外安全信道传输密钥 | 无需预先共享密钥 |
| 典型应用 | 大量数据加密 | 密钥交换、数字签名 |
# RSA 算法
| 属性 | 说明 |
|---|---|
| 发明 | 1978 年,Rivest–Shamir–Adleman |
| 数学基础 | 大整数因数分解难题 |
| 安全要求 | 当前推荐密钥长度 2048 位及以上 |
| 应用 | 数字签名、密钥传输 |
| 局限 | 计算量大,资源消耗高 |
# SM2 算法(国产)
| 属性 | 说明 |
|---|---|
| 地位 | 中国国家密码管理局发布的椭圆曲线公钥密码算法(GM/T 0003-2012) |
| 数学基础 | 椭圆曲线离散对数问题(ECC) |
| 优势 | 相比 RSA,更短的密钥长度达到同等安全强度(SM2 256 位 ≈ RSA 2048 位) |
| 功能 | 支持加密、数字签名、密钥交换 |
| 应用 | 商用密码应用、电子认证服务 |
CISP 考点: SM2 基于 ECC,密钥短、性能高;RSA 基于大数分解,密钥长、计算慢。两者数学基础不同,SM2 是 ECC 的中国标准实现。
# 1.5 数字信封
# 基本原理
- 思想: 结合对称加密的高效性和非对称加密的安全性
- 为什么需要数字信封? 对称加密快但密钥分发难,非对称加密安全但效率低 → 两者取长补短
实现步骤:
- Alice 用对称密钥 K1 加密明文(高效处理大数据)
- 用 Bob 的公钥 K2 加密对称密钥 K1
- 将两个密文传输给 Bob
- Bob 先用私钥解密获得 K1,再用 K1 解密密文
安全机制:
- 双重加密保障:对称加密保护数据,非对称加密保护密钥
- 截获者无法解密:缺少 Bob 私钥无法获取 K1
关键理解: 数字信封解决的是 "如何安全地传输对称密钥" 的问题。
# 1.6 哈希函数
# 定义与核心作用
- 定义: 将任意长度数据映射为定长摘要的函数
- 核心作用: 数据完整性检查,防止传输过程中被截断、篡改或追加内容
| 算法 | 输出长度 | 安全性 |
|---|---|---|
| MD5 | 128 位 | 已破解(王小云教授) |
| SHA-1 | 160 位 | 已破解(Google) |
| SHA-256 | 256 位 | 安全(推荐使用) |
| SM3(国产) | 256 位 | 安全 |
# 数学特性
| 特性 | 定义 | 说明 |
|---|---|---|
| 单向性 | 无法通过哈希值还原原始数据 | 如无法通过哈希值还原 1GB 电影 |
| 弱抗碰撞性 | 给定文件 A,难以找到文件 B 使 hash (A)=hash (B) | 王小云教授曾破解 MD5 |
| 强抗碰撞性 | 寻找任意两个哈希值相同的文件 | Google 已破解 SHA-1 |
# 典型应用
- 发送方计算数据哈希值,随数据发送
- 接收方重新计算并比对哈希值
- 不一致 → 数据被篡改
重要提醒:
- ⚠️ 不保证机密性(传输的是明文 + 哈希值)
- 哈希值长度决定安全性(SHA-256 比 MD5 更安全)
# SM3 算法(国产)
| 属性 | 说明 |
|---|---|
| 地位 | 中国国家密码管理局发布的密码哈希算法(GM/T 0004-2012) |
| 输出长度 | 256 位 |
| 应用 | 商用密码应用、数字签名中替代 SHA-256 |
| 特点 | 算法公开,输出长度与 SHA-256 相同,安全性可媲美 SHA-256 |
# 1.7 消息认证码(MAC)
# 基本概念
- 别称: 消息鉴别码(Message Authentication Code)
- 核心机制: 结合密钥生成固定长度数据块附加在消息后
# 双重作用
| 作用 | 说明 |
|---|---|
| 完整性校验 | 基础功能,检测数据是否被篡改 |
| 时间 / 顺序验证 | 抗重放攻击(结合时间戳 / 序列号) |
# 实现方式
- 将明文与时间戳 / 序列号组合后做哈希运算
- 典型算法:
- CBC-MAC: 基于分组密码
- HMAC: 基于哈希函数(更常用)
# 应用场景
- 防止攻击者复制并重复发送捕获的数据包
- 接收方通过时间戳 / 序列号识别过期或重复消息
区别: MAC ≠ 哈希。MAC 有密钥参与,哈希无密钥;MAC 可同时验证完整性和消息源。
# 1.8 数字签名
# 实现步骤
- 发送方用哈希算法生成数据摘要
- 用私钥加密摘要形成签名
- 发送原始数据 + 签名
- 接收方用公钥解密签名获得摘要
- 比对接收方自算摘要与解密摘要
# 三大特性
| 特性 | 说明 |
|---|---|
| 不可伪造性 | 只有私钥持有者能生成有效签名 |
| 不可否认性 | 用公钥可验证签名来源(私钥唯一性) |
| 完整性 | 哈希值比对保证数据未被篡改 |
# 关键区别
| 对比 | 说明 |
|---|---|
| 与哈希函数对比 | 增加了非对称加密环节 |
| 与加密服务对比 | 加密对象是哈希值而非明文 |
典型误区:
- ⚠️ 数字签名不保证机密性(仍传输明文)
- ⚠️ 私钥加密的是哈希值(摘要),而非原始数据
# 1.9 公钥基础设施 PKI
# 定义
- 组成要素: 硬件、软件、人员、策略和规程的集合
- 核心功能: 实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销
- 历史背景: 美国政府曾限制非对称加密算法使用(如 RSA),后妥协采用数字证书方案
# PKI 架构
┌─────────────────────────────────────────────────┐
│ PKI │
│ ┌──────────┐ ┌──────────┐ ┌─────────────┐ │
│ │ CA │ ←→│ RA │ ←→│ 终端实体 │ │
│ │ 认证权威 │ │ 注册权威 │ │ (人/设备等) │ │
│ └────┬─────┘ └──────────┘ └─────────────┘ │
│ │ │
│ ┌────▼─────┐ │
│ │ 目录服务 │ 证书数据库 │
│ └──────────┘ │
└─────────────────────────────────────────────────┘
| 组件 | 职责 |
|---|---|
| CA(认证权威) | 核心:签发证书、更新证书、管理证书、撤销查询;附加:审计统计、CRL(证书吊销列表)、OCSP(在线证书状态协议) |
| RA(注册权威) | 类似 "派出所":受理证书申请、审核用户身份、协助证书颁发、维护证书生命周期 |
| 目录服务 | 证书数据库:存储证书编号、有效期等元数据 |
| 终端实体 | 持有公私钥对和相应公钥证书(可以是人、设备、进程等) |
信任链机制:
- 关键点:所有实体必须信任根 CA(RCA)
- 现实类比:如同身份证最终由公安部背书
# 数字证书
- 标准规范: 遵循 X.509 国际标准格式
- 核心内容:
- 拥有者的身份信息
- 对应的公开密钥
- ⚠️ 特别注意:证书不包含私钥
| 技术 | 组成 | 实现功能 |
|---|---|---|
| 数字信封 | 对称加密 + 公钥加密 | 信息加密 |
| 数字签名 | 哈希 + 私钥加密 | 抗抵赖 + 完整性 |
| 数字证书 | 身份 + 公钥 | 身份认证 + 密钥分发 |
# PKI 体系工作流程
- 证书申请: 用户向 RA 提交身份信息和证书请求
- 审核验证: RA 审核通过后将请求转发给 CA
- 证书签发: CA 生成包含用户公钥的数字证书
- 证书发布: CA 将证书发布到目录服务供查询
- 证书使用: 应用程序通过验证证书有效性实现安全通信
# 1.10 身份鉴别基础
# 标识与鉴别
| 概念 | 说明 |
|---|---|
| 标识(Identification) | 实体身份在计算机中的表达(如用户名) |
| 鉴别(Authentication) | 验证实体是否与其声称的身份相符 |
鉴别的作用:
- 访问控制的前提条件
- 提供审计追踪依据
- 实现数据源认证
# 鉴别系统构成
| 角色 | 说明 | 示例 |
|---|---|---|
| 验证者 | 发起验证请求的一方 | 服务器 |
| 被验证者 | 需要证明身份的一方 | 用户 |
| 可信赖者 | 第三方认证机构 | CA(GlobalSign、DigiCert 等) |
# 鉴别类型
| 类型 | 说明 | 应用场景 |
|---|---|---|
| 单向鉴别 | 单方面验证对方身份 | 客户端登录服务器 |
| 双向鉴别 | 双方互相验证身份 | SSL/TLS 握手 |
| 第三方鉴别 | 通过可信第三方完成验证 | Kerberos 协议中的 KDC |
# 二、认证技术
# 2.1 身份鉴别方式
# 三种鉴别方式
| 方式 | 原理 | 典型手段 | 安全强度 |
|---|---|---|---|
| 基于实体所知 | 知识要素 | 密码、PIN 码 | 弱 |
| 基于实体所有 | 物理 / 数字凭证 | 身份证、智能卡、U 盾 | 中 |
| 基于实体特征 | 生物特征 | 指纹、人脸、虹膜 | 高(非绝对) |
# 多因素认证
| 类型 | 定义 | 示例 |
|---|---|---|
| 双因素认证 | 组合两种不同类别的验证方式 | 密码(所知)+ 短信验证码(所有) |
| 多因素认证 | 组合三种及以上不同类别的验证方式 | 密码 + 智能卡 + 指纹 |
⚠️ 重要: 同类多验证仍属单因素(如同时使用密码 + PIN 码,仍属 "所知" 这一类)。
例题: 仅服务器要求客户端提供凭证,无反向验证 → 单向鉴别
- 易错点:容易忽略 "双向" 需包含交互验证过程
# 2.2 基于实体所知的鉴别
# 基本特点
| 维度 | 说明 |
|---|---|
| 优势 | 实现简单、部署成本低(无需专用硬件) |
| 局限 | 提供弱鉴别强度(相比生物特征等) |
| 应用 | 最广泛使用的身份验证方式 |
# 安全威胁与防护
# 暴力破解防护
系统级防护:
- 账户锁定策略(如连续 5 次错误锁定 30 分钟)
- 随机验证码机制(图形 / 滑块 / 图像识别验证)
用户级防护:
- 密码构造技巧: 使用诗句首字母 + 大小写变换 + 平台标识
- 例:"锄禾日当午" →
CHRDw@jd
- 例:"锄禾日当午" →
- 记忆方法: 建立可扩展的密码派生规则(不同平台添加不同后缀)
# 木马窃取防护
输入保护技术:
- 安全输入控件(防止内存读取)
- 动态软键盘(对抗击键记录)
- 随机字符排列(防止屏幕截图重现)
攻击原理: 木马通过监听
password/username等字段名触发记录。
# 密码嗅探防护
| 防护手段 | 机制 | 优势 |
|---|---|---|
| 哈希加密 | 使用单向函数处理含随机数的组合 | 防止明文存储 / 传输 |
| 一次性口令 | 每次认证使用不同密码 | 防御重放攻击 |
| — 同步随机串 | 银行动态令牌 | 无需网络传输密钥 |
| — 时间戳同步 | Google Authenticator | 基于时间同步算法 |
# 挑战应答机制
工作流程:
- 服务端发送随机挑战数
- 客户端组合 "用户名 + 密码 + 随机数" 计算哈希
- 服务端验证哈希匹配性
安全特性:
- 防止明文传输(始终传输哈希值)
- 防止重放攻击(每次随机数不同)
- 典型应用:早期 PPPoE 拨号认证系统
# 2.3 基于实体所有的鉴别
# IC 卡类型
| 类型 | 安全等级 | 特点 | 示例 |
|---|---|---|---|
| 内存卡 | ⭐ | 信息不加密存放,易被读取复制 | 早期磁条银行卡 |
| 逻辑加密卡 | ⭐⭐ | 增加加密功能,比内存卡更安全 | IC 电话卡 |
| CPU 卡 | ⭐⭐⭐ | 具备运算能力,可处理敏感数据 | 银行 U 盾 |
特点:
- 优势:难以复制(特别是 CPU 卡),安全性高
- 缺点:存在物理损坏风险(弯折 / 老化),丢失后无法通过认证
# 2.4 基于实体特征的鉴别
# 常见生物识别技术
| 技术 | 特征 | 安全 / 便利性 |
|---|---|---|
| 指纹识别 | 指纹纹路 | 成本大幅降低,千元机标配,但非绝对安全(拼接指纹可攻破) |
| 掌纹 / 静脉 | 手掌纹路 / 血管分布 | 安全性较高 |
| 虹膜识别 | 瞳孔周围色彩部分 | 出生 6–18 个月成型后终生不变 |
| 视网膜识别 | 视网膜血管分布 | 血管分布模式高度唯一 |
| 语音识别 | 语音、语速、语调 | 微信声音锁(我的 → 设置 → 安全) |
| 面部识别 | 鼻梁、眼眶、额头、下颚骨骼结构 | 技术演进:平面 → 立体 → 活体检测 |
# 面部识别技术演进
| 阶段 | 技术 | 弱点 |
|---|---|---|
| 初期 | 平面扫描 | 可用照片欺骗 |
| 中期 | 立体扫描 | 可用 3D 模型欺骗 |
| 当前 | 活体检测 | 需配合张嘴、扭头、眨眼等动作 |
# 鉴别系统有效性评价指标
| 指标 | 定义 | 安全关系 |
|---|---|---|
| FRR(错误拒绝率) | 合法用户被系统错误拒绝的概率 | FRR ↑ → 系统越安全(宁可错杀) |
| FAR(错误接受率) | 非法用户被系统错误接受的概率 | FAR ↑ → 系统越不安全 |
| CER(交叉错判率) | FRR = FAR 时的交叉点 | 反映系统整体准确度 |
实际应用:
- 安全权衡: 厂商需在安全性和用户体验间平衡
- 漏洞案例: 华为手机曾出现拼接指纹通过验证(前半部分右手食指 + 后半部分左手食指)
# 2.5 Kerberos 协议
# 开发背景
- 1985 年由美国麻省理工学院(MIT) 开发
- 用于通信实体间的身份认证
- 1994 年 V5 版本作为 Internet 标准草案公布
- 微软 Windows NT 域采用该协议进行登录验证
# 协议特点
- 基于对称密码算法为用户提供安全的单点登录服务
- 包含可信第三方认证服务
- 名称由来: 希腊神话中看守地狱入口的三头犬 "Kerberos",象征守护身份验证入口
# 核心优势
- 避免本地保存密码及会话中传输密码
- 实现客户端和服务器的双向认证
# 体系架构
| 组件 | 全称 | 作用 |
|---|---|---|
| KDC | 密钥分发中心 | 系统核心,维护所有用户账户信息 |
| AS | 认证服务器 | 处理初始认证请求 |
| TGS | 票据授权服务器 | 负责票据授权 |
| 应用服务器 | — | 提供实际服务的服务器 |
| 客户端 | — | 请求服务的用户终端 |
# 认证过程(三次通信)
第一阶段 第二阶段 第三阶段
┌─────┐ ┌─────┐ ┌─────┐
│客户端│──①请求──→│ AS │ │客户端│──③请求──→│ TGS │
│ │←──②TGT───│ │ │ │←──④SGT──│ │
└─────┘ └─────┘ └─────┘
│
⑤请求
│
▼
┌──────┐
│ 应用 │
│ 服务器 │
└──────┘
│
⑥服务
│
▼
┌─────┐
│客户端│
└─────┘
| 阶段 | 过程 | 类比 |
|---|---|---|
| 第一阶段(获 TGT) | 客户端向 AS 发送认证请求 → AS 验证后返回 TGT | 获得未盖章的 "空头支票" |
| 第二阶段(获 SGT) | 客户端携带 TGT 向 TGS 请求 → TGS 签发 SGT | TGS 为 TGT "盖章" 使其生效 |
| 第三阶段(获服务) | 客户端使用 SGT 向应用服务器请求服务 | 凭盖章票据获取服务 |
跨域认证: 当客户端和服务处于不同域时,过程会更复杂,但基础原理相同。
# 安全机制
- 全程避免明文传输密码
- 通过时间戳防止重放攻击
- 票据具有有效期限
# 2.6 单点登录(SSO)
# 核心概念
| 属性 | 说明 |
|---|---|
| 定义 | 一次认证即可访问所有授权网络资源 |
| 实质 | 安全凭证在多个应用系统间的传递或共享 |
安全优势:
- 减轻安全维护工作量
- 减少认证错误
- 提高操作效率
- 提供统一可靠的身份验证
实现方式:
- 通过第三方认证中心(如 Kerberos 中的 KDC)集中管理身份信息
- 用户只需向认证中心提交一次凭证,即可获得访问多个系统的权限
# 2.7 AAA 服务(认证、授权、计费)
# 基本概念
3A 服务组成: 认证(Authentication)、授权(Authorization)、计费(Accounting)三个英文首字母均为 A,故称 3A 服务。
# 主要协议对比
| 协议 | 传输 | 加密范围 | 功能范围 | 特点 |
|---|---|---|---|---|
| RADIUS | UDP | 仅密码字段加密 | 认证 + 计费 | 传输简捷高效,但存在嗅探风险 |
| TACACS+ | TCP | 除包头外全数据加密 | 完整 3A(认证、授权、计费) | 思科专有协议,实时性较差 |
| Diameter | TCP/SCTP | 完整加密 | 完整 3A | RADIUS 的升级版,公有标准 |
CISP 考点: RADIUS vs TACACS+ 的对比是常考内容。核心区别:RADIUS 基于 UDP、仅加密密码;TACACS+ 基于 TCP、全数据加密、思科私有。
# 三、访问控制技术
# 3.1 基本概念
# 核心定义
在保证系统资源最大共享前提下,对用户访问权限进行管理,防止信息被非授权篡改和滥用。
# 三大作用
- 合法访问保障: 确保用户在安全策略范围内正常工作
- 非法访问拦截: 拒绝非法用户的非授权访问请求
- 越权操作防范: 阻止合法用户的越权服务请求
本质: 对通过身份认证的合法用户进行行为约束,限制其系统操作权限。
# 访问控制模型四要素
| 要素 | 说明 | 示例 |
|---|---|---|
| 主体(Subject) | 发起访问请求的实体 | 用户、进程 |
| 客体(Object) | 被访问的资源对象 | 文件、数据库 |
| 控制决策 | 基于预设规则判断访问权限 | ACL 条目 |
| 控制实施 | 执行最终的访问授权 / 拒绝操作 | 系统执行 |
考试重点: 需掌握模型中四个组成要素的具体含义及其相互关系。
# 三种访问控制模型
| 模型 | 英文缩写 | 核心机制 | 安全性 |
|---|---|---|---|
| 自主访问控制 | DAC | 客体的创建者(属主)决定访问权限 | 相对较低 |
| 强制访问控制 | MAC | 系统根据固定安全属性决定访问权限 | 高 |
| 基于角色访问控制 | RBAC | 权限与角色关联,用户通过角色获得权限 | 中 |
记忆要点: 考试需要准确记忆三种模型的英文缩写对应关系。
# 3.2 自主访问控制模型(DAC)
# 核心机制
客体的创建者(属主) 决定该客体的访问权限。
| 维度 | 说明 |
|---|---|
| 灵活性 | 具有较好的易用性和可扩展性 |
| 安全性 | 相对不高 |
# 两种实现方式
| 实现方式 | 关联方式 | 实现方法 | 示例 |
|---|---|---|---|
| 访问控制表(ACL) | 权限与客体关联 | 在客体上附加主体明细表 | 客体 y 的 ACL:主体 b (R)、主体 d (R,Own) |
| 访问能力表 | 权限与主体关联 | 为每个用户维护可访问客体及权限表 | 主体 b 的能力表:客体 x (R)、客体 y (R,Own) |
理解:ACL 站在文件角度 "谁能访问这个文件";能力表站在用户角度 "我能访问哪些文件"。
# 3.3 强制访问控制模型(MAC)
# 核心机制
主体和客体都有固定安全属性,系统根据属性决定访问权限。
| 维度 | 说明 |
|---|---|
| 强制性 | 安全属性不可变更 |
| 安全性 | 较高,适用于军事等高安全需求系统 |
# BLP 模型(Bell-LaPadula)
| 属性 | 说明 |
|---|---|
| 提出 | 1973 年,Bell 和 LaPadula |
| 地位 | 第一个严格形式化的安全模型 |
| 用途 | 多级访问控制,保证信息机密性 |
| 策略 | 自主安全策略 + 强制安全策略 |
安全级组成:
- 密级: 绝密 > 机密 > 秘密 > 公开
- 范畴: 军事、外交、商务等
安全策略(两个核心规则):
| 规则 | 含义 | 方向 |
|---|---|---|
| 简单安全规则(向下读) | 主体只能读安全级小于等于自己的客体 | ↓ 读 |
| *- 规则(向上写) | 主体只能写安全级大于等于自己的客体 | ↑ 写 |
本质: "不上读,不下写"—— 防止高密级信息流向低密级。
# Biba 模型
| 属性 | 说明 |
|---|---|
| 提出 | 1977 年,Biba |
| 特点 | 与 BLP 数学对偶的完整性保护模型 |
| 用途 | 保护数据完整性 |
完整级:
- 安全级:极为重要 > 非常重要 > 重要等
- 范畴:军事、外交、商务等
安全策略:
| 规则 | 含义 |
|---|---|
| 向上读 | 主体可读客体当且仅当客体完整级支配主体 |
| 向下写 | 主体可写客体当且仅当主体完整级支配客体 |
本质: "向上读,向下写"—— 与 BLP 方向相反,保护数据不被低完整性来源污染。
# Clark-Wilson 模型
| 属性 | 说明 |
|---|---|
| 提出 | 1987 年,Clark 和 Wilson |
| 特点 | 确保商业数据完整性的访问控制模型 |
| 核心机制 | 通过 TP(转换过程) 和 IVP(完整性验证过程) 实现控制 |
| 策略 | 操作前后数据必须满足一致性条件 |
# Chinese Wall 模型
| 属性 | 说明 |
|---|---|
| 核心机制 | 防止利益冲突的访问控制 |
| 实现方式 | 将有竞争关系的数据集构成利益冲突类(COI) |
示例:
- 银行 COI 类:银行 a、银行 b、银行 c → 顾问如为银行 a 服务,则不能再为银行 b、c 服务
- 石油公司 COI 类:公司 W、公司 X、公司 U、公司 V
# 3.4 基于角色的访问控制模型(RBAC)
# 核心机制
- 系统内置多个角色
- 权限与角色关联
- 用户需成为角色才能获得权限
- 用户必须激活角色才能执行操作
# RBAC 模型四种类型
| 类型 | 说明 |
|---|---|
| RBAC₀ | 基本模型,包含用户(U)、角色(R)、会话(S)和权限(P) |
| RBAC₁ | RBAC₀ + 安全等级及角色继承关系 |
| RBAC₂ | RBAC₀ + 约束条件(如出纳和会计不能为同一人) |
| RBAC₃ | RBAC₁ + RBAC₂(最完整) |
CISP 考点: 理解 RBAC 的核心是 "用户 ↔ 角色 ↔ 权限" 的间接关联关系。
# 3.5 特权管理基础设施(PMI)
# 功能
- 系统定义和描述权限管理
- 建立用户身份到应用授权的映射
- 支持访问控制等应用
- 基础: 建立在 PKI 提供的身份认证服务基础上
- 授权模式: 基于属性证书
# PKI vs PMI 对比
| 维度 | PKI | PMI |
|---|---|---|
| 解决的问题 | "你是谁?" | "你能做什么?" |
| 绑定关系 | 身份与公钥绑定 | 身份与角色 / 权限绑定 |
| 实现功能 | 身份鉴别 | 授权管理 |
| 类比 | 护照 | 签证 |
# 附录:知识小结
| 知识点 | 核心内容 | 考试重点 / 易混淆点 | 难度 |
|---|---|---|---|
| 密码学发展 | 古典(算法保密)→ 近代(香农)→ 现代(公钥) | 分代标准(CSP 4.2 归为三代) | ⭐⭐ |
| 古典密码学 | 替代密码(替换字符集)、置换密码(改变位置) | 凯撒密码是替代密码,恩尼格玛属古典范畴 | ⭐ |
| DH 算法 | 基于离散对数,解决密钥传递问题 | 数学基础是离散对数,非 RSA 的大数分解 | ⭐⭐⭐ |
| 对称加密 | DES(64 位分组)、AES(128/192/256 位密钥)、SM4 | DES 实际 56 位密钥,AES 轮数随密钥长度增加 | ⭐⭐ |
| 分组工作模式 | ECB(不安全)、CBC(最常用)、CFB/OFB/CTR | CBC 需 IV,ECB 相同明文得相同密文 | ⭐⭐ |
| 非对称加密 | 公钥加密私钥解密,反之亦然 | 密钥成对使用,公钥可公开分发 | ⭐⭐⭐ |
| 数字信封 | 对称加密明文 + 公钥加密对称密钥 | 结合对称高效与非对称安全 | ⭐⭐⭐ |
| 哈希函数 | MD5(128)、SHA-1(160)、SHA-256、SM3 | 仅保证完整性,不保证机密性;注意抗碰撞性 | ⭐⭐ |
| 数字签名 | 哈希 + 私钥加密哈希值 | 实现不可伪造、不可否认、完整性 | ⭐⭐⭐⭐ |
| PKI 体系 | CA 签发证书、RA 注册审核、证书绑定身份与公钥 | 信任链基于根 CA,证书不含私钥 | ⭐⭐⭐⭐ |
| 身份鉴别 | 单向 / 双向 / 第三方;所知 / 所有 / 特征 | 双因素需不同类别机制组合 | ⭐⭐ |
| Kerberos | AS → TGT、TGS → SGT、SGT → 服务 | 空票(TGT)→ 生效票(SGT)的过程 | ⭐⭐⭐⭐ |
| AAA 服务 | RADIUS(UDP)、TACACS+(思科私有)、Diameter(公有) | RADIUS 仅加密密码,TACACS+ 全数据加密 | ⭐⭐⭐ |
| DAC(自主) | 属主决定权限,通过 ACL / 能力表实现 | ACL 与客体关联,能力表与主体关联 | ⭐⭐ |
| MAC(强制) | BLP(机密性)不上读不下写;Biba(完整性)上读下写 | BLP ↛ Biba 对偶;BLP 写可提升安全级 | ⭐⭐⭐⭐ |
| RBAC(角色) | 用户 ↔ 角色 ↔ 权限 | RBAC₀ 基本 → RBAC₃ 最完整 | ⭐⭐⭐ |
| PMI | 基于 PKI,属性证书授权 | PKI = 护照(身份),PMI = 签证(权限) | ⭐⭐⭐ |