(计算机应用技术专业论文)基于身份和基于证书公钥密码系统比较.pdf_第1页
(计算机应用技术专业论文)基于身份和基于证书公钥密码系统比较.pdf_第2页
(计算机应用技术专业论文)基于身份和基于证书公钥密码系统比较.pdf_第3页
(计算机应用技术专业论文)基于身份和基于证书公钥密码系统比较.pdf_第4页
(计算机应用技术专业论文)基于身份和基于证书公钥密码系统比较.pdf_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上海交通大学工程硕士研究生学位论文 附录a.6 上海交通大学 学位论文原创性声明 本人郑重声明所呈交的学位论文是本人在导师的指导下 独立进行研究工作所取得的成果除文中已经注明引用的内容外本 论文不包含任何其他个人或集体已经发表或撰写过的作品成果 对本 文的研究做出重要贡献的个人和集体均已在文中以明确方式标明 本人完全意识到本声明的法律结果由本人承担 学位论文作者签名彭海涛 日期 2004 年 9 月 28 日 上海交通大学工程硕士研究生学位论文 附录a.7 上海交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留使用学位论文的规定 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版 允许论文被查阅和借阅 本人授权上海交通大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索可以采用影印缩印或扫 描等复制手段保存和汇编本学位论文 保密在 年解密后适用本授权书 本学位论文属于 不保密 请在以上方框内打 学位论文作者签名 指导教师签名 彭海涛 曹珍富 日期2 0 0 4 年 9 月 2 8 日 日期2 0 0 4 年 9 月 2 8 日 上海交通大学工程硕士研究生学位论文 第 1 页 共 48 页 基于身份和基于证书公钥密码系统比较 摘要 传统的基于证书的公钥系统p k i 得到了广泛的应用但同时也碰到管理 证书等难题基于身份的公开密钥系统i d - p k c 把用户公钥和用户身份i d 有机的结合起来不需要证书从而简化了管理 本文先简介了 p k i体系和 i d - p k c体系然后从密钥管理的角度分析了 p k i 和 i d - p k c 之间的区别内容涉及用户 i d 的管理密钥和用户 i d 的关系密 钥生成加密与解密 签名与验证 证书撤销 重发证书 证书策略权限 管理等从讨论可以看出两种体系之间各有其优缺点 针对基本的 i d - p k c系统的存在的问题如需要私钥分发的安全通道私钥 托管等本文讨论了几个可行的方案来解决这些问题 互操作包括相同类型之间的互通如 p k i和 p k i 的互联i d - p k c和 i d - p k c 的互联也包括不同类型系统之间的交互本文讨论了互联的几种形式如证书 链层次式 t a 基于 d n s 的多层次 i d - p k c p r o x y c a 等方案 通过分析 n h s 的案例 我们知道在实现一个公钥系统时有不同的选择而且 不同的选择会带来不同的效果文章最后提出一个混合使用 p k i和 i d - p k c 以充 分利用两种体系的优点的方案 关键词非对称加密公钥体系证书基于身份托管互操作 上海交通大学工程硕士研究生学位论文 第 2 页 共 48 页 a comparison between identity-based and certificate-based public key cryptosystem abstract the traditional certificate-based public key infrastructure (pki) is broadly used, but there is a problem of managing certificates in pki. a new identity-based public key cryptosystem (id-pkc) simplify management by combining users public key and identity. this dissertation introduces pki and id-pkc, and analyzes the difference between pki and id-pkc, including management of identity, the relation between key and id, key generation, encryption and decryption, signature and verifying, certificate revocation, certificate reissuing, certificate policy and management of right. we show that there are advantage and disadvantage in both two systems. we discuss some available solution to resolve the inherent trouble of id-pkc, such as secure channel for issuing private key and key escrow. then we discuss interoperation, which includes interconnecting with homogeneous system and interact with heterogeneous system. we introduce some solution about interconnect, such as certificate chain, hierarchy ta, dns based id-pkc, proxy ca etc. finally, we analyze the case of nhs, and show that the different choice of public key cryptosystem can lead to different result. in the last of this dissertation we suggest a hybrid pki-to-id solution to take full advantage of these two systems. key words asymmetric encryption, public key cryptosystem, certificate, identity-based, escrow, interoperation 上海交通大学工程硕士研究生学位论文 第 5 页 共 48 页 一 简介 基于身份的公钥体系 id-pkcidentity-based public key cryptosystem得到 越来越多的关注基于身份的公钥体系 id-pkc 和传统的使用证书的公钥体系 pkicertificate-based public key infrastructures之间最大的差异在于密钥的生 成和管理在传统的 pki 系统中公钥私钥对与 id 没有直接关联需要通过 证书来绑定公钥和 id而在 id-pkc 系统中公钥与用户的 id 相关联直接由 用户 id 推导出从而无需证书就能完成识别过程也就省去了证书注册管理 撤销等繁杂过程这也是 id-pkc 系统最具吸引力之处 本文初步探讨了 id-pkc 系统并把 id-pkc 与 pki 进行了对比本文主要 关注于结构体系密钥管理系统安全互操作性等问题讨论了两种系统各自 的优缺点对已经提出的一些方案进行了探讨和比较并尝试提出结合 pki 和 id-pkc 各自优点的混合方案 本论文的后续部分的安排如下 第二章技术概览对基于证书的公钥体系 pki 和基于身份的公钥体系 id-pkc 作一个基本回顾 第三章从密钥管理的角度分析两种系统的区别主要涉及用户 id 的管理 密钥和 id 的关系密钥生成加密与解密 签名与验证 证书撤销证书重 发密钥策略权限管理等 第四章讨论了系统可能存在的安全问题如单点信任合谋攻击等重点 讨论了 id-pkc 系统中的问题密钥分发的安全通道和私钥托管问题并讨论了 几个可行的方案来解决这些问题 第五章讨论了 pki 系统和 id-pkc 系统互操作和扩展性问题 第六章对前面讨论的问题作一个总结分析了 nhs 的案例并尝试提出 一个可行的混合方案 上海交通大学工程硕士研究生学位论文 第 6 页 共 48 页 二 技术概览 2 . 1 公开密钥编码系统的发展 常规密钥加密系统是基于对称加密理论symmetric encryption当前几乎 所有对称加密算法都基于 feistel分组密码结构feis73其加密算法基于两个 基本原则替代即明文中的每个元素比特字母比特组合或字母组合被 映射为另一个元素置换即在明文中的元素被重新排列随着对称加密理论的 发展出现了很多对称加密算法如 desidea 等stal99 对称加密系统加密解密时使用相同的密钥 这要求发送方和接收方在安全 通信之前需要商定或分配一个共享的密钥 为得到这个共享的密钥可以事先双 方协商或者使用一个密码分配中心 kdckey distribute center来安全地分 配密钥 对称加密的安全性依赖于密钥的保密 泄露密钥意味着任何人都能对信息进 行加密解密对称加密系统取得了很多成就但是对称加密系统仍然存在着一 些缺陷如依赖于密钥的安全难以解决电子商务中的不可否认问题难以解决 密钥分配问题难以实现数字签名等 1976 年 diffie 和 hellman 提出了公开密钥编码学理论 diff76a,diff76b 在公开密钥体系 pkcpublic key cryptosystem中加密和解密使用两个不同 的密钥其中一个密钥可以公开所以公开密钥系统又称为非对称加密系统 asymmetric encryption 公开密钥算法具有一些重要的特征 如仅仅知道密码算法和加密密钥而要确 定解密密钥 在计算上是不可能的两个相关密钥中任何一个都可以用作加密而 让另一个用作解密 公开密钥的加密解密过程如下 1网络中的每个端系统都产生一对用于加密和解密的密钥 2每个系统公开发布加密密钥这就是公钥解密密钥不公开就是私钥 3如果 a 想给 b 发送报文就用 b 的公钥加密报文 4b 收到报文后用自己的私钥解密报文其他所有收到这个报文的人都无 法解密因为只有 b 才有 b 的私钥 diffie 和 hellman 给出了公开密钥算法必须满足的条件diff76b 1参与方b容易通过计算产生出一对密钥 公开密钥kub 私有密钥krb 2在知道公开密钥和待加密报文 m 的情况下对于发送方 a很容易通过 计算产生对应的密文 c = ekub(m) 3接收方 b 使用私有密钥容易通过计算解密所得的密文以便恢复原来的报 文 上海交通大学工程硕士研究生学位论文 第 7 页 共 48 页 m = dkrb(c) = dkrb( ekubm ) 4敌对方即使知道公开密钥 kub要确定私有密钥 krb 在计算上不可行 5敌对方即使知道公开密钥 kub 和密文 c要恢复原来的报文 m 在计算 上不可行 6加密和解密可以以两个次序中的任何以来使用 m = ekub dkrb (m) 对上述条件进行改写 最终可以归结到设计一个陷阱门单向函数一个陷阱 门单向函数是一个满足下列条件的的函数除非知道某种附加信息否则这样的 函数在一个方向上容易计算而在另一个方向上要计算是不可行的有了附加信 息函数的逆就可以在多项式时间内计算出来具体的就是要满足下列条件的 可逆函数 y = fk(x) 容易如果知道了 k 和 x x = fk-1(y) 容易如果知道了 k 和 y x = fk-1(y) 不可行如果知道了 y而不知道 k 寻找这样的函数并不容易 自从提出公开密钥密码编码学的概念以来的几十 年间广泛应用的算法并不多公开密钥理论提出后出现了一些著名的算法 例如 rsa 算法rive78数字签名算法 dsaelga85schn91 diffie-hellman 密钥交换算法diff76b椭圆曲线密码编码学算法ecc等 使用公开密钥算法的用户同时拥有公钥 ku 和私钥 kr公钥可以以明文形 式发送给任何人私钥由用户自己持有私钥不能通过公钥计算出来公开密钥 理论可以比较好的解决密钥交换不可否认性电子签名等问题与对称加密相 比非对成加密有很多特点二者的比较见表 21 表 21 对称加密和非对称加密的比较 table 2-1 the comparison of symmetric encryption and asymmetric encryption 对称加密 非对称加密 运行条件 运行条件 1加密和解密使用同一个密钥 和同一个算法 1用同一个算法进行加密和解密而密钥有 一对其中一个用于加密另一个用于解密 2发送方和接收方必须共享密 钥和算法 2发送方和接收方每个拥有一对相互匹配密 钥中的一个不是同一个 安全条件 安全条件 1密钥必须保密 1两个密钥中的一个必须保密 2如果不掌握其他信息要想 解密是不可能或至少不现实的 2如果不掌握其他信息要想解密是不可能 或至少不现实的 3如果知道所有的算法加上密 文的样本必须不足以确定密钥 3如果知道所有的算法加上密文的样本和一 个密钥必须不足以确定另一个密钥 上海交通大学工程硕士研究生学位论文 第 8 页 共 48 页 2 . 2 公开密钥的分配及证书 在公开密钥密码编码系统中一个用户的公钥ku是公开的而且必须 公开以供他人使用如何让别人知道自己的公钥需要公钥的分配技术分配 公钥的技术方案有以下几种 1公钥的公开宣布用户可以将自己的公钥发送给其他用户或者广播给 相关人群如 usenet新闻组和 internet 邮件组这个方法的缺点是非法用户容 易伪造称合法用户并用非法公钥代替合法公钥 2公开可以得到的目录类似于电话号码簿一个可信任的管理机构维护 所有用户的目录项 包括名字及其公钥用户可以登记自己的公钥或者替换自己 的公钥该方法的缺点是如果攻击者得到目录的控制权则攻击者就可以替换 目录中任何用户的公钥了 3目前广泛使用的系统中公开密钥的分配使用证书certificate来实现 kohnfelder 最早提出了使用证书的方案kohn78证书是有证书管理机 构制作 包含用户的公钥信息和其他信息 并发送给具有想匹配的私钥的参与者 参与者通过相互传递证书从而传递了公钥该方案有以下要求 1任何参与方都可以阅读证书以确定证书拥有者的名字和公开密钥 2任何参与方都可以验证证书是来自管理机构还是赝品 3只有管理机构才能制作和更新证书 4任何参与者都可以验证证书的时效性 通过证书用户的身份id和公钥绑定在一起也同时实现了公钥的安全 分配证书可以放在目录中供其他用户访问也可以在参与者之间相互传递证 书是各类参与者如银行持卡人商户银行公司职员等在网上进行信息交 流及商务活动的身份证明在电子交易的各个环节交易的各方都需验证对方证 书的有效性从而解决相互间的信任问题 从证书的用途来看 数字证书可分为签名证书和加密证书签名证书主要用 于对用户信息进行签名以保证信息的不可否认性加密证书主要用于对用户传 送信息进行加密以保证信息的真实性和完整性 简单的说 数字证书是一段包含用户身份信息用户公钥信息以及证书权威 机构数字签名的数据证书权威机构的数字签名可以确保证书信息的真实性证 书格式及证书内容遵循 x.509 标准x.509 标准的证书格式rfc2459如表 2 2 表 22 x.509 证书 table 2-1 x.509 certificate 要素名 版本 版本 version 123 序列号 certificate serial number 123 algorithm 123 签名算法标识符 parameters 123 颁发者名字 issuer name 123 上海交通大学工程硕士研究生学位论文 第 9 页 共 48 页 not before 123 有效期 not after 123 主体名 subject name 123 algorithms 123 parameters 123 主体的公开密钥信息 key 123 颁发者的唯一标识符 issuer unique identifier 23 主体的唯一标识符 subject unique identifier 23 扩展 extensions 3 algorithms 123 parameters 123 签名 encrypted 123 证书包含的信息如下 1版本号标示证书的版本版本 1版本 2 或是版本 3 2序列号由证书颁发者分配的本证书的唯一标识符 3签名签名算法标识符由对象标识符加相关参数组成用于说明本证 书所用的数字签名算法 例如 sha-1 和 rsa 的对象标识符就用来说明该数字 签名是利用 rsa 对 sha-1 杂凑加密 4发者证书颁发者的可识别名dn这是必须说明的 5有效期证书有效的时间段 6 主体证书拥有者的可识别名此字段必须是非空的 除非使用了其 他的名字形式 7主体公钥信息主体的公钥以及算法标识符 8颁发者唯一标识符证书颁发者的唯一标识符仅在版本 2 和版本 3 中 要求属于可选项 9一标识符证书拥有者的唯一标识符仅在版本 2 和版本 3 中要求属 于可选项 10扩展可选的标准和专用扩展 2 . 3 基于证书的公开密钥体系 p k i pkipublic key infrastructure即公开密钥体系是一个利用现代密码 学的公开密钥密码技术并在开放的 internet 网络环境中提供数据加密以及数字 签名服务的统一的技术框架从广义上讲所有提供公钥加密和数字签名服务 的系统都可叫做 pki 系统pki 的主要目的是通过自动管理密钥和证书可以 为用户建立起一个安全的网络运行环境 使用户可以在多种应用环境下方便的使 用加密和数字签名技术 pki是一种安全技术 它由公开密钥密码技术 数字证书 证书发放机构 ca 和关于公开密钥的安全策略等基本成分共同组成的 一个有效的 pki 系统必须是 安全的和透明的用户在获得加密和数字签名服务时不需要详细地了解 pki 上海交通大学工程硕士研究生学位论文 第 10 页 共 48 页 是怎样管理证书和密钥的 一个典型完整有效的 pki 应用系统至少应具有以下部分如图 21 认证中心 cacertificate authorityca 是 pki 的核心ca 负责管理 pki 结构下的所有用户包括各种应用程序的证书把用户的公钥和用户的其他信 息捆绑在一起在网上验证用户的身份ca 还要负责用户证书的黑名单登记和 黑名单发布ca 的核心功能就是发放和管理数字证书具体描述如下 1接收验证最终用户数字证书的申请 2确定是否接受最终用户数字证书的申请-证书的审批 3向申请者颁发拒绝颁发数字证书-证书的发放 4接收处理最终用户的数字证书更新请求-证书的更新 5接收最终用户数字证书的查询撤销 6产生和发布证书撤销列表crl 7数字证书的归档 8密钥归档 9历史数据归档 图 21 pki 体系的基本组成 fig 2-1 the component of pki 注册机构 ra registration authorityra 提供用户和 ca 之间的一个接口 它获取并认证用户的身份向 ca 提出证书请求它主要完成收集用户信息和确 认用户身份的功能注册管理一般由一个独立的注册机构即 ra来承担它 接受用户的注册申请审查用户的申请资格并决定是否同意 ca 给其签发数字 证书注册机构 ra 并不给用户签发证书而只是对用户进行资格审查因此 ra 可以设置在直接面对客户的业务部门 x.500 目录服务器rfc1777因为证书不可伪造证书可以放在一个目录 内供参与者访问x.500 目录服务器可以用于发布用户的证书和黑名单信息用 户可通过标准的 ldap 协议查询自己或其他人的证书和下载黑名单信息 认证政策的制定包括遵循的技术标准各 ca 之间的上下级或同级关系 安全策略安全程度服务对象管理原则和框架等认证规则运作制度的 上海交通大学工程硕士研究生学位论文 第 11 页 共 48 页 制定所涉及的各方法律关系内容以及技术的实现等 2 . 4 基于身份的公钥体系签名方案 基于证书的公钥体系 pki 得到了广泛应用 同时造成一些不便 如用户必须 依赖于 ca 中心的第三方服务接收方不能够在解密密文前鉴别发送方的身份 复杂的证书管理工作等 有研究者提出了基于身份的公钥体系 id-pkc identity based public key cryptosystem在基于身份的公钥体系中不存在 ca 中心这 样一个权威机构甚至在系统建立之后密码生成中心都可以不再需要 最早 shamir 提出了基于身份的公钥体系的思想sham84在传统的公钥 系统中公钥私钥是成对产生的并公开公钥而在基于身份的公钥体系中 公钥就是用户的 id 或者由 id 导出密钥生成中心 kgckey generator center 生成用户私钥系统给用户发放个人化的智能卡智能卡中包含微处理器输入 输出口随机存储器以及存有私钥和加解密签名的程序 在 shamir 的方案sham84中使用过程中不需要有存放公钥的目录 也不需要使用第三方的服务 所有的智能卡发放完毕后 甚至 kgc 也可以关闭 基于身份的公钥体系的安全性依赖于下列几点设想 底层函数的安全性存 储在 kgc 中的种子的安全性kgc 在发卡前对用户 id 的完整检查等选取适 当的算法根据种子 k 可以很容易计算出某一个 id 相对应的私钥而相反根 据公钥id私钥对而推出种子 k 是很难的 基于上述条件shamir 给出了基于身份的签名体系的实现sham84该 签名算法图 22如下 图 22 shamir 的基于身份签名方案 fig 2-2 shamirs id-based signature scheme se = i t f (t, m) (mod n) 公钥就是用户 id私钥 g 由 kgc 算出其中 ge = i mod nn 是两个 大素数乘积e,f,n 由 kgc 选定并存储在智能卡中 上海交通大学工程硕士研究生学位论文 第 12 页 共 48 页 签名时用户选择随机数 r计算消息 m 的签名 ts t = r e (mod n) s = g r f(t, m) (mod n) 接收方接收到签名 ts可以通过下式验证消息 se = i t f(t,m) mod n = ge re f(t,m) (mod n) = s e 实践中公钥 i 可以用单向 hash 函数扩展 i = hash(id) shamir 并未给出基于身份的加密体系的实现但是给出了基于身份的加密 方案的设想 2 . 5 基于身份的公钥体系加密方案 shamir 并未给出基于身份的加密体系的实现但是给出了基于身份的加密 方案的设想sham84图 23 图 23 shamir 基于身份的加密方案 fig 2-3 shamirs id-based encryption scheme 在基于身份的密码体系思想面世后 很多研究者提出了一些基于身份的加密 系统desm86tsuj89tana87huhn00这其中有的需要用户不能 合谋攻击 有的需要 pkg 用长时间来生成私钥 有的需要硬件保护来实现 boneh 和 franklin 提出了基于身份的加密体系bone01该方案是一个重要的突破 通信双方用对方的 id 例如 email 地址作为公钥给邮件加密该系统工作分下面 四步 1setup系统 pkgprivate key generator生成系统的公开参数文件 param以及 pkg 才知道的主密钥master-key 2extract使用参数文件和主密钥pkg 可以计算出每个用户的私钥 3 encrypt发送方alice 在发送加密邮件时使用接收方bob的 email 为公钥(id=bob)即可加密邮件 4decrypt接收方用自己的私钥解密邮件 发送方无需获取接收方的证书以获取收方公钥 接收方甚至可以在收到邮件 上海交通大学工程硕士研究生学位论文 第 13 页 共 48 页 之后再向 pkg 申请自己的私钥得到私钥后用之解密密文 使用 id=bob|date=current-week作为公钥可以使得在接收 方bob的私钥在一周之后过期之后 bob 必须重新向 pkg 申请私钥而发 送方alice无需重新获取接收方的公钥因为公钥没有变化 pkg 的主密钥master-key是系统的核心可以分布式部署这样增强了 安全性该方案还自然具有密钥托管功能pkg 可以根据公钥即 email 地址 计算出每个用户的私钥 该方案基于椭圆曲线上的双线性变换给定两个点 pq两个整数 xy 有 f(ap, bq) = f(p, q)ab pkg 选定某整数 x 为主密钥系统参数包含两个点 pxp公钥为 q在椭 圆曲线上一个字符串可以很容易的映射到一个点相对应的私钥为 xq加密 时选取随机数 r 计算会话密钥 g = f(q, xp)r发送 rp 给接收者接收者可以计 算出 g 因为 f(xq, rp) = f(q, xp)r敌对者只知道 p xp rpq而要从中计 算出 g 是困难的 boneh 和 franklin 的方案提出来之后很多研究者又提出了其他的 id-pkc 的方案 下面将从密钥管理的角度来讨论基于证书的公钥体系 pki 和基于身份的 公钥体系 id-pkc 之间的异同 上海交通大学工程硕士研究生学位论文 第 14 页 共 48 页 三 密钥管理 3 . 1 系统模型 在上一章我们对 id-pkc 和 pki 作一个简要介绍两种系统都是属于非对 称密码系统两种系统的主要区别传统的 pki 在生成密钥对的时候是通过随 机信息来生成与用户的身份并无关系这样就需要证书certificate来绑 定用户及其公钥id-pkc 的密钥对则是从用户的身份信息中推导出来这样 就不需要证书来绑定用户及其公钥这是两者之间最大的区别 本章主要从密钥管理的角度来对 pki 系统和 id-pkc 系统来作比较 其重点 关注于用户 id 的管理密钥生成加密解密签名验证证书撤销证书重 发密钥策略权限管理等 图 31 讨论中的 pki 系统和 id-pkc 系统 fig 3-1 the structure of pki system and id-pkc system 为便于讨论特建立 pki 系统和 id-pkc 系统的模型如图 31 所示图 中各组成部分的功能如下 pki 系统 raregistry authority注册机构负责接受用户申请审核用户信息等 cacertification authority认证中心负责生成发放证书生成证书撤 销列表 crl 等 ldaplightweight directory access protocol轻量级目录访问协议证书 目录库也存放 crl 上海交通大学工程硕士研究生学位论文 第 15 页 共 48 页 crlcertificate revocation list证书撤销表 ocsponline certificate status protocol在线证书状态协议 id-pkc 系统 tatrusted authority可信机构负责接收用户请求私钥的申请 kgckey generator center密钥生成中心具体生成用户私钥 db of idid-pkc 系统中的 id 数据库 3 . 2 用户 i d的管理 在 id-pkc 系统中ta 需要用数据库来记住所有使用当前系统参数的用户 id否则会有潜在的问题发生例如密钥会被生成使用撤销而在结束了 自然生命周期后会被删除未来某一个用户会用同一个 id 来申请密钥而且是 合法的请求比如使用相同的名字这两个不同的用户会共享同样的公钥私 钥对由于 id-pkc 系统固有的 id 和公钥相关联公钥本身就是直接由 id 推导 而来使用相同的 id 必然会导致相同的公钥私钥对 而在 pki 系统中由于密钥和 id 相分离密钥对的生成取决于随机信息 这几乎使得生成的公钥私钥对不可能相同即使是具有同样 id 的用户来申请 密钥生成的公钥私钥对也不可能相同 在 pki 系统中 和用户身份相关的一些详细信息 如 公司名称 部门名称 职位身份证号码生日等需要 pki 系统来管理这是一个较为繁杂的工作 通常可以在证书或 ldap 目录中管理这些信息 在 id-pkc 系统中管理和用户身份相关的这些详细信息可以和管理 pki 中相对应的信息相类比 用户在用对方的加密公钥进行加密时可能需要考虑在 公钥字符串中加入某些相关的信息 如 是否加入职位信息 是否加入过期时间 是否加入工作流信息而接收方获取加密信息后在接收方向 ta 申请解密私钥 时也需要考虑是否加入职位信息过期时间工作流信息等参数加还是不加 这些信息也潜在的增加了收发双方的负担解决这一问题需要在用户和 ta 之间用户和用户之间建立严密的协议从这一角度上讲id-pkc 系统并未完 全解决这些详细信息的管理难题 也许同 pki 系统相比 这比管理证书的工作要 轻松一点 3 . 3 密钥和 i d的关系 在 pki 系统中用户的 id 和用户的公钥本来并无关联但通过证书绑定在 一起如图 32正是由于有了 ca 中心对证书的签名其他人才会相信该公 钥确实是该用户 id 所拥有的公钥如果没有证书仅仅通过用户声明或者发布 到公钥列表上很难让别人安全地相信该公钥确实是该用户 id 所拥有的公钥 上海交通大学工程硕士研究生学位论文 第 16 页 共 48 页 这正是 pki 系统中证书的主要作用 在 id-pkc 系统中用户的 id 和密钥紧密联系如图 32通常用户的 公钥直接由 id 推导出可以认为用户的公钥就是用户的 id用户的私钥也是由 kgc 计算出 在 pki 系统中id 和公钥是分离的这是优点还是缺点不能一概而论要 看在具体的应用中的要求如何 图 32 id 和公钥的关系图 fig 3-2 the relationship between id and public key 3 . 4 密钥生成 在 pki 系统中用户无法选择密钥的形式直接使用 ca 颁发的密钥即可 而在 id-pkc 系统中用户可以选择公钥的不同形式如附加时间限制职位 限制等这也同时限制了接收者去获取相应的私钥这是 id-pkc 与 pki 的本质 不同之处 在 pki 系统中用户的公钥和私钥是同步成对生成的在 id-pkc 系统中 二者的生成时机并无先后次序的限制 用户的公钥可以被系统中任何一个用户在 任何时候生成可以公钥先于私钥生成如发送方从接收方的 id 来推导出加 密公钥而接收方随后才向 ta 申请解密私钥 在 pki 系统中通常用随机信息作为用户的密钥生成函数的输入值而在 id-pkc 系统中通常用公开的表征用户的身份信息如email 地址社会保险 号身份证号码等或者是有效期限制职位限制等信息来作为用户的密钥生成 上海交通大学工程硕士研究生学位论文 第 17 页 共 48 页 函数的输入值 在 pki 系统中先生成密钥对然后再颁发证书则 ca 对密钥对的有效性 检查应当在颁发证书之前进行而在 id-pkc 系统中因为公钥和私钥是在不同 时刻生成的公钥可以比私钥先生成则 ta 对私钥的有效性检查发生在用户获 取私钥之时 在 id-pkc 系统中私钥由 ta 生成这引发了固有的密钥托管escrow 问题理论上ta 可以计算出系统中所有用户的私钥那么应该有一种机制 来保证 ta 不会滥用这种特权 密钥托管就像一把双刃剑在不同的使用环境使用策略下表现出不同的 作用在商业环境中公司拥有机密数据而且需要加密存储一旦在忘记解密 密钥的情况下ta 可以计算出响应的解密私钥这保证了加密存储数据的可用 性 而在一个需要数字签名digital signatures的方案中所有交易事务需要不 可否认性non-repudiation如果一个 ta 计算出签名私钥并恶意的对某信息 或事务签名那么怎么来证明这个签名是真实有效的呢关于这个问题第四章 里面还会详细讨论 而在 pki 系统中公钥私钥对可以由 ca 生成也可以由用户生成这提 供了更加灵活的选择机制如果加密公钥解密私钥对由 ca 生成并通过签名 证书颁发给用户则 ca 掌握了用户的解密私钥托管在法律许可的情况下 ca 可以利用这个解密私钥解密传送给用户的加密数据 如果用户不愿意解密密钥被 ca 托管则用户可以选择自己生成加密公钥 解密私钥对并将加密公钥提供给 ca由 ca 签名制作证书后再发布在这种 情况下解密私钥只有用户知道用户可以对数据的保密性负责由以上讨论可 知基于证书的 pki 系统在密钥托管上具有更多的灵活性 3 . 5 加密与解密 在 pki 系统中 用户在加密信息前 用户需要确认他所使用的加密公钥确实 是收信方的公钥 这是由证书来保证的 在 id-pkc 系统中用户在加密信息前 无需确认对方身份因为在对方身份已经隐含在加密公钥之中 在 id-pkc 系统中用户加密信息时需要提供系统参数system parameters而在 pki 系统中并无对应的组件 在 id-pkc 系统中解密者向 ta 申请解密私钥每次会话得到的解密私钥 是否相同 取决于发送者是否使用了长期或者短期加密公钥如果发送者使用长 期加密公钥 则解密者会从 ta 得到相同的解密私钥 或解密者无需频繁地向 ta 申请解密私钥如果发送者使用短期加密公钥则解密者需要频繁地从 ta 出申 请解密私钥且每次得到的解密私钥都不一样在 pki 系统中只要证书在有效 期之内公钥是有效的则相关联的私钥也是有效的也就是说私钥是固定不 变的 在 pki 系统中 加密公钥通常被当作长期公钥来使用 这存在一个安全隐患 如果解密私钥泄密 则会造成以往加密信息的失密当然也可以制作短生命周期 的证书但这会增加证书管理的麻烦 上海交通大学工程硕士研究生学位论文 第 18 页 共 48 页 3 . 6 签名与验证 在 id-pkc 系统中验证公钥由用户 id 推导出这可以由签名者推导出 然后附加在签名上并公布出去也可以由验证者在需要验证签名的时候推导出 在 pki 系统中 验证公钥和签名私钥是同时计算出的 包含有验证公钥的证书通 常可以附加在签名上 在 id-pkc 系统中签名私钥由 ta 计算出然后发送给签名者这就使得 id-pkc 系统具有天然的密钥托管功能在一个需要有不可否认性的数字签名方 案中id-pkc 系统的这一特性使得其不具有优势而在 pki 系统中签名私钥 验证公钥对可以选择由 ca 或用户自己生成由 ca 生成则具有托管功能由 用户生成则具有不可否认性这使得 pki 系统更为灵活 3 . 7 证书撤销 如表 22 所示在 pki 系统中证书都包含一个有效期一般的做法是在 老证书即将过期之前颁发新的证书此外有时基于以下每个原因要在证书过期 之前撤销它认为用户的密钥已经泄漏用户不再由这个 ca 颁发证书认为 ca 证书已经泄漏业务发生改变等 撤销是 pki 的一个难题 已经撤销的证书 ca 必须要让其他所有用户了解 每个 ca 必须保持一个所有已经撤销的但还没有过期的证书表 称为证书撤销表 crlcertificate revocation listsrfc2459这些证书可能由这个 ca 或其他 ca 颁发crl 也粘贴到目录中 当用户收到报文中的证书时 必须确定证书是否已被撤销用户每次收到一 个证书时可以检查目录中的 crl以核对该证书是否已经被撤销为了避免相 关目录检查带来的时延和可能的开销 用户可以在本地保持一个被撤销证书的高 速缓存 除了 crl 方法外pki 系统也使用在线证书状态协议 ocsponline certificate status protocolrfc2560来管理撤销的证书crl 列表是定期更 新但不一定是及时更新的如果某些关键应用如大额证券交易则要求更为严 格及时的证书有效性检查可以使用 ocsp 服务来确定证书是否被撤销如果 某个 ca 的私钥泄密ocsp 还可以把所有该 ca 颁发的证书标记为已被撤销 证书撤销是 pki 系统面临的难题在 id-pkc 系统中没有证书但是与 pki 系统相类似管理 id 及其对应的公钥也是一个难题也许和 pki 系统的证书撤 销问题一样涉及到复杂的管理 正如 3.2 节谈到管理 id 是 id-pkc 系统的一个潜在问题因为公钥和 id 紧密关联撤销公钥就是撤销相关的 id如果一个用户的 id 并不容易撤销如 email 地址姓名出生日期等那这个问题就更加突出因为类似与 email 地 址这样的 id与具体的某一个人很容易联系起来而要撤销一个 email 地址可 上海交通大学工程硕士研究生学位论文 第 19 页 共 48 页 不像撤销证书那么容易 如果使用不容易记忆的 id如计算机生成每个人的序列号用这个序列 号来作为 id则撤销该 id 很容易只要把这个序列号作废即可但是序列号本 身和具体的人关联度不大换句话说不容易被人记住用序列号作为 id 也失 去了 id-pkc 的一个优点 3 . 8 证书重发 和证书撤销相关联证书撤销之后可能需要重发证书在传统的 pki 系统 中重发证书意味着重新注册生成新的公钥私钥对然后制作一个新的证书 并颁布 这意味着大量的管理工作也有研究者提出了证书和私钥分离存储的方 案私钥存储在智能卡或 usb key上证书存储在硬盘中这样 ca 可以在 不更改私钥的情况下重新颁发证书这样可以减少不少的管理工作 因为公钥和 id 紧密关联 重发证书也会成为潜在的问题 与证书撤销一样 boneh franklin 在文献bone01中提到把日期合并到 id 中用基于过 期时间的重发私钥来避免证书的撤销或作为一种撤销机制如 id = bob | date = today ,这意味着私钥每天都会变化或者说密钥每天 都被撤销用户需要到 ta 处申请新的私钥 这种撤销机制会引发一些问题如果强制要求合法用户每天甚至每小时 都到 ta 处获取新的私钥这就要求 ta 大部分时间必须处于联机状态而且会 加重 ta 的负载 与此相类似在 pki 系统中也有 ocspcrl 服务器在联机工作但是 crl 可以是分布式处理可以被用户端下载的 3 . 9 密钥策略 x.509v3 对证书进行了扩展 rfc2459其中扩展的一个主要类是密钥和策 略信息这些扩展传递有关主体和颁发者的附加信息以及证书策略的指示器证 书策略是一个规则命名集规则说明针对某些特定团体和或有共同安全需求 应用类证书的应用能力例如在一个给定的价格范围内某个政策可能适用某 些事务的鉴别证书策略括如下要素 权威密钥标识符鉴别用于验证这个证书或 crl 上签名的公开密钥能使 同一个ca 的不同密钥区分开来 这个字段的一个用途使处理ca 密钥对的更新 主体密钥标识符 鉴别被证明的公开密钥 对主体密钥对的更新有用 此外 一个主体可能有多个密钥对 相应的 对不同目的 如数字签名和加密密钥协议 有不同的证书 密钥的用法说明针对某个目的以及这个目的下的策略强加的约束可能需 要使用经证明的公开密钥可能要说明下面中的一个或多个目的数字签名认 可密钥加密数据加密密钥约定证书上 ca 签名的验证和 crl 上 ca 签 上海交通大学工程硕士研究生学位论文 第 20 页 共 48 页 名的验证 私有密钥的使用期限说明公开密钥对应的私人密钥的使用期限典型的 私有密钥使用期限与公开密钥使用期限有效期不同 用作数字签名时签名的私 有密钥的使用期限一般比用作验证的公开密钥期限短 证书策略 证书可能用于使用多个策略的环境这个扩展列举了证书支持的 策略以及可选的合格信息 策略映射仅用在其他 ca 发给某个 ca 的证书中策略映射允许一个颁发 ca 用来说明颁发者策略中的一个或多个可以认为等价于在主体 ca 域中所有的 另一个策略 在 id-pkc 系统中并无对应的策略如果要实现相应的策略可以在 id 数据库中来实现 3 . 1 0 权限管理 传统上pki 是用于鉴别而不是用于授权在很多商业 pki 系统中证书用 于鉴别授权则由独立的授权机制来保证独立的授权机制可能如访问控制列 表access control listacl特权管理体系privilege management infrastructure pmi等 这儿讨论的权限rights单指拥有密钥或证书而由此得到的权限如用户 能够执行哪些操作与用户相关的 id 或密钥可以完成的任务具体如阅读某 份机密文档的权限签署某份订货单的权限等等 在 pki 系统中密钥和 id 绑定在一起可以使用证书策略来限定证书拥有 者的某些权限根据证书策略密钥的用法可以被限定或指定如密钥可以用于 以下一个或者多个任务数字签名认可密钥加密数据加密密钥约定证 书上 ca 签名的验证和 crl 上 ca 签名的验证等 在 id-pkc 系统中 与 pki 系统用类似 授权可以用独立的授权机制来完成 同时也可以在生成密钥的时候 限定密钥的用途如对公钥添加某些字段来限定 相应的密钥只能用户加密或者只能用于签名 又或者添加某些密级字段来限定相 应的密钥只能被特定密级的用户才能使用bone01又如某些实现了工作流 的方案levy02通过添加流程字段来限定信息按照一定的业务流程来处 理 在 pki 系统中 验证签名时 任何人都可以使用和签名私钥相对应的公钥来 验证该签名验证签名可能发生在生成签名的时间很久之后如果签名需要被多 人多次验证的话这是很好的优点但是签名者的签名权限也可能带来问题例 如在提供不可否认性的签名系统中如果签名和证书撤销几乎同时发生事后 要判断二者的先后次序是很困难的 在 id-pkc 系统中验证签名时任何人都可以使用和签名私钥相对应的公 钥来验证该签名 因为签名私钥需要到 ta 处去申请 这样可以保证签名的时候 该证书或 id 没有被撤销 上海交通大学工程硕士研究生学位论文 第 21 页 共 48 页 四 密钥分发与托管 4 . 1 系统的安全问题 无论是 pki 系统还是 id-pkc 系统 在系统构建之时就可能出现一些安全隐 患特别是 id-pkc 系统存在着一些重要的缺点 单点信任问题 pki 系统中的 caid-pkc 系统中的 ta因为担负着认证的任务其上存 放着系统主密钥如果攻击者强行攻击 ca 或 ta发生主密钥泄漏事件有可 能造成系统崩溃 合谋攻击 系统中单个用户也许无法对系统安全造成伤害 但是如果若干个用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论