1.一种基于区块链的PKI保护CA隐私的方法,其特征在于,包括如下步骤:步骤1:生成用户的私钥和公钥,以及椭圆曲线相应的参数;
步骤2:签发CA利用私钥skπ和同级证书颁发机构CA公钥列表L生成对消息m的可链接环签名;
步骤3:域所有者的信息经注册中心RA审核通过后,环CA为域所有者执行证书注册操作;
步骤4:域所有者在证书到期之前向环CA申请更新证书,环CA验证通过后为域所有者执行证书更新操作;
步骤5:域所有者的个人信息发生变更、证书的私钥丢失或泄漏时向环CA申请撤销证书,环CA验证通过后为域所有者执行证书撤销操作;
步骤6:当客户端向域发起传输层安全协议TLS连接请求时,客户端通过区块链和证书撤销列表CRL验证该证书的有效性与真实性,证书验证通过后,客户端与域建立TLS连接。
2.根据权利要求1所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤1具体过程如下:步骤1.1:选择一个大素数p,E(Fp)是定义在有限域Fp上的椭圆曲线;给定一个椭圆曲线上的点构成的加法群 该群的阶为质数q,设G是群 的生成元;
步骤1.2: 为两个安全的哈希函数;
步骤1.3:随机选取用户的私钥为 计算公钥为PKi=ski·G。
3.根据权利要求2所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤2具体过程如下:步骤2.1:签发CA随机选取n‑1个同级CA的公钥和签发CA自身的公钥,组成公钥列表L={PK1,PK2,...,PKn},签发CA为第π(1≤π≤n)个用户,签发CA利用私钥skπ和同级CA公钥列表L生成对消息m的可链接环签名;
步骤2.2:计算链接标签Qπ=skπ·Hp(PKπ);
步骤2.3:选择一个随机数 计算cπ+1=H1(L,Qπ,m,kπ·G,kπ·Hp(PKπ));
步骤2.4:选择一个随机数 和标量ci,计算Li=si·G+ci·PKi;Ri=si·Hp(PKi)+ci·Qπ;ci+1=H1(L,Qπ,m,Li,Ri);其中记c1=cn+1;
步骤2.5:计算sπ=(kπ‑cπ·skπ)mod q;
步骤2.6:输出可链接环签名σL(m)=(Qπ,c1,s1,...,sn)。
4.根据权利要求3所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤3具体过程如下:步骤3.1:根CA在区块链中注册,子CA根据根CA颁发的证书注册在区块链中,以此公开各CA的公钥;
步骤3.2:当域所有者的信息经注册中心RA审核通过后,签发CA使用自身私钥、公钥和其他同级CA的公钥组成的环CA对进行证书注册交易进行环签名,并将证书注册交易提交到区块链中等待验证节点验证;
步骤3.3:验证节点验证交易,将交易打包至区块并广播到网络中,随后将交易所在区块号发送给环CA;
步骤3.4:环CA根据区块号生成X.509证书,证书操作的字段值为证书注册,证书存储在星际文件系统IPFS中。
5.根据权利要求4所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤4具体过程如下:步骤4.1:域所有者在证书到期之前向环CA提出证书更新请求,环CA中的签发CA通过Link(L,M1,M2,σ1,Q1,σ2,Q2)→linked|unlinked链接性算法验证后,更新证书的有效期或者更换密钥对;
步骤4.2:环CA使用可链接环签名签署此交易并发布到区块链中,后续根据交易所在区块号生成的新X.509证书,证书操作的字段值为证书更新,证书存储在IPFS中。
6.根据权利要求5所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤5具体过程如下:步骤5.1:当域所有者的个人信息发生变更、证书的私钥丢失或泄漏时,域所有者向环CA提出证书撤销请求;
步骤5.2:此时环CA中的签发CA只有通过了Link(L,M1,M2,σ1,Q1,σ2,Q2)→linked|unlinked链接性算法的验证才能对该证书进行后续的操作,即谁签发谁才有权利撤销;
步骤5.3:维护一个全局状态表certRevRequest,键为证书序列号,值为证书状态0或1,证书默认状态为1,当域所有者提交了证书撤销申请,证书状态更改为0;
步骤5.4:环CA签署此撤销申请并发布到区块链中,根据交易所在区块号生成X.509证书,证书操作的字段值为证书撤销,证书存储在IPFS中;
步骤5.5:环CA将此证书发送到签发CA的证书撤销列表CRL中,CRL保存已撤销证书的序列号和撤销日期。
7.根据权利要求6所述的基于区块链的PKI保护CA隐私的方法,其特征在于,步骤6具体过程如下:步骤6.1:当客户端与目标域建立一个TLS连接时,客户端收到来自该域的证书;
步骤6.2:客户端提取环CA成员中的公钥,通过验证算法Verify(PP,M,L,σ,Qπ)→accept|reject验证此证书的环签名是否有效,若状态为有效,则继续下一步验证;
步骤6.3:客户端验证此证书是否在有效期内,若在有效期内,则继续下一步验证;
步骤6.4:进行证书操作存在性检查,客户端根据证书的区块高度定位到该证书操作交易,检查证书的注册或者更新操作是否存在于区块链中,如若不存在,则终止连接;如若存在,则继续下一步的验证;
步骤6.5:客户端向环CA请求CRL,环CA中该证书的签发CA通过Link(L,M1,M2,σ1,Q1,σ2,Q2)→linked|unlinked链接性算法验证后将相应的CRL发送给客户端;
步骤6.6:客户端验证证书的序列号是否存在于CRL中,若存在,则终止连接;如若不存在,客户端检查全局哈希表certRevRequest验证该证书是否有撤销请求,此举是为了防止证书已被撤销而未更新至CRL中,如果返回值为0,则终止连接。