基于区块链技术的 PKI 域证书管理机制

基于联盟链的ISE信任域结构模型ISE-CBCM

区块链是一种由所有分布式节点来共同维护,保证数据透明不可篡改的数据库结构,基于区块链结构的优点设计 ISE 信任域结构模型,得到联盟链的 ISE 信任域结构模型 ISE-CBCM 。将各个信任域的中心信任 CA 设置为区块链中的分布式节点,如单信任节点中的信任 CA、根 CA 和桥 CA 等,这些节点拥有相对高的可信度并且拥有交易、记账、查询等全部功能,其他服务器作为辅助节点,只可以通过预定的接口查询数据。

优点:

  1. 减轻证书管理和维护的负担,证书的大小和使用过程更加轻量级,具体证书的管理机制将在后详述; 
  2. 降低维护可信节点信任度的成本:在原有的信任域结构中,CA 的可信任性主要靠安全部件、安全策略、密码学安全等来维护,这些都需要消耗更多的维护成本。区块链是一个去中心化的安全性极高的数据库结构,他对篡改数据,数据造假等都具有零容忍性,ISE-CBCM 模型基于联盟链设计,所有节点相互信任,互相监督,定期互相验证身份,降低了人力物力成本,实现了全节点监督; 
  3. 改善跨域交互的复杂度,实现不同结构域模型之间的跨域交流活动:在 ISE-CBCM 模型下,各种结构的信息服务信任域中,信任 CA 都以联盟的形式存在,可以在合理范围内控制不同域结构的规模和增长速度。ISE-CBCM 模型内的所有 CA 存储有相同的模型内参数,通过设计区块链证书机制,可用于安全高效的实现不同结构之间的跨域认证,后续小节将作更详细研究。 

基于 ISE-CBCM 的区块链证书的结构设计

X.509v3 版本的公钥证书与区块链证书结构

区块链证书相较于 X.509 证书:

  1. 舍去了发行者和主体唯一标识,发行者唯一标识和主体唯一标识在 X.509v3 版本中本就是可选项,用来确保颁发证书的 CA 和接收证书的主体具有唯一辨识名。信息服务信任域中 ISE 数量相对有限,可以通过发行者名称和主体名称可进行唯一辨识,因此舍去这两部分。信息服务信任域中,用户数量较多,因此保留拓展项中的主体备选名,用以区分数量较多的用户群体,保证其唯一辨识性。
  2. 舍去了有关签名的所有内容,在证书内容生成后也无需在证书中存放对其对其内容的签名结果。名算法标识符以及相关的参数在区块链证书中不是必须的,同时在证书生成之后无需发行者对证书进行签名,因此删去这两部分内容。在数字证书中,发行者需要利用自身私钥对其余部分进行签名,用来保障证书不被篡改;当对证书有效性进行验证时,验证者需要查询发行者的公钥,根据签名标识符和参数通过运算验证签名的正确性,从而验证证书的完整性。在区块链证书中,证书存储在区块体内,数据可保证不被篡改,任何对证书的改动都会导致证书查询的失败,实现完整性的天然保障,因此删去此部分内容。 
  3. 有效期的起始日期和结束日期,更改设置为有效期长。区块链时间戳技术会标明每个数据区块的形成时间,每当新数据区块打包接入区块链的时候,会在区块头内记录区块形成时的时间戳。为了降低证书大小,可将时间戳作为有效期中的起始时间。查询有效期时,通过计算与时间戳的时间差,比较可得到证书是否在有效服役期。
  4. 在拓展项部分舍去了基本约束和名字约束、CRL 分布点两部分同时增加信息服务等级和类型等相关信息用于适应信息服务信任域的场景。拓展项中的所有内容都是可选项,首先删除了 CRL 分布点,PKI 的证书使用中,证书的发布状态是最重要的也是最难的,目前最多使用的是 CRL 和 OCSP,本方案将证书存储在区块链上,通过设置区块链接口可实现实时查询返回状态,不需要额外设置证书撤销列表。基本约束和名字约束是为了防止信任范围被无限的放大,到难以管理的规模,由于信息服务信任域数量可控,结构相对简单,在区块链的模型下可控制纵向增长,因此删除这部分选项。另外,由于信息服务实体具有安全性等级分类、服务类型标明等额外信息,为方便对 ISE 的进一步管理,在拓展项中增加该可选项。区块链证书结构如下:

区块链证书的生命周期 

区块链证书注册、验证、签发

  1. 注册:实体 E 将证明其身份的材料,如 IP 地址、真实姓名、ID、Email 等可以标识个人身份的信息发送至 RA,如果实体 E 为信息服务商(ISE),则需要额外提供服务商名称、ID、负责人相关信息、所提供信息服务的类型、提供服务的群体等相关信息提供给 RA。RA 根据提供的信息为其生成公私钥,注册成功。
  2. 验证:注册完成后,RA 需要和实体 E 进行交互,验证其提供材料的真实性。
  3. 签发:以上验证通过后,RA 将上述材料都提供给 CA,CA 对一些必要信息进行验证之后,生成区块链证书 Cert。CA 首先将证书签发给用户,然后利用 ISE-CBCM 模型内选定的哈希函数,将区块链证书进行哈希计算得到 Hash(Cert) ,存入区块体内并设置证书状态接口为 ( )put issue,Hash(Cert) 。

区块链证书身份认证

与数字证书( 数字证书也叫电子证书,或简称证书,在很多场合下,数字证书、电子证书和证书都是X.509公钥证书的同义词,它符合ITU-T X.509 V3标准。)需事先下载撤销目录等操作不同,区块链证书的使用过程中,确定证书的有效性除验证签名外,可以在区块链上查询证书状态,查询过程简单,结果明确,因此区块链证书的身份认证过程为:

  1. 实体 E 向 CA 发送自己的证书 Cert,请求 CA 对其进行身份验证; 
  2. CA 首先读取证书中信息,确定证书的主体信息正确;  验证通过后,CA 计算证书的哈希值,在区块链上查询证书的状态,若返回状态中,对应的证书状态为已发布,且利用返回时间计算证书在服役期,则身份认证成功。若证书状态为撤销或者空,则返回认证失败,若证书不在服役期,则返回失效。 

区块链证书过期、更新、撤销 

数字证书的过期与更新,属于撤销列表里的一部分。区块链证书设计了相对简单的过期与更新过程,保证 ISE-CBCM 模型中证书管理的高效性。 

  1. 过期:当证书在使用过程中,在区块链上查询到不在有效期内,则返回证书过期,实体 E 需要重新进行注册,CA 此时需要设置该证书旧的的区块链端口为put(revoke,Hash(Cert)) 。 
  2. 更新:证书的更新过程有两种情况,其一是证书过期需要重新注册,其二是实体的原来注册信息发生了变更,例如实体 E 的 IP 信息、联系方式、Email,或者ISE 的服务等级改变,服务对象变更等,需要重新提交注册信息。实体 E 将重新注册的信息发送给 RA,签发过程类似,实体 E 得到新证书 New Cert ;  CA 在上传到区块链数据层时,需要同时上传旧证书的哈希值 Hash(Cert) 和新的证书的哈希值Hash(NewCert)。由于区块链对已保存数据的不可篡改性,每次更新证书需要重新设置新证书的端口号 ( )put issue,Hash(NewCert) ,同时将旧证书端口号设置证书状态失效 ( )put revoke,Hash(Cert) 。 
  3. 撤销:区块链证书的撤销,指证书失效主体主动申请撤销,CA 将该证书区块链端口号状态设置为证书撤销 revoke。CA 接受到信息后确定真实性后向区块链数据层发送证书哈希值 Hash(Cert)和撤销申请,设置端口号 ( )put revoke,Hash(Cert) 。当实体 E 的证书过期或需要更新,未完成注册过程时,或当实体 E 的密钥泄露、或者信息服务实体提供信息服务出现违背安全等级的情况时,这些需要立即撤销证书以保证系统安全的情况下,CA 有权主动撤销其证书,撤销过程与上述相同。

区块链证书的应用举例

场景一:本域用户 1 请求验证 ISE 身份。 

  1. 首先本域用户 1 想要接受 ISE 的信息服务,需要验证其身份,因此向本域 CA1发送访问申请和自身区块链证书Cert u1 ,向 ISE 发送访问申请,申请验证 ISE 的身份; 
  2. ISE 在接收到用户的访问申请后,响应该申请,将证书Cert  ISE发送至本域 CA1; 
  3. CA1 收到访问用户 1 的访问申请和证书Cert  u1和证书Cert ISE 后,通过在区块链上查询验证证书1UCert 和ISECert 的有效性,验证本域用户 1 和 ISE 身份。身份认证通过,CA1 向本域用户 1 发送通过验证,若验证失败则同时向用户 1 和 ISE 返回认证失败,通知 ISE 需要重新进行身份认证相关操作。 

场景二:外域用户 2 要验证 ISE 身份。 

  1. 外域用户 2 想要接受不在同一信任域内的 ISE 的信息服务,需要验证该 ISE的身份,发送访问申请自身和自身的区块链证书Cert u2给本域 CA2,发送访问申请给外域 ISE,申请验证其身份; 
  2. ISE 在接收到用户 2 的访问申请后,向本域的 CA1 发送自身的证书Cert ISE ; 
  3. CA1 通过在区块链上查询验证证书Cert ISE的有效性,验证 ISE 身份;CA2 通过在区块链上查询验证证书Cert u2的有效性,验证用户 2 身份; 
  4. 以上身份验证都通过后,CA1 和 CA2 在 ISE-CBCM 模型内相互验证身份,CA1 和 CA2 相互验证通过后,CA2 直接向用户 2 发送通过验证。 
  5. 若以上身份验证有任一不通过,CA1 向 ISE 返回认证失败,通知 ISE 需要重新进行身份认证相关操作,CA2 向用户 2 返回验证失败; 其中 CA1 和 CA2 在 ISE-CBCM 模型内相互验证时,可以采用通过区块链证书的方式,模型内节点预先通过秘密共享等设置模型内公私钥,颁发相同参数证书;也可通过密钥池技术共享公钥,利用模型内参数通信验证对方身份。 

区块链证书和数字证书的比较

猜你喜欢

转载自blog.csdn.net/weixin_49534236/article/details/112863174
PKI