CN113950801A - 用于使用区块链进行公钥管理的方法和装置 - Google Patents
用于使用区块链进行公钥管理的方法和装置 Download PDFInfo
- Publication number
- CN113950801A CN113950801A CN202080042877.0A CN202080042877A CN113950801A CN 113950801 A CN113950801 A CN 113950801A CN 202080042877 A CN202080042877 A CN 202080042877A CN 113950801 A CN113950801 A CN 113950801A
- Authority
- CN
- China
- Prior art keywords
- public key
- transaction
- output
- authentication
- certificate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 46
- 238000013515 script Methods 0.000 claims description 16
- 230000001902 propagating effect Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
区块链网络可以被用于通过提供快速且安全的数字证书的注册、撤销和更新来改进公钥基础设施。证书授权机构可以将公钥记录在区块链上,以这种方式使得任何第三方都可以快速且轻松地验证公钥被证书授权机构认证并且该认证尚未被撤销。证书授权机构能够几乎立即撤销该认证,和/或能够在撤销旧密钥时同时为同一实体认证新密钥。在某些情况下,可以将撤销认证的能力给予公钥的所有方,或者在某些情况下,给予一个其他实体或者甚至一组其他实体。
Description
技术领域
本公开涉及区块链网络,并且尤其涉及使用区块链来促进针对公钥基础设施的公钥管理。
背景技术
在公钥基础设施中,计算装置可以具有公钥私钥对来促进安全通信、数字签名、不可否认性和其他功能。作为公钥基础设施的一部分,计算装置可以将其公钥注册到认证授权机构,该认证授权机构向计算装置提供确认公钥的所有权和授权的数字证书。
使用认证授权机构的问题在于,一旦它们已经颁发了数字证书,那么数字证书在其指定的到期日期之前一直保持有效。但是,公钥可能被泄露,从而必须撤销认证。为了解决这个问题,认证授权机构维护“撤销列表”,其详细说明哪些数字证书应该视为被撤销,并且认证授权机构定期更新和公布这些列表。希望验证公钥的实体可以依赖于数字证书,但还必须获得并审查对应的证书撤销列表,以查看认证授权机构是否已经使该数字证书失效。该***及其固有的延迟意味着某些数字证书可能被撤销,并且该撤销可能尚未被公布给打算依赖该数字证书的实体或者可能尚未被打算依赖该数字证书的实体获知。
附图说明
现在将通过示例的方式参考示出本申请的示例实施例的附图,其中:
图1示出了区块链网络的示例框结构;
图2示出了区块传播的示例方法的流程图;
图3以流程图的形式示出了验证公钥的一种示例方法;以及
图4以框图的形式示出了挖矿节点的简化示例。
在附图中使用相同的附图标记来表示相同的元素和特征。
具体实现方式
在一个方面中,可以提供一种使用区块链网络来管理公钥基础设施的计算机实现的方法。该方法可以包括:通过创建认证交易来为第一实体生成数字证书,该第一实体具有第一公钥,其中,该认证交易包括:来自证书授权机构的数字签名、到基于第二公钥的地址的第一输出、以及具有包含第一公钥的信息字段的第二输出;从认证交易的哈希确定认证交易标识符;以及在区块链网络上传播该认证交易。该数字证书包括第一公钥和认证交易标识符。
在一些实现方式中,该第二输出包括OP_RETURN字段,其至少包含第一公钥。在一些实现方式中,该第一输出包括引用(reference)作为第二公钥的哈希而获得的地址的付款到公钥哈希(P2PKH)操作。在一些实现方式中,证书授权机构持有对应于第二公钥的第二私钥。
在一些实现方式中,该方法还可以包括:验证数字证书。验证数字证书可以包括:基于数字证书中的认证交易标识符从区块链获得认证交易的副本(copy);确定第一输出是未花费的交易输出;以及确定认证交易中的第二输出中所包含的第一公钥与数字证书中的公钥相匹配。在一些这样的实现方式中,所述确定第一输出是未花费的交易输出包括:确定第一输出存在于区块链网络的未花费的交易输出池中。在一些这样的实现方式中,认证交易的输入还可以包括证书授权机构公钥,并且其中,验证数字证书还可以包括:基于证书授权机构公钥来确定认证交易是由证书授权机构签发的。
在一些实现方式中,该方法还可以包括:通过生成撤销交易并且在区块链网络上传播该撤销交易来撤销数字证书,该撤销交易包括将认证交易的第一输出作为输入。
在一些实现方式中,该方法还可以包括:利用针对新公钥的新数字证书替换数字证书。替换可以包括:创建新的认证交易,其中,该新的认证交易包括作为输入的认证交易的第一输出、到基于第三公钥的新地址的第一新输出、以及具有信息字段的第二新输出,其中,该信息字段包含新公钥;根据对新的认证交易的哈希处理来确定新的认证交易标识符;以及在区块链网络上传播新的认证交易。该新数字证书可以包括新公钥和新的认证交易标识符。
在一些实现方式中,该信息字段是OP_RETURN输出。
在一些实现方式中,该认证交易包括引用未花费的交易出点地址的输入,该未花费的交易出点地址是从证书授权机构公钥的哈希获得的,并且其中,该认证交易包括针对未花费的交易出点地址的解锁脚本,该解锁脚本包括证书授权机构公钥和数字签名,并且其中,数字签名是基于与证书授权机构公钥对应的私钥而生成的。
在一些实现方式中,第一输出包括使得两个或更多个私钥中的任何一个能够利用第一输出的多重签名锁定脚本。
在另一方面中,本申请描述了一种使用区块链网络来验证数字证书的计算机实现的方法。该数字证书包括第一公钥和认证交易标识符。该方法可以包括:从第一实体接收数字证书,并且基于数字证书中的认证交易标识符从区块链获得认证交易的副本,其中,该认证交易包括:来自证书授权机构的数字签名、到基于第二公钥的地址的第一输出、以及具有信息字段的第二输出。该方法还可以包括:确定信息字段包含与数字证书中的第一公钥相匹配的公钥;查询未花费的交易输出池,以确定认证交易中的第一输出尚未在任何后续交易中使用;以及基于这些确定,验证第一公钥被认证为有效。
在另一方面,可以提供一种实现网络中的节点的计算装置。该计算装置可以包括存储器、一个或多个处理器和计算机可执行指令,该计算机可执行指令在被执行时,使处理器执行本文中描述的方法中的一种或多种。
在又一方面,可以提供一种计算机可读介质,其存储用于操作网络中的节点的处理器可执行指令,该处理器可执行指令包括在由一个或多个处理器执行时,使处理器执行本文描述的至少一种方法的指令。
通过结合附图审阅以下详细描述,本公开的其他示例实施例对于本领域普通技术人员而言将是显而易见的。
在本申请中,术语“和/或”旨在涵盖所列出的元素的所有可能组合和子组合,包括单独列出的元素中的任何一个、任何子组合或所有元素,并且不必排除附加元素。
在本申请中,短语“…或…中的至少一个”旨在涵盖所列出的元素中的任何一个或多个,包括单独列出的元素中的任何一个、任何子组合或所有元素,而不必排除任何附加元素,也不必需要所有元素。
本申请将涉及哈希处理或哈希函数,其旨在包括多个加密哈希函数中的任何一个,这些加密哈希函数在应用于任意的数据或“消息”集合时,确定性地产生唯一的固定长度的字母数字字符串。哈希函数的结果可以被称为哈希值、指纹、哈希结果或等价物。示例包括但不限于SHA-2、SHA-3和BLAKE2。
在本文档中,术语“区块链”被理解为包括所有形式的电子的基于计算机的分布式账本(ledger)。这些包括基于共识的区块链和交易链技术、许可的和未被许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。尽管为了方便和说明的目的在本文中可能提及比特币,如通过比特币SV协议进行示例说明,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。
区块链是一种点对点的电子式账本,其使用基于计算机的去中心化的分布式***实现。该区块链由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构除了其他可能的信息之外,还对区块链***中的参与者之间的数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块头都包含例如为默克尔根的形式的区块内容的摘要,并且每个区块头都包含前一个区块头的哈希,以使得区块被链接在一起来创建所有交易的永久、不可改变的记录,这些交易自其开始就已经被写入区块链。交易包含嵌入到其输入和输出中的被称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
区块链是在节点的网络上实现的。每个节点都是具有网络连接性和执行软件的计算装置,该软件执行适用的区块链协议。节点验证交易并将它们传播到网络中的其他节点。专门的网络节点(称为“挖矿节点”或“矿工”)将未确认的交易(即,待定交易)的集合收集到区块中并尝试“挖掘”该区块。在这些示例中,挖掘是指在网络中的任何其他矿工成功解答针对其相应的区块的工作量证明(POW)之前解答工作量证明。在比特币示例中,POW涉及对包含只使用一次的随机数(nonce)的区块头进行哈希处理,直到结果小于通过难度参数而设置的阈值为止。将该只使用一次的随机数反复地递增并重复哈希处理,直到结果小于阈值为止或直到矿工接收到另一个矿工已经成功的通知为止。挖掘过程的变化对于本领域普通技术人员来说是熟悉的。
在验证交易时检查的各种事物之中,节点确定交易的输入是否有效。特别是,节点评估解锁脚本是否评估为真,并确定输入是否引用来自早期交易的“未花费的交易输出”(UTXO)。一些节点可能维护运行列表或UTXO池,以便能够快速确定引用的交易输出是否在UTXO中。交易可以通过其唯一交易标识符TxID来标识,在一些实现方式中,该唯一交易标识符TxID是交易的哈希。一些交易可能具有多于一个的输出,因此可以通过TxID和索引来标识独特的交易“输出(即,出点)”,其中,索引指向来自交易的有序的输出集中的输出中的一个。如果交易输出存在于UTXO池中,则该交易的输出是“未花费的”并且可用于用作输入。
交易出点的解锁脚本限定如何证明对该输出的“控制”以便被运用。在许多情况下,与交易输出相关联的地址是公钥的哈希。为了证明对该输出的控制,解锁脚本通常需要公钥和使用对应的私钥而生成的数字签名。通过这种方式,控制私钥的节点能够控制在任何后续输入中何时以及如何使用交易输出。如下文将进一步讨论的,这具有以下推论:当对应于特定公钥的交易输入包括使用对应的私钥生成的数字签名时,则与该特定公钥相关联的实体有效地签发或认证交易内容。
公钥密码术在在线通信中已经变得无处不在。在许多情况下,需要过程和策略(policy)来提供公钥被与特定实体相关联的实体所拥有的确定性。确保公钥真实且未被泄露的最常见的方法是公钥基础设施(PKI)。PKI依赖受信任的第三方来“鉴别”公钥是否有效。这些实体是“证书授权机构”(CA)。CA提供确认公钥与特定所有方之间的绑定的数字证书的注册和颁发。公钥的持有方向另一个实体提供其公钥和其数字证书。然后,另一个实体可以通过确认受信任的CA已将公钥数字地签署为属于持有方来验证公钥的真实性。
现有的PKI的问题之一是有时公钥会被泄露,例如,在私钥在证书的指定到期日期之前丢失或公开的情况下。为此,CA可以维护证书撤销列表。于是,任何希望依赖与公钥相关联的证书的实体还必须找出并审查相关联的证书撤销列表,以确认该证书尚未被CA撤销。由于撤销与新的证书撤销列表的发布之间的延迟(通常为24小时或更长时间),这会损害离线认证密钥的能力并产生风险。
根据本申请的一个方面,区块链网络可以被用于通过提供快速且安全的数字证书的验证、撤销和更新来改进公钥基础设施。证书授权机构可以将公钥记录在区块链上,以这种方式使得任何第三方都可以快速且轻松地验证公钥被证书授权机构认证并且该认证尚未被撤销。通过以下述方式记录公钥,证书授权机构能够几乎立即撤销认证,或者能够在撤销旧密钥时同时为同一实体认证新密钥。在某些情况下,可以将撤销认证的能力给予公钥的所有方,或者在某些情况下,给予一个其他实体或者甚至一组其他实体。
现在将参考图1,其图解地示出了用于管理公钥基础设施的示例***100。该示例中的***100包括第一计算装置102、第二计算装置104和服务器106。第一计算装置102和第二计算装置104可以通过任何网络使能的计算装置(包括服务器、个人电脑、平板电脑、智能手机、联网汽车、物联网装置或任何其他此类装置)来实现。服务器106由证书授权机构(CA)来操作并且被配置为接收和响应于对数字证书的请求。尽管CA被描绘为由服务器106来实现,但是应当理解,CA功能可以由一个或多个服务器或其他计算装置来实现。
***100还包括区块链网络108。区块链网络108包括根据适用的区块链协议操作的节点的网络。在一些实现方式中,第一计算装置102、第二计算装置104和/或服务器106中的一个或多个也可以是区块链网络108中的节点,尽管在本示例中为了便于解释,它们被描述为与区块链网络108分离的节点。
在该示例***100中,标记为“爱丽丝”的第一计算装置102具有用于在非对称密码通信中使用的公钥私钥对。为了在某些加密场景中使用公钥,爱丽丝可能需要具有鉴别公钥以及其与爱丽丝的关联的对应的数字证书。因此,在操作110中,爱丽丝将公钥PKA与进行注册的请求一起提供给CA。CA可能进行某种级别的鉴别,以确保爱丽丝作为公钥的所有方的身份。在某些情况下,该身份验证(鉴别)可以是由服务器106基于操作110中提供的数据而执行的自动化在线操作。在某些情况下,该身份验证还可以或替代地包括离线身份验证操作。可以采用双因素身份验证和其他此类技术。
一旦CA确定要对公钥PKA进行认证,它就生成区块链交易,即“认证交易”(CTX),其包括公钥PKA并且由CA签发。该认证交易还包括由CA控制的输出。如操作112所指示的,交易被提交到区块链网络108。然后在操作114中,CA向爱丽丝提供认证交易标识符TxIDCTX_PKA。在一些实现方式中,爱丽丝可以基于交易标识符从区块链网络108获得认证交易的副本以确认它符合预期并包含公钥PKA。
交易标识符TxIDCTX_PKA与公钥PKA一起有效地形成爱丽丝的数字证书。结合与第二通信装置104(在该示例中标记为“鲍勃”)的某些通信,在操作116中,爱丽丝可以将其数字证书发送给鲍勃。然后鲍勃能够基于区块链网络108维护的区块链来鉴别公钥PKA并验证该认证是否尚未被撤销。
特别地,在操作118和120中,鲍勃可以请求并接收认证交易的副本。从认证交易中,鲍勃可以验证它包含爱丽丝声称的公钥PKA,以及它已由受信任的认证授权机构进行签发。鲍勃还能够通过查询由CA控制的交易输出是否保持“未花费的”(即,交易输出点存在于区块链网络108的UTXO池130中)来验证认证是否尚未被撤销,如操作122和124所示。UTXO池130是由区块链网络108的多个节点中的任何一个维护的“未花费的”交易输出点池。
现在将参考图2,其以流程图的形式示出了用于向认证授权机构注册公钥的一种示例方法200。该示例方法200由授权的认证授权机构实现,并且可以由被适当编程以执行所描述的功能的一个或多个服务器实现。
在操作202中,认证授权机构接收来自爱丽丝的对公钥PKA的认证的请求。认证授权机构可以根据其适用的策略执行鉴别或授权协议。这些协议可以包括自动化的计算机实现的操作和/或管理员协助的操作。不管具体的认证操作如何,在操作204中,确定是否认证爱丽丝的公钥。如果不进行认证,则方法200结束。如果认证被受理,则在操作206中,认证授权机构创建认证交易。如上所述,认证交易包括输入(其包括认证授权机构的公钥和来自认证授权机构的数字签名)、由认证授权机构控制的输出、以及公钥PKA。举一个具体示例,输入可以是某个标称值或任意值的UTXO,认证授权机构具有针对该UTXO的用于生成有效解锁脚本中的签名的私钥。UTXO可能与足够的数字价值相关联,以抵消因挖掘认证交易而产生的任何交易费用。
认证交易可以包括两个输出:第一输出基于由认证授权机构选择和控制的CA公钥PKCTX_PKA,以及第二输出包含在例如非操作信息字段中的公钥PKA。后者的示例是比特币中的OP_RETURN函数。OP_RETURN实际上是输出,一旦交易被挖掘到,就可以将任意数据放入到该输出中以记录在区块链上。
例如,第一输出可以是P2PKH(付款到公钥哈希)操作,其指定转移到由认证授权机构选择和控制的公钥哈希(例如,比特币地址)。
认证授权机构通过其在交易中的数字签名,既授权将UTXO输入到交易,从而满足解锁脚本,又提供认证授权机构已经证明了公钥PKA出现在OP_RETURN输出中的可验证的证据。请注意,在某些实现方式中,附加信息(例如,来自爱丽丝的数字签名或其他此类数据)可能出现在OP_RETURN输出字段中。
一旦已经创建了认证交易,在操作208中,认证授权机构就对交易进行哈希以找到交易标识符TxIDCTX_PKA,并且如操作210所指示的,认证授权机构在区块链网络上传播该交易。应当理解,“传播”交易包括将交易提交到区块链网络的节点,在那里对交易进行验证,并且然后将交易传输到所有其他节点,所有其他节点进而进行验证并重新传输,直到交易基本上到达网络中的所有节点为止。在一些实施例中,认证授权机构本身是区块链网络中的节点之一。
在操作212中,认证授权机构等待包含认证交易的区块的挖掘,即,交易的“确认”,然后在操作214中将交易标识符TxIDCTX_PKA发送给爱丽丝。在一些实现方式中,认证授权机构可以在交易被挖掘之前向爱丽丝提供交易标识符。
然后爱丽丝能够向任何第三方提供包括爱丽丝的公钥PKA和证书交易标识符TxIDCTX_PKA的数字证书。由此,第三方可以验证爱丽丝的公钥是被CA认证的。
认证交易的简化示例如下所示:
需要注意的是,针对输入的解锁脚本包括认证授权机构的公钥和认证授权机构所生成的签名。爱丽丝的公钥PKA作为第二输出出现在OP_RETURN字段中。第一输出是由认证授权机构控制的任何公钥哈希。
现在参考图3,其示出了验证公钥的一种示例方法300。该示例方法300中描述的操作可由计算装置执行,该计算装置尝试使用图2中例示的过程来验证声称被认证的公钥。示例计算装置包括任何网络使能的计算装置。
方法300包括在操作302中,接收另一个实体(例如,标记为“爱丽丝”的第一计算装置102(图1))的数字证书。该数字证书至少包括公钥PKA和认证交易标识符TxIDCTX_PKA。在操作304中,使用认证交易标识符,从区块链网络获得认证交易。应当理解,可以从区块链的副本获得认证交易,无论该副本是计算装置本地的还是由区块链网络中的节点所维护的。在不太可能发生的交易尚未被确认(即,尚未在被挖掘的区块中)的情况下,那么该交易可能存在于未确认的交易的矿池中;然而,在许多实现方式中,认证授权机构可能只在已经挖掘到认证交易之后才向爱丽丝提供认证交易标识符。
根据认证交易,计算装置可以验证某些事情。特别地,在操作306中,计算装置可以验证认证交易是否是由认证授权机构签发的。计算装置可以具有或可以访问经识别或经认可的认证授权机构及其相应的公钥的列表,这可以使计算装置能够验证数字签名。如所描述的,数字签名可以形成认证交易的输入的一部分。通过确认认证交易是由受信任或经识别的认证授权机构签发的,计算装置能够确认认证是合法的。请注意,如果交易在区块链上,则计算装置不一定需要验证输入中的数字签名,因为它已被矿工确认和验证。相反,计算装置可以简单地验证在输入中标识的公钥与认证授权机构相关联。
如操作308所示,计算装置还可以验证认证交易的输出点之一是否保持为“未花费的”(即,在UTXO池中找到该输出点)。该验证操作确认该认证保持有效并且未被撤销。如上所述,在大多数实施例中(替代方案如下所述),该输出点由认证授权机构控制,这使得证认证授权机构能够在密钥泄露、过期或以其他方式不再有效时取消认证。通过以下方式轻松地促进撤销或取消:使认证授权机构“花费”输出点,从而将输出点从UTXO池中移除。可以通过例如基于TxID号和输出索引查询UTXO池来执行输出点是否存在于UTXO池中的确认。在一些示例中,计算装置可以通过中介(例如,区块链网络的节点)来查询UTXO池。
在操作310中,计算装置确认认证交易的第二输出中的公钥PKA与从爱丽丝接收的作为数字证书的一部分的公钥PKA匹配。
如果操作306、308和310都被确认,则在操作312中,计算装置确定从爱丽丝接收的数字证书中的公钥PKA是有效的。
通过使用区块链网络来记录公钥认证,认证授权机构能够通过“花费”输出点来快速且轻松地撤销认证,使得操作308处的验证失败。因此,认证授权机构可以通过生成和传播使用认证交易的第一输出的交易来撤销对公钥的认证。如上所述,第一输出可以是P2PKH操作,其将名义上的数字资产转移到第一输出中指定的公钥哈希地址。在这些示例中,针对该第一输出的解锁脚本可能需要来自认证授权机构的数字签名,这需要控制对应于在P2PKH操作中使用的CA公钥PKCTX_PKA的私钥。
在某些情况下,认证授权机构可能不会简单地撤销认证,而是可能被要求替换/更新经认证的公钥。例如,如果私钥丢失或泄露,那么所有方(例如,爱丽丝)可以请求认证授权机构用新公钥PKA_new更新或替换先前认证的公钥。认证授权机构使用就位的任何在线或离线鉴别机制对请求进行鉴别,如果它确定要进行更新操作,则它创建新的认证交易CTXnew以撤销旧的认证并颁发新的认证。
新的认证交易具有相同类型的输出(即,使用由CA选择的新公钥的P2PKH操作),例如,PKCTX_new和包含PKA_new的OP_RETURN字段。然而,输入可能包括来自原始认证交易TxIDCTX_PKA的CA控制的输出点。通过“花费”作为新的认证交易的输入的该输出,通过从UXTO池移除该输出点来实现撤销。有利地,旧公钥认证的撤销和新公钥认证的注册发生在单个交易中。此外,认证授权机构不需要维护单独的定期发布的证书撤销的列表,也不需要使该列表可供认证授权机构使用。
如上所述,在许多情况下,认证交易的第一输出点可由认证授权机构控制,使得只有认证授权机构能够撤销对公钥的认证。撤销基于使用与该输出点对应的私钥来“花费”第一输出点。然而,在某些情况下,构建认证交易以允许其他实体撤销认证可能是有利的。
例如,在某些情况下,公钥的所有方(例如,爱丽丝)可能有权撤销其自己的公钥。在这种布置中,证书交易中的第一输出点由爱丽丝控制,即,引用爱丽丝拥有的私钥所对应的的公钥(公钥哈希)。也就是说,第一输出点的解锁脚本需要来自爱丽丝的数字签名。这种布置可能有利于某些公钥认证场景,例如在线服务的注册。在线服务的一个示例是社交媒体平台上的社交媒体帐户。平台可以使用上述机制来注册用户的公钥以供平台使用,从而使得用户能够在可信的基础上与平台和/或平台的其他用户交互,因为他们的数字证书通过认证交易而被备份。然后,用户能够在没有平台合作的情况下撤销认证以终止其帐户。
在另一种场景中,可以提供多于一个的输出点,其中的一个可以被“花费”以便终止认证。在这种情况下,第三方被配置为测试认证交易的两个(或所有)这样的输出点是否作为未花费的交易输出而存在于UTXO池中。
或者,如果要促进来自多方中的任何一方的撤销,则第一输出可以被配置为使用多个签名,即,多个签名中的任何一个可以被用于“花费”输出。为此,可以在输出中使用多重签名。
在又一场景中,多重签名可以被配置为确保至少阈值数量的实体同意撤销认证。多重签名可以被配置为需要m个签名之中的n个签名来解锁输出,其中,n≤m。例如,在机构(例如,企业、合伙企业或其他此类个体集合)的情况下,与该机构相关联的经认证的公钥只有在所有或至少阈值数量的某些实体(例如,首席执行官(CEO)、首席运营官(COO)、首席技术官(CTO)或其他涉及业务的高管或个人)签发撤销的情况下才是可撤销的。
应当理解,各种上述示例方法的上述操作中的一些或全部可以按照不同于所示出的顺序执行和/或可以在不改变那些方法的整体操作的情况下同时执行。
现在参考图4,其以框图形式示出了根据本申请示例的简化计算装置400。该计算装置400可以执行上述功能中的一个或多个。在这种意义上,在一些实现方式中,它可以用作第一计算装置102(图1)、第二计算装置104(图1)或服务器106(图1)。
计算装置400包括处理器402,其可以包括一个或多个微处理器、专用集成电路(ASIC)、微控制器或类似的计算机处理装置。该计算装置400还可以包括存储器404和网络接口406,该存储器404可以包括持久性和非持久性存储器以存储值、变量以及在某些情况下还包括处理器可执行程序指令。
计算装置400可以包括处理器可执行应用程序408,其包含处理器可执行指令,这些指令在被执行时使处理器402执行本文所述的一个或多个功能或操作。
以上呈现的各种实施例仅是示例并且绝不意味着限制本申请的范围。本文描述的创新的变化对于本领域普通技术人员来说将是显而易见的,这样的变化在本申请的预期范围内。特别地,可以选择来自上述示例实施例中的一个或多个的特征来创建替代示例实施例,其包括可能未在上文明确描述的特征的子组合。此外,可以从一个或多个上述示例实施例中选择特征并将其组合以创建替代示例实施例,其包括上面可能没有明确描述的特征的组合。本领域技术人员在整体审阅本申请时将容易明白适合于这种组合和子组合的特征。本文和引述的权利要求中描述的主题旨在涵盖和包含所有合适的技术变化。
Claims (15)
1.一种使用区块链网络来管理公钥基础设施的计算机实现的方法,包括:
通过以下方式来为第一实体生成数字证书,所述第一实体具有第一公钥:
创建认证交易,其中,所述认证交易包括来自证书授权机构的数字签名、到基于第二公钥的地址的第一输出、以及具有包含所述第一公钥的信息字段的第二输出;
从所述认证交易的哈希来确定认证交易标识符;以及
在所述区块链网络上传播所述认证交易,
其中,所述数字证书包括所述第一公钥和所述认证交易标识符。
2.根据权利要求1所述的方法,其中,所述第二输出包括OP_RETURN字段,所述OP_RETURN字段至少包含所述第一公钥。
3.根据权利要求1或权利要求2所述的方法,其中,所述第一输出包括引用作为所述第二公钥的哈希而获得的地址的付款到公钥哈希P2PKH操作。
4.根据权利要求1至3中任一项所述的方法,其中,所述证书授权机构持有对应于所述第二公钥的第二私钥。
5.根据权利要求1至4中任一项所述的方法,还包括:通过以下方式来验证所述数字证书:
基于所述数字证书中的认证交易标识符来从区块链获得所述认证交易的副本;
确定所述第一输出是未花费的交易输出;以及
确定所述认证交易中的第二输出中所包含的第一公钥与所述数字证书中的公钥相匹配。
6.根据权利要求5所述的方法,其中,确定所述第一输出是未花费的交易输出包括:确定所述第一输出存在于所述区块链网络的未花费的交易输出池中。
7.根据权利要求5或权利要求6所述的方法,其中,所述认证交易的输入还包括证书授权机构公钥,并且其中,验证所述数字证书还包括:基于所述证书授权机构公钥来确定所述认证交易是由所述证书授权机构签发的。
8.根据权利要求1至7中任一项所述的方法,还包括:通过生成撤销交易并且在所述区块链网络上传播所述撤销交易来撤销所述数字证书,所述撤销交易包括作为输入的所述认证交易的第一输出。
9.根据权利要求1至7中任一项所述的方法,还包括:通过以下方式来用针对新公钥的新数字证书替换所述数字证书:
创建新的认证交易,其中,所述新的认证交易包括作为输入的所述认证交易的第一输出、到基于第三公钥的新地址的第一新输出、以及具有所述信息字段的第二新输出,其中,所述信息字段包含所述新公钥;
从对所述新的认证交易的哈希来确定新的认证交易标识符;以及
在所述区块链网络上传播所述新的认证交易,
其中,所述新数字证书包括所述新公钥和所述新的认证交易标识符。
10.根据权利要求1至9中任一项所述的方法,其中,所述信息字段是OP_RETURN输出。
11.根据权利要求1至10中任一项所述的方法,其中,所述认证交易包括引用未花费的交易出点地址的输入,所述未花费的交易输出点地址是从证书授权机构公钥的哈希获得的,并且其中,所述认证交易包括针对所述未花费的交易出点地址的解锁脚本,所述解锁脚本包括所述证书授权机构公钥和所述数字签名,并且其中,所述数字签名是基于与所述证书授权机构公钥对应的私钥而生成的。
12.根据权利要求1至11中任一项所述的方法,其中,所述第一输出包括使得两个或更多个私钥中的任何一个能够利用所述第一输出的多重签名锁定脚本。
13.一种使用区块链网络来管理公钥基础设施的计算装置,所述计算装置包括:
一个或多个处理器;
存储器;
存储在所述存储器中的计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时,使所述处理器执行根据权利要求1至12中任一项所述的方法。
14.一种计算机可读介质,其存储用于使用区块链网络来管理公钥基础设施的处理器可执行指令,所述处理器可执行指令包括在由一个或多个处理器执行时使所述处理器执行根据权利要求1至12中任一项所述的方法的指令。
15.一种使用区块链网络来验证数字证书的计算机实现的方法,所述数字证书包括第一公钥和认证交易标识符,所述方法包括:
接收来自第一实体的所述数字证书;
基于所述数字证书中的认证交易标识符从区块链获得认证交易的副本,其中,所述认证交易包括来自证书授权机构的数字签名、到基于第二公钥的地址的第一输出、以及具有信息字段的第二输出;
确定所述信息字段包含与所述数字证书中的第一公钥相匹配的公钥;
查询未花费的交易输出池,以确定所述认证交易中的第一输出尚未在任何后续交易中使用;以及
基于上述确定,验证所述第一公钥被认证是有效的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1906637.2 | 2019-05-10 | ||
GB1906637.2A GB2583767A (en) | 2019-05-10 | 2019-05-10 | Methods and devices for public key management using a blockchain |
PCT/IB2020/054259 WO2020229947A1 (en) | 2019-05-10 | 2020-05-05 | Methods and devices for public key management using a blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113950801A true CN113950801A (zh) | 2022-01-18 |
Family
ID=67384537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080042877.0A Pending CN113950801A (zh) | 2019-05-10 | 2020-05-05 | 用于使用区块链进行公钥管理的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20220094542A1 (zh) |
EP (2) | EP3966997B1 (zh) |
JP (1) | JP2022532578A (zh) |
KR (1) | KR20220006097A (zh) |
CN (1) | CN113950801A (zh) |
GB (1) | GB2583767A (zh) |
SG (1) | SG11202112441PA (zh) |
WO (1) | WO2020229947A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886319A (zh) * | 2023-09-08 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 证书校验方法及装置、通信设备 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11202112394TA (en) * | 2019-05-16 | 2021-12-30 | Gmo Globalsign Inc | Systems and methods for blockchain transactions with offer and acceptance |
CN113141259B (zh) * | 2019-09-12 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 在区块链网络中更换身份证书的方法和装置 |
GB2594684A (en) | 2020-02-19 | 2021-11-10 | Nchain Holdings Ltd | Layered network |
GB2592211A (en) | 2020-02-19 | 2021-08-25 | Nchain Holdings Ltd | Adapting connections of a layered network |
SE545490C2 (en) * | 2021-02-11 | 2023-09-26 | Wone Sagl | Methods, module and blockchain for distributed public keystore |
EP4054116A1 (en) * | 2021-03-05 | 2022-09-07 | Siemens Aktiengesellschaft | Ecosystem exchanging information about esg data of a product related entity |
GB2607618A (en) * | 2021-06-09 | 2022-12-14 | Nchain Licensing Ag | Computer-implemented method and system |
WO2024117830A1 (ko) * | 2022-11-30 | 2024-06-06 | 히포크랏다오 아이앤씨 | 통신 시스템에서 블록 체인에 기반하여 보안성을 가진 의료 데이터 거래를 지원하기 위한 방법 및 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017187395A1 (en) * | 2016-04-29 | 2017-11-02 | nChain Holdings Limited | A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger |
US20170330180A1 (en) * | 2016-05-16 | 2017-11-16 | Coinplug, Inc. | Method for using and revoking authentication information and blockchain-based server using the same |
WO2018036701A1 (de) * | 2016-08-24 | 2018-03-01 | Siemens Aktiengesellschaft | Gesichertes verarbeiten einer berechtigungsnachweisanfrage |
US20180278427A1 (en) * | 2017-03-24 | 2018-09-27 | Cable Television Laboratories, Inc | System and method for distributed pki root |
CN108964924A (zh) * | 2018-07-24 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 数字证书校验方法、装置、计算机设备和存储介质 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372941B (zh) * | 2016-08-31 | 2019-07-16 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及*** |
CN107592293A (zh) * | 2017-07-26 | 2018-01-16 | 阿里巴巴集团控股有限公司 | 区块链节点间通讯方法、数字证书管理方法、装置和电子设备 |
-
2019
- 2019-05-10 GB GB1906637.2A patent/GB2583767A/en not_active Withdrawn
-
2020
- 2020-05-05 US US17/609,659 patent/US20220094542A1/en active Pending
- 2020-05-05 WO PCT/IB2020/054259 patent/WO2020229947A1/en unknown
- 2020-05-05 CN CN202080042877.0A patent/CN113950801A/zh active Pending
- 2020-05-05 SG SG11202112441PA patent/SG11202112441PA/en unknown
- 2020-05-05 EP EP20725233.9A patent/EP3966997B1/en active Active
- 2020-05-05 JP JP2021566551A patent/JP2022532578A/ja active Pending
- 2020-05-05 EP EP23216154.7A patent/EP4312399A3/en active Pending
- 2020-05-05 KR KR1020217040005A patent/KR20220006097A/ko unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017187395A1 (en) * | 2016-04-29 | 2017-11-02 | nChain Holdings Limited | A method and system for controlling the performance of a contract using a distributed hash table and a peer-to-peer distributed ledger |
US20170330180A1 (en) * | 2016-05-16 | 2017-11-16 | Coinplug, Inc. | Method for using and revoking authentication information and blockchain-based server using the same |
WO2018036701A1 (de) * | 2016-08-24 | 2018-03-01 | Siemens Aktiengesellschaft | Gesichertes verarbeiten einer berechtigungsnachweisanfrage |
US20180278427A1 (en) * | 2017-03-24 | 2018-09-27 | Cable Television Laboratories, Inc | System and method for distributed pki root |
CN108964924A (zh) * | 2018-07-24 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 数字证书校验方法、装置、计算机设备和存储介质 |
CN109617698A (zh) * | 2019-01-09 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 发放数字证书的方法、数字证书颁发中心和介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116886319A (zh) * | 2023-09-08 | 2023-10-13 | 海马云(天津)信息技术有限公司 | 证书校验方法及装置、通信设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4312399A3 (en) | 2024-02-14 |
WO2020229947A1 (en) | 2020-11-19 |
JP2022532578A (ja) | 2022-07-15 |
US20220094542A1 (en) | 2022-03-24 |
KR20220006097A (ko) | 2022-01-14 |
GB2583767A (en) | 2020-11-11 |
EP3966997A1 (en) | 2022-03-16 |
EP4312399A2 (en) | 2024-01-31 |
GB201906637D0 (en) | 2019-06-26 |
EP3966997B1 (en) | 2024-02-07 |
SG11202112441PA (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3966997B1 (en) | Methods and devices for public key management using a blockchain | |
KR102440626B1 (ko) | 디지털 인증서 관리 방법, 장치, 컴퓨터 기기 및 저장 매체 | |
JP7109569B2 (ja) | デジタル証明書の検証方法並びにその、装置、コンピュータ機器並びにコンピュータプログラム | |
CN106972931B (zh) | 一种pki中证书透明化的方法 | |
CN112311735B (zh) | 可信认证方法,网络设备、***及存储介质 | |
JP6285454B2 (ja) | エンティティ・ネットワーク・トランスレーション(ent) | |
AU2003254377B2 (en) | Methods and systems for providing a secure data distribution via public networks | |
US20230006840A1 (en) | Methods and devices for automated digital certificate verification | |
CN114008968B (zh) | 用于计算环境中的许可授权的***、方法和存储介质 | |
CN113940032A (zh) | 用于在区块链网络中记录工作历史并证明声誉的方法和装置 | |
KR20070030284A (ko) | 일회용 사설키를 사용하여 디지털 서명을 구현하기 위한시스템 및 방법 | |
JP2007518369A (ja) | Ocsp及び分散型ocspのための効率的に署名可能なリアルタイム・クレデンシャル | |
CN115176441A (zh) | 基于身份的公钥生成协议 | |
CN112801664B (zh) | 基于区块链的智能合约供应链可信服务方法 | |
CN114503146A (zh) | 用于在区块链网络中注册和鉴别矿工身份的方法和装置 | |
EP3356990B1 (en) | Signatures of updates exchanged in a binary data synchronization protocol | |
CN112039837B (zh) | 一种基于区块链和秘密共享的电子证据保全方法 | |
CN112749417A (zh) | 基于区块链的电子学位证照数据保护及共享*** | |
EP1653387A1 (en) | Password exposure elimination in Attribute Certificate issuing | |
Larsen et al. | Direct anonymous attestation on the road: Efficient and privacy-preserving revocation in c-its | |
CN115102695A (zh) | 基于区块链的车联网证书认证方法 | |
JP2009212689A (ja) | 共通鍵自動配布システム、クライアント、第三者認証機関側サーバ、及び共通鍵自動共有方法 | |
CN115943609A (zh) | 区块链网络中中毒交易的区块传播 | |
Kurbatov et al. | Global Digital Identity and Public Key Infrastructure | |
WO2024116951A1 (ja) | 認証方法及びノード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |