数字证书的处理方法及相关装置与流程

文档序号:17245950发布日期:2019-03-30 08:49阅读:297来源:国知局
数字证书的处理方法及相关装置与流程

本申请涉及区块链技术领域,尤其涉及一种数字证书的处理方法及相关装置。



背景技术:

目前很多联盟链应用都开始引入数字证书颁发机构(certificateauthority,ca)为区块链上的参与方颁发数字证书。由于很多参与方(例如大多数银行)都有自己的ca,因此都会要求可以通过自己的ca为自己的客户来颁发数字证书。例如,银行a有自己的ca(例如ca-a),银行b有自己的ca(比如ca-b),银行c有自己的ca(比如ca-c)等等,各个银行均可通过自己的ca为自己的客户颁发数字证书。在联盟链网络中,银行a、银行b以及银行c等任一参与方均会认同其他参与方的ca给其客户颁发的数字证书。然而,由于所有联盟链上的参与方也都可以通过一个客户的数字证书来判断该客户的哪个参与方的客户,比如银行b可以通过一个企业的数字证书的签发方来判断这个企业是哪个银行的客户。比如说,该企业的数字证书是由银行a颁发,银行b则可确定该企业是银行a的客户等等。目前联盟链上的这种数字证书的颁发方式导致联盟链交易的交易信息对于联盟链上的各个参与方是完全公开的,交易双方的身份暴露无遗,难以满足各个参与方的交易需求,适用性差。



技术实现要素:

本申请实施例提供一种数字证书的处理方法及相关装置,可实现数字证书的匿名签发,增强数字证书的签发方的身份私密性,适用性强。

第一方面,本申请实施例提供了一种数字证书的签发方法,上述方法适用于数字证书的签发方,上述方法包括:

区块链网络中的第一参与方的证书颁发机构ca将上述第一参与方的ca公钥记录至区块链网络中,上述第一参与方为上述区块链网络中数字证书的签发方,上述区块链网络中还记录了至少一个第二参与方的ca公钥,上述第二参与方为上述区块链网络中除上述第二参与方之外的参与方;

当上述第一参与方的ca接收到任一用户的证书授权请求时,根据上述证书授权请求中携带的用户身份信息确认上述用户是否为上述第一参与方的ca的用户;

若上述签发方的ca确认上述用户是上述第一参与方的ca的用户,则从上述证书授权请求中获取上述用户的公钥,并根据预先设定的环签名证书签发规则,从上述区块链网络中获取任意n个上述第二参与方的ca公钥,其中,n等于上述环签名证书签发规则中设定的公钥数量;

上述签发方的ca根据上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,并向上述用户发送上述数字证书。

结合第一方面,在一种可能的实施方式中,上述环签名证书签发规则由上述第一参与方的ca自行制定,或者由上述区块链网络中的各个参与方的ca共同制定;上述环签名证书签发规则被记录于上述区块链网络中。

结合第一方面,在一种可能的实施方式中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述第一参与方的ca根据上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书包括:

上述第一参与方的ca基于上述规范,使用上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,上述数字证书的上述预设字段中携带上述数字证书的环签名的公钥信息。

结合第一方面,在一种可能的实施方式中,上述x509中包括签发方标注字段,上述签发方标注字段中包括上述第一参与方的ca对应的区块链网络标识和/或上述数字证书的环签名的公钥信息;

其中,上述公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

结合第一方面,在一种可能的实施方式中,上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

结合第一方面,在一种可能的实施方式中,上述区块链网络中记录的各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括分组标识符,上述分组标识符用于指示上述环签名对应的上述n个上述第二参与方的ca公钥的所属分组,以帮助上述数字证书的验证方基于上述n个上述第二参与方的ca公钥的所属分组找到上述n个上述第二参与方的ca公钥。

第二方面,本申请实施例提供了一种数字证书的验证方法,上述方法适用于数字证书的验证方,上述方法包括:

当验证方获得区块链网络中的任一签名交易时,上述验证方获取上述签名交易的发起方的数字证书;上述签名交易的发起方可为上述区块链网络中的参与方之一,上述区块链网络中记录了包括上述交易的发起方在内的各个参与方的证书颁发机构ca公钥;

上述验证方基于预设的环签名证书签发规则从上述数字证书中获取上述数字证书的环签名的公钥信息,并根据上述公钥信息确定上述数字证书的环签名对应的所有公钥,上述环签名对应的所有公钥为上述区块链网络中的多个参与方的ca公钥,且上述环签名对应的公钥数量等于上述环签名证书签发规则中设定的公钥数量;

上述验证方根据上述环签名对应的所有公钥对上述签名交易的签名进行验证。

结合第二方面,在一种可能的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述公钥信息包括上述预设字段中所包括的区块链网络的标识,和/或数字证书的环签名对应的所有参与方的ca公钥,和/或上述所有参与方的ca公钥的标识;

其中,上述预设字段包括签发方标注字段和/或扩展字段。

结合第二方面,在一种可能的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述区块链网络中记录的上述各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述公钥信息包括上述预设字段中所包括的分组标识符,上述分组标识符用于确定上述区块链网络中所包括的目标分组,以基于上述目标分组中包括的ca公钥确定上述数字证书的环签名对应的所有参与方的ca公钥。

第三方面,本申请实施例提供了一种数字证书的签发装置,上述装置适用于数字证书的签发方的证书颁发机构ca,上述装置包括:

记录单元,用于将上述第一参与方的ca公钥记录至区块链网络中,上述第一参与方为上述区块链网络中数字证书的签发方,上述区块链网络中还记录了至少一个第二参与方的ca公钥,上述第二参与方为上述区块链网络中除上述第一参与方之外的参与方;

确认单元,用于在接收到任一用户的证书授权请求时,根据上述证书授权请求中携带的用户身份信息确认上述用户是否为上述第一参与方的ca的用户;

获取单元,用于在上述确认单元确认上述用户是上述第一参与方的ca的用户时,从上述证书授权请求中获取上述用户的公钥,并根据预先设定的环签名证书签发规则,从上述区块链网络中获取任意n个上述第二参与方的ca公钥,其中,n等于上述环签名证书签发规则中设定的公钥数量;

签发单元,用于根据上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,并向上述用户发送上述数字证书。

结合第三方面,在一种可能的实施方式中,上述环签名证书签发规则由上述第一参与方的ca自行制定,或者由上述区块链网络中的各个参与方的ca共同制定;上述环签名证书签发规则被记录于上述区块链网络中。

结合第三方面,在一种可能的实施方式中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述签发单元用于:

基于上述规范,使用上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,上述数字证书的上述预设字段中携带上述数字证书的环签名的公钥信息。

结合第三方面,在一种可能的实施方式中,上述x509中包括签发方标注字段,上述签发方标注字段中包括上述第一参与方的ca对应的区块链网络标识和/或上述数字证书的环签名的公钥信息;

其中,上述公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

结合第三方面,在一种可能的实施方式中,上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

结合第三方面,在一种可能的实施方式中,上述区块链网络中记录的各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括分组标识符,上述分组标识符用于指示上述环签名对应的上述n个上述第二参与方的ca公钥的所属分组,以帮助上述数字证书的验证方基于上述n个上述第二参与方的ca公钥的所属分组找到上述n个上述第二参与方的ca公钥。

第四方面,本申请实施例提供了一种数字证书的验证装置,上述装置适用于数字证书的验证方,上述装置包括:

获取单元,用于在获得区块链网络中的任一签名交易时,获取上述签名交易的发起方的数字证书;上述签名交易的发起方可以为上述区块链网络中的参与方之一,上述区块链网络中记录了包括上述交易的发起方在内的各个参与方的证书颁发机构ca公钥;

确定单元,用于基于预设的环签名证书签发规则从上述数字证书中获取上述数字证书的环签名的公钥信息,并根据上述公钥信息确定上述数字证书的环签名对应的所有公钥,上述环签名对应的所有公钥为上述区块链网络中的多个参与方的ca公钥,且上述环签名对应的公钥数量等于上述环签名证书签发规则中设定的公钥数量;

验证单元,用于根据上述确定单元确定的上述环签名对应的所有公钥对上述签名交易的签名进行验证。

结合第四方面,在一种可能的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述公钥信息包括上述预设字段中所包括的区块链网络的标识,和/或数字证书的环签名对应的所有参与方的ca公钥,和/或上述所有参与方的ca公钥的标识;

其中,上述预设字段包括签发方标注字段和/或扩展字段。

结合第四方面,在一种可能的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述区块链网络中记录的上述各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述公钥信息包括上述预设字段中所包括的分组标识符,上述分组标识符用于确定上述区块链网络中所包括的目标分组,以基于上述目标分组中包括的ca公钥确定上述数字证书的环签名对应的所有参与方的ca公钥。

第五方面,本申请实施例提供了一种终端,该终端包括处理器、存储器和/或收发器,上述处理器、存储器和/或收发器相互连接,其中,上述存储器用于存储计算机程序,上述计算机程序包括程序指令,上述处理器和/或上述收发器被配置用于调用上述程序指令,执行上述第一方面以及第一方面任一种可能的实现方式提供的方法,或者上述第二方面以及第二方面任一种可能的实现方式提供的方法。

第六方面,本申请实施例提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时使上述处理器执行上述第一方面以及第一方面任一种可能的实现方式提供的方法,或者上述第二方面以及第二方面任一种可能的实现方式提供的方法。

基于本申请实施例,可实现作为数字证书的签发机构的任一参与方的无条件匿名,实现数字证书签发机构向其用户匿名签发数字证书,可避免数字证书的签发机构的身份泄露,避免区块链网络中的其他参与方获知数字证书的签发机构的信息,从而可增强数字证书的签发机构的身份私密性,保障数字证书的签发机构的交易信息的私密性,适用性强。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的数字证书签发通用流程的示意图;

图2是本申请实施例提供的数字证书的处理方法的流程示意图;

图3是本申请实施例提供的数字证书的签发装置的结构示意图;

图4是本申请实施例提供的数字证书的验证装置的结构示意图;

图5是本申请实施例提供的终端的一结构示意图;

图6是本申请实施例提供的终端的另一结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例提供的数字证书的处理方法(包括数字证书的签发方法和数字证书的验证方法,为方便描述,以下简称本申请实施例提供的方法)及相关装置可适用于是银行、保险、证券、商业协会、集团企业及上下游企业等机构的业务交易和/或企业信息处理等应用场景中,具体可根据实际应用场景确定,在此不做限制。可选的,上述银行、保险、证券、商业协会、集团企业及上下游企业等机构可作为同一个联盟链网络中的多个参与方。可选的,上述银行、保险、证券、商业协会、集团企业及上下游企业等机构也可以有各自的联盟链网络,在上述银行、保险、证券、商业协会、集团企业及上下游企业等机构各自的联盟链网络中,各个机构的客户和/或员工可以是联盟链网络中的参与方,具体可根据实际应用场景确定,在此不做限制。为方便描述,下面将以上述银行、保险、证券、商业协会、集团企业及上下游企业等机构可作为同一个联盟链网络中的多个参与方为例进行说明。为方便理解,下面将对本申请实施例提供的方法所涉及的联盟链以及数字证书进行简要说明。

一、联盟链

区块链诞生于移动互联网时代,上述银行、保险、证券、商业协会、集团企业及上下游企业等机构普遍己经是it化和互联网化的组织和/或机构,区块链对于进一步提升这些机构圈子的产业链条中的公证、结算清算业务和价值交换等业务的处理效率很有帮助。然而,传统区块链(比如公有链)的处理性能、隐私保护、合规性等都不能满足这些机构的业务需求,采用公有链来处理公证、结算清算业务或者价值交换等业务,会颠覆这些机构的现有商业模式和固有利益,风险较大。因此,基于上述各个机构的业务需求,具备更好的隐私保护的区块链体系——联盟链,应运而生。联盟链,只针对特定某个群体的成员和有限的第三方,内部指定多个预选的节点为记账人,每个区块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程,其他第三方可以通过该联盟链开放的应用程序编程接口(applicationprogramminginterface,api)进行限定查询。有了准入机制,可以使得联盟链网络中各个参与方之间的交易性能得到提高,私密性更强。

二、数字证书

数字证书是互联网通讯中用于标识各个通讯方身份信息的一串数字,数字证书的出现为互联网通讯提供了一种在互联网上验证各个通讯方的通信实体身份的方式。数字证书不是数字身份证,而是各个通信实体的身份认证机构盖在各个通信实体的数字身份证上的一个章或印(或者说加在各个通信实体的数字身份证上的一个签名)。数字证书是由权威机构——ca发行的,可以在互联网上用数字证书来识别各个通信实体的身份。数字证书是一个经ca数字签名的文件,其中包含公开密钥(简称公钥)的持有者信息以及公开密钥的文件。最简单的数字证书中可以包含一个公钥、公钥的持有者名称以及证书授权中心的数字签名,且数字证书只在特定的时间段内有效。

数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即ca(例如中国各地方的ca公司)签发的证书,也可以由企业级的ca(比如银行a的ca-a)进行签发。数字证书可用于:发送安全电子邮件、访问安全站点、网上证券交易、网上招标采购、网上办公、网上保险、网上税务、网上签约和网上银行等安全电子事务处理和安全电子交易签名。数字证书里存有很多数字和英文,当使用数字证书进行身份认证时,它将随机生成128位的身份码,每份数字证书都能生成相应但每次都不可能相同的数码,从而保证数据传输的保密性,即相当于生成一个复杂的密码。数字证书绑定了公钥以及公钥持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有数字证书的持有者身份信息并经过认证中心审核签发的电子数据,可以更加方便灵活地运用在电子商务和电子政务中。

参见图1,图1是本申请实施例提供的数字证书签发通用流程的示意图。本申请实施例提供的数字证书的签发过程一般包括如下步骤s11和s12:

s11,用户向机构的ca发送证书授权请求。

在一些可行的实施方式中,当用户(比如银行、保险或者企业等机构的客户)请求与机构(比如银行、保险或者企业等)进行交易时,可首先产生自己的密钥对,该密钥对中包括公钥和私钥,并通过向机构的ca发送证书授权请求的方式将公钥以及部分用户身份信息传送给机构的ca。换句话说,用户向机构的ca发送的证书授权请求中可包括部分的用户身份信息和用户的公钥,以向机构的ca请求对用户的用户身份信息和公钥进行签名并颁发数字证书。

s12,机构的ca验证用户身份并签发数字证书。

在一些可行的实施方式中,用户请求签名交易的机构,可通过机构的ca核实用户的身份。机构的ca核实用户的身份(即用户为自己的客户)时,可对用户发送的证书授权请求中包括的用户身份信息进行确定,以确认证书授权请求确实由自己的客户(即用户)发送而来。机构的ca确认证书授权请求由用户发送而来时,向用户发送一个数字证书,该数字证书内包含用户的用户身份信息和用户的公钥,同时还附有机构的ca的签名信息。用户就可以使用机构的ca签发的数字证书进行相关的交易签名。各个机构的ca给其客户颁发的数字证书由各个机构独立的证书发行机构(即ca)发布。数字证书各不相同,每种证书可提供不同级别的可信度,各个机构的各个客户用户(即用户)可以从各个机构的ca获得自己的数字证书。

数字证书采用公钥体制,即利用一对互相匹配的密钥进行数字签名和验签。每个用户自己设定一把特定的且仅为本人所知的私有密钥(即私钥),基于该私钥可进行与机构交易的交易信息的数字签名。同时,用户可设定一把对应的公共密钥(即公钥)并由本人公开,为一组用户所共享,用于对交易信息进行签名验证。公钥技术解决了密钥发布的管理问题,用户可以公开其所持有的公钥,而保留其所持有的私钥。用户也可以采用自己的私钥对交易信息加以处理,由于私钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,可以保证交易信息是由发送方自己签名发送的,发送方不能否认或难以否认,同时也可保证交易信息自发送方签发后至接收方收到为止未曾作过任何修改,签发的文件是真实文件,保证了交易信息的不可篡改性。

基于上述联盟链的特性以及数字证书的特性,本申请实施例提供了一种基于分布式数字证书的数字证书的处理方法及相关装置,包括数字证书的签发方法及装置、和数字证书的验证方法及装置,可实现对联盟链网络中的任一参与方的客户签发数字证书,并可实现基于任一签名交易的发起方的数字证书确定数字证书的环签名对应的所有公钥以基于数字证书的环签名对应的所有公钥对该交易的签名进行验证。联盟链中的各个参与方的ca可基于本申请实施例提供的数字证书签发方法为与自己的客户签发数字证书,实现作为签名者(即数字证书的签发方)的任一参与方的ca的无条件匿名,从而可避免数字证书的签发方的ca的身份泄露,避免联盟链网络中的其他参与方获知数字证书的签发方的ca的客户信息,从而可保障数字证书的签发方的交易信息的私密性,保证签发方的客户信息的安全性,适用性更强,具体可参见如下各个实施例所提供的实现方式。具体的,本申请实施例提供的方法可通过联盟链网络记录联盟链网络中所有可以被认可参与方(或非参与方)的ca的公钥(例如银行a的ca-a,银行b的ca-b,……)。当任一机构的ca要为自己的一个客户(或以用户进行说明)颁发数字证书时,该机构的ca会用环签名来对该客户签发数字证书(传统方式是ca用自己的私钥对其颁发给其客户的数字证书进行签名),这样使得第三方无法判断这个数字证书究竟是哪一个机构的ca签发。也就是说其他第三方无法判断该客户是联盟链网络中哪一个被认可参与方的ca的客户,从而可实现各个被认可参与方的ca的数字证书匿名发送,从而保护了联盟链网络中各个被认可参与方的ca为其客户颁发数字证书的私密性,可提高数字证书签发方的ca的身份私密性,从而可增强数据证书的签发方式的适用性。

参见图2,是本申请实施例提供的数字证书的处理方法的流程示意图。参见图2,联盟链网络中包括的任一参与方的ca采用环签名为自己的客户签发数字证书签名以及任一验证方对任一签名交易进行验签的实现方式可参见如下步骤s21至s24所提供的实现方式。为方便描述,下面将以任一参与方的ca为自己的客户(或称用户)签发数字证书的实现方式为例进行说明,其中该任一参与方可以签发方(即第一参与方)为例进行说明。换句话说,这里的签发方指代联盟链网络中任一需要为自己的用户签发数字证书的参与方,对应的,对数字证书进行验证的任一机构可以验证方为例进行说明,具体可根据实际应用场景确定,在此不做限制。

s21,签发方的ca将自己的公钥记录至区块链网络中。

在一些可行的实施方式中,联盟链网络(即区块链网络)中的任一被认可参与方(为方便描述下面简称参与方)的ca(或简称参与方ca)产生一个公钥和一个私钥,并可通过智能加密合约(smartcryptocontract,scc)将自己(即参与方ca)的信息和公钥记录到联盟链网络中。比如说,对于被认可的多个银行,每个银行的ca可产生一个公钥和一个私钥,并且每个银行的ca产生的公钥可由每个银行的ca自己公开,并由联盟链网络记录每个银行的ca的公钥(即每个银行的ca的公钥),每个银行的ca的私钥由每个银行的ca自己所知。换句话说,假设签发方为联盟链网络中的参与方之一(假设为第一参与方),联盟链网络中记录了签发方(为方便描述,区块链网络中的数字证书的签发方可以第一参与方为例进行说明)的ca的公钥(或简称ca公钥)之外,还记录了签发方之外的其他各个参与方(为方便描述,区块链网络中除了数字证书的签发方之外的其他任意参与方可以第二参与方为例进行说明)的ca公钥。

可以理解,这里各个参与方的ca公钥都记录在联盟链网络中,因此联盟链中的任一参与方均可知道联盟链网络中其他各个参与方的ca公钥。在任一参与方(比如第一参与方,即签发方)的ca需要为自己的客户(签发方的ca的客户,同时也为签发方的客户,为方便描述,下面以签发方的ca的客户为例进行说明)的数字证书进行签名时,可以采用环签名的方式,从联盟链网络中获取其他一个或者多个参与方的ca公钥,结合自己的公钥和私钥(即签发方的ca的公钥和私钥)为自己的客户签发数字证书,具体可参见如下步骤说明。

s22,当签发方的ca接收到任一用户的证书授权请求时,根据证书授权请求中携带的用户身份信息确认用户是否为自己的用户。

在一些可行的实施方式中,当任一用户(比如银行a的任一客户)请求与机构(比如银行a)进行交易时,可通过向银行a的ca(为方便描述,将以签发方的ca作为银行a的ca的示例进行说明)发送证书授权请求(或称认证请求)的方式将公钥以及用户身份信息传送给签发方的ca。换句话说,用户向签发方的ca发送的证书授权请求中可包括用户身份信息和用户的公钥,以向签发方的ca请求对用户的用户身份信息和公钥进行签名并颁发数字证书给用户。签发方的ca可根据证书授权请求中包括的用户身份信息核实用户的身份(即核实用户是否为自己的客户),即签发方的ca可对用户发送的证书授权请求中包括的用户身份信息进行确定,以确认证书授权请求确实由自己的客户发送而来。签发方的ca确定发送证书授权请求的用户为自己的用户(即签发方的ca的用户,也就是第一参与方的ca的用户)之后,则可向用户签发数字证书。

s23,若签发方的ca确认上述用户是自己的用户,则从证书授权请求中获取用户的公钥,并根据预先设定的环签名证书签发规则,从区块链网络中获取其他任意n个参与方的ca公钥。

在一些可行的实施方式中,各个参与方的环签名证书签发规则(即采用环签名的方式签发数字证书的规则)可由各个参与方的ca自行制定,每个参与方的ca均可以根据自身需求,任意选择一个或者多个(为方便描述可假设为n个)第三方公钥,结合自身的公钥和私钥来完成环签名。这里,对应任一联盟链网络中的任一参与方的ca来说,其所任意选择的n个第三方公钥可以是联盟链网络中除了该参与方之外的任意n个参与方的ca记录在联盟链网络中的ca公钥。换句话说,任一参与方自行制定的环签名证书签发规则中,该参与方的ca给其用户签发数字证书所使用的公钥数量可由该参与方的ca自行设定。可选的,联盟链网络中的各个参与方的ca可以共同制定的环签名证书签发规则并写入联盟链网络中,包括但不限于环签名所需公钥数量以及规范,可以提前在联盟链网络范围设置,在此不做限制。

可选的,在一些可行的实施方式中,各个参与方自行制定的环签名证书签发规则可写入联盟链网络中,包括但不限于环签名所需公钥数量以及规范(即由x509格式的数字证书构成的规范,比如数字证书格式(x509)和/或x509中用于记录环签名的公钥信息的预设字段),可以提前在联盟链网络范围设置。举例来说,联盟链网络中的各个参与方的ca(比如签发方的ca)采用环签名为自己的用户签发数字证书时所需的公钥数量,以及x509格式的数字证书构成的规范(或称环签名证书签发规范)等,可以提前在联盟链网络范围设置,从而可帮助验证方基于上述规范等信息对联盟链网络中的交易进行验签验证。其中,上述x509中用于记录环签名的公钥信息的预设字段包括但不限于数字证书格式中的签发方标注字段和/或扩展字段,具体可根据实际应用场景确定,在此不做限制。

可选的,上述x509中包括扩展字段(extension),该扩展字段可用于记录数字证书的环签名对应的所有公钥(比如环签名对应的n个参与方的ca公钥),和/或该环签名对应的所有公钥(比如环签名对应的n个参与方的ca公钥)的标识等公钥信息。验证方基于上述x509中包括的扩展字段中所记录的所有公钥确定环签名对应的所有公钥,和/或所有公钥的标识从联盟链网络中查找对应的公钥,以基于环签名对应的所有公钥对交易的签名进行验证。

可选的,在一些可行的实施方式中,联盟链网络也可以将联盟链网络中各个参与方的ca公钥分为不同的公钥分组,并可为每个公钥分组制定分组标识符。其中,上述每个分组的分组标识符可以帮助验证方找到环签名对应的公钥分组(为方便描述可以目标分组为例进行说明),进而可将环签名对应的公钥分组中的公钥确定为环签名对应的公钥,从而可获取各个公钥所属的ca的信息。验证方基于上述x509的扩展字段中确定出环签名的公钥信息,其中该环签名的公钥信息包括分组标识,进而可基于数字证书中包括的该分组标识符从联盟链网络中记录的多个公钥分组中确定出目标分组,从而可将目标分组中包括的所有公钥确定为环签名对应的所有公钥,以基于环签名对应的所有公钥对交易的签名进行验证。

s24,签发方的ca根据自己的公钥、私钥和其他任意n个参与方的ca公钥对用户的用户身份信息和公钥进行环签名并形成数字证书,并向用户发送上述数字证书。

其中,n等于上述步骤s23中预先设定的环签名证书签发规则中设定的公钥数量。

在一些可行的实施方式中,当联盟链网络中的任一参与方(即签发方,比如银行a)的ca准备给自己的客户(即用户,比如企业1)签发数字证书时,该签发方的ca会用自己的公钥和私钥(比如银行a的ca的公钥和私钥),以及联盟链网络中其他任意多个参与方的ca公钥(比如其他银行的ca公钥,假设是n个公钥,可以理解,上述多个参与方的ca公钥都记录在联盟链网络中)为企业1的身份信息和公钥签名并形成数字证书,且该数字证书的x509中的预设字段中携带该数字证书的环签名的公钥信息。例如,假设银行a的ca收到其客户的证书授权请求(假设客户为m),其中包括部分用户身份信息以及用户需要被验证的公钥。银行a的ca核实证书授权请求中携带的用户身份信息对应的用户的身份且确认m确实是自己的客户之后,银行a的ca可以使用联盟链中n个环成员的ca公钥、以及银行a的ca自己的公钥和私钥作为输入,对客户m的公钥和身份信息申请产生一个签名r。银行a的ca可将通过上述r签名的数字证书颁发给该客户(该证书包含客户的基本信息和客户的公钥),客户就可以使用银行a的ca签发给自己的数字证书进行交易签名。

在一些可行的实施方式中,联盟链网络中的签发方的ca给自己的客户签发数字证书采用传统的x509格式,签发的数字证书符合itu-tx.509国际标准。需要说明的是,这里签发数字证书采用x509,但是在x509中对证书签发方(issuer)的标注不再是一个机构的名称,而是与证书签发方的ca对应的区块链网络(比如联盟链网络)的标识。这里,假设x509中对证书签发方ca的标注是x509中的某一个字段,在该字段中记录与证书签发方的ca对应的区块链网络的标识,为方便描述,可将该字段假设为签发方标注字段。换句话说,x509中的签发方标注字段可以是x509中任一用于记录与证书签发方的ca对应的区块链网络的标识的字段,具体可根据实际应用场景确定,在此不做限制。

可选的,在x509中对证书签发方(issuer)的标注中记录与证书签发方的ca对应的公钥指示信息。其中,上述公钥指示信息包括但不限于:该数字证书的环签名对应的所有公钥信息,该数字证书的环签名对应的所有公钥的标识符。换句话说,可以在x509的签发方标注字段中记录与证书签发方的ca对应的公钥指示信息,该公钥指示信息包括但不限于:该数字证书的环签名对应的所有公钥信息,该数字证书的环签名对应的所有公钥的标识符,在此不做限制。

可选的,可以在x509的扩展(extension)字段中记录与证书签发方的ca对应的公钥信息。其中,上述公钥信息包括但不限于:该数字证书的环签名对应的所有公钥,该数字证书的环签名对应的所有公钥的标识符。可选的,可以在x509的扩展字段中记录数字证书的环签名对应的公钥分组标识符,该公钥分组标识符用于指示数字证书的环签名对应的公钥的所属分组,以帮助数字证书的验证方基于公钥的所属分组找到环签名对应的公钥。

可选的,在一些可行的实施方式中,如果联盟链网络中有规范制定(例如统一制定,或者约定)的环签名证书签发规则,则x509的扩展字段不需要更多的记录,具体可根据实际应用场景确定,在此不做限制。

s25,当验证方获得区块链网络中的任一签名交易时,验证方获取上述交易的发起方的数字证书,基于预设的环签名证书签发规则从上述数字证书中获取环签名的公钥信息,并根据上述公钥信息确定环签名对应的所有公钥,根据环签名对应的所有公钥对上述交易的签名进行验证。

在一些可行的实施方式中,这里验证方可以是任意机构,在此不做限制。下面以联盟链网络中的任一参与方为例进行说明,具体不做限制。上述环签名证书签发规则记录于区块链网络中,环签名证书签发规则中包括环签名的公钥数量和环签名证书签发规范,环签名证书签发规范中包括数字证书格式x509中用于记录环签名的公钥信息的预设字段。上述数字证书中包括的公钥信息包括数字证书格式x509的预设字段中所包括的区块链网络的标识、数字证书的环签名对应的所有参与方的ca公钥,和/或数字证书的环签名对应的所有参与方的ca公钥的标识。其中,上述预设字段包括签发方标注字段和/或扩展字段。可选的,若联盟链网络中记录的各个参与方的ca公钥为多个分组,且一个分组对应一个分组标识符,则上述公钥信息可包括数字证书中包括的分组标识符,该分组标识符用于确定区块链网络中所包括的目标分组,以基于目标分组中包括的公钥确定数字证书的环签名对应的所有参与方的ca公钥。具体可参见上述步骤s24中数字证书的签名对应的验证方操作方式,在此不做限制。

在一些可行的实施方式中,当联盟链网络中收到任意一个签名交易时,联盟链网络中的验证方获得该签名交易时,可获取该签名交易的发起方的数字证书。数据证书格式为x509,验证方可以通过写在x509中的标识符从联盟链网络中找到该发起方的数字证书的环签名对应的所有公钥。换句话说,验证方对任一签名交易的签名进行验证时,可以通过该交易的发起方签发数字证书时写在x509中的标识符从联盟链网络中找到该数字证书的环签名对应的所有公钥。可选的,验证方还可通过交易发起方的数字证书找到写在x509的签发方(issuer)的标注中的公钥信息(比如x509中签发方标注字段中包括的公钥信息),该公钥信息包括但不限于数字证书的环签名对应的所有公钥,和/或该数字证书的环签名对应的所有公钥的标识符。可选的,验证方还可通过交易发起方的数字证书找到写在x509的扩展字段中公钥信息,该公钥信息包括但不限于数字证书的环签名对应的所有公钥,和/或该数字证书的环签名对应的所有公钥的标识符。可选的,验证方还可通过交易发起方的数字证书找到写在x509的扩展字段中的公钥分组标识符,基于该公钥分组标识符从联盟链网络中包括的各个公钥分组中找到数字证书的环签名对应的公钥所属分组,进而可基于找到的公钥所属分组确定该数字证书的环签名对应的所有公钥。具体实现中,验证方基于何种方式找到环签名对应的公钥具体可根据x509中的信息确定,在此不做限制。验证方找到交易发起方的数字证书的环签名对应的所有公钥之后,则可基于找到的所有公钥对该交易的签名进行验证,具体验证过程在此不做限制。换句话说,数字证书的环签名的公钥信息具体由数字证书中的何种信息来携带和/或指示,在此不做限制。或者说,数字证书的环签名的公钥信息具体由数字证书格式(x509)中的何字段来携带和/或指示,在此不做限制。具体可参见上述步骤s24中数字证书的签名对应的验证方操作方式,在此不做限制。

由上可知,基于本申请实施例提供的方法实现对数字证书的环签名,可实现数字证书的签发方的无条件匿名,对于验证方来说,签发方是完全正确匿名的。基于本申请实施例提供的方法实现对数字证书的环签名包括但不限于如下安全性属性:

1)无条件匿名性。攻击者即使非法获取了所有可能签名者的私钥,能确定出真正的签名者的概率不超过1/n,这里n为环成员(即可能签名者)的个数;

2)不可伪造性。攻击者在不知道任何环成员的私钥的情况下,即使能够从一个产生环签名的随机预言者那里得到任何用户的签名,可以成功伪造该用户的合法签名的概率几乎可以忽略;

3)环签名具有良好的特性。可以实现签名者的无条件匿名,签名者可以自由指定自己的匿名范围,可以实现群签名的主要功能但无需可信第三方或群管理员等。

在本申请实施例中,基于数字证书的签发方的ca自行制定的环签名证书签发规则,对签发方的ca的用户签发数字证书,可保证数字证书的签发方的ca之外的其他任意参与方无法判断数字证书由哪个参与方的ca签发。也就是说联盟链网络中除了数字证书的签发方的ca之外的其他任意参与方的ca均无法判断该数字证书的接收方是联盟链中哪一个参与方的ca的客户,从而可实现联盟链中各个参与方的ca为其用户签发数字证书的私密性,实现各个参与方的ca向其用户匿名发送数字证书,保证数字证书的签发方的ca的身份私密性,增强联盟链网络中各个参与方的ca与其用户之间的交易的信息安全性,可满足联盟链网络中各个参与方的更多业务需求,适用性更强。

参见图3,是本申请实施例提供的数字证书的签发装置的结构示意图。该数字证书签发装置适用于数字证书的签发方,可以是联盟链网络中任一需要为自己的用户签发数字证书的参与方,在此不做限制。该数字证书签发装置可包括:

记录单元31,用于将上述第一参与方的ca公钥记录至区块链网络中,上述第一参与方为上述区块链网络中数字证书的签发方,上述区块链网络中还记录了至少一个第二参与方的ca公钥,上述第二参与方为上述区块链网络中除上述第一参与方之外的参与方。

确认单元32,用于在接收到任一用户的证书授权请求时,根据上述证书授权请求中携带的用户身份信息确认上述用户是否为上述第一参与方的ca的用户。

获取单元33,用于在上述确认单元32确认上述用户是上述第一参与方的ca的用户时,从上述证书授权请求中获取上述用户的公钥,并根据预先设定的环签名证书签发规则,从上述区块链网络中获取其他任意n个上述第二参与方的ca公钥,其中,n等于上述环签名证书签发规则中设定的公钥数量。

签发单元34,用于根据上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,并向上述用户发送上述数字证书。

在一些可行的实施方式中,上述环签名证书签发规则由上述第一参与方的ca自行制定,或者由上述区块链网络中的各个参与方的ca共同制定;上述环签名证书签发规则被记录于上述区块链网络中。

在一些可行的实施方式中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述签发单元34用于:

基于上述规范,使用上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,上述数字证书的上述预设字段中携带上述数字证书的环签名的公钥信息。

在一些可行的实施方式中,上述x509中包括签发方标注字段,上述签发方标注字段中包括上述第一参与方的ca对应的区块链网络标识和/或上述数字证书的环签名的公钥信息;

其中,上述公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

在一些可行的实施方式中,上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

在一些可行的实施方式中,上述区块链网络中记录的各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括分组标识符,上述分组标识符用于指示上述环签名对应的上述n个上述第二参与方的ca公钥的所属分组,以帮助上述数字证书的验证方基于上述n个上述第二参与方的ca公钥的所属分组找到上述n个上述第二参与方的ca公钥。

具体实现中,作为数字证书签发方的数字证书签发装置可通过其内置的各个功能单元执行上述实施例中各个步骤所提供的实现方式。可选的,上述记录单元31用于执行上述实施例中步骤s21所提供的实现方式,具体可参见上述步骤s21中数字证书签发装置所执行的操作,在此不做限制。上述确认单元32用于执行上述实施例中步骤s22所提供的实现方式,具体可参见上述步骤s22中数字证书签发装置所执行的操作,在此不做限制。上述获取单元33用于执行上述实施例中步骤s23所提供的实现方式,具体可参见上述步骤s23中数字证书签发装置所执行的操作,在此不做限制。上述签发单元34用于执行上述实施例中步骤s24所提供的实现方式,具体可参见上述步骤s24中数字证书签发装置所执行的操作,在此不做限制。

在本申请实施例中,数字证书的签发方的ca可自行制定环签名证书签发规则,包括环签名所需的公钥数量以及环签名证书签发规范等。基于数字证书的签发方的ca自行制定的环签名证书签发规则,对签发方的ca的用户签发数字证书,可保证数字证书的签发方的ca之外的其他任意参与方的ca无法判断数字证书由哪个参与方的ca签发。也就是说联盟链网络中除了数字证书的签发方的ca之外的其他任意参与方的ca均无法判断该数字证书的接收方是联盟链中哪一个参与方的ca的客户,从而可实现联盟链中各个参与方的ca为其用户颁发数字证书的私密性,实现各个参与方的ca向其用户匿名发送数字证书,保证数字证书的签发方的ca的身份私密性,增强联盟链网络中各个参与方的ca与其用户之间的交易的信息安全性,可满足联盟链网络中各个参与方的更多业务需求,适用性更强。

参见图4,是本申请实施例提供的数字证书的验证装置的结构示意图。该数字证书的验证装置适用于数字证书的验证方,在此不做限制。该数字证书签发装置可包括:

获取单元41,用于在获得区块链网络中的任一签名交易时,获取上述签名交易的发起方的数字证书,上述签名交易的发起方可以为上述区块链网络中的参与方之一,上述区块链网络中记录了包括上述交易的发起方在内的各个参与方的证书颁发机构ca公钥。

确定单元42,用于基于预设的环签名证书签发规则从上述数字证书中获取上述数字证书的环签名的公钥信息,并根据上述公钥信息确定上述数字证书的环签名对应的所有公钥,上述环签名对应的所有公钥为上述区块链网络中的多个参与方的ca公钥,且上述环签名对应的公钥数量等于上述环签名证书签发规则中设定的公钥数量。

验证单元43,用于根据上述确定单元42确定的上述环签名对应的所有公钥对上述签名交易的签名进行验证。

在一些可行的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述公钥信息包括上述预设字段中所包括的区块链网络的标识,和/或数字证书的环签名对应的所有参与方的ca公钥,和/或上述所有参与方的ca公钥的标识;

其中,上述预设字段包括签发方标注字段和/或扩展字段。

在一些可行的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述区块链网络中记录的上述各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述公钥信息包括上述预设字段中所包括的分组标识符,上述分组标识符用于确定上述区块链网络中所包括的目标分组,以基于上述目标分组中包括的ca公钥确定上述数字证书的环签名对应的所有参与方的ca公钥。

具体实现中,上述作为验证方的数字证书签发装置可通过其内置的各个功能单元执行上述各个实施例中验证方所执行的实现方式,包括但不限于上述步骤s25所提供的实现方式中验证方所执行的操作,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,验证方可根据联盟链网络中各个参与方制定的环签名证书签发规则确定环签名所需的公钥数量和环签名证书签发规范,并可基于联盟链网络中记录的各个参与方的ca公钥确定该数字证书的环签名对应的所有公钥。基于环签名对应的所有公钥实现对数字证书持有者发起的交易的验证,操作简单,完成交易的验证的同时也增强了数字证书的签发方的ca身份的私密性,可满足更多参与方的业务需求,适用性更强。

参见图5,图5是本申请实施例提供的终端的一结构示意图。该终端适用于数字证书的签发方,该签发方可以是联盟链网络中的任一需要为自己的用户签发数字证书的参与方,具体可根据实际应用场景确定,在此不做限制。

如图5所示,本实施例中的终端可以包括:一个或多个处理器501、存储器502和一个或多个收发器503。上述处理器501、存储器502和收发器503通过总线504连接。存储器502用于存储计算机程序,该计算机程序包括程序指令,处理器501和收发器503用于执行存储器502存储的程序指令。其中,上述处理器501和收发器503被配置用于调用该程序指令执行如下操作:

收发器503,用于将第一参与方的ca公钥发送并记录至区块链网络中,上述第一参与方为上述区块链网络中数字证书的签发方,上述区块链网络中还记录了至少一个第二参与方的ca公钥,上述第二参与方为上述区块链网络中除上述第二参与方之外的参与方。

处理器501,用于当上述收发器503接收到任一用户的证书授权请求时,根据上述证书授权请求中携带的用户身份信息确认上述用户是否为上述第一参与方的ca的用户;若确认上述用户是上述第一参与方的ca的用户,则从上述证书授权请求中获取上述用户的公钥,并根据预先设定的环签名证书签发规则,从上述区块链网络中获取任意n个上述第二参与方的ca公钥,其中,n等于上述环签名证书签发规则中设定的公钥数量。

处理器501,还用于根据上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书。

收发器503,还用于向上述用户发送上述数字证书。

在一些可行的实施方式中,上述环签名证书签发规则由上述第一参与方的ca自行制定,或者由上述区块链网络中的各个参与方的ca共同制定;上述环签名证书签发规则被记录于上述区块链网络中。

在一些可行的实施方式中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述处理器501用于:

基于上述规范,使用上述第一参与方的ca的公钥、私钥和上述n个上述第二参与方的ca公钥对上述用户的用户身份信息和公钥进行环签名并形成数字证书,上述数字证书的上述预设字段中携带上述数字证书的环签名的公钥信息。

在一些可行的实施方式中,上述x509中包括签发方标注字段,上述签发方标注字段中包括上述第一参与方的ca对应的区块链网络标识和/或上述数字证书的环签名的公钥信息;

其中,上述公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

在一些可行的实施方式中,上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括上述数字证书的环签名对应的上述n个上述第二参与方的ca公钥,和/或上述环签名对应的上述n个上述第二参与方的ca公钥的标识。

在一些可行的实施方式中,上述区块链网络中记录的各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述预设字段包括上述x509中的扩展字段,上述扩展字段中携带的上述环签名的公钥信息包括分组标识符,上述分组标识符用于指示上述环签名对应的上述n个上述第二参与方的ca公钥的所属分组,以帮助上述数字证书的验证方基于上述n个第二参与方的ca公钥的所属分组找到上述n个上述第二参与方的ca公钥。

在一些可行的实施方式中,上述处理器501可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

该存储器502可以包括只读存储器和随机存取存储器,并向处理器501和收发器503提供指令和数据。存储器502的一部分还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。

在一些可行的实施方式中,上述终端可通过其内置的处理器501和收发器503各个功能模块执行如上述实施例中各个步骤所提供的实现方式中签发方的ca所执行的操作,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,作为数字证书签发方ca的终端可自行制定环签名证书签发规则,包括环签名所需的公钥数量以及环签名证书签发规范等。基于数字证书的签发方的ca自行制定的环签名证书签发规则,对签发方的ca的用户签发数字证书,可保证数字证书的签发方的ca之外的其他任意参与方的ca无法判断数字证书由哪个参与方的ca签发。也就是说联盟链网络中除了数字证书的签发方的ca之外的其他任意参与方的ca均无法判断该数字证书的接收方是联盟链中哪一个参与方的ca的客户,从而可实现联盟链中各个参与方的ca为其用户颁发数字证书的私密性,实现各个参与方的ca向其用户匿名发送数字证书,保证数字证书的签发方的ca的身份私密性,增强联盟链网络中各个参与方的ca与其用户之间的交易的信息安全性,可满足联盟链网络中各个参与方的更多业务需求,适用性更强。

参见图6,图6是本申请实施例提供的终端的另一结构示意图。该终端适用于数字证书的验证方。如图6所示,本实施例中的终端可以包括:一个或多个处理器601和存储器602。上述处理器601和存储器602通过总线603连接。存储器602用于存储计算机程序,该计算机程序包括程序指令,处理器601用于执行存储器602存储的程序指令。其中,上述处理器601被配置用于调用该程序指令执行如下操作:

当验证方获得区块链网络中的任一签名交易时,获取上述签名交易的发起方的数字证书,上述签名交易的发起方可以为上述区块链网络中的参与方之一,上述区块链网络中记录了包括上述交易的发起方在内的各个参与方的证书颁发机构ca公钥;

基于预设的环签名证书签发规则从上述数字证书中获取上述数字证书的环签名的公钥信息,并根据上述公钥信息确定上述数字证书的环签名对应的所有公钥,上述环签名对应的所有公钥为上述区块链网络中的多个参与方的ca公钥,上述多个参与方的参与方数量等于上述环签名证书签发规则中设定的公钥数量;

根据上述环签名对应的所有公钥对上述签名交易的签名进行验证。

在一些可行的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述公钥信息包括上述预设字段中所包括的区块链网络的标识,和/或数字证书的环签名对应的所有参与方的ca公钥,和/或上述所有参与方的ca公钥的标识;

其中,上述预设字段包括签发方标注字段和/或扩展字段。

在一些可行的实施方式中,上述环签名证书签发规则被记录于上述区块链网络中,上述环签名证书签发规则中还包括由x509的数字证书构成的规范;上述x509中包括用于记录环签名的公钥信息的预设字段;

上述区块链网络中记录的上述各个参与方的ca公钥分为多个分组,且一个分组对应一个分组标识符;

上述公钥信息包括上述预设字段中所包括的分组标识符,上述分组标识符用于确定上述区块链网络中所包括的目标分组,以基于上述目标分组中包括的ca公钥确定上述数字证书的环签名对应的所有参与方的ca公钥。

在一些可行的实施方式中,上述终端可通过其内置的处理器601等各个功能器件执行如上述实施例中各个步骤所提供的实现方式中验证方所执行的操作,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

在本申请实施例中,作为数字证书验证方的终端,可根据联盟链网络中各个参与方的ca制定的环签名证书签发规则确定环签名所需的公钥数量和环签名证书签发规范,并可基于联盟链网络中记录的各个参与方的ca公钥确定该数字证书的环签名对应的所有公钥。基于环签名对应的所有公钥实现对数字证书持有者发起的交易验证,操作简单,完成交易验证的同时也增强了数字证书的签发方的ca的身份私密性,可满足更多参与方的业务需求,适用性更强。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2中各个步骤所提供的方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。

上述计算机可读存储介质可以是前述任一实施例提供的数字证书签发装置或者上述终端的内部存储单元,例如电子设备的硬盘或内存。该计算机可读存储介质也可以是该电子设备的外部存储设备,例如该电子设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,该计算机可读存储介质还可以既包括该电子设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该电子设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本申请的权利要求书和说明书及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1