第14章 密钥管理和分发
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.管理员给A发送一条用其私钥PRauth加密的消息, 这样A就可用管理员的公钥对接收到的消息 解密,因此A可以确信该消息来自管理员。 这条消息包括下列内容: B的公钥PUb。 A可用它对要发送给B的消息 加密。 原始请求。这样A可以将该请求与其最初发 出的请求进行比较,以验证在管理员收到请 求之前,其原始请求未被修改。 原始时间戳。这样A可以确定它收到的不是 来自管理员的旧消息,该旧消息中包含的不 是B的当前公钥。
这种方法的缺点是一旦攻击者获得或计算 出目录管理员的私钥,则他可以传递伪 造的公钥,因此他可以假冒任何通信方, 以窃取发送给该通信方的消息。
公钥授权
该方案中假定中心管理员负责维护通信各方 公钥的动态目录,除此之外,每一通信方 可靠地知道目录管理员的公钥,并且只有 管理员知道相应的私钥。这种方案包含以 下步骤: 1.A发送一条带有时间戳的消息给公钥管理员, 以请求B的当前公钥。
证书的撤回 每一个证书都有一个有效期,新的证书会在旧证 书失效前发放,另外,还可能由于以下原因提 前撤回证书: 1.用户密钥被认为不安全。 2.用户不再信任该CA。 3.CA证书被认为不安全 每个CA必须保留一张表,其中包含所有被CA撤 销且还未到期的证书,包括发给用户和其他 CA的证书,这也应被放在目录中。 每个放在目录中的证书撤销表(CRL)均被其发 行商签名,并包含发行商的名字、表创建的时 间、下一张CRL表发放的时间以及每个撤销证 书的入口。每个入口中包含该证书的序列号和 撤销时间。由于一个CA中的序列号是惟一的, 因此序列号足以表示一张证书。
最早由Kohnfelder提出了使用证书的方法。通信 各方使用证书来交换密钥而不是通过公钥管理 员。在某种意义上,这种方案与直接从公钥管 理员处获得密钥的可靠性相同。证书包含公钥 和密钥拥有者的标识,整个数据块由可信的第 三方进行签名。通常,第三方是证书管理员, 如政府机构,或者金融机构,为用户群所信任。 一个用户以一种安全的方式将他的公钥交给管 理员,从而获得一个证书。接着用户就可以公 开证书,任何需要该用户公钥的人都可以获得 这个证书,并通过查看附带的可信签名来验证 证书的有效性。通信的一方也可通过传递证书 的方式将他的密钥信息传达给另一方。其他通 信各方可以验证该证书确实是由证书管理员生 成的。
• 版本号(Version):区分合法证书的不同版 本,默认设置为1.如果存在发行商惟一标识或 主体惟一标识,则版本号为2,如果存在一个 或多个扩展,则版本号为3. • 序列号(Serial number):一个整数,在CA 中惟一标识证书。 • 签名算法标识(Signature algorithm identifier):带参数的、用于给证书签名的算 法,由于此信息在证书尾部的域Signature中还 会出现,这里很少包含该信息。 • 发行商名字(Issuer name):X.500中创建、 签名证书的认证机构CA的名字。
这种方法应满足下列要求: 1. 任何通信方可以读取证书并确定证书拥有 者的姓名和公钥。 2. 任何通信方可以验证该证书出自证书管理 员,而不是伪造的。 3. 只有证书管理员可以产生并更新证书。 4. 任何通信方可以验证证书的当前性。
X.509标准是一个广为接受的方 案,用来规范公钥证书的格式。
14.4 X.509认证服务
及将被使用的密钥的算法标识,带有相关的参 数。
• 发行商惟一标识(Issuer unique identifier):由于X.500的名字被许多不同
实体引用,因此用可选位串惟一标识认证机构。
• 证书主体惟一标识(Subject unique identifier):由于X.500的名字被许多不同实
14.2.1 简单密钥分发方案 无法防止中间人攻击。
14.2.2 确保保密性和身份认证的密钥分发方 案
14.2.3 混合方案
• KDC与每个用户共享一个主密钥,用主密 钥加密要分发的会话密钥。 • 公钥方案被用于分发主密钥。
14.3 公钥分发
人们已经提出了几种公钥分配方法: • 公开发布 • 公开可访问目录 • 公钥授权 • 公钥证书
• 有效期(Period of validity):包含两个
日期,即证书的生效日期和终止日期。 • 证书主体名(Subject name):获得证书 的用户名,证明拥有相应私钥的主体是公钥的 所有者。
• 证书主体的公钥信息(Subject’s public-key information):主体的公钥以
ITU-T建议书中的X.509是X.500系列中定义 目录服务的一部分。实际上,目录是指管理用户 信息数据库的服务器或一组分布服务器,用户信 息包括用户名到网络地址的映射等用户信息或其 他属性。 X.509是关于证书结构和认证协议的一种重要 标准,并被广泛使用。X.509首次于1988年发布, 随后在安全性方面被修正,修订稿于1993年发布, 1995年发布第三版,2000年被再次修改。
A使用了一个证书链来获得B的公钥,在 X.509中,该链表示如下: X1《X2》X2《B》 同样,B可以逆向地获得A的公钥: X2《X1》X1《A》 向前证书:由其他CA发给X的证书。 向后证书:X发给其他CA的证书
用户A可以通过创建一条到B的路径来获得相 关证书: X《W》W《V》V《Y》Y《Z》Z《B》 B需要按照下述证书路径来获得A的公钥: Z《Y》Y《V》V《W》W《X》X《A》
公钥的公开发布
这种方法有一个较大的缺点,即任何 人都可以伪造这种公钥的公开发布。
公开可访问的目录
•
•
• • •
管理员通过对每一通信方建立一个目录项{姓名,公 钥}来维护该目录。 每一通信方通过目录管理员来注册一个公钥。注册 必须亲自或通过安全的认证通信来进行。 通信方在任何时刻可以用新的密钥替代当前密钥。 这可能是因为公钥已用于大量的数据,因而用户希 望更换公钥,也可能是因为相应的私钥已经泄密。 管理员定期发布或更新该目录。 通信方也可以访问电子目录。为实现这一目标,必 须有从管理员到他的安全的认证通信。
wk.baidu.com
在分布式网络系统中,若每一对想要通信的 主机都需要一个密钥,即若有N台主机,则 需要的密钥数目为N(N-1)/2.
密钥分发中心是基于密钥层次体系的: 两个终端系统之间的通信使用监时密钥加密,这个临时 密钥通常称为会话密钥。会话密钥可以用密钥分发中心与终 端用户或者系统共有的主密钥加密后进行传送。
3. A保存B的公钥,并用它对包含A的标识 (IDA)和临时交互号(N1)的消息加 密,然后发送给B。这里,临时交互号 是用来惟一标识本次交易的。 4,5.与A检索B的公钥一样,B以同样的方法 从管理员处检索出A的公钥。 6. B用PUa对A的临时交互号(N1)和B所 产生的新临时交互号(N2)加密,并发 送给A。因为只有B可以解密消息(3), 所以消息(6)中的N1可以使A确信其 通信伙伴就是B。
X.509是基于公钥密码体制和数字签名的服务。 其标准中并未规定使用某个特定的算法, 但推荐使用RSA;其数字签名需用到散列 函数,但并没有规定具体的散列算法。
14.4.1证书
X.509的核心是与每个用户相关的公钥证书。 这些用户证书由一些可信的认证机构(CA) 创建并被CA或用户放入目录服务器中。目 录服务器本身不创建公钥和证书,仅仅为 用户获得证书提供一种简单的存取方式。
如果用户数量很多,不可能期望所有用户从同一 个CA获得证书,由于证书是由CA签发的,每 一个用户都需要拥有一个CA的公钥来验证签 名,该公钥必须用一种绝对安全的方式提供给 每个用户,使用户可以信任该证书。 现在,假设A获得了认证机构X1的证书,而B获 得了认证机构X2的证书,两个CA之间又互相 颁发数字证书,则A可以通过下述过程获得B的 公钥: 1.A从目录中获得由X1签名的X2的证书,由于A知 道X1的公钥,A可从证书中获得X2的公钥,并 用X1的签名验证证书。 2.A再到目录中获取由X2颁发的B的证书,由于A 已经得到了X2的公钥,A即可利用它验证签名, 从而安全地获得B的公钥。
14.1.1密钥分发方案:典型方案
14.1.2层次密钥控制:对于大型网络来 说,可以建立KDC的层次体系
14.1.3 会话密钥生命周期: 会话密钥更换的越频繁就越安全,但同时 增加网络负担。
14.1.4 透明的密钥控制方案
14.1.5 分布式密钥控制
14.1.6控制密码的使用
14.2 非对称加密的对称密钥分发
• 证书策略(Certificate Policies):证书可以在应用 多种环境中使用。该扩展项中列出了证书所支持的策 略集,包括可选的限定信息。 • 策略映射(Policy Mappings):仅用于其他CA发给 CA的证书中。策略映射允许发行CA将其一个或多个 策略等同于主体CA域中的某个策略。 • 主体可选名字(Subject Alternative Name): 对证书的主体定义一个或多个替换名。 • 发行商可选名字(Issuer Alternative Name): 定义证书签发者的一个或多个替换名。 • 主体目录属性(Subject Directory Attributes): 将X.500目录的属性值转换为证书的主体所需要的属 性值。 • 基本限制(Basic Constraints): 表示这个证书的主体可否作为证书机构。 • 名称限制(Name Constraits):表示证书路径中的 所有后续证书的主体名的名字空间必须确定。 • 策略限制(Policy Constraits):说明对确定的证书 策略标识的限制,或证书路径中继承的策略映射的限
第14章 密钥管理和分发
14.1 对称加密的对称密钥分发
• (1)A选择一个密钥后以物理的方式传递给B. (适合小范围) • (2)第三方选择密钥后物理地传递给A和B。 (适合小范围) • (3)如果A和B先前或者最近使用过一个密钥,则一 方可以将新密钥用旧密钥加密后发送给另一方。 (一旦有一个密钥泄露,随后的所有密钥全部 不再安全。) • (4)如果A和B到第三方C有加密连接,则C可以在 加密连接上传送密钥给A、B. (这种情况是:A与C、B与C共享主密钥,C通 过与A、B的共享主密钥分发A、B通信的临时会话 密钥。)
获得一个用户证书 CA生成的用户证书具有以下特点: 任何可以访问CA公钥的用户均可获得证书中 的用户公钥 只有CA可以修改证书 由于证书不可伪造,因此证书可以存放在目录中 而不需要对目录进行特别保护。 如果所有用户都属于同一个CA,则说明对该CA 有普遍信任,所有用户的证书均被存放于同一 个目录中,以被所有用户存取。另外,用户也 可以直接将其证书传给其他用户。一旦B拥有 了A的证书,B即可确信用A的公钥加密的消息 是安全的、不可能被窃取,同时,用A的私钥 签名的消息也不可能仿造。
体引用,因此用可选位串惟一标识证书主体。
• 扩展(Extensions):一个或多个扩展域
集,扩展域是在版本3中增加的。
• 签名(Signature):覆盖证书的所有其他
域,以及其他域被CA私钥加密后的散列代码,以 及签名算法标识。
该标准使用如下标注定义证书: CA《A》=CA{V,SN,AI,CA,TA,A,AP} 其中: V:版本号 SN:序列号 AI:标识对证书签名采用的签名算法 CA:颁发该证书的CA的惟一识别名 TA:起始日期和终止日期 A:证书主体的惟一识别名 AP :主体A的公钥 其中,Y《X》为用户X的证书,是由认证机构Y发放的 Y{I}为Y签名I,包含I和I被加密后的散列代码 CA用它的私钥对证书签名,如果用户知道相应的公钥, 则用户可以验证CA签名证书的合法性,这是一种典型 的数字签名方法。
7. A用B的公钥对N2加密并发送给B,以使 B相信其通信伙伴是A。
14.3.4公钥证书
图14.11的方案虽然不错,但它还是有缺陷。 因为用户要与其他用户通信,他就必须向 目录管理员申请对方的公钥,因此公钥管 理员就会成为系统的瓶颈。像前面一样, 管理员所维护的含有姓名和公钥的目录也 容易被篡改。
当一个用户在一个消息中接收了一个证书, 用户必须确定该证书是否已被撤销。用户 可以在接到证书时检查目录,为了避免目 录搜索时的延迟,用户可以将证书和CRL 缓存。
14.4.2 X.509版本3
• 机构密钥标识符(Authority Key Identifier): 一个证书机构可能有多个公钥/私钥对,这个字段定义这 个证书的签名使用哪个密钥对。 • 主体密钥标识符(Subject Key Identifier): 主体可能有多个公钥/私钥对。这个字段确定这个证书的 签名使用哪个密钥对。 • 密钥用法(Key Usage):定义这个证书的公钥操作范围。 • 扩展密钥用法(Extended Key Usage): 指定这个证书可以采用哪些协议。 • 私钥使用期(Private Key Usage Period): 如果这个字段是空的,则这个证书对应的公钥/私钥对定 义相同的使用期限。