购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 数字证书与PKI体系

4.4.1 数字证书

基于公钥密码体制的加解密算法和数字签名,十分关键的一个环节在于公钥的分发。公钥可以进行公开,但是如何验证接收到的公钥不是伪造且未被篡改的呢?一旦公开,公钥自身就出了问题,那么建立在其上的公钥密码体制将毫无安全性可言。引入数字证书的机制可以很好地解决这个问题。

一、数字证书的构成

数字证书是通信网络中标志各方身份的一系列数据信息,其作用类似于现实生活中的身份证,用于信息记录合法性的证明。例如,数字证书可以证明公钥属于某一特定实体,并能确保内容若被篡改将被轻易发现,以此实现公钥的安全分发。数字证书由权威的证书认证机构(Certification Authority, CA)发行。

现在比较常见的数字证书标准是X.509数字证书,其中主要定义了如下一些内容。

(1)证书的版本信息。

(2)证书的序列号(每个证书都有唯一的证书序列号)。

(3)证书使用的签名算法。

(4)证书的发行机构名称。

(5)证书的有效期,若证书超出有效期即被视为作废。

(6)证书所有人的名称。

(7)证书所有人的公钥信息。

(8)证书发行机构对证书的签名。

二、数字证书验证

一般认为,公钥经由数字证书发行机构CA背书,可以证明其属于某一特定实体。下面简单介绍如何验证数字证书的合法性,假设Alice要验证Bob的证书,则过程如下。

(1)Alice获得Bob的证书和签发Bob证书的CA的公钥。

(2)用CA的公钥解密Bob的证书摘要H1。

(3)计算Bob的证书的摘要H2。

(4)比较摘要H1与H2,如果不同则验证失败。

(5)校验Bob的证书有效期。

一旦Alice能够确认CA的权威性,便能确保Bob证书的合法性,即与Bob对应公钥的合法性。而CA的公钥也需要相应的数字证书进行认证,称为根证书,由于其为自签发,并不需要其他发行机构的背书和签名,一般内嵌于操作系统或浏览器中,作为绝对权威凭证。从根证书开始,可以不断向下签发新证书,进而形成数字证书信任链。

三、数字证书信任链

数字证书信任链广泛应用于Web网站的认证。例如,当打开某个支持HTTPS的网站,可以发现该网站包含多级证书信息。数字证书主要包含end-user、intermediates和root三类,分别对应由下到上不同层级的证书及其对应的签发机构。多层级的CA制度保证向下签发证书过程中各层证书未被篡改。对某个网站证书链进行验证时,一般从end-user CA开始,经由intermediates CA,逐级向上验证签发者的签名和证书,最终验证具有绝对信任作用的根证书,实现校验的整个过程。因此,根证书为信任链的起点。

四、数字证书在联盟链中的应用

联盟链的节点身份和权限管理具有十分重要的作用,其定义了特定场景下节点角色和操作执行的可能性,这也是联盟链区别于公有链最为本质的特征。数字证书机制被广泛应用于联盟链权限管控场景中。

联盟链要求各参与方拥有明确的身份标识,而身份标识一般采用数字证书,其由区块链网络中的权威CA签发,包含用户公钥和身份信息。区块链网络中的其他机构也可以继续签发新的数字证书,进而形成证书信任链。同理,节点需要保存CA的公钥以验证整条信任链。通过数字证书机制,联盟链可以轻松实现节点的身份和权限管理。

4.4.2 PKI的概念与基本组件

数字证书作为公钥密码体系的信任基础,对其生命周期进行合理管控显得十分重要。公开密钥基础设施(Public Key Infrastructure,PKI),指的是基于公开密钥机制建立的基础设施,其提供了一整套的证书管理框架,包括生成、发布、撤销等过程。一般来说,PKI至少包括以下几个组件。

(1)CA(Certification Authority):负责证书的颁发和作废,接受RA的请求,完成对证书信息的维护。

(2)RA(Registration Authority):对用户身份进行验证与校验,审核通过即将申请发送至CA。

(3)证书库:负责存放数字证书,配合文件管理系统管理用户信息。

值得注意的是,PKI是实现身份确认和可靠信息传递的一个通用框架,其并不代表某种特定的密码学技术或算法。

一、证书的生成与发布

证书的生成与发布过程,本质为CA运用其私钥对用户申请的公钥进行签名的过程。基于此,用户公钥得到CA信任背书。因此可利用CA公钥对用户证书进行验证。证书的生成一般存在以下两种形式。

(1)用户生成自身公私钥,并构造证书请求文件(Certificate Signing Request,即“.csr”后缀的文件),并将其发送给CA,而CA将证书请求文件签名后发还至用户。CSR文件常见于联盟链节点身份管理场景中。

(2)用户不需生成自身公私钥,而由CA直接生成一对公私钥,签名生成证书后发布至用户。

二、证书的撤销

一般地,证书超过有效期限即被视为作废,但若用户出现证书遗失或私钥失密等意外情况,也可主动向CA申请撤销证书,CA经过审核后可撤销该证书。但证书一旦发出便不可收回。所以,为实现撤销功能,需要构建一个注销证书列表(Certificate Revocation List,CRL)用于记录已被注销的证书。

因此,在对某个证书进行验证时,除了验证基本的合法性(有效期、签名等)外,还应事先检验该证书是否处于注销证书列表中。 VFlMD6AY6iYQ+14LY2/0ZVu48dL3tKM/Wb2wf6M7SO3OWgiZ84lAygXVtfghm/Cs

点击中间区域
呼出菜单
上一章
目录
下一章
×