章节索引 :

HTTP 公钥基础设施(PKI)

公开密钥基础建设 PKI(Public Key Infrastructure)是一组由硬件、软件、参与者、管理政策与流程组成的基础设施,是为了保障网络系统的安全而产生的机构。PKI 里面包含了多个职能机构,其中 CA 是证书机构,负责管理证书的整个生命周期,它是 PKI 的核心组成。在当前在线交易盛行的今天,网络安全尤为重要。

1. 简介

安全密钥交换与非对称密钥算法,推动了网络安全通信的发展,在认证与安全诉求越来越迫切的环境下,一些厂商嗅探到市场的机遇,逐渐推出了相应的认证服务。

信息的安全关系到国家安全和经济利益,因此我国这几年也在积极探索网络安全的标准化建设,这些标准并不仅仅局限于证书的签名算法,也包括了物理厂房的建设,人员的管理流程规则制度。当然我们的网络安全建设一方面要保证自己足够安全,另一方面也要对接国际,毕竟今天的网络今天的经济都是全世界共同的。

2. PKI 组成

2.1 证书管理中心

面向用户,管理证书的申请,撤销,浏览,下载。

2.2 Registration Authority(RA)

证书注册机构,用户提出信息申请的请求,RA 校验用户身份信息的准确性,审查用户的申请资格。如果审核都通过会帮忙向 CA 提出证书申请。

2.3 Certificate Authority(CA)

证书颁发机构 CA 是 PKI 的基础,它管理着证书的整个生命周期,其作用包括:发放证书,规定证书有效期,废弃不良信用证书。

2.4 证书存储

证书、密钥、CRL 等信息进行 存储和管理。

3. 平台结构

PKI

3.1 证书申请步骤

  1. 用户通过非对称加密算法生成一个自己的公钥,然后将公钥和其他用户信息提交给证书管理平台,告诉他要申请证书。
  2. 证书管理将请求转发给 VA ,进行身份的审核资质的认证。
  3. 审核通过将证书申请发送给 CA,CA 生成包含关于用户及 CA 自身的各种信息的证书。
  4. 用户从管理平台下载证书。

4. 证书如何发挥作用

了解完证书是如何获取的,下面我们要了解下辛辛苦苦得到的这本证书是如何起到身份认证和保证信息完整性的功效。

4.1 重要项说明

  1. 用户申请证书前生成了自己的一对公钥 clientPub ,私钥 clientPri,证书申请的提交内容中需要包含 clientPub。

  2. CA 机构也有自己的 公钥 caPub ,私钥 caPri ,用来生成最终的 CA 证书。

  3. 数字签名:数字签名主要是依托了 Hash 算法的单向性非对称加密算法的特性来实现。将传输的内容(Http 的接口参数)用 Hash算法(如 MD5)生成一个很难反向逆推的摘要(就是一串字符串)。再继续把摘要用非对称算法的私钥加密生成签名,后面把签名和信息体一起发送给接收者。接收着先用非对称的公钥对签名进行解密得到摘要信息,然后采用发送着相同的 Hash 算法,把收到的信息(请求参数)进行 Hash 计算得到摘要2,将自己生成的摘要和发送过来的摘要相比较,一致就可以证明信息发送者的身份和内容都是正确的,没有被伪造和篡改。

  4. 数字证书:数字签名能成功,一方面是借助 Hash 算法和 非对称算法 的特性,另一方面取决于公钥的可靠性。就像大街上有人告诉你你家的保险箱密码你可能不信,但是如果是你爸告诉你的,这个消息的可靠性就高很多了。所以数字证书是一个权威机构颁发给你的,证书的内容包含了:申请者的身份信息,申请者自己的公钥,证书的有效期等内容。从证书中取到公钥,接下去就利用上面 数字签名 的流程进行消息内容的验证就好了。

当然证书的有效性也是需要借助签名算法来验证的,权威机构的 CA 公钥大家都是知道的,浏览器里面也都有内置。相当于我要拿 CA 的公钥借助签名算法计算证书的有效性,之后获取到用户端的公钥,再拿这个公钥同时借助签名算法来验证信息体。

4.2 证书内容

下面较详细的列举证书的基本字段,但不是全部。

  1. 证书版本号
  2. 签名算法
  3. 颁发者数字签名信息
  4. 证书有限期
  5. 申请人的公钥
  6. CRL信息:(certificate revocation list)证书吊销列表查看地址
  7. 证书颁发的机构信息

4.3 工作流程

CA

5. CA 与 区块链

CA 证书的可靠性来自 PKI 机构的权威和安全,是一种中心化的机构。区块链是一种去中心化的结构,它的可靠性是基于共识机制,数学算法,分布式原理。两者相比较,区块链会显得更加的客观可靠。区块链是一种新的革命技术,但它更倾向保证记录的不可磨灭性,CA 保证的是权威机构对身份的认证,两者目前不能说谁绝对的优势,可以在某些场合互相补充。

6. 小结

认证的核心是数字签名,数字签名中公钥不可靠需要借助 CA 认证,同时签名算法的实现主要是借助 Hash 算法(又称散列算法)的单向不可逆,和 非对称密码学算法。证书的颁发要有权威的颁发机构,这个机构中核心是 CA 证书制作机构,其他职能机构也是围绕证书服务的,所有机构组成 PKI。