PKI/CA与数字证书学习笔记

概述

  • PKI:Public Key Infrastructure,公钥基础设施。
  • CA:Certificate Of Authority,认证中心。
  • 数字证书:提供了一种发布公钥的简便途径;
    一个数字证书包括:拥有者身份信息、公钥、CA数字签名、有效期等其他信息。
  • 数字签名:用来确认信息发送者的身份,保证信息的完整性和抗否认性。

PKI(Public Key Infrastructure ) 即"公钥基础设施",是一种遵循既定标准的密钥管理平台,它能够为所有网络应用提供加密和数字签名等密码服务及所必需的密钥和证书管理体系,简单来说,PKI就是利用公钥理论和技术建立的提供安全服务的基础设施。PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。

它利用公共密钥算法的特点,建立一套证书发放、管理和使用的体系,来支持和完成网络系统中的身份认证、信息加密、保证数据完整性和抗抵赖性。PKI 体系可以有多种不同的体系结构、实现方法和通信协议。

公共(非对称)密钥算法使用加密算法和一对密钥:一个公共密钥(公钥,public key)和一个私有密钥(私钥,private key)。

其基本原理是:由一个密钥进行加密的信息内容,只能由与之配对的另一个密钥才能进行解密。公钥可以广泛地发给与自己有关的通信者,私钥则需要十分安全地存放起来。使用中,甲方可以用乙方的公钥对数据进行加密并传送给乙方,乙方可以使用自己的私钥完成解密。公钥通过电子证书与其拥有者的姓名、工作单位、邮箱地址等捆绑在一起,由权威机构(CA, Certificate Authority)认证、发放和管理。把证书交给对方时就把自己的公钥传送给了对方。证书也可以存放在一个公开的地方,让别人能够方便地找到和下载。

公共密钥方法还提供了进行数字签名的办法:签字方对要发送的数据提取摘要并用自己的私钥对其进行加密;接收方验证签字方证书的有效性和身份,用签字方公钥进行解密和验证,确认被签字的信息的完整性和抗抵赖性。

公共密钥方法通常结合使用对称密钥(单密钥)方法,由计算效率高的对称密钥方法对文件和数据进行加密。

目前在 Internet 上主要使用 RSA 公共密钥方法,密钥长度 512 或 1024 位,是广泛使用的 SSL/TLS 和S/MIME 等安全通信协议的基础。

PKI是用公钥概念和技术实施的,支持公开密钥的管理并提供真实性、保密性、完整性以及可追究性安全服务的具有普适性的安全基础设施。完整的PKI系统必须具有权威认证机构(CA)、数字证书库、密钥备份及恢复系统、证书作废系统、应用接口(API)等基本构成部分,构建PKI也将围绕着这五大系统来着手构建。
PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。一个典型、完整、有效的PKI应用系统至少应具有以下部分:
· 公钥密码证书管理。
· 黑名单的发布和管理。
· 密钥的备份和恢复。
· 自动更新密钥。
· 自动管理历史密钥。
· 支持交叉认证。

认证机构(CA):即数字证书的申请及签发机关,CA必须具备权威性的特征;
数字证书库:用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥;
密钥备份及恢复系统:如果用户丢失了用于解密数据的密钥,则数据将无法被解密,这将造成合法数据丢失。为避免这种情况,PKI提供备份与恢复密钥的机制。但须注意,密钥的备份与恢复必须由可信的机构来完成。并且,密钥备份与恢复只能针对解密密钥,签名私钥为确保其唯一性而不能够作备份。
证书作废系统:证书作废处理系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样, 证书有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。为实现这一点,PKI必须提供作废证书的一系列机制。
应用接口(API):PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的PKI必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保安全网络环境的完整性和易用性。
通常来说,CA是证书的签发机构,它是PKI的核心。众所周知,构建密码服务系统的核心内容是如何实现密钥管理。公钥体制涉及到一对密钥(即私钥和公钥),私钥只由用户独立掌握,无须在网上传输,而公钥则是公开的,需要在网上传送,故公钥体制的密钥管理主要是针对公钥的管理问题,目前较好的解决方案是数字证书机制。

优势

1、采用公开密钥密码技术,能够支持不可篡改的数字签名,在数字签名中包括了验证者的身份信息、验证信息等数据,能够保障数字证书的安全性,同时,在验证的过程中,可以追溯验证者的信息,对数据的安全性提供了较高的保护。

2、支持离线验证身份。基于PKI技术的数字证书,支持离线的身份验证。由于数字证书由CA第三方认证中心发放,数字证书中已经存储用户的身份验证信息以及身份验证的密钥,在身份验证的过程中不需要在线查询,提供了多重身份验证方式。

扫描二维码关注公众号,回复: 11196341 查看本文章

3、PKI的体系中包含了CA数字证书的撤销服务,使得用户对数字证书应用得到可控,保障了用户在各种环境下身份信息的安全,防止了身份信息的丢失以及被盗后的恶意应用,为CA数字证书提供了可控的安全机制。

4、PKI技术具有良好的网络交互能力。PKI技术能够通过网络为正在交互的双方系统提供有效的安全机制,能够为大规模分布式网络以及更复杂的网络环境提供安全服务,使得网络数据的传输得到有效的保障。

数字签名

图1 数字签名

  • 数字签名的生成:对于要传输的消息原文使用消息摘要算法(MD5、SHA)生成消息摘要,发送方使用自己的私钥对摘要进行加密,生成数字签名。
  • 数字签名的验证:数字签名同消息一同传输给接收方,接收方对签名使用发送方的公钥解密还原摘要,并对得到的原文进行hash计算出消息摘要,比对两份消息摘要是否相同,可以保证消息的完整性和抗否认性。

用发送发私钥生成数字签名、用发送方公钥解密,可以证明消息确实是由公钥拥有者发出的。
两份摘要的比对结果,可以证明消息在传输的过程中是否被改动。

数字证书

数字签名要发挥作用,首先需要接收方获取发送方的公钥。如何证明获取的公钥确实是发送方的公钥而不是假冒的呢?数字证书提供了一种发布公钥的简便方法。

图2 证书的申请、发布、使用

图3 数字证书的生成与验证

简单地来说,把上面的原文换成公钥、身份信息、有效期等其他信息,就是数字证书的生成和验证过程。

  • 数字证书的生成:CA收到数字证书申请并认证申请者的真实身份后,把申请者的公钥、身份信息、数字证书的有效期等信息作为消息原文,进行hash生成摘要,并用CA的私钥加密进行签名;数字签名与证书拥有者的公钥、身份信息、证书有效期等其他信息共同组成数字证书。
  • 数字证书的验证:数字证书生成后,经历图2中3、4、5的传输过程,来到接收方。接收方收到消息证书后,使用CA公钥对数字签名解密生成消息摘要,对证书内容进行hash生成摘要,两份摘要进行比对可证明证书内容的完整性与真实性。

使用CA私钥进行签名和解密,可以证明证书确实是由CA发布的;
两份摘要的对比结果,可以证明证书内容是否在传输过程中被改动;
如果消息原文中的公钥和身份信息是CA的,则是CA自签名的过程。

通信过程

数字证书提供了一种发布公钥的简便途径,大家通过向CA申请认证发布自己的公钥,通过向CA验证来确认自己获得了别人的公钥。下图展示了通信双方互相获得公钥以后的通信过程。

图4 通信过程

  • 发送方对要传输消息原文进行hash,生成消息摘要,用发送方的私钥生成数字签名;
  • 随机生成对称秘钥,对原文加密,生成密文;
  • 用接收方公钥加密对称秘钥;
  • 将加密后的对称秘钥、数字签名与密文一通发送;
  • 接收方收到后,用自己的私钥解密对称秘钥;
  • 用对称秘钥解密密文,得到原文;
  • 对原文hash得到摘要,用发送方的公钥解密签名得到摘要,对方两份摘要。

非对称加密安全性高,但计算量大效率低,因此使用对称秘钥对通信的主要内容进行加密;对称秘钥每次使用随机生成,用完即丢弃,降低风险;
用接收方公钥加密对称秘钥,保证了只有接收方才能对密文进行解密;
用发送发私钥进行签名,使得接收方可以验证消息的发送方和消息是否被修改过,保证了信息的完整性和抗否认性。

PKI/CA架构

完整的PKI/CA系统如下部分:

  • 安全服务器:安全服务器面向普通用户,用于提供证书申请、浏览、证书撤销列表、证书下载等安全服务;用户需要首先得到安全服务器的证书(该证书由CA颁发);
  • 注册机构RA:在CA体系结构中起承上启下的作用,一方面向CA转发安全服务器传输过来的证书申请请求,另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤销列表(CRL)。
  • LDAP服务器:Lightweight Directory Access Protocol(轻量目录访问协议),提供目录浏览服务,负责将注册机构服务器RA传输过来的用户信息以及数字证书加入到服务器上。用户通过访问LDAP服务器就能够得到其他用户的数字证书。
  • CA服务器:整个证书机构的核心,负责证书的签发。CA首先 产生自身的私钥和公钥,然后生成数字证书,并且将数字正常传输给安全服务器。CA还负责为安全服务器、RA服务器生成数字证书。
  • 数据库服务器:CA中的核心部分,用于CA中数据(如密钥和用户信息等)、日志、统计信息的存储和管理。

图5 PKI系统

证书撤销过程

  • 用户申请:用户向RA发送一封签名加密邮件,申请撤销证书。
  • RA审核:注册机构同意证书撤销,并对申请签名。
  • CA更新CRL:CA验证证书撤销请求的RA签名,如果正确,则同意申请,并更新CRL,并输出。
  • RA转发CRL:注册中心收到CRL,以多种方式将CRL公布(包括LDAP服务器)。
  • 用户告知:用户访问LDAP服务器,下载或浏览CRL。

证书的管理

认证中心CA负责维护和发布证书废除列表CRL(certificate revocation lists,又称为证书黑名单)。
当一个证书,特别是其中的公钥因为其他原因无效时(不是因为到期),CRL提供了一种通知用户和其他应用的中心管理方式。CA系统生成CRL以后,放到LDAP服务器中或Web服务器的合适位置,供用户查询或下载。

知识点

1、现代密码学设计时,一般总假定密码系统的结构是公开的,或者至少为敌人所知。这一假设被称为科考夫原则(Kerckhoff's Principle)。
2、密码系统的结构被称作密码算法,进行加密或解密操作所需的关键参数被称为密钥。
3、现代密码学的安全性主要取决于密钥的设计和使用。
4、密钥管理主要包括:密钥产生、密钥传输、密钥验证、密钥更新、密钥存储、密钥备份、密钥销毁、密钥有效期、密钥使用等。
5、对称密钥管理技术和非对称密钥管理技术都可分为两种:无中心模式和有中心模式。
6、非对称密管理的有中心模式已经成为主流。无中心模式 成熟的应用是PGP模式。
7、非对称密管理虽然解决了密钥协商或分配时密钥容易泄露的问题,但并没有解决好密钥与用户映射关系容易被篡改的问题。
8、PKI的本质是将非对称密钥管理标准化。
9、PKI通过引入CA、数字证书、LDAP、CRL、OCSP等技术并制定相应标准,有效地解决了公钥与用户的映射关系、集中服务性能瓶颈、脱机状态查询等问题;同时为了促进和提高证书应用的规范性,还制定了很多与证书应用相关的各种标准。
10、CA为证书权威,也称为CA中心或证书认证中心,负责给用户签发数字证书。
11、数字证书是一种特殊格式的文件,包含用户公钥、身份信息和CA中心的签名。
12、数字证书实际上是把用户公钥、公钥与用户的绑定关系公开发布,供大规模用户使用。
13、LDAP是轻量级目录访问协议,对外提供证书查询和下载服务。它比数据库的查询服务更加高效。
14、CA通过CRL(证书作废列表)定期提供脱机证书失效验证功能,通过OCSP(在线证书状态协议)提供实时证书状态查询服务。
15、PKI是Public Key Infrastructure的缩写,主要功能是:数字证书和私钥的生成和管理,并通过证书中间件(模块或组件)支持数字证书的应用。
16、CA管理证书,KMC(Key Management Center)管理私钥。
17、PKI的证书有两种:签名证书和加密证书。
18、签名证书的公私钥对必须由用户自己产生,KMC不备份签名私钥;加密证书的公私钥对必须由KMC产生,且KMC对私钥进行备份。
19、PKI的RA(注册中心)提供面对面证书业务。
20、基于数字证书可以实现四种基本的安全功能:身份认证、保密性、完整性和抗抵赖性。
21、从信任CA中心到信任其签发的数字证书,这种信任传递的前提是,该用户证书必须通过四个方面的验证:
(1)验证数字证书是否伪造。使用CA证书中的公钥即可验证;
(2)验证数字证书中的信息是否正确。由CA中心在签发证书时已保证;
(3)验证数字证书是否与持证人一致。可要求持证人用私钥对特定数据进行加密或签名,然后使用证书中的公钥验证即可。
(4)验证数字证书是否在黑名单上。通过CRL或OCSP可实现。
22、PKI信任模型有:根CA信任模型、交叉信任模型、桥信任模型、信任列表信任模型四种。
23、PKI包括多种模式,如X.509模式,PGP模式等。X.509模式的PKI也被成为PKIX。由于X.509标准已经成为数字证书格式的事实标准,因此大部分情况下PKI特指PKIX。
24、PGP是一种基于公钥算法的加密软件,提供文件保护,安全电子邮件,VPN安全通信等功能。
25、PGP的密钥管理采用无中心模式,为了有效解决密钥与用户信息映射的难题,PGP引入了公钥介绍机制,基本原理是:
(1)公钥信任级别共分5级,最高级别是“最高信任(ultimate trust)”;
(2)每个用户可以使用自己的私钥对他人的公钥进行签名。每个公钥可以拥有多个他人的签名;
(3)向公钥环增加新公钥时,如果能完全信任该公钥的拥有者,则该公钥的信任级别设置为Ultimate Trust;
(4)如果新增公钥拥有多个签名,则通过公钥环中这些签名对应公钥的信任级别,来确定该新公钥的信任级别。

PKI组成

PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所 提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKI管理加密密钥和证书的发布,并提供诸如密钥管理(包括 密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。PKI产品也允许一个组织通过证书级别或直接交叉认证等方式来同其他 安全域建立信任关系。这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间和Internet之上,为电子商务和网络通信提供安全保障,所以 具有互操作性的结构化和标准化技术成为PKI的核心

PKI在实际应用上是一套软硬件系统和安全策略的集合,它提供了一整套安全机制,使用户在不知道对方身份或分布地很广的情况下,以证书为基础,通过一系列的信任关系进行通讯和电子商务交易。

                                                         图 1       PKI组成

一个典型的PKI系统如图1所示,其中包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。

1. PKI 安全策略建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。它包括一个组织怎样处理密钥和有价值的信息,根据风险 的级别定义安全控制的级别。一般情况下,在PKI中有两种类型的策略:一是证书策略,用于管理证书的使用,比如,可以确认某一CA是在Internet上 的公有CA,还是某一企业内部的私有CA;另外一个就是CPS(Certificate Practice Statement)。一些由商业证书发放机 构(CCA)或者可信的第三方操作的PKI系统需要CPS。这是一个包含如何在实践中增强和支持安全策略的一些操作过程的详细文档。它包括CA是如何建立 和运作的,证书是如何发行、接收和废除的,密钥是如何产生、注册的,以及密钥是如何存储的,用户是如何得到它的等等。 

2. 证书机构CA是PKI的信任基础,它管理公钥的整个生命周期,其作用包括:发放证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书。后面将会在CA进行详细介绍。 

3. 注 册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。它主要完成收集用户信息和确认用户身份的功能。这里指的用户,是 指将要向认证中心(即CA)申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。注册管理一般由一个独立的注册机构(即RA)来承担。它 接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。注册机构并不给用户签发证书,而只是对用户进行资格审查。因此,RA可以 设置在直接面对客户的业务部门,如银行的营业部、机构认识部门等。当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完 成,而不设立独立运行的RA。但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。PKI国际标准推荐由一个独立的RA来完成注册管理 的任务,可以增强应用系统的安全。 

4. 证书发布系统负责证书的发放,如可以通过用户自己,或是通过目录服务。目录服务器可以是一个组织中现存的,也可以是PKI方案中提供的。 

PKI的应用非常广泛,包括在web服务器和浏览器之间的通讯、电子邮件、电子数据交换(EDI)、在Internet上的信用卡交易和虚拟私有网(VPN)等。 

一 个简单的PKI系统包括证书机构CA、注册机构RA和相应的PKI存储库。CA用于签发并管理证书;RA可作为CA的一部分,也可以独立,其功能包括个人 身份审核、CRL管理、密钥产生和密钥对备份等;PKI存储库包括LDAP目录服务器和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行 存储和管理,并提供一定的查询功能。

证书认证机构CA

3.1 数字证书基础

数字证书是一种数字标识,可以说是Internet上的安全护照或身份证明。当人们到其他国家旅行时,用户护照可以证实其身份,并被获准进入这个国家。数字证书提供的是网络上的身份证明。

数 字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情 况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。

3.1.1 证书格式 
在Internet网络中,应用程序使用的证书都来自不同的厂商或组织,为了实现可交互性,要求证书能够被不同的系统识别,符合一定的 格式,并实现标准化。X.509为证书及其CRL格式提供了一个标准。但X.509本身不是Internet标准,而是国际电联ITU标准,它定义了一个 开放的框架,并在一定的范围内可以进行扩展。 

为 了适应PKI技术的发展,IETF也必须制定在Internet上使用X.509和CRL的标准。PKIX工作组就提供了一个Internet草 案"Part I: X.509 Certificate and CRL Profile"(详细内容可见:ftp://ftp.ietf.org /internet-drafts/draft-ietf-pkix-ipki-part1-11.txt),用于定义在Internet PKI中使用 X.509和CRL的方法和规范。该草案把X.509作为标准,并对各标准项和扩展做了说明,基本接收了X.509作为Internet中的证书标准,但 也定义了被PKI应用的X.509 V3和CRL V2标准格式的设置,这些设置包含了PKIX工作组对X.509所做的一些新的扩展。

X.509 目前有三个版本:V1、V2和V3,其中V3是在V2的基础上加上扩展项后的版本,这些扩展包括由ISO文档(X.509-AM)定义的标准扩展,也包括 由其他组织或团体定义或注册的扩展项。X.509由ITU-T X.509(前身为CCITT X.509)或ISO/IEC 9594-8定义,最早以 X.500目录建议的一部分发表于1988年,并作为V1版本的证书格式。X.500于1993年进行了修改,并在V1基础上增加了两个额外的域,用于支 持目录存取控制,从而产生了V2版本。

为了适应新的需求ISO/IEC和ANSI X9发展了X.509 V3版本证书格式,该版本证书通过增加标准扩展项对V1和V2证书进行了扩展。另外,根据实际需要,各个组织或团体也可以增加自己的私有扩展。

X.509 V1和V2证书所包含的主要内容如下:

· 证书版本号(Version):版本号指明X.509证书的格式版本,现在的值可以为0、1、2,也为将来的版本进行了预定义。 

· 证书序列号(SerialNumber):序列号指定由CA分配给证书的唯一的数字型标识符。当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中,这也是序列号唯一的原因。 

· 签名算法标识符(Signature):签名算法标识用来指定由CA签发证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和hash算法,须向国际知名标准组织(如ISO)注册。 

· 签发机构名(Issuer):此域用来标识签发证书的CA的X.500 DN名字。包括国家、省市、地区、组织机构、单位部门和通用名。 

· 有效期(Validity):指定证书的有效期,包括证书开始生效的日期和时间以及失效的日期和时间。每次使用证书时,需要检查证书是否在有效期内。 

· 证书用户名(Subject):指定证书持有者的X.500唯一名字。包括国家、省市、地区、组织机构、单位部门和通用名,还可包含email地址等个人信息等 

· 证书持有者公开密钥信息(subjectPublicKeyInfo):证书持有者公开密钥信息域包含两个重要信息:证书持有者的公开密钥的值;公开密钥使用的算法标识符。此标识符包含公开密钥算法和hash算法。 

· 签发者唯一标识符(Issuer Unique Identifier):签发者唯一标识符在第2版加入证书定义中。此域用在当同一个X.500名字用于多个认证机构时,用一比特字符串来唯一标识签发者的X.500名字。可选。 

· 证书持有者唯一标识符(Subject Unique Identifier):持有证书者唯一标识符在第2版的标准中加入X.509证书定义。此域用在当同一个X.500名字用于多个证书持有者时,用一比特字符串来唯一标识证书持有者的X.500名字。可选。 

· 签名值(Issuer's Signature):证书签发机构对证书上述内容的签名值。 

X.509 V3 证书是在v2的基础上一标准形式或普通形式增加了扩展项,以使证书能够附带额外信息。标准扩展是指由X.509 V3版本定义的对V2版本增加的具有广泛 应用前景的扩展项,任何人都可以向一些权威机构,如ISO,来注册一些其他扩展,如果这些扩展项应用广泛,也许以后会成为标准扩展项。

3.1.2 CRL格式 
证书废除列表CRL(Certificate revocation lists,又称证书黑名单)为应用程序和其它系统提供了一种检 验证书有效性的方式。任何一个证书废除以后,证书机构CA会通过发布CRL的方式来通知各个相关方。目前,同X.509 V3证书对对应的CRL为 X.509 v2 CRL,其所包含的内容格式如下: 

· CRL的版本号:0表示X.509 V1 标准;1表示X.509 V2 标准;目前常用的是同X.509 V3证书对应的CRL V2版本。 

· 签名算法:包含算法标识和算法参数,用于指定证书签发机构用来对CRL内容进行签名的算法。 

· 证书签发机构名:签发机构的DN名,由国家、省市、地区、组织机构、单位部门和通用名等组成。 

· 此次签发时间:此次CRL签发时间,遵循ITU-T X.509 V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。 

· 下次签发时间:下次CRL签发时间,遵循ITU-T X.509 V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。 

· 用户公钥信息,其中包括废除的证书序列号和证书废除时间。废除的证书序列号是指要废除的由同一个CA签发的证书的一个唯一标识号,同一机构签发的证书不会有相同的序列号。 

· 签名算法:对CRL内容进行签名的签名算法。 

· 签名值:证书签发机构对CRL内容的签名值。 

另 外,CRL中还包含扩展域和条目扩展域。CRL扩展域用于提供与CRL有关的额外信息部份,允许团体和组织定义私有的CRL扩展域来传送他们独有的信 息;CRL条目扩展域则提供与CRL条目有关的额外信息部份,允许团体和组织定义私有的CRL条目扩展域来传送他们独有的信息。

3.1.3 证书的存放 
数字证书作为一种电子数据格式,可以直接从网上下载,也可以通过其他方式。 

· 使用IC卡存放用户证书。即把用户的数字证书写到IC卡中,供用户随身携带。这样用户在所有能够读IC卡证书的电子商务终端上都可以享受安全电子商务服务。 

· 用户证书直接存放在磁盘或自己的终端上。户将从CA申请来的证书下载或复制到磁盘或自己的PC机或智能终端上,当用户使用自己的终端享受电子商务服务时,直接从终端读入即可。 

· 另外,CRL一般通过网上下载的方式存储在用户端

3.2 CA框架模型

证书机构CA用于创建和发布证书,它通常为一个称为安全域(security domain)的有限群体发放证书。创 建证书的时候,CA系统首先获取用户的请求信息,其中包括用户公钥(如果用户端是个人使用或者测试用,则公钥一般由用户端产生,如电子邮件程序或浏览器等 或者使用第三方开发的具有独立CSP的智能终端如USBkey),CA将根据用户的请求信息产生证书,并用自己的私钥对证书进行签名。其他用户、应用程序或实体将使用CA的公钥对证书进行验证。如果一个CA系统是可信的,则验证证书的用户可以确信,他所验证的证书中的公钥属于证书所代表的那个实体。

CA 还负责维护和发布证书废除列表CRL(certificate revocation lists,又称为证书黑名单)。当一个证书,特别是其中的公钥因 为其他原因无效时(不是因为到期),CRL提供了一种通知用户和其他应用的中心管理方式。CA系统生成CRL以后,要么是放到LDAP服务器中供用户查询 或下载,要么是放置在Web服务器的合适位置,以页面超级连接的方式供用户直接查询或下载。

一个典型的CA系统包括安全服务器、注册机构RA、CA服务器、LDAP目录服务器和数据库服务器等。如图2所示。

                                                   图2    典型CA框架模型

安全服务器:安全服务器面向普通用户,用于提供证书申请、浏览、证书撤消列表以及证书下载等安全服务。安全服务器与用户的的通信采取安全信道方式(如SSL 的方式,不需要对用户进行身份认证)。用户首先得到安全服务器的证书(该证书由CA颁发),然后用户与服务器之间的所有通信,包括用户填写的申请信息以及 浏览器生成的公钥均以安全服务器的密钥进行加密传输,只有安全服务器利用自己的私钥解密才能得到明文,这样可以防止其他人通过窃听得到明文。从而保证了证 书申请和传输过程中的信息安全性。 

CA 服务器:CA服务器使整个证书机构的核心,负责证书的签发。CA首先产生自身的私钥和公钥(密钥长度至少为1024位),然后生成数字证书,并且将数字证 书传输给安全服务器。CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。安全服务器的数字证书和私钥也需要传输给安全服务器。CA服务器是 整个结构中最为重要的部分,存有CA的私钥以及发行证书的脚本文件,出于安全的考虑,应将CA服务器与其他服务器隔离,任何通信采用人工干预的方式,确保 认证中心的安全。 

注册机构RA:登记中心服务器面向登记中心操作员,在CA体系结构中起承上启下的作用,一方面向CA转发安全服务器传输过来的证书申请请求,另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤消列表。 

LDAP服务器:LDAP服务器提供目录浏览服务,负责将注册机构服务器传输过来的用户信息以及数字证书加入到服务器上。这样其他用户通过访问LDAP服务器就能够得到其他用户的数字证书。 

数据库服务器:数据库服务器是认证机构中的核心部分,用于认证机构中数据(如密钥和用户信息等)、日志合统计信息的存储和管理。实际的的数据库系统应采用多种措施,如磁盘阵列、双机备份和多处理器等方式,以维护数据库系统的安全性、稳定性、可伸缩性和高性能。 

3.3 证书的申请和撤销

证 书的申请有两种方式,一是在线申请,另外一个就是离线申请。在线申请就是通过浏览器或其他应用系统通过在线的方式来申请证书,这种方式一般用于申请普通用 户证书或测试证书。离线方式一般通过人工的方式直接到证书机构证书受理点去办理证书申请手续,通过审核后获取证书,这种方式一般用于比较重要的场合,如服 务器证书和商家证书等。下面讨论的主要是在线申请方式。

当证书申请时,用户使用浏览器通过Internet访问安全服务器,下载CA的数字证书(又叫做根证书),然后注册机构服务器对用户进行身份审核,认可后便批准用户的证书申请,然后操作员对证书申请表进行数字签名,并将申请及其签名一起提交给CA服务器。

CA 操作员获得注册机构服务器操作员签发的证书申请,发行证书或者拒绝发行证书,然后将证书通过硬拷贝的方式传输给注册机构服务器。注册机构服务器得到用户的 证书以后将用户的一些公开信息和证书放到LDAP服务器上提供目录浏览服务,并且通过电子邮件的方式通知用户从安全服务器上下载证书。用户根据邮件的提示 到指定的网址下载自己的数字证书,而其他用户可以通过LDAP服务器获得他的公钥数字证书。

证书申请的步骤如下:

1. 用户申请 
用户首先下载CA的证书,又叫根证书,然后在证书的申请过程中使用SSL安全方式与服务器建立连接,用户填写个人信息,浏览器生成私钥 和公钥对,将私钥保存客户端特定文件中,并且要求用口令保护私钥,同时将公钥和个人信息提交给安全服务器。安全服务器将用户的申请信息传送给注册机构服务 器。 

2. 注册机构审核 
用户与注册机构人员联系,证明自己的真实身份,或者请求代理人与注册机构联系。 注册机构操作员利用自己的浏览器与注册机构服务器建立SSL安全通信,该 服务器需要对操作员进行严格的身份认证,包括操作员的数字证书、IP地址,为了进一步保证安全性,可以设置固定的访问时间。操作员首先查看目前系统中的申 请人员,从列表中找出相应的用户,点击用户名,核对用户信息,并且可以进行适当的修改,如果操作员同意用户申请证书请求,必须对证书申请信息进行数字签 名。操作员也有权利拒绝用户的申请。操作员与服务器之间的所有通信都采用加密和签名,具有安全性、抗否认性,保证了系统的安全性和有效性。 

3. CA发行证书 
注册机构RA通过硬拷贝的方式向CA传输用户的证书申请与操作员的数字签名,CA操作员查看用户的详细信息,并且验证操作员的数字签名,如果签名验证通 过,则同意用户的证书请求,颁发证书。然后CA将证书输出。如果CA操作员发现签名不正确,则拒绝证书申请, CA颁发的数字证书中包含关于用户及CA自 身的各种信息,如:能唯一标识用户的姓名及其他标识信息,如个人的email地址;证书持有者的公钥。公钥用于为证书持有者加密敏感信息、签发个人证书的 认证机构的名称、个人证书的序列号和个人证书的有效期(证书有效起止日期)等 

4. 注册机构证书转发 
注册机构RA操作员从CA处得到新的证书,首先将证书输出到LDAP目录服务器以提供目录浏览服务,最后操作员向用户发送一封电子邮件,通知用户证书已经 发行成功,并且把用户的证书序列号告诉用户到指定的网址去下载自己的数字证书。并且告诉用户如何使用安全服务器上的LDAP配置,让用户修改浏览器的客户 端配置文件以便访问LDAP服务器,获得他人的数字证书。 

5. 用户证书获取 
用户使用证书申请时的浏览器到指定的网址,键入自己的证书序列号,服务器要求用户必须使用申请证书时的浏览器,因为浏览器需要用该证书相应的私钥去验证数字证书。只有保存了相应私钥的浏览器才能成功下载用户的数字证书。 

这时用户打开浏览器的安全属性,就可以发现自己已经拥有了CA颁发的数字证书,可以利用该数字证书与其他人以及web服务器(拥有相同CA颁发的证书)使用加密、数字签名进行安全通信。

认 证中心还涉及到CRL的管理。用户向特定的操作员(仅负责CRL的管理)发一份加密签名的邮件,申明自己希望撤消证书。操作员打开邮件,填写CRL注册 表,并且进行数字签名,提交给CA,CA操作员验证注册机构操作员的数字签名,批准用户撤消证书,并且更新CRL,然后CA将不同格式的CRL输出给注册 机构,公布到安全服务器上,这样其他人可以通过访问服务器得到CRL。

证书撤销流程步骤如下:

1. 用户向注册机构操作员CRLManager发送一封签名加密的邮件,声明自己自愿撤消证书。 

2. 这册机构同意证书撤消,操作员键入用户的序列号,对请求进行数字签名。 

3. CA查询证书撤消请求列表,选出其中的一个,验证操作员的数字签名,如果正确的话,则同意用户的证书撤消申请,同时更新CRL列表,然后将CRL以多种格式输出。 

4. 注册机构转发证书撤消列表。操作员导入CRL,以多种不同的格式将CRL公布于众。 

5. 用户浏览安全服务器,下载或浏览CRL。 

在一个PKI,特别是CA中,信息的存储是一个非常核心的问题,它包括两个方面:一是CA服务器利用数据库来备份当前密钥和归档过期密钥,该数据库需高度安全和机密,其安全等级同CA本身相同;另外一个就是目录服务器,用于分发证书和CRL,一般采用LDAP目录服务器。

3.4 密钥管理

密钥管理也是PKI(主要指CA)中的一个核心问题,主要是指密钥对的安全管理,包括密钥产生、密钥备份、密钥恢复和密钥更新等。

1. 密钥产生 
密钥对的产生是证书申请过程中重要的一步,其中产生的私钥由用户保留,公钥和其他信息则交于CA中心进行签名,从而产生证书。根据证书类型和应用的不同,密钥对的产生也有不同的形式和方法。对普通证书和测试证书,一般由浏览器或固定的终端应用来产生,这样产生的密钥强度较小,不适合应用于比较重要的安全网络交易。而对于比较重要的证书,如商家证书和服务器证书等,密钥对一般由专用应用程序或CA中心直接产生,这样产生的密钥强度大,适合于重要的应用场合。 
另外,根据密钥的应用不同,也可能会有不同的产生方式。比如签名密钥可能在客户端或RA中心产生,而加密密钥则需要在CA中心直接产生。 

2. 密钥备份和恢复 
在一个PKI系统中,维护密钥对的备份至关重要,如果没有这种措施,当密钥丢失后,将意味着加密数据的完全丢失,对于一些重要数据,这将是灾难性的。所以,密钥的备份和恢复也是PKI密钥管理中的重要一环。 
使用PKI的企业和组织必须恩能够得到确认:即使密钥丢失,受密要加密保护的重要信息也必须能够恢复,并且不能让一个独立的个人完全控制最重要的主密钥,否则将引起严重后果。 
企业级的PKI产品至少应该支持用于加密的安全密钥的存储、备份和恢复。密钥一般用口令进行保护,而口令丢失则是管理员最常见的安全疏漏之一。所以,PKI产品应该能够备份密钥,即使口令丢失,它也能够让用户在一定条件下恢复该密钥,并设置新的口令。 
例如,在某些情况下用户可能有多对密钥,至少应该有两个密钥:一个用于加密,一个用于签名。签名密要不需要备份,因为用于验证签名的公钥(或公钥证书)广 泛发布,即使签名私钥丢失,任何用于相应公要的人都可以对已签名的文档进行验证。但PKI系统必须备份用于加密的密钥对,并允许用户进行恢复,否则,用于 解密的私钥丢失将意味着加密数据的完全不可恢复。 
另外,使用PKI的企业也应该考虑所使用密钥的生命周期,它包括密钥和证书的有效时间,以及已撤销密钥和证书的维护时间等。 

3. 密钥更新 
对每一个由CA颁发的证书都会有有效期,密钥对生命周期的长短由签发证书的CA中心来确定,各CA系统的证书有效期限有所不同,一般大约为2-3年。 
当用户的私钥被泄漏或证书的有效期快到时,用户应该更新私钥。这时用户可以废除证书,产生新的密钥对,申请新的证书。 

3.5 证书的使用

在实际应用中,为了验证信息的数字签名,用户首先必须获取信息发送者的公钥证书,以及一些额外需要的证书(如CA证书等,用于验证发送者证书的有效性)。

证书的获取可以有多种方式,如发送者发送签名信息时附加发送自己的证书,或以另外的单独信息发送证书,或者可以通过访问证书发布的目录服务器来获得,或者直接从证书相关的实体处获得。在一个PKI体系中,可以采取某种或某几种上述方式获得证书。

在电子商务系统中,证书的持有者可以是个人用户、企事业单位、商家、银行等。无论是电子商务中的哪一方,在使用证书验证数据时,都遵循同样的验证流程。一个完整的验证过程有以下几步:

1. 将客户端发来的数据解密 (如解开数字信封)。 

2. 将解密后的数据分解成原始数据,签名数据和客户证书三部分。 

3. 用CA根证书验证客户证书的签名完整性。 

4. 检查客户证书是否有效 (当前时间在证书结构中的所定义的有效期内)。 

5. 检查客户证书是否作废 (OCSP方式或CRL方式)。 

6. 验证客户证书结构中的证书用途。 

7. 客户证书验证原始数据的签名完整性。 

如果以上各项均验证通过,则接受该数据。

4 PKI应用

---PKI技术的广泛应用能满足人们对网络交易安全保障的需求。当然,作为一种基础设施,PKI的应用范围非常广泛,并且在不断发展之中,下面给出几个应用实例。

1. 虚拟专用网络(VPN) 
VPN是一种架构在公用通信基础设施上的专用数据通信网络,利用网络层安全协议(尤其是IPSec)和建立在PKI上的加密与签名技术来获得机密性保护。 基于PKI技术的IPSec协议现在已经成为架构VPN的基础,它可以为路由器之间、防火墙之间或者路由器和防火墙之间提供经过加密和认证的通信。虽然它 的实现会复杂一些,但其安全性比其他协议都完善得多。 

2. 安全电子邮件 
----作为Internet上最有效的应用,电子邮件凭借其易用、低成本和高效已经成为现代商业中的一种标准信息交换工具。随着Internet的持续 增长,商业机构或政府机构都开始用电子邮件交换一些秘密的或是有商业价值的信息,这就引出了一些安全方面的问题,包括:消息和附件可以在不为通信双方所知 的情况下被读取、篡改或截掉;发信人的身份无法确认。电子邮件的安全需求也是机密、完整、认证和不可否认,而这些都可以利用PKI技术来获得。目前发展很 快的安全电子邮件协议是S/MIME (The Secure Multipurpose Internet Mail Extension),这是一个 允许发送加密和有签名邮件的协议。该协议的实现需要依赖于PKI技术。 

3. Web安全 
----浏览Web页面是人们最常用的访问Internet的方式。如果要通过Web 进行一些商业交易,该如何保证交易的安全呢?为了透明地解决Web 的安全问题,在两个实体进行通信之前,先要建立SSL连接,以此实现对应用层透明的安全通信。利用PKI技术,SSL协议允许在浏览器和服务器之间进行加 密通信。此外服务器端和浏览器端通信时双方可以通过数字证书确认对方的身份。-结合SSL协议和数字证书,PKI技术可以保证Web 交易多方面的安全需 求,使Web上的交易和面对面的交易一样安全。 

5.PKI应用标准

目前世界上已经出现了许多依赖于PKI的安全标准,即PKI的应用标准,如安全的套接层协议SSL、传输层安全协议TLS、安全的多用途互连网邮件扩展协议S/MIME和IP安全协议IPSEC等。

· S/MIME 是一个用于发送安全报文的IETF标准。它采用了PKI数字签名技术并支持消息和附件的加密,无须收发双方共享相同密钥。S/MIME委员会采用PKI技 术标准来实现S/MIME,并适当扩展了PKI的功能。目前该标准包括密码报文语法、报文规范、证书处理以及证书申请语法等方面的内容。 

· SSL/TLS是互连网中访问WEB服务器最重要的安全协议。当然,他们也可以应用于基于客户机/服务器模型的非WEB类型的应用系统。SSL/TLS都利用PKI的数字证书来认证客户和服务器的身份。 

· IPSEC是IETF制定的IP层加密协议,PKI技术为其提供了加密和认证过程的密钥管理功能。IPSEC主要用于开发新一代的VPN。 

原创文章 96 获赞 48 访问量 6万+

猜你喜欢

转载自blog.csdn.net/wteruiycbqqvwt/article/details/102468702