PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。X.509标准中,为了区别于权限管理基础设施(Privilege Management Infrastructure,简称PMI),将PKI定义为支持公开密钥管理并能支持认证、加密、完整性和可追究性服务的基础设施]。这个概念与第一个概念相比,不仅仅叙述PKI能提供的安全服务,更强调PKI必须支持公开密钥的管理。也就是说,仅仅使用公钥技术还不能叫做PKI,还应该提供公开密钥的管理。因为PMI仅仅使用公钥技术但并不管理公开密钥,所以,PMI就可以单独进行描述了而不至于跟公钥证书等概念混淆。X.509中从概念上分清PKI和PMI有利于标准的叙述。然而,由于PMI使用了公钥技术,PMI的使用和建立必须先有PKI的密钥管理支持。也就是说,PMI不得不把自己与PKI绑定在一起。当我们把两者合二为一时,PMI+PKI就完全落在X.509标准定义的PKI范畴内。根据X.509的定义,PMI+PKI仍旧可以叫做PKI,而PMI完全可以看成PKI的一个部分。
pki_PKI -解析
随着Internet 的普及,人们通过因特网进行沟通越来越多,相应的通过网络进行商务活动即电子商务也得到了广泛的发展。电子商务为我国企业开拓国际国内市场、利用好国内外各种资源提供了一个千载难逢的良机。电子商务对企业来说真正体现了平等 竞争、高效率、低成本、高质量的优势,能让企业在激烈的市场竞争中把握商机、脱颖而出。发达国家已经把电子商务作为21 世纪国家经济的增长重点,我国的有关部门也正在大力推进我国企业发展电子商务。然而随着电子商务的飞速发展也相应的引发出一些Internet 安全问题。
概括起来,进行电子交易的互联网用户所面临的安全问题有:
一,保密性 :如何保证电子商务中涉及的大量保密信息在公开网络的传输过程中不被窃取;
二,完整性 :如何保证电子商务中所传输的交易信息不被中途篡改及通过重复发送进行虚假交易;
三,身份认证与授权 :在电子商务的交易过程中,如何对双方进行认证,以保证交易双方身份的正确性;
四,抗抵赖 :在电子商务的交易完成后,如何保证交易的任何一方无法否认已发生的交易。这些安全问题将在很大程度上限制电子商务的进一步发展,因此如何保证Internet 网上信息传输的安全,已成为发展电子商务的重要环节。
为解决这些Internet 的安全问题,世界各国对其进行了多年的研究,初步形成了一套完 整的Internet 安全解决方案,即时下被广泛采用的PKI 技术(Public Key Infrastructure-公钥基 础设施),PKI(公钥基础设施)技术采用证书管理公钥,通过第三方的可信任机构--认证中 心CA(Certificate Authority),把用户的公钥和用户的其他标识信息(如名称、e-mail、身份 证号等)捆绑在一起,在Internet 网上验证用户的身份。眼下,通用的办法是采用基于PKI 结构结合数字证书,通过把要传输的数字信息进行加密,保证信息传输的保密性、完整性,签名保证身份的真实性和抗抵赖。
pki_PKI -基本组成
PKI(Public Key Infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI 框架管理密钥和证书可以建立一个安全的网络环境。PKI 主要包括四个部分:X.509 格式的证书(X.509 V3)和证书废止列表CRL(X.509 V2);CA 操作协议;CA 管理协议;CA 政策制定。一个典型、完整、有效的PKI 应用系统至少应具有以下五个部分;
1) 认证中心CA CA 是PKI 的核心,CA 负责管理PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,CA 还要负责用户证书的黑名单登记和黑名单发布,后面有CA 的详细描述。
2) X.500 目录服务器 X.500 目录服务器用于发布用户的证书和黑名单信息,用户可通过标准的LDAP 协议查询自己或其他人的证书和下载黑名单信息。
3) 具有高强度密码算法(SSL)的安全WWW服务器 Secure socket layer(SSL)协议最初由Netscape 企业发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯的全球化标准。
4) Web(安全通信平台) Web 有Web Client 端和Web Server 端两部分,分别安装在客户端和服务器端,通过具有高强度密码算法的SSL 协议保证客户端和服务器端数据的机密性、完整性、身份验证。
5) 自开发安全应用系统 自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。完整的PKI 包括认证政策的制定(包括遵循的技术标准、各CA 之间的上下级或同级关系、安全策略、安全程度、服务对象、管理原则和框架等)、认证规则、运作制度的制定、所涉及的各方法律关系内容以及技术的实现等。
完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。一个典型、完整、有效的PKI应用系统至少应具有以下部分:
・ 公钥密码证书管理。
・ 黑名单的发布和管理。
・ 密钥的备份和恢复。
・ 自动更新密钥。
・ 自动管理历史密钥。
・ 支持交叉认证。
认证机构(CA):即数字证书的申请及签发机关,CA必须具备权威性的特征;
数字证书库:用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥;
密钥备份及恢复系统:如果用户丢失了用于解密数据的密钥,则数据将无法被解密,这将造成合法数据丢失。为避免这种情况,PKI提供备份与恢复密钥的机制。但须注意,密钥的备份与恢复必须由可信的机构来完成。并且,密钥备份与恢复只能针对解密密钥,签名私钥为确保其唯一性而不能够作备份。
证书作废系统:证书作废处理系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样,证书有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。为实现这一点,PKI必须提供作废证书的一系列机制。
应用接口(API):PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的PKI必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保安全网络环境的完整性和易用性。
通常来说,CA是证书的签发机构,它是PKI的核心。众所周知,构建密码服务系统的核心内容是如何实现密钥管理。公钥体制涉及到一对密钥(即私钥和公钥),私钥只由用户独立掌握,无须在网上传输,而公钥则是公开的,需要在网上传送,故公钥体制的密钥管理主要是针对公钥的管理问题,时下较好的解决方案是数字证书机制。
pki_PKI -原理
公钥基础设施PKI 的原理,顾名思义PKI 是基于公钥密码技术的。要想深刻理解PKI的原理,就一定要对PKI 涉及到的密码学知识有比较透彻的理解。下面简单介绍一下密码学知识。对于普通的对称密码学,加密运算与解密运算使用同样的密钥。
通常,使用的加密算法比较简便高效,密钥简短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。正是由于对称密码学中双方都使用相同的密钥,因此无法实现数据签名和不可否认性等功能。而与此不同的非对称密码学,具有两个密钥,一个是公钥一个是私钥,它们具有这种性质:用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。公钥顾名思义是公开的,所有的人都可以得到它;私钥也顾名思义是私有的,不应被其他人得到,具有唯一性。这样就可以满足电子商务中需要的一些安全要求。比如说要证明某个文件是特定人的,该人就可以用他的私钥对文件加密,别人如果能用他的公钥解密此文件,说明此文件就是这个人的,这就可以说是一种认证的实现。还有如果只想让某个人看到一个文件,就可以用此人的公钥加密文件然后传给他,这时只有他自己可以用私钥解密,这可以说是保密性的实现。基于这种原理还可以实现完整性。这就是PKI 所依赖的核心思想,这部分对于深刻把握PKI 是很重要的,而恰恰这部分是最有意思的。
比如在现实生活中,我们想给某个人在网上传送一个机密文件,该文件我们只想让那个人看到,我们设想了很多方法,首先我们想到了用对称密码将文件加密,而在我们把加密后的文件传送给他后,我们又必须得让他知道解密用的密钥,这样就又出现了一个新的问题,就是我们如何保密的传输该密钥,此时我们发现传输对称密钥也不可靠。
后来我们可以改用非对称密码的技术加密,此时发现问题逐渐解决了。然而又有了一个新的问题产生,那就是如何才能确定这个公钥就是某个人的,假如我们得到了一个虚假的公钥,比如说我们想传给A 一个文件,于是开始查找A 的公钥,但是这时B 从中捣乱,他把自己的公钥替换了A 的公钥,让我们错误的认为B 的公钥就是A 的公钥,导致我们最终使用B 的公钥加密文件,结果A 无法打开文件,而B 可以打开文件,这样B 实现了对保密信息的窃取行为。因此就算是采用非对称密码技术,我们仍旧无法保证保密性的实现,那我们如何才能确切的得到我们想要的人的公钥呢?这时我们很自然的想到需要一个仲裁机构,或者说是一个权威的机构,它能为我准确无误的提供我们需要的人的公钥,这就是CA。
这实际上也是应用公钥技术的关键,即如何确认某个人真正拥有公钥(及对应的私钥)。在PKI 中,为了确保用户的身份及他所持有密钥的正确匹配,公开密钥系统需要一个值得信赖而且独立的第三方机构充当认证中心(Certification Authority,CA),来确认公钥拥有人的真正身份。就象公安局发放的身份证一样,认证中心发放一个叫"数字证书"的身份证明。
这个数字证书包含了用户身份的部分信息及用户所持有的公钥。象公安局对身份证盖章一样,认证中心利用本身的私钥为数字证书加上数字签名。任何想发放自己公钥的用户,可以去认证中心申请自己的证书。认证中心在鉴定该人的真实身份后,颁发包含用户公钥的数字证书。其他用户只要能验证证书是真实的,并且信任颁发证书的认证中心,就可以确认用户的公钥。认证中心是公钥基础设施的核心,有了大家信任的认证中心,用户才能放心方便的使用公钥技术带来的安全服务。
pki_PKI -核心
认证中心CA 作为PKI 的核心部分,CA 实现了PKI 中一些很重要的功能,概括地说,认证中心(CA)的功能有:证书发放、证书更新、证书撤销和证书验证。CA 的核心功能就是发放和管理数字证书,具体描述如下:
(1)接收验证最终用户数字证书的申请。
(2)确定是否接受最终用户数字证书的申请-证书的审批。
(3)向申请者颁发、拒绝颁发数字证书-证书的发放。
(4)接收、处理最终用户的数字证书更新请求-证书的更新。
(5)接收最终用户数字证书的查询、撤销。
(6)产生和发布证书废止列表(CRL)。
(7)数字证书的归档。
(8)密钥归档。
(9)历史数据归档。
认证中心CA 为了实现其功能,主要由以下三部分组成:
注册服务器:通过 Web Server 建立的站点,可为客户提供24×7 不间断的服务。客户在网上提出证书申请和填写相应的证书申请表。
证书申请受理和审核机构:负责证书的申请和审核。它的主要功能是接受客户证书申请并进行审核。
认证中心服务器:是数字证书生成、发放的运行实体,同时提供发放证书的管理、证书废止列表(CRL)的生成和处理等服务。
在具体实施时,CA 的必须做到以下几点:
1) 验证并标识证书申请者的身份。
2) 确保CA 用于签名证书的非对称密钥的质量。
3) 确保整个签证过程的安全性,确保签名私钥的安全性。
4) 证书资料信息(包括公钥证书序列号,CA 标识等)的管理。
5) 确定并检查证书的有效期限。
6) 确保证书主体标识的唯一性,防止重名。
7) 发布并维护作废证书列表。
8) 对整个证书签发过程做日志记录。
9) 向申请人发出通知。
在这其中最重要的是CA 自己的一对密钥的管理,它必须确保其高度的机密性,防止他方伪造证书。CA 的公钥在网上公开,因此整个网络系统必须保证完整性。CA 的数字签名保证了证书(实质是持有者的公钥)的合法性和权威性。
用户的公钥有两种产生的方式:
(1)用户自己生成密钥队,然后将公钥以安全的方式传送给CA,该过程必须保证用户公钥的验证性和完整性。
(2)CA 替用户生成密钥队,然后将其以安全的方式传送给用户,该过程必须确保密钥对的机密性,完整性和可验证性。该方式下由于用户的私钥为CA 所产生,所以对CA 的可信性有更高的要求。CA 必须在事后销毁用户的私钥。
一般而言公钥有两大类用途,就像本文前面所述,一个是用于验证数字签名,一个是用于加密信息。相应的在CA 系统中也需要配置用于数字签名/验证签名的密钥对和用于数据加密/脱密的密钥对,分别称为签名密钥对和加密密钥对。由于两种密钥对的功能不同,管理起来也不大相同,所以在CA 中为一个用户配置两对密钥,两张证书。
CA 中比较重要的几个概念点有:证书库。证书库是CA 颁发证书和撤销证书的集中存放地,它像网上的“白页“一样,是网上的一种公共信息库,供广大公众进行开放式查询。这是非常关键的一点,因为我们构建CA 的最根本目的就是获得他人的公钥。时下通常的做法是将证书和证书撤消信息发布到一个数据库中,成为目录服务器,它采用LDAP 目录访问协议,其标准格式采用X.500 系列。随着该数据库的增大,可以采用分布式存放,即采用数据库镜像技术,将其中一部分与本组织有关的证书和证书撤消列表存放到本地,以提高证书的查询效率。这一点是任何一个大规模的PKI 系统成功实施的基本需求,也是创建一个有效的认证机构CA 的关键技术之一。
另一个重要的概念是证书的撤消。由于现实生活中的一些原因,比如说私钥的泄漏,当事人的失踪死亡等情况的发生,应当对其证书进行撤消。这种撤消应该是及时的,因为如果撤消延迟的话,会使得不再有效的证书仍被使用,将造成一定的损失。在CA 中,证书的撤消使用的手段是证书撤消列表或称为CRL。即将作废的证书放入CRL 中,并及时的公布于众,根据实际情况不同可以采取周期性发布机制和在线查询机制两种方式。
密钥的备份和恢复也是很重要的一个环节。如果用户由于某种原因丢失了解密数据的密钥,那么被加密的密文将无法解开,这将造成数据丢失。为了避免这种情况的发生,PKI提供了密钥备份于解密密钥的恢复机制。这一工作也是应该由可信的机构CA 来完成的,而且,密钥的备份与恢复只能针对解密密钥,而签名密钥不能做备份,因为签名密钥匙用于不不可否认性的证明的,如果存有备份的话,将会不利于保证不可否认性。
还有,一个证书的有效期是有限的,这样规定既有理论上的原因,又有实际操作的因素。在理论上诸如关于当前非对称算法和密钥长度的可破译性分析,同时在实际应用中,证明密钥必须有一定的更换频度,才能得到密钥使用的安全性。因此一个已颁发的证书需要有过期的措施,以便更换新的证书。为了解决密钥更新的复杂性和人工干预的麻烦,应由PKI本身自动完成密钥或证书的更新,完全不需要用户的干预。它的指导思想是:无论用户的证书用于何种目的,在认证时,都会在线自动检查有效期,当失效日期到来之前的某时间间隔内,自动启动更新程序,生成一个新的证书来替代旧证书。
pki_PKI -目标
PKI就是一种基础设施,其目标就是要充分利用公钥密码学的理论基础,建立起一种普遍适用的基础设施,为各种网络应用提供全面的安全服务。公开密钥密码为我们提供了一种非对称性质,使得安全的数字签名和开放的签名验证成为可能。而这种优秀技术的使用却面临着理解困难、实施难度大等问题。正如让电视机的开发者理解和维护发电厂有一定的难度一样,要让每一个应用程序的开发者完全正确地理解和实施基于公开密钥密码的安全有一定的难度。PKI希望通过一种专业的基础设施的开发,让网络应用系统的开发人员从繁琐的密码技术中解脱出来而同时享有完善的安全服务。
将PKI在网络信息空间的地位与电力基础设施在工业生活中的地位进行类比可以更好地理解PKI。电力基础设施,通过伸到用户的标准插座为用户提供能源,而PKI通过延伸到用户本地的接口,为各种应用提供安全的服务。有了PKI,安全应用程序的开发者可以不用再关心那些复杂的数学运算和模型,而直接按照标准使用一种插座(接口)。正如电冰箱的开发者不用关心发电机的原理和构造一样,只要开发出符合电力基础设施接口标准的应用设备,就可以享受基础设施提供的能源。
PKI与应用的分离也是PKI作为基础设施的重要标志。正如电力基础设施与电器的分离一样。网络应用与安全基础实现了分离,有利于网络应用更快地发展,也有利于安全基础设施更好地建设。正是由于PKI与其他应用能够很好地分离,才使得我们能够将之称为基础设施,PKI也才能从千差万别的安全应用中独立出来,才能有效地独立地发展壮大。PKI与网络应用的分离实际上就是网络社会的一次“社会分工”,这种分工可能会成为网络应用发展史上的重要里程碑。
pki_PKI -优势
PKI作为一种安全技术,已经深入到网络的各个层面。这从一个侧面反映了PKI强大的生命力和无与伦比的技术优势。PKI的灵魂来源于公钥密码技术,这种技术使得“知其然不知其所以然”成为一种可以证明的状态,使得网络上的数字签名有了理论上的安全保障。围绕着如何用好这种非对称密码技术,数字证书破壳而出,并成为PKI中最为核心的元素。
PKI的优势主要表现在:
1、 采用公开密钥密码技术,能够支持可公开验证并无法仿冒的数字签名,从而在支持可追究的服务上具有不可替代的优势。这种可追究的服务也为原发数据完整性提供了更高级别的担保。支持可以公开地进行验证,或者说任意的第三方可验证,能更好地保护弱势个体,完善平等的网络系统间的信息和操作的可追究性。
2、 由于密码技术的采用,保护机密性是PKI最得天独厚的优点。PKI不仅能够为相互认识的实体之间提供机密性服务,同时也可以为陌生的用户之间的通信提供保密支持。
3、 由于数字证书可以由用户独立验证,不需要在线查询,原理上能够保证服务范围的无限制地扩张,这使得PKI能够成为一种服务巨大用户群的基础设施。PKI采用数字证书方式进行服务,即通过第三方颁发的数字证书证明末端实体的密钥,而不是在线查询或在线分发。这种密钥管理方式突破了过去安全验证服务必须在线的限制。
4、 PKI提供了证书的撤销机制,从而使得其应用领域不受具体应用的限制。撤销机制提供了在意外情况下的补救措施,在各种安全环境下都可以让用户更加放心。另外,因为有撤销技术,不论是永远不变的身份、还是经常变换的角色,都可以得到PKI的服务而不用担心被窃后身份或角色被永远作废或被他人恶意盗用。为用户提供“改正错误”或“后悔”的途径是良好工程设计中必须的一环。
5、 PKI具有极强的互联能力。不论是上下级的领导关系,还是平等的第三方信任关系,PKI都能够按照人类世界的信任方式进行多种形式的互联互通,从而使PKI能够很好地服务于符合人类习惯的大型网络信息系统。PKI中各种互联技术的结合使建设一个复杂的网络信任体系成为可能。PKI的互联技术为消除网络世界的信任孤岛提供了充足的技术保障。
pki_PKI -未来
在寻找PKI的招牌应用(Killer Application)屡告失败后,PKI突破性的增长并没有出现。大量的投资进入了PKI建设中却没有带来预期的收益。有人说PKI根本就是一种骗术,有些人说PKI已经死了,而有人说它没有死,只是在休息。
本书也不敢预测未来,只能谈谈对PKI面临的问题,市场的需求以及其竞争技术。
2001年,美国审计总署总结PKI发展面临的挑战时指出,互操作问题,系统费用昂贵等是当时的主要困难。2003年美国审计总署总结联邦PKI发展问题时仍旧强调,在PKI建设中,针对技术问题和法律问题,在很多地方缺乏策略和指南或者存在错误的策略和指南;实施费用高,特别是在实施一些非标准的接口时资金压力更大;互操作问题依然突出,PKI系统与其他系统的集成时面临已有系统的调整甚至替换的问题;使用和管理PKI需要更多培训,PKI的管理仍旧有严重障碍。
尽管PKI建设的问题很多,也没有出现如同人们想象的突破性的发展,但我们仍旧不难发现,所有这些挑战,实际上都源于PKI技术的复杂。比如,实施者对标准的理解不一致是造成互操作问题一个重要原因。时下,随着人们研究的深入,标准的出台,更多实施者的参与,更多应用的推进都会极大推进互操作性问题的解决。大量的技术人员参与建设,也会加速PKI产品的降价,降低PKI用户的购买成本。随着用户对PKI的深入了解,使用和维护PKI也将不是一个昂贵的过程。诸多的困难,并没有阻挡,也不可能阻挡PKI的应用的脚步。PKI已经逐步深入到网络应用的各个环节。PKI的诸多优势使得PKI的应用逐步扩大。
举一个例子,电子商务中需要可追究性保护,而PKI提供的任意第三方可验证能够提供一个更加公平的环境支持。比如,甲方乙方签订合同后,不用担心对方跟某位领导(也许可以称为权威方)有什么关系,因为任意的一个第三方都可以验证合法的合同内容。这种公开的验证方式使得商务活动可以变得更加民主与和谐。这样公平的技术环境是对称密码技术和基于身份的密码技术无法提供的。在一个企业内部,PKI也可以为构建一个更加民主的商务环境提供技术支持。比如,聪明的老板或领导一定是言而有信的领导,肯定会将下属或员工看成自己的合作者,也愿意一样接受制度的制约。PKI这种第三方验证的方式鼓励了这种平等的合作,表明了一种“在法律面前人人平等”的民主作风。而使用对称密码技术的员工却不得不无条件地信任密钥分发中心,对称密码的管理系统没有能力提供追究领导责任的技术途径。
PKI提供的安全服务支持了许多以前无法完成的应用。PKI技术可以保证运行代码正确地通过网络下载而不被黑客篡改;可以保证数字证件,比如护照的真实性,而不用担心被证件阅读者假冒;可以用于版权保护而不用担心没有证据;可以用于负责任的新闻或节目分级管理从而净化文化环境,等等。
PKI技术并没有一个招牌应用,也没有人们想象中那么迅速的发展。然而,也许正是没有招牌应用才使得PKI能够成为所有应用的安全基础;没有快速发展也许说明PKI的发展不会是昙花一现,而是经久不衰。作为一项当前还没有替代品的技术,PKI正逐步得到更加广泛的应用。
[[i]] Peter Gutmann. PKI:It’s Not Dead, Just Resting.
[[i]] Carlisle Adams, Steve Lloyd. Understanding PKI. Second Edition. Boston: Addison- Wesley, 2002:28.
[[ii]] International Standard. ISO/IEC9594-8. The Directory:Public-key and attribute certificate frameworks. Geneva:ISO, 2000
[[iii]] United States General Accounting Office. Advances and Remaining Challenges to Adoption of Public Key Infrastructure Technology. Washington, D.C.:GAO,2001:74
[[iv]] United States General Accounting Office. Status of Federal Public Key Infrastructure Activities at Major Federal Departments and Agencies. Washington, D.C.:GAO,2003:7