本文作者李文龙先生,日达计算机系统(北京)有限公司董事长。
关键词: PKI 通信安全 认证 随着计算机及通信技术的发展、网络基础设施的建设和完善,以电子商务为代表的新的知识经济,逐渐为人们所认识,并且其应用也不断地向纵深发展。但是无庸讳言,通信的安全问题越来越成为困扰这种新的经济模式健康发展的一个顽疾,迫使人们必须正视它,同时更要想方设法地去解决它。 实际应用中,通信安全是一项系统工程,其中安全特性包括网络的可用与可靠性、用户身份的真实性、用户访问的可控性、网络的可监控性、数据的完整性与网络操纵的机密性、可追溯性、抵御攻击的能力、安全审计等等。 在此,本文并不对网络环境下的电子商务安全所涉及的方方面面进行阐述,而是针对通信过程中的关键环节——认证及其解决方案,即公开密钥基础设施(Public Key Infrastructure,PKI)的实施进行深入探讨。 一 PKI的产生背景及概念 为了保证通信的安全性,加密技术应运而生。该技术是实现安全通信的重要保证,并且也是所有网络上通信安全所依赖的基本技术之一。目前,应用普遍的有:私有密钥加密技术和公开密钥加密技术。 私有密钥加密机制,加密和解密使用相同的密钥,所以又称为对称密码体制或单密钥体制;该机制由于加密和解密的密钥相同,密钥不能公开,所以又称为私有密钥密码体制。最有影响的私有密钥密码体制是1977年美国国家标准局颁布的DES(Data Encryption Standard)算法(目前,在其基础上又扩展成为3-DES)。这种机制的加密速度快,但密钥的管理是个令人头疼的问题,当n(较大时)个人相互通信时需要n (n-1)/2个密钥,由于数值之大而无法有效管理。 针对私有密钥机制的密钥管理问题更需要公开加密密钥机制。该机制用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)。这种机制,是在试图解决私有密钥机制面临的两个最突出的难题—密钥分配和对数字签名的需求过程中发展起来的。这方面的杰出代表是RSA算法,该算法对于保密通信、密钥分配和鉴别等领域都有着深远的影响。在实际应用中,公钥可以用来加密和验证数字签名,而私钥可以用来解密和数字签名。每个通信方公开自己的公钥,关键是要保护好自己的私钥。 接下来的问题是,如何获得通信对方的公钥并且相信此公钥是真实的,这就需要数字证书。数字证书是网络上的身份证明,并且由通信双方共同信任的第三方——认证中心(CA)颁布,证书最起码包括某人身份信息、公钥和CA的数字签名。任何一个信任CA的通信一方,都能够通过验证对方数字证书上的CA数字签名来建立起与对方的信任关系,同时获得对方的公钥作为备用。 这样,在加密和数字证书等技术发展的基础上,PKI应运而生。顾名思义,PKI是基于公开密钥理论的安全体系,同时又是提供信息安全服务的基础设施。能够为各种网络应用透明地提供采用加密和数字签名等安全服务所必需的密钥和证书管理,从而达到保证网上传递信息的认证、安全、真实、完整和不可抵赖的目的。在这个结构中,公开密钥密码算法居于中心地位,称其为PKI。利用PKI,人们方便地建立和维护一个可信的、大规模网络计算环境,并且能够确认彼此的身份,安全地进行信息交换。这当然是进行电子商务的基础。 实践中,PKI是创建、管理、存储、分发和取消基于公钥加密的数字证书所需要的一套硬件、软件、人员、策略和过程的集合,是一个内容丰富的宽泛概念。PKI框架中的核心元素是数字证书;PKI的核心实施者是CA。 PKI很好地解决了大规模网络环境中的信任这一难题,从而保证了验证、机密性、完整性和非否认的有效实施。验证、机密性、完整性和非否认都是电子商务所必需的安全服务。 二 PKI的实施 PKI的实施有多种方案,并且各有优势所在,本文以常见的微软Windows 2000 Server的PKI体系为例进行阐述。 微软Windows 2000将一个综合的PKI引入到Windows平台,作为其安全机制,并且提供了一整套服务和管理工具,以创建、部署和管理基于 PKI 的应用系统。同时,企业还因此能够基于统一工具和策略机制,来管理该环境和应用系统。 1. 准备工作 a. PKI标准 近年来,PKI技术无论在理论上还是应用上以及开发各种配套产品上,都逐渐走向成熟,以PKI技术为基础的一系列相应的安全标准已经由Internet特别工作组(IETF)、国际标准化组织(ISO)和国际电信联盟(ITU)等国际权威机构批准颁发实施。 这些主要标准包括: ●轻型目录访问协议(LDAP); ●安全电子邮件协议(S/MIME); ●传输层安全套接层传输协议(TLC); ●通用认证技术(Common Authen-tication Technology,CAT); ●通用安全服务接口(GSS-API); ●数字证书格式标准(X.509)。 b. PKI技术 Windows 2000系列及其后续操作系统实现了对上述PKI标准的全面支持,集成了强大的Web服务和数字证书服务,能够作为建立CA的技术方案,其内置了一整套证书颁发和证书管理的基础功能和相应的安全策略,可以保证PKI服务的顺利实施。PKI在提供高强度安全性的同时,还与操作系统进行了紧密集成,并作为操作系统的一项基本服务而存在,避免了购买第三方PKI所带来的额外开销,同时也保证了系统的兼容性。 图1给出了组成Windows 2000 PKI体系的基本逻辑组件,其中核心的为微软加密服务(为应用程序的开发提供了加密API接口,即CryptAPI)和证书服务系统(Microsoft Certificate Services),它允许用户配置一个或多个企业CA,这些CA与活动目录和安全策略配合,实现对数字证书的颁发和管理。 Windows2000中的数字证书都是基于X.509 V3协议的,可以让用户通过Internet、Extranet、Intranet安全地交互敏感信息。为了安全地保管私钥和数字证书,在Windows 2000中,微软为用户还提供了一套智能卡服务,智能卡因其高安全性和轻便的可移动性,有望发展成为类似鼠标、键盘的标准计算机外设。 Microsoft CryptAPI是这些服务的基石。它为可安装的加密服务提供程序 (CSP)的加密功能,提供了一个标准接口。这些 CSP可能是基于软件的,或利用加密硬件设备的程序,它们能够支持各种算法和密钥强度。 2.实施 a. 建立CA CA提供一系列数字证书服务,该服务是通过内置的证书管理单元来实现的。CA可以接收证书请求、验证请求信息和请求者身份,然后为用户颁发各种数字证书,以提供对用户身份的证明。另外,CA还负责撤销证书,以及发布证书废除列表(Certificate Revocation List,CRL)。 Windows 2000 PKI采用层次结构的CA模型。其优点是:具有可扩展性,管理方便,并且与很多商业和第三方CA产品有一致性。最简单的形式是,CA层次结构仅由一个CA组成;但通常一个层次结构会包含多个CA,并明确定义了父子关系。 在Windows 2000 Server中建立CA的具体步骤如下: (1)以管理员或域管理员身份登录到系统。 (2)安装“证书服务”组件,通过“控制面板”添加“证书服务”组件。 (3)选择CA的类型主要包括企业根CA、企业从属CA、独立根CA和独立从属CA。 需要特别强调的是,由于证书颁发机构的设置是很重要的,企业根CA和独立根CA都是证书颁发体系中最受信任的证书颁发机构,可以独立地颁发证书。企业根CA需要Active Directory支持,而独立根CA不需要。从属级的CA由于只能从另一证书颁发机构获取证书,所以一般不被选择。在Windows 2000 Server中,企业根CA使用Active Directory来确定申请人的身份,确定申请人是否具有申请他们所指定的证书类型的安全权限,并由此自动确定是否立即颁发证书或拒绝申请,这种策略设置不能被更改。独立根CA可以选择在收到申请时自动颁发证书或将申请保持为搁置状态,由管理员验证证书申请者的真实性及合法性,决定是否颁发证书。因此,可以根据需求选择合适的证书颁发类型。 (4)“高级选项”设置(可选)。可选择用来生成密钥对的加密服务提供程序(CSP);同时选择相应散列算法等。 (5)填写CA标识信息。包括:CA名称、电子邮件、CA描述、有效期限等信息。注意:在CA设置完成后这些信息都不能改变。 (6)确定数据储存位置。指定证书数据库、证书数据库日志和共享文件夹的存储位置。 (7)配置组件。 b. 管理CA (1)企业根CA设置 可以选择“管理工具/证书颁发机构/策略设置”命令。 添加所需的证书模板,如经过验证的会话、代码签名和注册代理等。 选择“管理工具/Active Directory站点和服务”选项,通过菜单中“查看/显示服务节点”,拓展“服务”选项,查看“公钥服务”容器,可看到“证书模板”选项。可以指定某一模板为某个用户专用,也可以控制某一模板的用户和其安全控制权限。 在“管理工具/域安全策略”选项中,选择“公钥策略/自动证书申请设置”进行设置,可以选择“计算机可以自动申请的证书类型”等项目,从而使证书管理自动化。 (2)独立根CA设置 可以选择“在收到证书申请时确定证书颁发机构”的默认动作,通过打开“证书颁发机构”,点击CA名称,选择“属性/策略模块/配置”,选择“证书申请设为待定,系统管理员必须专门颁发证书”,这样管理者可以直接控制证书的发放。 对于相关的申请,在“证书颁发机构/待定申请”中选择相应的申请证书,可以选择“颁发”或“拒绝”选项。 (3)二者共性 无论企业根CA还是独立根CA都可以在“已颁发证书”选项中选择相应证书,单击右键进行“吊销证书”的操作。 c. 证书服务的Web页安全管理 Windows 2000的证书服务提供了通过Web页来申请证书的功能,可以设置Web服务器的安全性功能。步骤如下: (1)以管理员身份登录到系统; (2)打开“Internet服务管理器”; (3)在控制台树中,用右键单击“CertSrv”,再单击“属性”; (4)在“目录安全性”选项卡的“匿名访问和身份验证控制”下,单击“编辑”; (5)清除“集成Windows验证”之外的其他所有复选框(如图2)。也可通过“管理Web站点/属性”来进行相应设置。 还可以选择“申请安全通道(SSL)”选项,再选择“接收客户证书”选项。客户端的用户通过证书服务Web登记页申请证书,为确保安全,也可在非CA服务器上安装Web登记页链接到CA服务器上。详见图3。 d. 使用Web页的证书服务 Windows 2000证书服务有一个位于“http://ServerName/certsrv”的Web页,其中“ServerName”是一个Windows 2000服务器的名字。 在得到申请批准的消息后可在相应页面中,选择“检索CA证书目录或CA吊销列表”选项,之后点击“安装此CA证书路径”选项进行证书的安装。 证书安装成功后,打开IE浏览器,选择“工具/Internet选项”,在“高级”选项中加上PCT、SSL、TLS协议支持的选项,以增加安全性。 三 PKI安全性分析 首先,PKI也会受到强行攻击;另一种形式的攻击是找到某种根据公钥计算私钥的方法。 另外,私钥保存丢失,会导致PKI的整个验证过程没有意义。同时,PKI系统的安全很大程度上依赖于运行CA的安全,如果骇客(Cracker;非黑客:Hacker)非法侵入一个不安全的CA服务器,就可能危害整个PKI系统。因此,从私钥的保存到PKI系统本身的安全方面还要加强防范。 因此,一定不能忽视PKI系统本身的安全,在这个前提下,PKI才不失为一个保证通信安全的一个合理和有效的解决方案。 四 PKI实施应该注意的问题 尽管PKI的研究与应用取得了一些进展,但是在设计和实施完全应用PKI技术的系统还面临着一个严峻的挑战。在PKI技术广泛和有效的应用之前,还有一些重大的问题必须解决。这些问题包括: (1)标准化的完善; (2)通用性; (3)经济压力; (4)对性能的影响; (5)数字化隐私保护; (6)人员素质。 五 结束语 目前PKI已广泛用于保障电子商务和电子政务的安全。从长远来看,PKI将逐渐集成到更多的操作系统和应用中去,并实现对用户透明。利用PKI作电子商务的安全基础平台,使用PKI发布的数字证书实现在线交易所必须的认证和加密功能,必将是实现安全电子商务的主要发展方向,并且实践中基于PKI的安全电子商务应用日益普遍。 虽然PKI建立了大规模网络环境中的信任和安全的公钥分发的理论基础,但实际中PKI的成功实施将更多地取决于社会、管理、法律、商业、心理等方方面面的强大支持,另外,安全与速度是一对矛盾,必须统筹兼顾,才能真正发挥PKI在电子商务安全方面的作用。据说到今年年底,《数字签名法》有可能正式颁布,我国的信息安全管理和监督机制将更加健全,对于PKI的实施无疑是一个福音。(来源:《世界宽带网络》) |