Public Key Infrastructure (PKI) is a set of hardware, software, people, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates.
公钥基础设施(PKI)是创建,管理,分发,使用,存储和撤销数字证书所需要的一系列硬件,软件,人员,策略和和过程的总称。
概述
PKI体系概要说明
- 一个有效的PKI体系必须是安全和透明的,用户获得服务(加密和数字签名)时,不需要了解PKI的内部运作机制。
- 在一个典型、完整和有效的PKI系统中,除了证书的创建和发布,撤销,还需要有对应的密钥管理服务(备份,恢复和更新)等。一个完整的密钥管理系统(保证密钥本身的安全)是PKI系统的规模、可伸缩性和运营效率的基石。
- 在一个企业中,PKI系统必须有能力为一个用户管理多对密钥和证书;能够提供安 全策略编辑和管理工具,如密钥周期和密钥用途等。
- PKI发展的一个重要方面就是标准化问题,它也是建立互操作性的基础。目前,PKI标准化主要有两个方面:一是RSA公司的公钥加密标准PKCS(Public Key Cryptography Standards),它定义了许多基本PKI部件,包括数字签名和证书请求格式等;二是由Internet工程任务组IETF(Internet Engineering Task Force)和PKI工作组PKIX(Public Key Infrastructure Working Group)所定义的一组具有互操作性的公钥基础设施协议。在今后很长的一段时间内,PKCS和PKIX将会并存,大部分的PKI产品为保持兼容性,也将会对这两种标准进行支持。(引用)
- PKI的发展很迅速,目前已经有大量成熟的技术,产品和解决方案。
- PKI产品的生产厂家很多,巨头们也已经开始在产品中加入PKI方案,PKI体系未来将是整个信息安全最重要的基础设施之一。

术语解释
- CA-Certificate Authority 证书管理和认证的机构,即认证中心
- RA-Registration Authority 证书注册审批机构
- VA An entity must be uniquely identifiable within each CA domain on the basis of information about that entity. A third-party validation authority (VA) can provide this entity information on behalf of the CA.
- 数字证书-CA用其私钥进行了数字签名的包含用户身份、公开密钥、有效期等许多相关信息的权威性的电子文件,是各实体在网上的电子身份证。
- 公钥/私钥-可以认为是一种加密/解密的算法凭证,公钥可以公开获得,私钥是私密的保存
- 数字签名-基于数字证书的一种信息技术处理,类似与传统的手写签名保证信息的不可抵赖性。用特定的证书签名后的数据,像手写签名一样不可(被其他人)伪造。
- SSL-Secure Socket Layer 安全套接字层(SSL)是一个工业标准协议, 对应于七层网络模型中的会话层,它使得公开密钥技术在其中发挥了重要作用。
- SET-是由Visa国际组织和万事达组织共同制定的一个能保证通过开放网络(包括Internet)进行安全资金支付的技术标准 。
- 对称加密算法-对称加密算法中解密和解密使用的是同一个密钥。对称密钥密码体制是从传统的简单置换、替代密码发展而来的,对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类:常用的对称加密算法有:RC4、RC2、IDEA、CAST。
非对称加密算法-非对称加密算法又被称之为公开密钥算法,因为算法要求公开公私钥对中的公钥给他人。它要求密钥成对出现,一个为公开密钥,一个为私有密钥,而且不可能从公开密钥推导出私有密钥,用公开密钥加密的信息只能用私有密钥解密,反之亦然。除加密功能之外,公钥系统还可提供数字签名。公钥加密算法主要有:RSA、Fertezza、ECC(椭圆曲线)等。该算法的计算开销大、处理速度慢,但其优点是便于密钥的分发和管理,便于数字签名(用公钥加密,用私钥解密,可实现多个用户的加密信息只能由一个用户解读,这用于保密通信;若以私钥加密,公钥解密,可实现一个用户的加密信息而由多个用户解密,可以适于数字签名)。
摘要算法
- 压缩性:任意长度的数据,算出的摘要长度都固定。
- 容易计算:从原数据容易算出摘要。
- 抗修改性:对原数据进行任何改动,所得到的摘要都有很大区别。
- 弱抗碰撞:已知原数据和其摘要,想找到一个具有相同摘要的数据(即伪造数据),在计算上是困难的。
- 强抗碰撞:想找到两个不同的数据,使它们具有相同的摘要,在计算上是困难的。
- (这也是为什么可以把任意长度的输入都转换成固定长度的输出,但是通过巧妙的算法设计把不同输入的输出结果相同的情况最小化了,哈希算法本身是容易冲突的)
信息安全需要解决的问题

- 保密性:
- 保证机密信息不被窃听。
- 数据保密性服务目标是除了指定的实体外,其它没有经过授权的人不能读出或者看得懂该数据。这里采用的“数字信封”机制,特点是讲对称加密的快速和非对称加密的方便很好的结合了起来。发送方先产生一个对称密钥,并利用该对称密钥加密敏感数据,同时,发送方利用接受方的公钥加密此对称密钥,好像装入了一个“数字信封”里面,然后将被加密的对称密钥和被此对称密钥加密的敏感数据一起发送给接受方,接受方先用自己的私钥解开数字信封得到对称密钥,然后在用对称密钥解开加密的数据,其它没有授权的人没有拆开数字信封的私钥所以看不见或者读不懂数据,这就起到了数据保密性的作用。
- 身份鉴别与授权:对信息的来源进行判断,能对伪造来源的信息予以鉴别。
- 数据完整性:
- 保证数据的一致性,防止数据被非法篡改。
- 就是确保数据在传输或者存储的过程中没有别修改,利用摘要算法+数字签名来实现。先对信息进行摘要处理,然后对摘要的值作数字签名附在原始数据后面一起发送。如果数据被篡改,验证就会失败,反之则说明数据完整。摘要保证了内容未被篡改,数字签名保证了只有原文发送者可以构造出内容来。
- 抗抵赖:建立有效的责任机制,防止用户否认其行为。
PKI组成
(如引言中所述)PKI作为一组在分布式计算系统中利用公钥技术和证书服务等所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。在安全域内,PKI管理加密密钥和证书的发布,并提供诸如密钥管理(包括 密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。PKI产品也允许一个组织通过证书级别或直接交叉认证等方式来同其他安全域建立信任关系。这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间和Internet之上,为电子商务和网络通信提供安全保障,所以 具有互操作性的结构化和标准化技术成为PKI的核心。
PKI在实际应用上是一套软硬件系统和安全策略的集合,它提供了一整套安全机制,使用户在不知道对方身份或分布地很广的情况下,以证书为基础,通过一系列的信任关系进行通讯和电子商务交易。
完整的PKI系统组成
- 认证机构(CA): 即数字证书的申请及签发机关,CA必须具备权威性的特征;
- 数字证书库: 用于存储已签发的数字证书及公钥,用户可由此获得所需的其他用户的证书及公钥;
- 密钥备份及恢复系统: 如果用户丢失了用于解密数据的密钥,则数据将无法被解密,这将造成合法数据丢失。为避免这种情况,PKI提供备份与恢复密钥的机制。但须注意,密钥的备份与恢复必须由可信的机构来完成。并且,密钥备份与恢复只能针对解密密钥,签名私钥为确保其唯一性而不能够作备份。
- 证书作废系统: 证书作废处理系统是PKI的一个必备的组件。与日常生活中的各种身份证件一样,证书有效期以内也可能需要作废,原因可能是密钥介质丢失或用户身份变更等。为实现这一点,PKI必须提供作废证书的一系列机制。
- 应用接口(API): PKI的价值在于使用户能够方便地使用加密、数字签名等安全服务,因此一个完整的PKI必须提供良好的应用接口系统,使得各种各样的应用能够以安全、一致、可信的方式与PKI交互,确保安全网络环境的完整性和易用性。
一个典型、完整、有效的PKI应用系统至少应具有以下部分功能:
- 公钥密码证书管理。
- 黑名单的发布和管理。
- 密钥的备份和恢复。
- 自动更新密钥。
- 自动管理历史密钥。
- 支持交叉认证。
PKI技术框架

算法
- 非对称加密算法:RSA、ECC
- 摘要算法:MD5、SHA1、SHA256等
- 对称加密算法:3DES、AES、RC4等
协议标准
- PKCS系列标准:PKCS#1、PKCS#3、PKCS#7、PKCS#8、PKCS#10、PKCS#11、PKCS#12
- X.509 v3标准:证书格式结构标准
- SSL/TLS协议:安全通信协议
PKI技术手段
一种证书的格式说明
- 证书版本号,用来指定证书采用的标准格式(如X.509)的版本号。
- 证书序列号,用来指定证书的唯一序列号,标识CA(认证中心)发出的所有公钥证书序列。
- 签名算法标识,根据现代密码学的“算法公开,密钥保密”的基本原则,这里列出该CA(认证中心)所使用的签名算法标识名。
- 证书有效期、起始日期、终止日期,用来指定证书的起始日期和终止日期。
- 用户信息,用来指定证书用户的唯一标识名DN
- 用户公钥信息,用来指定公钥使用的算法和本证书拥有的公钥信息本身。
- 发证机关签名,CA(认证中心)用自己的密钥和本证书的信息通过上述签名算法获得的数字签名信息。

加密算法是PKI体系的基础。
数字签名技术
- 一般A用HASH算法对一段信息进行加工产生HASH值(即摘要信息),再用数字签名规定的算法进行私钥加密形成数字签名,将该段信息原文与数字签名一起传到B,B用A的公钥对A的数字签名进行解密产生原文的HASH值,B同时用HASH算法对传送过来的原文求HASH值(即摘要信息),用两个HASH值进行比较验证数字签名;另一种数字签名方法是对需保密的短信息,A用私钥对原文通过签名规定的加密算法产生数字签名信息和时间戳一起传到B,B用A的公钥解密,加上时间戳来验证数字签名。从上可以看出,每次数字签名都与该次信息结合,不能移到另一段信息上 。
需要注意的是,数字签名能保证数据来源的不可抵赖,保证了数据没有被未经授权的人修改过,但是不能够保证数据不被未经授权的人阅读。
SSL协议介绍
- SSL是被设计用来保证信息安全的一个协议,它依赖于可靠的TCP协议来传输数据。它的特点之一是独立于上层的应用层协议(如:HTTP,FTP,TELNET等),这些应用层协议可以透明使地用SSL协议。SSL协议可以协商一个对称加密算法和会话密钥,同时可以在通信之前认证服务器的合法性。
- SSL协议提供了一种“管道式安全”,它具有三个特征:
- 管道是保密的,保密性是通过使用加密技术来保证的,在通过一个简单的握手过程之后获得一个共同的密钥,作为对称加密算法的密钥。
- 管道是认证过的,服务器端总是需要把自己的证书递交给客户端,以便客户端对服务器进行认证。服务器可以选择是否需要客户端递交证书。
- 管道是可靠的,消息的传输包含了消息完整性检查。
- SSL协议实际上由两个协议构成,位于下面的一层为SSL记录协议(SSL Record Protocol),其上为SSL控制协议(SSL Control Protocols),SSL记录协议用于封装上层发送和接收的所有数据,当然包括 SSL控制协议的数据, SSL控制协议包含:
- SSL握手协议(SSL Handshake Protocol)
- SSL密钥交换协议(SSL Change Ciphers Specification)
- SSL报警协议(SSL Alert Protocol)
SSL协议简要介绍
SSL的握手过程是建立SSL的主要加密和安全参数的过程,它是SSL的控制协议执行的控制功能。握手过程体现在浏览器使用HTTPS访问WEB服务器时,包括以下步骤:
- 浏览器向安全WEB服务器发出一个HTTPS的请求,比如:https://blog.xiaoyuyue.net。
- 该WEB服务器将它的证书递交给浏览器的SSL模块。
- 浏览器检查服务器递交的证书的有效性,比如有效日期和证书的签名等。如果该证书不是被一个浏览器已经信任的发证结构(CA)签发的证书,浏览器将弹出一个对话框来提示用户是否信任该WEB站点证书。如果用户选择不信任该证书,浏览器会选择自动中止该连接。
- 浏览器将把从WEB站点证书里取得的站点名称和浏览器的URL 里的域名相对照,如果相符,浏览器将认为站点为真正的站点。
- 浏览器将自己支持的一系列算法发送给服务器。
- 如果服务器需要客户端递交证书,浏览器将把自己的证书发送给服务器,服务器检查递交的证书,并且检查该证书是否为自己已经信任的发证机构(CA)发放的证书。如果不是,服务器将自动中止该次连接。
- 服务器端选择自己和客户端共同支持的加密算法,然后发送给客户端。
- 浏览器产生一个会话密钥,然后把该密钥通过服务器的公钥加密后传给服务器。
- 服务器接收到该加过密的会话密钥后用自己的私钥解密,得到会话密钥的明文。
- 客户端和服务器使用刚才协商的会话密钥对应用层的数据进行加解密,对传输的数据进行安全保护。
版权声明
本文标题:PKI基础
文章作者:盛领
发布时间:2017年03月25日 - 15:58:27
原始链接:http://blog.xiaoyuyu.net/post/a026e76a.html
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。
如您有任何商业合作或者授权方面的协商,请给我留言:sunsetxiao@126.com