第六章 密码应用与密码
管理
6.1 密码应用
信息加密、认证和签名流程
? 加密保障机密性
? 认证保证完整性
? 签名保证抗否认性
消息 链接
摘要
算法
签名
算法 消息摘要
签名私钥
时间戳
消息
消息签名
加密
算法
会话密钥
密文
发送
消息签名
认证及签名
加密、认证和签名流程
6.1.2 加密位置
链路加密
? 底层加密:数据链路层、网络层
? 每经过一个交换机都要解密
端 — 端加密
? 高层加密:会话层、传输层
在不同层的加密有不同的协议
6.2 密钥管理
所有的密码技术都依赖于密钥。
? 密钥的管理本身是一个很复杂的课题,而且是
保证安全性的关键点。
? 密钥管理方法因所使用的密码体制(对称密码
体制和公钥密码体制)而异。
密钥生成算法的强度、密钥的长度、保密
及安全管理
密钥具有生命周期
密钥管理的目的
目的:维持系统中各实体之间的密钥关系,
以抗击各种可能的威胁,
? 密钥的泄露
? 秘密密钥或公开密钥的身份的真实性丧失
? 未经授权使用
6.2.2 密钥的分类
基本密钥( Base Key)
? 又称初始密钥( Primary Key), 用户密钥
(User key),是由用户选定或由系统分配给用户
的,可在较长时间(相对于会话密钥)内由一
对用户所专用的密钥。
会话密钥( Session Key)
? 即两个通信终端用户在一次通话或交换数据时
使用的密钥。当它用于加密文件时,称为文件
密钥 (File key),当它用于加密数据时,称为数
据加密密钥 (Data Encrypting Key)。
密钥类型 2
密钥加密密钥( Key Encrypting Key)
? 用于对会话密钥进行加密时采用的密钥。又称
辅助(二级)密钥 (SecondaryKey)或密钥传送
密钥 (key Transport key)。通信网中的每个节
点都分配有一个这类密钥。
主机主密钥( Host Master Key)
? 它是对密钥加密密钥进行加密的密钥,存于主
机处理器中。
6.2.3 密钥长度的选择原则
原则:既保证系统的安全性,又不至于开
销太高。
对称密码的密钥长度
公钥密码的密钥长度
对称密码的密钥长度
假设算法的保密强度足够的,除了穷举攻击外,没有更好
的攻击方法。穷举攻击是已知明文攻击。
穷举攻击的复杂度,
密钥长为 n位,则有 2n种可能的密钥,因此需要 2n次计算。
密钥长度与
穷举破译时间和成本估计
密钥的搜索速度由计算机资源确定。
串行搜索下,由计算机的计算时间决定。
并行搜索由空间复杂性和各计算机的计算
能力决定。
统计的观点
? 某种计算资源破译需要一年时间,在一个月内破
译的可能性 8%,
? 若穷举需要一个月时间,则一小时内破译的可能
性是 0.14%
破译 56位 DES的成本 单位,美元
1,使用网络计算机的空闲时间
? 使用 40个工作站的空闲时间在一天内完成了对
234个密钥的测试。
? 一个 40台计算机的网络,每台每秒执行 32000
次加密,系统可用 1天时间完成 40位密钥的穷
举攻击。
2.使用攻击病毒,
软件攻击
各种类型数据所需密钥长度
1.所保存信息的价值
2,信息保密的时间
3,信息的攻击者及其使用的设备和资源的
情况
公开密钥密码体制的密钥长度
两种体制密钥长度的对比
6.2.4 密钥的产生和装入
密钥的产生
? 手工 /自动化
? 选择密钥方式不当会影响安全性
1)使密钥空间减小
2)差的选择方式易受字典式攻击
攻击者并不按照数字顺序去试所有可能的密钥,
首先尝试可能的密钥,例如英文单词、名字等。
( Daniel Klein使用此法可破译 40%的计算机口
令),
方法如下,
? 用户的姓名、首字母、帐户名等个人信息 alice
? 从各种数据库得到的单词 salary
? 数据库单词的置换 yralas
? 数据库单词的大写置换 SALARY
? 对外国人从外国文字试起 cat love
? 尝试词组 how are you
? 数字组合 19851212
好的密钥的特点
真正的随机、等概
避免使用特定算法的弱密钥
双钥系统的密钥必须满足一定的关系
选用易记难猜的密钥
较长短语的首字母,词组用标点符号分开
不同等级的密钥的产生方式不同
( 1)主机主密钥安全性至关重要,故要保证其完
全随机性、不可重复性和不可预测性。可用投硬
币、骰子,噪声发生器等方法产生
( 2)密钥加密密钥数量大 (N(N-1)/2),可由机器自
动产生,安全算法、伪随机数发生器等产生
( 3)会话密钥可利用密钥加密密钥及某种算法
(加密算法,单向函数等 )产生。
( 4)初始密钥,类似于主密钥或密钥加密密钥的
方法产生
密钥的装入
主机主密钥的装入,可靠的人在可靠的条件
下装入主机
终端主密钥的装入
会话密钥的获取
密钥分配
基于对称密码体制的密钥分配
基于公开密码体制的秘密密钥分配
几个密钥分配方案
基于对称密码体制的密钥分配
利用安全信道实现
利用公钥密码体制实现
安全信道传送
邮递或者信使,安全性取决于信使的忠诚,
成本高
分层,信使只传送高级密钥
将密钥拆成几部分
小型网络中密钥共享
用户 A 用户 A
1
1.A向 B发送请求,和一个一次性随机数 N1
2
2.B用主密钥(和 A共享)对应答的消息进行加密发送
3
3.A用新建立的会话密钥加密 F(N2)发送给 B
大型网络中的密钥共享
用户 A 用户 A
KDC
1
2 3
4
5
4,防止 A发出去的消息被人截获
5,B确认 A收到自己的消息
6.2.6 公钥密码体制的密钥分配
公开发布:例如发布到 BBS上
公钥动态目录:由某个公钥管理机构承担
公钥证书:包括该用户的公钥,身份和时
间戳,经过权威部门的认证。
6.2.7 密钥托管
允许授权者在特定的条件下,借助于一个
以上持有专用数据恢复密钥的、可信赖的
委托方提供的信息来解密密文
实质上是备用的解密途径
美国政府 1993年颁布了 EES标准 (Escrow
EncryptIonStandard),该标准体现了一种新思想,
即对密钥实行法定托管代理的机制。
如果向法院提供的证据表明,密码使用者是利用密
码在进行危及国家安全和违反法律规定的事,经过
法院许可,政府可以从托管代理机构取来密钥参数,
经过合成运送,就可以直接侦听通信。
其后,美国政府进一步改进并提出了密钥托管
(KeyEscrow〉 政策,希望用这种办法加强政府对密
码使用的调控管理。
一直存在争议
6.3 公钥基础设施 PKI
PKI是一个用公钥概念与技术来实施和提供
安全服务的普适性基础设施,
PKI是一种标准的密钥管理平台,它能够为
所有网络应用透明地提供采用加密和数据
签名等密码服务所必须的密钥和证书管理。
PKI基本组件
证书库
密钥
服务器 证书颁发机构 CA
注册认证机构
RA
1 证书颁发机构 CA
公钥证书的颁发机构
证书包含了用户的公开密钥,权威性文档
CA对密钥进行公证,证明密钥主人身份与
公钥的关系
CA用自己的私钥对证书签名。
证书颁发机构
CA
举例
公安局发驾驶证
驾驶证(公钥证书)确认了驾驶员的身份
(用户),表示其开车的能力(公钥)
驾驶证上有公安局的印章( CA对证书的签
名)
任何人只要信任公安局( CA),就可以信
任驾驶证(公钥证书)。
证书
主体身份信息
主体的公钥
CA名称
其他信息
CA签名
驾驶证
驾驶员身份信息
执照种类(驾驶
能力)
公安局名称
其他信息
公安局盖章
验证并标识证书申请者的身份。
确保 CA用于签名证书的非对称密钥的质量。
确保整个签证过程和签名私钥的安全性。
证书材料信息(如公钥证书序列号,CA等)的管
理。
确定并检查证书的有效期限。
确保证书主体标识的唯一性,防止重名。
发布并维护作废证书表。
对整个证书签发过程做日志记录。
向申请人发通知。
公钥的产生
主体自己产生密钥对,并将公钥传送给 CA
CA替主体生成密钥对,并将其安全传送给
用户
公钥的用途
验证签名
? 私钥不备份
加密信息
? 私钥备份
2 注册机构 RA
接收和验证新注册人的注册信息;
代表最终用户生成密钥对;
接收和授权密钥备份和恢复请求;
接收和授权证书吊销请求;
按需分发或恢复硬件设备,如令牌
注册认证机构
RA
3 证书库
网上公共信息库,用于证书的集中存放,
用户可以从此处获得其他用户的证书和公
钥。
证书库
4 密钥备份及恢复系统
为了防止用户丢失用于脱密数据的密钥以
后,密文数据无法被脱密,从而造成数据
丢失,PKI应该提供脱密密钥的备份和恢复
的机制。脱密密钥的备份和恢复应该由可
信机构来完成,如 CA。
5 证书的注销机制
由于各种原因,证书需要被注销
? 比如,私钥泄漏、密钥更换、用户变化
PKI中注销的方法
? CA维护一个 CRL(Certificate Revocation List)
PKI应用接口系统
透明性,PKI必须尽可能地向上层应用屏蔽密码
实现服务的实现细节,向用户屏蔽复杂的安全解
决方案,使密码服务对用户而言简单易用,并且
便于单位、企业完全控制其信息资源。
可扩展性:满足系统不断发展的需要,证书库和
CRL有良好的可扩展性。
支持多种用户:提供文件传送、文件存储、电子
邮件、电子表单,WEB应用等的安全服务。
互操作性:不同企业、不同单位的 PKI实现可能
是不同的,必须支持多环境、多操作系统的 PKI
的互操作性。
6.3.2 公钥证书
身份证书
属性证书
? 通常需要根据属性进行授权,所以把主体的属
性从身份中提取出来
6.3.3 公钥证书的发放和管理
终端用户注册
? 通过互联网注册
证书的产生和发放
? 由 CA建立证书
证书的管理
? 检索
? 验证
? 取消
6.3.4 PKI的信任模型
一个 CA显然不能满足用户要求
在有多个 CA的时候,终端用户如何信任 CA?
1.CA的严格层次模型
层次认证
根 CA把权力授给多个子 CA
子 CA再授权
子 CA
根 CA
子 CA 子 CA
子 CA 子 CA 子 CA 子 CA
用户 用户 用户 用户 用户
2,CA分布式结构
把信任分散到两个或者更多地 CA上
中心 CA不是根 CA
中心 CA
根 CA 根 CA
子 CA 子 CA 子 CA 子 CA
用户 用户 用户 用户 用户
子 CA
3.Web模型
依赖于浏览器
将一些 CA的公钥预装在使用的浏览器上
这些 CA作为根 CA
4.以用户为中心的信任
用户 A
A的朋友
A的同事 A的父亲
A的哥哥 A哥哥的朋

A父亲的朋

5,交叉认证模型
各个 CA连接在一起
根 CA 根 CA
用户 A 用户 B 用户 C 用户 D
互相认证
互相信任