《PKI技术及其发展现状.doc》由会员分享,可在线阅读,更多相关《PKI技术及其发展现状.doc(8页珍藏版)》请在金锄头文库上搜索。
1、PKI技术及其发展现状一、安全基础设施普业适性基础就是一个大环境例如公司组织的基目本框架,一个基础设施可视作一个普适性基础。电力供应基础设施就是我们熟悉的一个例子。电源插座可以让各种电力设备获得运行所需要的电压和电流。基础设施所遵循的原理是:只要遵循需要的原则,不同的实体就可以方便地使用基础设施所提供的服务。用于安全的基础设施必须遵循同样的原理,同样是要提供基础服务。安全基础设施就是为整个组织(“组织”是可以被定义的)提供安全的基本框架,可以被组织中任何需要安全的应用和对象使用。安全基础设施的“接入点”必须是统一的,便于使用(就象墙上的电源插座一样)。只有这样,那些需要使用这种基础设施的对象在
2、使用安全服务时,才不会遇到太多的麻烦。安全基础设施的主要目标就是实现“应用支撑”的功能。从某种意义上说,电力系统就是一个应用支撑,它可以让“应用”,如烤面包机、电灯正常地工作。进一步地讲,由于电力基础设施具有通用性和实用性的特点,使它能支撑新的“应用”(如吹风机),而这些“应用”在电力基础设施设计的时候,还没有出现。安全基础设施能够让应用程序增强自己的数据和资源的安全以及与其它数据和资源交换中的安全。怎样使增加安全功能变得简单、易于实现是最有用的。甚至可以说,使用安全基础设施应当象将电器设备插入墙上的插座一样简单:( 1 )具有易于使用、众所周知的界面;( 2 )基础设施提供的服务可预测且有效
3、;( 3 )应用设备无需了解基础设施如何提供服务。以烤面包机为例,对烤面包机来说,电能怎样从发电站传送到房间,或者传送到房间里墙上的各种各样的插座是没有区别的。可是,当烤面包机一旦插入任何一个墙上的电源插座。它就可以从众所周知的界面(电源插座)得到指定的电压和电流,从中获取能量r 并正常地工作。安全基础设施必须具有同样友好的接入点,为应用设备提供安全服务。应用设备无须知道基础设施如何实现安全服务,但基础设施能够一致有效地提供安全服务才是最重要的。目前最流行的、最有诱惑力的安全基础设施是公开密钥基础设施(Public Key)nfrastoucture 一PKI )。简单地讲PKI就是一个用公钥
4、概念和技术实施和提供安全服务的具有普适性的安全基础设施。二、PKI的定义PKI的基本定义十分简单。所谓PKI就是一个用公钥概念和技术实施和提供安全服务的具有普适性的安全基础设施。但PKI的定义在不断的延伸和扩展。库也是扩展的PKI系统的一个组成部分(因为一个大阴没有证书库是无法使用的)。(1)证书撤消。CA 签发证书来捆绑用户的身份和公钥。可是在现实环境中,必须存在一种机制来撤消这种认可。通常的原因包括用户身份的改变(例如婚前姓名改为婚后姓名)或私钥遭到破坏(例如被黑客发现),所以必须存在一种方法警告其他用户不要再使用这个公钥。在PK1 中这种告警机制被称为证书撤销。(2)密钥备份和恢复。在很
5、多环境下他们通过对一个包含身份信息和相应公钥的;阅数据结构进行数字签名来捆绑用户的公钥和身份户嘛声这个数据结构被称为公钥证书(简称证书)。尽管CA 不是每个可想象到的PKI的必须部分(特别是范围有限并且相对封闭的环境中,用户可以作为自己的权威机构), 但CA 是很多大规模PKI的关键组成部分。(3)证书库。很容易认识到CA 只能解决前面章节所提问题的一部分(所提问题就是A 需要找到日的公钥以便和B 进行保密通信)。证书机构颁发了一个证书来捆绑日的身份和公钥,但除非A 能容易地找到证书,否贝lJ 和没有创建证书一样。必须存在某种鲁棒的、规模可扩充的在线资料库系统,以便A 能找到安全通信需要的证书
6、。所以证书私钥丢失,这些文件将无法恢复,可能会对这次业务造成严重伤害甚至停止。一个解决方案是为多个接收者加密所有数据,但对于高度敏感数据,这k 个方法是不可行的。一个更尸可行和通用的可接受的方法是备份并能恢复私钥。(4)自动密钥更新。一个证书的有效期是有限的,这既可能是理论上的原因,诸如关于当前非和密钥长度进行分析的知识现状,也可能是基于实际估计的因素(“我们频繁地变换密钥,以保证每个密钥只保护x 兆字节的数据”)。可是无论是什么原因,在很多户K )环境中,一个已颁发的证书需要“过期”,以便更换新的证书,这个过程被称为“密钥更新或证书更新”。绝大多数PKI用户发现用手工操作的方式定期更新自己的
7、证书是一件令人头痛的事情。用户常常忘记自己证书过期的时间,他们往往是在认证失败时才发现问题,届时显得太晚了。除非用户完成了密钥更新过程,否则他们无法获得PKI的相关服务。进一步地讲,当用户处于这种状态,更新过程更为复杂,要求与CA 带外交换数据(类似于初始化过程)。解决方法是由PKI本身自动完成密钥或证书的更新,完全无须用户的干预。无论是用户的证书用于何种目的,都会检查有效期,当失效日期到来时,启动更新过程,生成一个新证书来代替旧证书,但用户请求的事物处理继续进行。(5)密钥历史档案。密钥更新(无论是人为还是自动)的概念,意味着经过一段时间,每个用户都会拥有多个“旧”证书和至少一个“当前”的证
8、书。这一系列证书和相应的私钥组成用户的密钥历史档案(可能应当更正确地称为密钥和证书历史)。记录整个密钥历史是十分重要的。因为A 自己五年前加密的数据(或其他人为A 加密的数据)无法用现在的私钥解密。A 需要从他的密钥历史档案中找到正确的解密密钥来解密数据。类似地,需要从密钥历史档案中找到合适的证书验证A 五年前的签名。类似于密钥更新,管理密钥历史档案也应当由PKI自动完成。在任何系统中,需要用户自己查找正确的私钥或用每个密钥去尝试解密数据,这对用户来说是无法容忍的。PKI必须保存所有密钥,以便正确的备份和恢复密钥,查找正确的密钥以便解密数据。(6)交叉认证。在一系列独立开发的PKI中,至少其中
9、一部分互连是不可避免的。由于业务关系的改变或其它一些原因,不同PKI的用户团体之间必须进行安全通信,即使以前没有安全通信的需求。为了在以前没有联系的PKI之间建立信任关系,导致了“交叉认证”的概念。在没有一个统一的全球的PKI环境下,交叉认证是一个可以接受的机制,能够保证一个PKI团体的用户验证另一个PKI团体的用户证书。交叉认证满足业务需求的重要性,意味着它是扩展后的PKI定义的一部分。(7)支持非否认。一个PKI用户经常执行与他们身份相关的不可否认的操作(例如,A 对一份文档进行数字签名,申明文档来自于他)。由于业务活动不可中断,要求用户在将来任何时候不能随意破坏这种关系(特别是有利的时候
10、)。例如,A 签了某份文件,几个月后不能否认他的签名,并说别人获取了他的签名私钥,在没有获得他同意的情况下签发了文件。这样的行为被称为否认。PKI必须能支持避免或阻止否认这就是不可否认的特点。一个PKI本身无法提供真正完全的不可否认服务。需要人为因素来分析、判断证据,并作出最后的抉择。然而,PKI必须提供所需要的技术上的证据,支持决策,提供数据来源认证和可信的时间数据的签名。所以,支持不可否认是扩展后PKI的一部分。(8)时间戳。支持不可否认服务的一个关键因素就是在PKI中使用安全时间戳(就是说时间源是可信的,时间值必须被安全地传送)。PKI中必须存在用户可信任的权威时间源(事实上,权威时间源
11、提供的时间并不需要正确,仅仅需要用户作为一个“参照”时间完成基于PKI的事务处理(例如:事件8 发生在事件A 的后面)。然而,毫无疑问,最好使用世界上官方时间源提供的时间)。仅仅是为了不可否认的目的,PKI中无须存在权威时间源(就是被PKI用户的相关团体能验证证书的安全时间戳服务器)。在很多情况下,在一份文件上盖上权威时间戳是非常有用的。在很多环境中,支持不可否认服务是时间戳的主要目的。无论在何种情况下,时间戳都形成了扩展的PKI 的一部分。(9)客户端软件。只要理解客户一服务器结构的人都应该知道,除非客户端请求服务(就是发出请求),服务器通常不会为客户端做任何事情。这个原理同样适用于PKI。
12、在用户本地平台上的客户必须请求认证服务。客户端软件必须询问证书和相关的撤消信息。客户端软件必须理解密钥历史档案,知道何时需要请求密钥更新或密钥恢复操作。客户端软件必须知道何时为文档请求时间戳。作为安全通信的接收端点(从应用程序的角度看,正在执行一个“服务器”进程)r 正是PKI客户端软件需要理解策略,需要知道是否、何时和怎样去执行取消操作,需要知道证书路径处理,等等。客户端软件是一个全功能、可操作PKI的必要组成部分。没有客户端软件,PKI无法有效地提供很多服务,因为我们无法去使用这些服务。特别注意的是,不存在应用程序包含PKI的告警码(如浏览器或电子邮件软件包)。这样的结构违反了PKI作为一
13、个“真”的基础设施的概念,无法保证所有应用程序和平台提供风格一致的安全服务。所以,客户端软件应当独立于所有应用程序之外,完成PKI服务的客户端功能。应用程序通过标准接入点与客户端软件连接(与其它基础设施一样),但应用程序本身并不与各种PKI服务。三、PKI的核心服务一般认为PKI提供了以下三种主要安全服务:认证向一个实体确认另一个实体确实是他自己。PKI的认证服务采用数字签名这一密码技术。完整性向一个实体确保数据没有被有意或无意的修改。PKI的完整性服务可以采用两种技术之一。第一种技术是数字签名。第二种技术是消息认证码或MAC 。这项技术通常采用对称分组密码或密码杂凑函数。机密性向一个实体确保
14、除了接收者,无人能读懂数据的关键部分。PKI的机密性服务采用类似于完整牲服务的机制,就是:首先,A 生成一个对称密钥(也许是使用他的密钥交换私钥和日的密钥交换公钥):其次,用对称密钥加密数据(使用对称分组密码);最后将加密后的数据以及A 的密钥交换公钥或用B 的加密公钥加密后的对称密钥发送给已。为了在实体(A 和田间建立对称密钥,需要建立密钥交换和密钥传输机制。四、PKI的信任模型PKI的信任模型解决以下一些问题:一个实体能够信任的证书是怎样被确定的。这种信任是怎样被建立的P 。在一定的环境下,这种信任在什么情形下能够被限制或控制?目前流行的PKI信任模型主要有四种:认证机构(CA )的严格层
15、次结构。认证机构(CA 的严格层次结构可以描绘为一棵倒转的树,根在顶上,树枝向下伸展,树叶在下面。在这棵倒转的树上,根代表一个对整个PKI域内的所有实体都有特别意义的CA 通常被叫做根CA ,其作为信任的根或“信任锚”。在根CA 的下面是零层或多层中间CA (也被称作子CA ,因为它们是从属于根的),这些CA 由中间节点代表,从中间节点再伸出分支。与非CA 的PK 实体相对应的树叶通常被称作终端实体或简称为终端用户。分布式信任结构。与在PKI系统中的所有实体都信任唯一一个CA 的严格层次结构相反,分布式信任结构把信任分散到两个或更多个(或许是很多个)CA 上。更准确地说,A 把CA :的公钥作
16、为他的信任锚,而B可以把CAZ 的公钥做为他的信任锚。因为这些CA 的密钥都作为信任锚,因此相应的CA 必须是整个PKI群体的一个子集所构成的严格层次结构的根CA ( CA :是包括A 在内的层次结构的根,CAZ 是包括B 在内的层次结构的根)。 Web 模型。这种模型猛一看与分布式信任结构模型相似,但从根本上讲,它与CA 的严格层次结构模型更相象。四eb 模型通过与相关域进行互连而不是扩大现有的主体群体,来使A 成为在浏览器中所给出的所有域的依托方。实际上,每个浏览器厂商都有自己的根,并且由厂商认证嵌入到浏览器中的CA 。唯一真正的不同是根CA 并不被浏览器厂商的根所认证,而是物理地嵌入软件来发布,作为对CA 名字和它的密钥的安全绑定。实质上,这是一种有隐含根的严格层次结构(更准确地说浏览器厂商是实质上的根CA ,而层次结构中下面的第一层则是所有的已嵌入的CA 的