Part 1. 密码协议
一、协议的基本概念
定义
两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤
含义
- 有序过程,必须按步骤依次进行
- 至少两个参与者
- 必须能够完成某项任务
好的密码协议的特点:
保密性、完整性、认证、不可否认性、真实性、公平性。
二、密码协议分类、基本密码协议
1. 按功能分类:
认证协议:
向一个实体提供另一个实体的可信度
密钥建立(交换、分配)协议:
在两个通信实体之间建立共享密钥
认证的密钥建立(交换、分配)协议:
在互证身份的基础上,两个通信实体建立共享密钥。
2. 根据ISO的七层参考模型分类:
高层协议 、 低层协议
3. 根据使用算法分类:
双钥协议、单钥协议、混合协议
4. 按裁决方式分类
仲裁协议
双方将各自关键信息交给可信第三方,由可信第三方证实双方信息的真实性,以此仲裁双方的真实性。
裁决协议
第三方不涉猎关键信息,在需要裁决时,双方提供关键证据给第三方,借助第三方进行裁决。
自动执行协议
即 无需第三方参与的协议方式,符合条件:当一方欺骗另一方时,双方可互相察觉,并停止当前合作。
三、 Diffie-Hellman 密钥交换协议
基于数学原理:有限域上求离散对数
目的:共享密钥
流程:
大质数 n, G(n) 内 选 大质数 g (n,g 可公开)
A人选取 随机大整数 x, 向 B方 发送 X = g^x mod n
B人选取 随机大整数 y, 向 A方 发送 Y= g^y mod n
A可得 KA = Yx mod n
B可得 KB = Xy mod n
则 双方共享的密钥为 K = KA = KB
中间人攻击方式:
因为没有数字认证的环节,所以中间人伪造一个 gz 分别发给A和B两个人,从而得到两个密钥 K1=gzx 和K2=gzy ,于是变成了A和B其实都在和中间人通信。
四、秘密分拆协议;
理解
如果每个人知道完整秘密,则秘密泄露风险很高
如果每个人只知道秘密的一部分,且每一部分都无法推断出完整秘密,则达到了降低泄密风险的目的。
这就是秘密分拆协议。
实操
将需要加密的内容分组、切割,加密后分别发送给不同的渠道/人,从而实现秘密分拆的效果
五、密码协议的安全性。
1. 对密码协议的攻击:
已知明文攻击
选择密文攻击
预言者会话攻击
并行会话攻击
2. 一些安全准则:
① 消息独立完整性原则(必须这一块消息的理解只需要这一块决定,不能借助上下文、其他信息块)
② 使用 形式化语言 进行协议描述 (使用数理语言;日常语言有模糊性)
③ 消息前提准确原则 (消息的前提条件清晰明确)
④ 明确加密的目的(明确目的、和如何使用;不能滥用加密,导致资源浪费)
⑤ 明确签名原则(明确签名的目的、如何使用、先签名后加密)
⑥ 随机数的使用原则 (尽可能使用真随机数、 高强度的伪随机数、随机周期足够长)
⑦ 时间戳的使用原则(使用相同时间标准的时间戳)
⑧ 编码原则
⑨ 最少安全假设原则 (怀疑一切)
3. 密码协议的安全性分析方法
攻击检验法(穿透测试)
对协议进行攻击,检验其是否具备抵抗某类、某些类攻击的能力。
形式语言逻辑分析法
根据数理语言、逻辑判断等进行安全性分析。
Part 2. 数字证书与公钥基础设施
一、公钥基础设施 PKI
<1> PKI定义:
Public Key Infrastructure 公钥管理基础设施
PKI是一种遵循标准的,利用公钥理论和技术建立的、提供安全服务的基础措施
公钥基础措施的目的 是从技术上实现 完整性和不可抵赖性等安全问题
PKI最主要的任务 是确立可信任的数字身份
实用中,PKI体系需要考虑 安全性、易用性、灵活性、经济、互操作性、可扩展性。
PKI的主要目的是 保证所存公钥的 真实性 和 完整性, 无需保证 公钥的 保密性。
<2> 组成
1. 证书机构 (CA数字证书认证中心)
CA数字证书认证中心 (Certificate Authority),是具有权威性、公正性的第三方可信任机构,是PKI体系的核心构件。
2. 注册机构 (RA数字证书注册中心)
RA数字证书注册中心,是数字证书注册审批机构,于CA在逻辑上是一个整体,执行不同的功能。
3. 证书发布库 (CRL)
集中存放CA办法证书和证书撤销列表,是公开信息库
可查询 公钥 和 对方是否在 黑名单
4. 密钥备份和恢复
针对用户密钥丢失的情况,PKI提供密钥备份和恢复机制。
5. 证书撤销
证书作废时,两种告知人们证书已被撤销的方式:
① KPI 周期性发布 被撤销证书的列表
② 用户在线查询 对方证书的状态。
6. PKI应用接口
<3> 应用
1. 认证服务
2. 数据完整性服务
3. 数据保密性服务
“数字信封”机制,即加密对称密钥
4. 不可否认服务
保证数据实体对自身行为的认可。
5. 公证服务
支持的公证服务为“数据认证”,即证明数据的有效性和正确性。
二、数字证书
概念
理解:类似于驾驶证 把驾驶权力与用户绑定;数字证书即将公钥信息与用户身份绑定。
概念 即一个计算机文件, 包含下列信息:主体名、序号、有效期(起始日期、终止日期)、签发者名、公钥。
结构
主体名、序号、有效期(起始日期、终止日期)、签发者名、公钥。
生成
Step1. 密钥生成
Step2. 注册
Step3. 验证
Step4. 证书生成
签名及验证
签名
Hash(证书字段) 使用MD-5或SHA-1杂凑算法,对 证书的所有字段(即用户信息)进行 哈希
对摘要 进行数字签名 使用RSA算法等 对生成hash值进行签名
验证
三、交叉证书
即,每个国家(区域)各自有自己的CA系统,CA系统之间的信任也是一个值得商榷的问题,所以采用交叉证书。
交叉证书使得两个不同的根CA 进行交叉验证。
四、X.509 证书
概念
国际电信联盟X.509 定义了X.500目录业务向用户提供认证业务的一个框架,目录的作用是存放用户的公钥证书。
基础 是 公钥密码体制 和 数字签名
证书内容
管理建构
X.509建议将CA所有以层次结构组织起来。图所示为X.509的CA层次结构的一个例子,其中的内部节点表示CA,叶节点表示用户。
⇒ 证书验证就相当于找树链
认证方式
单向认证、 双向认证、三向认证
Part 3. 密钥管理
一、密钥管理的内容
包括密钥的生产、装入、存储、备份、分配、更新、吊销、销毁等内容。关键在于 分配 和 存储
1. 密钥生成
密钥生成器: 基于伪随机、真随机生成器,生成密钥
集中式密钥生成: 由可信的密钥管理中心生成
分布式密钥生成: 多个节点共同协商生成
2. 密钥分配
集中式分配 由可信的密钥管理中心分配(效率高、高风险)
分布式分配 由多个服务器共同协商并分配密钥。(有助于密钥恢复、降低风险)
3. 密钥保护 和 存储
存储:通过键盘、密钥注入器、磁卡、智能卡等设备和介质装入。
[公钥存储]: 证实密钥的真实性、完整性。 及 PKI问题。
[私钥存储]: 必须保证密钥的保密性,所以应当以密文的形式出现。
4. 备份及销毁
密钥的生命周期结束(或泄密后),必须更换和销毁密钥(可以延迟销毁,以实现干扰作用)
切记 : 不可单纯使用计算机删除(只实现了逻辑删除但没有实现物理删除)因此要保证各种形式上的密钥删除。
二、密钥存储【密钥分级管理】
主机主密钥
即,最高级密钥,是一种用于加密低级密钥的密钥。存储与网络中心、主节点等,受严格物理保护。如,可用于加密二级密钥。
密钥加密密钥
即,二级密钥,被主机主密钥加密的,用于加密低级密钥的密钥。如,可用于加密会话密钥。
会话密钥
即,通话过程中双方所使用的会话密钥。具有更短的生命周期(仅通信期间密钥成立,通信结束立即销毁)
初始密钥
即,用户使用的较为长期的一种密钥。
三、密钥的分配
1. 公钥的分发
广播式公钥分发
任意通信方将它的公钥发送给另一方或广播给其他通信各方。为防止中间人伪造公钥攻击,需要保证 真实性 (如使用密钥证书)。
目录式公钥分发
由可信机构维护一个公开、动态、可访问的公开密钥目录。及,借助 PKI 机构。
公钥管理机构分发
即 密钥由可信机构生成和分发。(缺点:私钥由可信机构知晓,带来更高风险)
数字证书进行公钥分发
CA 系统。 存储身份、公钥、有效期等信息。
2. 对称密钥的分发
Shamir想法。
Diffe-Hellman 密钥交换协议算法 。基于离散对数问题。
Kerberos密钥分发协议 需要同步时钟,存储大量共享密钥
基于公钥,会话密钥由单方生成或双方共同生成