CN111106940A - 一种基于区块链的资源公钥基础设施的证书交易验证方法 - Google Patents
一种基于区块链的资源公钥基础设施的证书交易验证方法 Download PDFInfo
- Publication number
- CN111106940A CN111106940A CN201911168125.4A CN201911168125A CN111106940A CN 111106940 A CN111106940 A CN 111106940A CN 201911168125 A CN201911168125 A CN 201911168125A CN 111106940 A CN111106940 A CN 111106940A
- Authority
- CN
- China
- Prior art keywords
- resource
- transaction
- issuer
- certificate
- message
- 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.)
- Granted
Links
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/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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/409—Device specific authentication in transaction processing
- G06Q20/4097—Device specific authentication in transaction processing using mutual authentication between devices and transaction partners
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key 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/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/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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer And Data Communications (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种基于区块链的资源公钥基础设施的证书交易验证方法,目的是避免交易时产生冲突或非法交易而导致出现的安全威胁,提高安全性。技术方案是:构建由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点组成的资源公钥基础设施RPKIB系统;将资源证书以及路由起源授权ROA的操作设计为交易,资源颁发者发起的各种资源交易操作都作为交易向区块链网络提交,验证节点运行智能合约对交易进行验证,区分操作是授权机构的恶意行为,还是正常操作。本发明可有效提升基于区块链的RPKI的安全性,有效避免在RPKIB系统中,各种资源交易在区块链中交易产生的资源冲突以及资源颁发者提交不合法交易,导致某些合法路由不合法的安全威胁。
Description
技术领域
本发明属于网络信息安全领域,尤其涉及一种基于区块链的改善RPKI(ResourcePublic Key Infrastructure,即资源公钥基础设施)安全性的资源公钥基础设施的证书交易验证方法。
背景技术
BGP(Border Gateway Protocol,即边界网关协议)是Internet中的域间路由协议。但是,传统的BGP协议容易受到许多安全威胁攻击,最常见的BGP攻击之一是前缀劫持。通过伪造BGP路由通告信息中的起源AS(Autonomous system,即自治系统)(起源AS,即发起路由通告信息的AS),导致对应这些IP地址前缀的流量被劫持者的AS拦截或丢弃。资源公钥基础设施(即RPKI)是用于支持IP地址前缀起源验证的基础设施,它能提供授权的IP地址前缀与起源AS的可信映射。IP地址等于网络地址加上主机地址,IP地址前缀是指IP地址中与其网络部分相对应的地址部分,即IP地址的网络地址,用来唯一地标识着连入Internet的一个网络的网络号。IP地址={<地址前缀>,<主机号>}。为了区分地址前缀,通常采用"斜线记法",即IP地址/网络前缀所占比特数。例如:192.168.24.0/22表示32位的地址中,前22位为网络前缀,后10(32-22=10)位代表主机号。在换算中,192.168.24.0/22对应的二进制为:
1100 0000(192),1010 1000(168),0001 1000(24),0000 0000(0)
RPKI依附于Internet数字资源INR(InternetNumbersResources)的分配过程,INR包括IP地址资源和AS号资源,即机构所拥有的IP地址和AS号,以互联网注册管理机构RIR(Regional Internet Registry)作为最上层的资源颁发者,RIR又可以将自己的Internet号码资源向下级资源颁发者如本地互联网注册机构(LocalInternetRegistry,LIR)、国家级互联网注册机构(NationalInternetRegistry,NIR)和互联网服务提供商(InternetServiceProvider,ISP)分配,然后下级资源颁发者再依次逐级向下分配,通过自上而下的权限层次结构提供可验证的IP地址前缀与起源AS的映射库。RPKI由三个组件组成:基于公钥基础设施的证书对象,用于表示路由起源授权ROA(Route OriginAuthorization)的签名对象,以及用于保存对象的分布式存储系统。RP(Relying Party即依赖方)是RPKI的使用者,RP获取签名对象集合的副本,验证签名,生成有效ROA列表,并定期检查在分布式存储系统中签名对象的更新,并同步这些更新。ROA是IP地址所有者授权AS为其进行路由通告的授权信息,包含一个AS号码以及一个或多个IP地址前缀之间的“绑定关系”。
ROA可以被RP用来验证为某一特定IP地址前缀发起路由的AS是否被地址所有者所授权。BGP路由器使用RPKI中RP提供的有效ROA列表信息来区分合法起源AS发起的BGP路由以及可能被劫持的BGP路由。
然而RPKI自身也面临安全风险。虽然RPKI的许多规范讨论了RPKI如何验证BGP路由,但是RPKI的正确运行取决于RP能否提供正确的、全面的有效ROA信息。RPKI的自身主要安全问题是:恶意授权机构可以通过在RPKI上对于各类资源证书RC(Resourcecertificate)的恶意操作(RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779的IP地址和AS扩展标识符,用来担保IP地址前缀和AS号的分配),导致某些合法BGP路由不合法。或者恶意授权机构操纵不同的资源证书视图给不同的RP,从而达到某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径上达到非法吸引流量的目的。针对上述问题,当前的RPKI很难区分各种资源证书对象的操作是由于机构管理员操作错误还是受到攻击的恶意行为,还是资源证书的颁发者与被颁发者之间达成的正常合约。上述安全问题,现有RPKI架构与机制难以解决。
区块链一般用于解决中心化导致的信任问题,2008年,中本聪在《Bitcoin:APeer-to-Peer Electronic Cash System》(即《比特币:一种点对点的电子现金系统》)一文中将区块链作为比特币的底层技术提出。区块链由多个区块(规定第一个区块叫做创世区块)按照生成交易的时间戳顺序连成。区块链一般用于解决节点依赖问题,作为一种去中心化的技术允许交易双方在线直接交易,而不需要通过第三方管理机构,没有中心管制,所有节点能够在系统中自动安全的验证、交换数据。区块链技术将信任存于网络而不是某个中心机构。负责维护网络运行的终端就可以称之为——节点。区块链是去中心化的分布式数据库,他不依托于哪一个中心化的服务器,而是由众多“小服务器”组成,只要服务器安装了区块链客户端,该服务器就变成了众多“小服务器”中的一员,那么该服务器就是一个节点。
智能合约这一概念在1994年被计算机学家Nick Szabo首次提出,NickSzabo在当时自己的网站上发表了几篇文章,文章中提到了智能合约这个理念。他写道:“智能合约的总体目标是满足共同的合同条件(例如付款项、留置权、保密性,甚至强制执行),最大限度地减少异常以及对可信中介的需求。相关的经济目标包括减少欺诈损失、仲裁和执行成本以及其他交易成本。数字形式的智能合约意味着合约是通过计算机代码实现的。在智能合约中,只要参与方达成协定,智能合约就会建立起各方的权利和义务。然后通过计算机网络实行合约。
还未见有公开文献涉及利用区块链来解决RPKI固有安全问题。
如何解决RPKI系统在进行资源证书以及路由起源授权ROA的操作时产生的资源冲突或非法交易的问题,避免出现新的安全威胁,是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是提供一种基于区块链的资源公钥基础设施的证书交易验证的方法,对资源证书RC和路由起源授权ROA在区块链中进行的交易进行验证,避免交易时产生冲突或非法交易而导致出现的安全威胁。
本发明的技术方案是:更改当前RPKI的工作架构,将资源证书以及路由起源授权ROA的操作设计为交易,资源颁发者将这些对象的操作作为交易向区块链网络进行提交,验证节点运行智能合约来对交易进行验证。通过区块链机制消除对任何类型节点完全信赖的假设,验证节点运行智能合约验证交易区分一个操作是授权机构的恶意行为,还是正常操作。
本发明包含如下步骤:
第一步,构建资源公钥基础设施RPKIB(RPKIBlockchain)系统。它由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点组成。
区块链网络是一种去中心化的系统,区块链网络中的各个节点都是对等的,对等节点既可以作为资源颁发者也可以作为资源接收者。区块链网络通过去中心化机制消除原RPKI对中心节点的依赖问题,区块链网络与资源颁发者、资源接收者相连。资源颁发者、资源接收者与区块链网络相连后即成为区块链网络的一个普通节点。验证节点是区块链网络中的与普通节点不同的另一类节点,是对资源颁发者发起的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。资源颁发者与资源接收者将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中。分布式账本存在于所有区块链节点中。
资源颁发者是服务器,其上安装有资源交易应用客户端,资源颁发者连接到区块链网络后成为区块链网络的节点。资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方(即资源颁发者、资源接收者)的同意之后,资源颁发者将交易发送给区块链网络。
资源接收者是服务器,其上安装有资源交易应用客户端,与区块链相连。资源接收者连到区块链网络,成为区块链网络的节点。
资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成。
资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和的AS扩展标识符。资源证书生成模块根据预颁发的ROA信息(包括一个AS号和一个或多个IP地址前缀)对资源接收者所持有的资源创建路由起源授权(ROA)。一个有效的ROA包括三个部分:一个AS号;一个IP地址前缀列表;对IP地址前缀进行限制的可选内容。资源证书生成模块将生成的RC和ROA发送给资源交易模块。
资源交易模块与资源颁发者(或资源接收者)、资源证书生成模块、显示模块、区块链网络相连。资源交易模块从资源证书生成模块接收RC或ROA,从资源颁发者接收关于RC或ROA的操作指令,通过区块链网络进行交易,为资源颁发者提供RC或ROA资源交易的各种操作服务,如:将RC和ROA颁发给资源接收者;将RC和ROA从资源接收者撤销;对RC和ROA进行修改(ROA修改发生在需要对已经设定的ROA扩展项即IP地址前缀和AS号进行修改的情况下,修改通过签发新证书来实现);对RC进行更新操作(更新是指在旧证书到期之前使用新的证书替换旧证书,在旧证书更新过程中,只有证书有效期和序列号(证书的序列号)发生变化);RC更新操作只需要对旧证书的有效期和序列号进行更改,而不涉及证书携带的IP地址前缀和AS号;而RC修改操作涉及证书携带的IP地址前缀和AS号;一个操作即为RPKIB中的一笔交易。交易成功时资源交易模块将成功消息发送到显示模块,交易不成功时资源交易模块将冲突检测到的冲突原因、操作失败原因、交易结果发送到显示模块,在撤销操作时将RC、ROA发送给显示模块。
显示模块与资源交易模块相连,它从资源交易模块接收交易成功消息或交易不成功时的冲突原因、操作失败原因、交易结果,并显示出来;在撤销操作时从资源交易模块接收RC、ROA,并将RC、ROA的具体内容显示出来。
验证节点是对资源颁发者发给区块链的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。验证节点运行智能合约对交易进行验证,验证交易的签名、交易的内容是否符合资源颁发者的权限,交易的内容是否与当前已分配的资源没有冲突,将通过验证的交易记录到分布式账本中。
资源证书交易智能合约由资源颁发者、资源接收者共同制定,是以数字形式定义的承诺,数字形式意味着合约是一段计算机可读的代码,用于解决资源颁发者和资源接收者之间的交易行为。智能合约建立的承诺和协议由一台计算机或者计算机网络执行。
第二步,定义资源交易结构。
资源交易结构包括交易发起者,交易接收者,交易类型,交易内容,交易属性,交易证据、交易发起者给出的交易签名。交易发起者指资源颁发者地址,交易接收者即为资源接收者地址。交易签名指在区块链网络中由交易发起者对所发起的交易所进行的数字签名。交易类型包括七种,分别为:RC颁发、RC撤销、RC更新、RC修改,路由起源授权ROA颁发、ROA撤销、ROA修改。交易内容是与交易相对应的RC或ROA的内容。交易属性包括传递属性、过期属性;传递属性表示分配给某一机构的IP地址资源是否可以再分配到另一个资源授权实体,传递属性是0,表示资源颁发者不希望将分配给某个机构的IP地址前缀资源进行子分配,此时该机构称为终端节点,其所拥有的IP地址资源和AS号码资源不可再分,且只有终端节点才可以颁发ROA;传递属性是1,表示资源颁发者希望将分配给某个机构的IP地址前缀资源进行子分配;过期属性显示IP地址资源是否具有租约期限,过期属性为0表示租约时间未到期,过期属性为1表示租约时间到期,应将IP地址资源释放返回原资源授权实体。交易证据表示资源颁发者和资源接收者两次签名,双方同意的证据,由双方交易的报文以及随机数构成(比如在RC撤销时,交易的证据为rc_revoke_reply报文以及RC的持有者发布的随机数+1),用于克服当前RPKI中因资源颁发者单方面授权协议所造成的合法IP地址可能被阻断,却难以发现攻击者或行为违规者的风险。交易发起者给出的交易签名显示交易发起者和交易接收者就此交易达成协议。对于ROA操作,由于交易发起者和交易接收者相同,因此不需要双向签名的证据。对于ROA相关操作交易,交易的发起者给出的交易签名字段为NULL。
第三步,定义资源树,资源树由资源交易模块根据有效的资源证书RC来构建。资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP(InternetProtocol)地址前缀,证书中包含的AS(AutonomousSystem)号。节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点。证书中包含的IP地址前缀,证书中包含的AS号,均由资源交易模块通过解析证书得到。资源树保存在区块链分布式账本中,由资源颁发者和资源接收者共同维护。
第四步,基于区块链的资源公钥基础设施系统RPKIB对资源颁发者与资源接收者两者之间的资源操作进行双向授权,在每一种双向授权通过后资源颁发者与资源接收者进行与资源操作相应的交易,当验证节点收到相应的交易报文时,验证节点运行资源证书交易智能合约对相应的交易进行验证,方法是:
4.1资源交易模块初始化资源树的根节点,令根节点为V0:以互联网注册管理机构RIR(Regional Internet Registry)作为区块链的创世纪者创建创世区块(区块链的第一个区块),将RIR所拥有的资源证书作为资源树的根节点V0:V0的资源颁发者和资源接收者均为RIR的IP地址,V0的资源证书为RIR所持有的资源证书,V0的父证书标识为NULL,V0的子证书标识为NULL(因为RIR还未颁发子证书),V0的IP地址前缀为RIR所拥有的IP地址前缀,AS号为RIR所拥有的AS号。把V0记录到区块链分布式账本中。
4.2资源交易应用客户端的资源交易模块从资源颁发者接收消息,若接收到资源证书RC(令为RC1)的颁发消息,转4.2.1;若接收到资源证书RC(令为RC2)的撤消消息,转4.2.2;若接收到资源证书RC(令为RC3)更新的消息,转4.2.3;若接收到涉及资源分配调整的RC(令为RC4)修改的消息,转4.2.4;若接收到ROA(令为ROA1)颁发的消息,转4.2.5;若接收到ROA(令为ROA2)撤销的消息,转4.2.6;若接收到ROA(令为ROA3)修改的消息,转4.2.7:
4.2.1此时资源交易模块从所属资源颁发者接收到RC1颁发消息,RC1颁发消息中包含资源接收者的IP地址(令为IP接收1)、预颁发给资源接收者的IP地址前缀(令为IP前缀1)、AS号(令为AS1),按4.2.1.1~4.2.1.12所述证书颁发方法颁发证书RC1。
4.2.1.1资源交易模块设置一条RC1颁发指令,RC1颁发指令包括IP接收1,IP前缀1、AS1。
4.2.1.2资源交易模块按照RC1颁发指令内容进行以下操作:
4.2.1.2.1资源交易模块根据RC1颁发指令中的IP前缀1、AS1,查找资源树,检查预颁发的RC1证书是否与资源树中已颁发的RC证书冲突,方法是:
4.2.1.2.1.1检查预颁发的IP前缀1和AS1是不是由资源颁发者(令其IP地址为IP颁发1)所拥有,方法是:
4.2.1.2.1.1.1资源颁发者的资源交易模块解析自身持有的资源证书RC颁发,得到RC颁发中包含的IP地址前缀和AS号。
4.2.1.2.1.1.2资源颁发者的资源交易模块检查预颁发的IP前缀1和AS1是不是包含在RC颁发包含的IP地址前缀和AS号中,若包含在RC颁发包含的IP地址前缀和AS号中,说明预颁发的IP前缀1和AS1由资源颁发者所拥有,不冲突,转4.2.1.2.1.2;若不包含在RC颁发中,则预颁发的IP前缀1和AS1不被资源颁发者所拥有,冲突,转4.2.1.2.1.3;
4.2.1.2.1.2检查预颁发的RC1证书中包含的IP前缀1和AS1是否已经被颁发,即检查资源颁发者已经颁发的资源证书中包含的IP地址前缀和AS号是否包含IP前缀1和AS1,若检查结果为“未被颁发”,转4.2.1.3;若检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,转4.2.1.2.1.4;具体方法是:
4.2.1.2.1.2.1令节点变量v=V0;
4.2.1.2.1.2.2检查v的子证书标识域中的值,若为NULL,检查结果为“未被颁发”,转4.2.1.3;若不为NULL,则找到资源颁发者所在节点,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC1,若相等,节点v1即为资源颁发者所在节点,转4.2.1.2.1.2.4,若不相等,转4.2.1.2.1.2.3;
4.2.1.2.1.2.3令v为v1,转4.2.1.2.1.2.2;
4.2.1.2.1.2.4通过v1节点的子证书标识域得到v1的子节点v2,资源颁发者的资源交易模块解析子节点v2持有的资源证书RCv2,对比RCv2中包含的IP地址前缀、AS号与预颁发的IP前缀1和AS1是否重叠,若重叠,说明预颁发的IP前缀1和AS1已经被颁发,产生冲突,检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,转4.2.1.2.1.4;若没有重叠部分,则说明预颁发的IP前缀1和AS1还未被颁发,检查结果为“尚未颁发”,转4.2.1.3。
4.2.1.2.1.3资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀资源和AS号不被当前证书颁发者所拥有”),转第五步。
4.2.1.2.1.4资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀和AS号已经被颁发”),转4.2.1.2.2。
4.2.1.2.2资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步;否则转4.2.1.2.3。
4.2.1.2.3资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与预颁发的RC1产生冲突的已颁发资源),若接收到撤销消息,撤销与预颁发RC1相冲突的已颁发RC;若未接收到撤销消息,转第五步;
4.2.1.3资源交易模块将RC1颁发指令中的IP前缀1和AS1发送给资源证书生成模块,转4.2.1.4;
4.2.1.4资源证书生成模块根据从资源交易模块接收的IP前缀1和AS1,生成资源证书,将此证书命名为RC1。
4.2.1.5 RC1的资源颁发者和资源接收者进行双向授权,具体如下:
4.2.1.5.1 RC1的资源颁发者的资源交易模块基于UDP(User DatagramProtocol,用户数据报协议)构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块,rc_issue_request内容包括颁发的证书(在此为RC1)、父证书(资源颁发者所拥有的证书)标识、随机数r、资源接收者地址。RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2 RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转4.2.1.5.3;如果颁发请求发送定时器超时且m小于最大重发次数M(M为正整数,且M小于等于16),则令m增1,向资源接收者重发rc_issue_request,再次启动RC1对应的颁发请求发送定时器,转4.2.1.5.3;如果颁发请求发送定时器超时且m等于M,则颁发请求失败,资源颁发者删除RC1,并由资源交易模块将“操作失败”以及操作失败的原因(原因为“发送超时”)发送给显示模块进行显示,转第五步;
4.2.1.5.3 RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文rc_issue_reply,rc_issue_reply内容包括接收的报文(rc_issue_request)、是否同意资源颁发者操作、随机数。如果未接收到,RC1的资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“未接收到从资源接收者发来的颁发请求应答报文”),转第五步;如果收到了rc_issue_reply,则检查rc_issue_reply的格式、内容,如果格式错误则丢弃rc_issue_reply,资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“颁发请求应答报文格式错误”),转第五步;如果格式正确,检查rc_issue_reply报文内容,如果是拒绝颁发,则资源颁发者删除RC1,同时资源颁发者向资源交易应用客户端的显示模块发送操作失败消息以及操作失败的原因(原因为“资源接收者不同意证书颁发”),显示模块显示操作失败消息以及操作失败的原因,转第五步;如果rc_issue_reply中是同意颁发操作请求,则执行4.2.1.6;
4.2.1.6资源颁发者的资源交易模块依据资源交易结构,构造RC1的颁发交易报文rc_issue,rc_issue的内容包括资源颁发者(此为RC的颁发者)、资源接收者(此为RC1的接收者)、交易类型(此为RC1颁发)、交易内容(此为RC1的具体内容)、交易属性(包括传递属性、过期属性)、交易的证据(此为rc_issue_reply报文、RC的接收者发布的随机数+1),RC1的资源颁发者对交易的签名(交易签名也就是以数字签名技术对交易信息进行加密,是对交易发起者发送信息真实性的一个有效证明);资源颁发者将rc_issue通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.1.7;
4.2.1.7验证节点从资源颁发者接收rc_issue,运行资源证书交易智能合约,做如下检查;
4.2.1.7.1资源证书交易智能合约检查rc_issue中的资源颁发者签名是否正确,检查rc_issue的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且rc_issue的格式正确,且rc_issue之前未提交过,执行4.2.1.7.2,若资源颁发者签名不正确或rc_issue的格式不正确,则记录失败原因为“发布者签名不正确或交易格式错误”,执行4.2.1.7.5;若RC1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.1.7.5;
4.2.1.7.2资源证书交易智能合约检查该交易的证据(交易证据包含在资源颁发报文rc_issue中,此为资源接收方发送给资源颁发者的颁发请求报文应答rc_issue_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方(资源颁发者和资源接收者)同意认可的报文,即检查资源颁发请求应答报文rc_issue_reply格式、内容(是否为资源接收者同意颁发请求),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.1.7.3,否则记录失败原因为“交易证据不正确”,执行4.2.1.7.5;
4.2.1.7.3资源证书交易智能合约提取RC1颁发交易报文的交易内容(即RC1的具体内容),从中解析出资源证书中包含的IP地址前缀,检查该IP地址前缀是否与资源颁发者已颁发的资源证书中所包含的IP地址前缀存在冲突;如果不存在冲突转4.2.1.7.4,否则记录失败原因为“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,转4.2.1.7.5;
4.2.1.7.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本中,转4.2.1.8;
4.2.1.7.5资源证书交易智能合约验证未通过,将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.1.8若资源接收者的资源交易模块从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,转4.2.1.9;若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,转4.2.1.10;
4.2.1.9资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
4.2.1.9.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
4.2.1.9.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
4.2.1.9.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.11;
4.2.1.10资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.12。
4.2.1.11如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.12如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为未正确接收到RC1证书),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC资源证书的持有者(作为资源接收者)、预撤销资源证书RC,按4.2.2.1~4.2.2.8所述证书撤销方法撤销证书RC2:
4.2.2.1资源颁发者的资源交易模块根据RC2撤销的消息设置撤销RC2指令,撤销RC2指令包括RC资源证书的持有者(作为资源接收者),以及预撤销的资源证书RC2,并向显示模块发送RC2的具体内容,显示模块显示RC2的具体内容;
4.2.2.2资源颁发者与预撤销的RC2证书的持有者(作为资源接收者)执行双向授权,方法是:
4.2.2.2.1资源颁发者的资源交易模块检查RC2证书所在节点(令为Vrc2)在资源树中是否属于叶节点,方法是:
4.2.2.2.1.1令变量结点v为资源树的根结点V0;
4.2.2.2.1.2找到节点Vrc2,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC2,若相等,节点v1即为Vrc2,转4.2.2.2.1.4,若不相等,转4.2.2.2.1.3;
4.2.2.2.1.3令v为v的子证书标识指向的子节点(即v1);转4.2.2.2.1.2;
4.2.2.2.1.4检查Vrc2的子证书标识是否为空,若为空,则Vrc2为叶节点,转4.2.2.2.2执行具体的撤销操作;若Vrc2的子证书标识不为空,转4.2.2.2.1.5;
4.2.2.2.1.5此时Vrc2不是叶节点,需要等待证书持有者撤销完节点Vrc2下的资源子树,才能撤销节点Vrc2,执行4.2.2.2.1.6;
4.2.2.2.1.6令Vrc2为Vrc2的子证书标识指向的子节点,转4.2.2.2.1.4;
4.2.2.2.2资源颁发者的资源交易模块基于UDP构造RC2的撤销报文rc_revoke_request,rc_revoke_request内容包括待撤销证书标识(此时为RC2的标识)、随机数r、证书持有者(即资源接收者)地址,资源颁发者的资源交易模块向资源接收者(此处为RC2的持有者)的资源交易模块发送rc_revoke_request;资源颁发者初始化第二重发次数m2为0,启动RC2对应的撤销请求发送定时器;
4.2.2.2.3 RC2的资源颁发者检查撤销请求发送定时器是否超时,如果未超时,转4.2.2.2.4;如果撤销请求发送定时器超时且m2小于最大重发次数M,则令m2增1,向资源接收者的资源交易模块重发rc_revoke_request,资源颁发者启动RC2对应的颁发请求发送定时器,转4.2.2.2.4;如果m2等于M,则撤销请求失败,资源颁发者的资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“撤销请求报文发送超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.2.2.4 RC2的资源颁发者的资源交易模块判定是否接收到从资源接收者的资源交易模块发送来的撤销请求应答报文rc_revoke_reply,rc_revoke_reply包括资源接收者接收的报文(rc_revoke_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“未接收到从资源接收者发来的撤销请求应答报文”),转第五步;如果收到了rc_revoke_reply,检查rc_revoke_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因(原因为“资源接收者发来的撤销请求应答报文格式错误”),转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“证书持有者不同意证书撤销”),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3 RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”),显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4 RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,rc_revoke包括资源颁发者(此为RC2的颁发者)、交易接收者(此为RC2的持有者)、交易类型(此为RC撤销)、交易内容(此为RC2的具体内容)、交易属性(此为空)、交易的证据(此为rc_revoke_reply报文、RC2的持有者发布的随机数+1);由RC2的资源颁发者对交易签名,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.2.5;
4.2.2.5验证节点从资源颁发者接收rc_revoke,资源证书交易智能合约做如下检查;
4.2.2.5.1资源证书交易智能合约检查该rc_revoke中的资源颁发者签名是否正确,检查rc_revoke的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且RC2撤销交易报文之前未提交过,执行4.2.2.5.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.2.5.5;若rc_revoke之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.2.5.5;
4.2.2.5.2资源证书交易智能合约检查撤销交易的证据(交易证据包含在证书撤销报文rc_revoke中,此为资源接收者发给资源颁发者的撤销请求报文rc_revoke_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方同意认可的报文(即检查撤销请求应答报文rc_revoke_reply格式、内容(是否为资源接收者同意撤销操作请求)),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.2.5.3,否则记录失败原因为“交易证据不正确”,执行4.2.2.5.5;
4.2.2.5.3资源证书交易智能合约查询分布式账本,检查RC2是否已经被颁发,即在分布式账本中可以查询到已颁发的资源证书RC2,如果通过检查(即在分布式账本中存在已经被颁发的RC2),执行4.2.2.5.4,否则记录失败原因为“预撤销的资源证书RC2不存在”;执行4.2.2.5.5;
4.2.2.5.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本中,转4.2.2.6;
4.2.2.5.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.2.6资源接收者的资源交易模块根据rc_revoke中的交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.7;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.8。
4.2.2.7如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.8如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为“资源删除失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.7所述证书更新方法更新证书RC3:
4.2.3.1 RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的RC3、RC3资源证书的持有者、RC3的标识,以及更新操作可更改的属性值(包括证书过期时间、整数序列号),如果拟更新的属性值不符合取值范围(如RC3过期时间早于RC3的现有过期时间值),则向显示模块发送报错信息,重新设置拟更新的属性值,转4.2.3.2。
4.2.3.2 RC3的资源颁发者与RC3证书资源的持有者(作为资源接收者)执行双向授权,具体如下:
4.2.3.2.1 RC3的资源颁发者的资源交易模块基于UDP构造RC3的更新请求报文rc_overwrite1_request,rc_overwrite1_request内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文rc_overwrite1_request;资源颁发者的资源交易模块初始化第三重发次数m3为0,针对RC3,启动RC3对应的更新请求发送定时器;
4.2.3.2.2 RC3的资源颁发者的资源交易模块检查RC3的更新请求发送定时器是否超时,如果未超时,转4.2.3.2.3;如果RC3的更新请求发送定时器超时且m3小于最大重发次数M,则令m3增1,资源颁发者的资源交易模块重发RC3的rc_overwrite1_request,启动RC3的更新请求发送定时器,转4.2.3.2.2;如果RC3的更新请求发送定时器超时且m3等于M,则RC3的更新请求失败,向显示模块发送“操作失败”,以及操作失败的原因(原因为“更新请求报文发送失败,超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3.2.3 RC3的资源颁发者的资源交易模块判定是否从证书持有者的资源交易模块接收到RC3的更新请求应答报文rc_overwrite1_reply,rc_overwrite1_reply内容包括资源接收者接收的报文(rc_overwriter1_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为“未收到从资源接收者资源交易模块发来的更新请求应答报文”),转第五步;如果收到rc_overwrite1_reply,检查rc_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为“更新请求应答报文格式错误”),转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因(原因为“证书持有者不同意该操作”),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3 RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,rc_overwrite1包括资源颁发者(此时为RC3的颁发者)、资源接收者(此时为RC3的持有者)、交易类型(此时为RC3更新)、交易内容(此时为新的RC3’内容(即待更新的RC3证书更新后内容)、交易属性(包括传递属性、过期属性)、交易的证据(此时为rc_overwrite1_reply报文、RC3的持有者发布的随机数+1),由RC3的资源颁发者对交易签名;RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.3.4;
4.2.3.4验证节点从RC3的资源颁发者接收rc_overwrite1(修改过期时间或证书序列号),资源证书交易智能合约做如下检查;
4.2.3.4.1资源证书交易智能合约检查rc_overwrite1中资源颁发者签名是否正确,检查从资源颁发者发来的资源证书更新交易报文rc_overwrite1的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且资源证书RC更新交易报文rc_overwrite1之前未提交过,执行4.2.3.4.2,若资源颁发者签名不正确或资源更新交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易报文格式错误”,执行4.2.3.4.5;若资源证书更新交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.3.4.5;
4.2.3.4.2资源证书交易智能合约检查该交易的证据(交易的证据包含在资源更新报文rc_overwrite1中,此为资源接收者发给资源颁发者的更新请求应答报文rc_overwrite1_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方同意认可的报文(检查更新请求应答报文rc_overwrite1_reply格式、内容(是否为资源接收者同意修改操作请求)),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.3.4.3,否则记录失败原因为“交易证据不正确”,执行4.2.3.4.5;
4.2.3.4.3资源证书交易智能合约查询分布式账本,检查资源证书RC3是否已经被颁发,即在区块链分布式账本上可以查询到已颁发的资源证书RC3,如果通过检查(即存在已经被颁发的RC3)则执行4.2.3.4.4,否则记录失败原因为“预修改的资源证书RC3不存在”;执行4.2.3.4.5;
4.2.3.4.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.3.5;
4.2.3.4.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.3.5若资源接收者的资源交易模块根据rc_overwrite1中的交易类型(此为更新)和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(修改前为RC3的信息)用RC3’的信息替换,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.7。
4.2.3.6如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.7如果RC3的资源颁发者收到交易失败消息,则向显示模块发送“操作失败”以及操作失败的原因(原因为“资源接收者修改证书失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.4此时资源交易应用客户端的资源交易模块从资源颁发者收到涉及资源分配调整的RC(令为RC4)修改的消息,资源颁发者的资源交易模块需撤销旧证书RC4,再根据修改消息设置颁发新证书(令为RC5),方法是:
4.2.4.1按4.2.2所述证书撤销方法撤销RC4;
4.2.4.2根据修改消息设置颁发新证书(令为RC5)指令,按4.2.1所述证书颁发方法颁发RC5;转第五步。
4.2.5此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA1)颁发的消息,按4.2.5.1~4.2.5.8所述ROA颁发方法颁发ROA1:
4.2.5.1 ROA1的资源颁发者的资源交易模块设置ROA1颁发指令,ROA1颁发指令内容包括预颁发的IP地址前缀、AS号;
4.2.5.2 ROA1的资源颁发者的资源交易模块根据ROA1颁发指令中IP地址前缀和AS号,检查ROA1中包含的IP地址前缀和AS号是否是ROA1的资源颁发者所拥有,即检查预颁发的ROA1中包含的IP地址前缀和AS号是否包含在ROA1的资源颁发者所持有的资源证书所绑定的IP地址前缀和AS号中,若不包含,则冲突,转4.2.5.2.2,若包含,则不冲突,转4.2.5.2.1;
4.2.5.2.1 ROA1的资源颁发者的资源交易模块检查预颁发的IP地址前缀和AS号资源是否已经被颁发,查询分布式账本中记载的ROA1的资源颁发者ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀、AS号与预颁发的IP地址前缀、AS号是否重叠,若重叠,则发生冲突(说明已颁发过),转4.2.5.2.3;若不冲突,转4.2.5.3;
4.2.5.2.2 ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“资源冲突,资源颁发者持有的IP地址前缀和AS号资源并不包含预颁发的ROA中包含的IP地址前缀和AS号”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转第五步。
4.2.5.2.3 ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“预颁发的ROA中包含的IP地址前缀和AS号已经被颁发”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转4.2.5.2.4;
4.2.5.2.4 ROA1的资源颁发者的资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,则转第五步,否则转4.2.5.2.5;
4.2.5.2.5 ROA1的资源颁发者的资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与ROA1冲突的已颁发ROA),若接收到撤销消息,则撤销与预颁发ROA1产生冲突的已颁发ROA,转4.2.5.2;若未接收到撤销消息,转第五步。
4.2.5.3如果检查结果是未发生冲突,ROA1的资源颁发者的资源交易模块将ROA1颁发指令中的IP地址前缀和AS号发送给资源颁发者的资源证书生成模块;资源颁发者的资源证书生成模块根据ROA1的颁发指令内容(IP地址前缀,AS号)生成ROA1。
4.2.5.4 ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空);由ROA1的资源颁发者对交易签名,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者和验证节点,转4.2.5.5;
4.2.5.5验证节点从ROA1的资源颁发者接收roa_issue,资源证书交易智能合约做如下检查;
4.2.5.5.1资源证书交易智能合约检查roa_issue中的资源颁发者签名是否正确,检查roa_issue的格式是否正确以及是否之前提交过(通过检查分布式账本中交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且ROA1颁发交易报文之前未提交过,执行4.2.5.5.2,若资源颁发者签名不正确或资源颁发交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.5.5.4;若ROA1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.5.5.4;
4.2.5.5.2资源证书交易智能合约提取ROA1的资源颁发者提交的颁发交易报文roa_issue中的交易内容(即ROA1的具体内容)中包含的IP地址前缀,检查该IP地址前缀是否已经被资源颁发者颁发,方法是:查询分布式账本中记载的ROA1的资源颁发者颁发ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀与预颁发的IP地址前缀是否重叠,若重叠,则发生冲突;记录失败原因是“预颁发的IP地址资源与已颁发的ROA中包含的IP地址资源冲突”,转4.2.5.5.4;若不重叠则转4.2.5.5.3;
4.2.5.5.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.5.6;
4.2.5.5.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.5.6若资源接收者的资源交易模块从roa_issue中解析得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.7;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.8。
4.2.5.7如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.8如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为“资源接收者获取交易内容失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.6所述ROA撤销方法撤销ROA2:
4.2.6.1 ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2 ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.6.3;
4.2.6.3.验证节点从ROA2的资源颁发者接收roa_revoke,资源证书交易智能合约做如下检查;
4.2.6.3.1资源证书交易智能合约检查roa_revoke中的资源颁发者签名是否正确,检查roa_revoke的格式是否正确以及是否之前提交过(通过检查分布式账本中交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且ROA2撤销交易报文之前未提交过,执行4.2.6.3.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.6.3.4;若ROA2撤销交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.6.3.4;
4.2.6.3.2资源证书交易智能合约查询分布式账本,检查ROA2是否已经被颁发,即在分布式账本上可以查询到已颁发的ROA2,如果通过检查(即存在已经被颁发的ROA2)则执行4.2.6.3.3,否则记录失败原因是“预撤销的ROA2不存在”;执行4.2.6.3.4
4.2.6.3.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.6.4;
4.2.6.3.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.6.4若资源接收者的资源交易模块从roa_revoke中解析得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.5;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.6。
4.2.6.5如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.6如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为“资源接收者删除ROA2失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA(令为ROA3)修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
4.2.7.2根据修改内容生成新的ROA3’,按4.3.5所述ROA颁发方法颁发ROA3’,转第五步;
第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。
采用本发明可以达到以下技术效果:
1.本发明是一种构建于区块链之上的RPKI的证书交易验证方法,有效提升了基于区块链的RPKI的安全性。通过交易验证的加入,资源颁发者发起的各种资源交易操作(颁发、撤销、修改、更新),都需要验证节点运行资源证书交易智能合约对交易进行检验,可以有效避免在RPKIB系统中,各种资源交易在区块链中交易产生的资源冲突以及资源颁发者提交不合法交易,导致某些合法路由不合法的安全威胁。
2.本发明使用了区块链技术,由于区块链网络所具有的容错性,一些节点出错后不会导致整个区块链网络出错,使得第一步构建的RPKIB也具有一定的容错性。
附图说明
图1是本发明第一步构建的基于区块链的资源公钥基础设施的交易验证系统RPKIB的总体结构图;
图2是本发明第二步所述的资源交易结构的结构图;
图3是本发明第三步所述的资源树的结构图;
图4是本发明总体流程图。
具体实施方式
如图4所示,本发明包括以下步骤:
第一步,构建资源公钥基础设施RPKIB系统。资源公钥基础设施RPKIB系统如图1所示,由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点组成。
区块链网络与资源颁发者、资源接收者相连。资源颁发者、资源接收者与区块链网络相连后即成为区块链网络的一个普通节点。验证节点是区块链网络中的与普通节点不同的另一类节点,是对资源颁发者发起的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。资源颁发者与资源接收者将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中。分布式账本存在于所有区块链节点中。
资源颁发者是服务器,其上安装有资源交易应用客户端,资源颁发者连接到区块链网络后成为区块链网络的节点。资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方的同意之后,资源颁发者将交易发送给区块链网络。
资源接收者是服务器,其上安装有资源交易应用客户端,与区块链相连。资源接收者连到区块链网络,成为区块链网络的节点。
资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成。
资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和的AS扩展标识符。资源证书生成模块根据预颁发的ROA信息(包括一个AS号和一个或多个IP地址前缀)对资源接收者所持有的资源创建路由起源授权(ROA)。一个有效的ROA包括三个部分:一个AS号;一个IP地址前缀列表;对IP地址前缀进行限制的可选内容。资源证书生成模块将生成的RC和ROA发送给资源交易模块。
资源交易模块与资源颁发者(或资源接收者)、资源证书生成模块、显示模块、区块链网络相连。资源交易模块从资源证书生成模块接收RC或ROA,从资源颁发者接收关于RC或ROA的操作指令,通过区块链网络进行交易,为资源颁发者提供RC或ROA资源交易的各种操作服务,一个操作即为RPKIB中的一笔交易。交易成功时资源交易模块将成功消息发送到显示模块,交易不成功时资源交易模块将冲突检测到的冲突原因、操作失败原因、交易结果发送到显示模块,在撤销操作时将RC、ROA发送给显示模块。
显示模块与资源交易模块相连,它从资源交易模块接收交易成功消息或交易不成功时的冲突原因、操作失败原因、交易结果,并显示出来;在撤销操作时从资源交易模块接收RC、ROA,并将RC、ROA的具体内容显示出来。
验证节点是对资源颁发者发给区块链的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。验证节点运行智能合约对交易进行验证,验证交易的签名、交易的内容是否符合资源颁发者的权限,交易的内容是否与当前已分配的资源没有冲突,将通过验证的交易记录到分布式账本中。
资源证书交易智能合约由资源颁发者、资源接收者共同制定,是一段计算机可读的代码,用于解决资源颁发者和资源接收者之间的交易行为。
第二步,定义资源交易结构。
资源交易结构如图2所示,包括交易发起者,交易接收者,交易类型,交易内容,交易属性,交易证据、交易发起者给出的交易签名。交易发起者指资源颁发者地址,交易接收者即为资源接收者地址。交易签名指在区块链网络中由交易发起者对所发起的交易所进行的数字签名。交易类型包括七种,分别为:RC颁发、RC撤销、RC更新、RC修改,路由起源授权ROA颁发、ROA撤销、ROA修改。交易内容是与交易相对应的RC或ROA的内容。交易属性包括传递属性、过期属性;传递属性表示分配给某一机构的IP地址资源是否可以再分配到另一个资源授权实体,传递属性是0,表示资源颁发者不希望将分配给某个机构的IP地址前缀资源进行子分配,此时该机构称为终端节点,其所拥有的IP地址资源和AS号码资源不可再分,且只有终端节点才可以颁发ROA;传递属性是1,表示资源颁发者希望将分配给某个机构的IP地址前缀资源进行子分配;过期属性显示IP地址资源是否具有租约期限,过期属性为0表示租约时间未到期,过期属性为1表示租约时间到期,应将IP地址资源释放返回原资源授权实体。交易证据表示资源颁发者和资源接收者两次签名,双方同意的证据,由双方交易的报文以及随机数构成(比如在RC撤销时,交易的证据为rc_revoke_reply报文以及RC的持有者发布的随机数+1),用于克服当前RPKI中因资源颁发者单方面授权协议所造成的合法IP地址可能被阻断,却难以发现攻击者或行为违规者的风险。交易发起者给出的交易签名显示交易发起者和交易接收者就此交易达成协议。对于ROA操作,由于交易发起者和交易接收者相同,因此不需要双向签名的证据。对于ROA相关操作交易,交易的发起者给出的交易签名字段为NULL。
第三步,定义资源树,如图3所示,资源树由资源交易模块根据有效的资源证书RC来构建。资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP(InternetProtocol)地址前缀,证书中包含的AS(Autonomous System)号。节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点。证书中包含的IP地址前缀,证书中包含的AS号,均由资源交易模块通过解析证书得到。资源树保存在区块链分布式账本中,由资源颁发者和资源接收者共同维护。
第四步,基于区块链的资源公钥基础设施系统RPKIB对资源颁发者与资源接收者两者之间的资源操作进行双向授权,在每一种双向授权通过后资源颁发者与资源接收者进行与资源操作相应的交易,当验证节点收到相应的交易报文时,验证节点运行资源证书交易智能合约对相应的交易进行验证,方法是:
4.1资源交易模块初始化资源树的根节点,令根节点为V0:以互联网注册管理机构RIR作为区块链的创世纪者创建创世区块,将RIR所拥有的资源证书作为资源树的根节点V0:V0的资源颁发者和资源接收者均为RIR的IP地址,V0的资源证书为RIR所持有的资源证书,V0的父证书标识为NULL,V0的子证书标识为NULL(因为RIR还未颁发子证书),V0的IP地址前缀为RIR所拥有的IP地址前缀,AS号为RIR所拥有的AS号。把V0记录到区块链分布式账本中。
4.2资源交易应用客户端的资源交易模块从资源颁发者接收消息,若接收到资源证书RC(令为RC1)的颁发消息,转4.2.1;若接收到资源证书RC(令为RC2)的撤消消息,转4.2.2;若接收到资源证书RC(令为RC3)更新的消息,转4.2.3;若接收到涉及资源分配调整的RC(令为RC4)修改的消息,转4.2.4;若接收到ROA(令为ROA1)颁发的消息,转4.2.5;若接收到ROA(令为ROA2)撤销的消息,转4.2.6;若接收到ROA(令为ROA3)修改的消息,转4.2.7:
4.2.1此时资源交易模块从所属资源颁发者接收到RC1颁发消息,RC1颁发消息中包含资源接收者的IP地址(令为IP接收1)、预颁发给资源接收者的IP地址前缀(令为IP前缀1)、AS号(令为AS1),按4.2.1.1~4.2.1.12所述证书颁发方法颁发证书RC1。
4.2.1.1资源交易模块设置一条RC1颁发指令,RC1颁发指令包括IP接收1,IP前缀1、AS1。
4.2.1.2资源交易模块按照RC1颁发指令内容进行以下操作:
4.2.1.2.1资源交易模块根据RC1颁发指令中的IP前缀1、AS1,查找资源树,检查预颁发的RC1证书是否与资源树中已颁发的RC证书冲突,方法是:
4.2.1.2.1.1检查预颁发的IP前缀1和AS1是不是由资源颁发者(令其IP地址为IP颁发1)所拥有,方法是:
4.2.1.2.1.1.1资源颁发者的资源交易模块解析自身持有的资源证书RC颁发,得到RC颁发中包含的IP地址前缀和AS号。
4.2.1.2.1.1.2资源颁发者的资源交易模块检查预颁发的IP前缀1和AS1是不是包含在RC颁发包含的IP地址前缀和AS号中,若包含在RC颁发包含的IP地址前缀和AS号中,说明预颁发的IP前缀1和AS1由资源颁发者所拥有,不冲突,转4.2.1.2.1.2;若不包含在RC颁发中,则预颁发的IP前缀1和AS1不被资源颁发者所拥有,冲突,转4.2.1.2.1.3;
4.2.1.2.1.2检查预颁发的RC1证书中包含的IP前缀1和AS1是否已经被颁发,即检查资源颁发者已经颁发的资源证书中包含的IP地址前缀和AS号是否包含IP前缀1和AS1,若检查结果为“未被颁发”,转4.2.1.3;若检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,转4.2.1.2.1.4;具体方法是:
4.2.1.2.1.2.1令节点变量v=V0;
4.2.1.2.1.2.2检查v的子证书标识域中的值,若为NULL,检查结果为“未被颁发”,转4.2.1.3;若不为NULL,则找到资源颁发者所在节点,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC1,若相等,节点v1即为资源颁发者所在节点,转4.2.1.2.1.2.4,若不相等,转4.2.1.2.1.2.3;
4.2.1.2.1.2.3令v为v1,转4.2.1.2.1.2.2;
4.2.1.2.1.2.4通过v1节点的子证书标识域得到v1的子节点v2,资源颁发者的资源交易模块解析子节点v2持有的资源证书RCv2,对比RCv2中包含的IP地址前缀、AS号与预颁发的IP前缀1和AS1是否重叠,若重叠,说明预颁发的IP前缀1和AS1已经被颁发,产生冲突,检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,转4.2.1.2.1.4;若没有重叠部分,则说明预颁发的IP前缀1和AS1还未被颁发,检查结果为“尚未颁发”,转4.2.1.3。
4.2.1.2.1.3资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀资源和AS号不被当前证书颁发者所拥有”),转第五步。
4.2.1.2.1.4资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀和AS号已经被颁发”),转4.2.1.2.2。
4.2.1.2.2资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步;否则转4.2.1.2.3。
4.2.1.2.3资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与预颁发的RC1产生冲突的已颁发资源),若接收到撤销消息,撤销与预颁发RC1相冲突的已颁发RC;若未接收到撤销消息,转第五步;
4.2.1.3资源交易模块将RC1颁发指令中的IP前缀1和AS1发送给资源证书生成模块,转4.2.1.4;
4.2.1.4资源证书生成模块根据从资源交易模块接收的IP前缀1和AS1,生成资源证书,将此证书命名为RC1。
4.2.1.5 RC1的资源颁发者和资源接收者进行双向授权,具体如下:
4.2.1.5.1 RC1的资源颁发者的资源交易模块基于UDP构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块,rc_issue_request内容包括颁发的证书(在此为RC1)、父证书(资源颁发者所拥有的证书)标识、随机数r、资源接收者地址。RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2 RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转4.2.1.5.3;如果颁发请求发送定时器超时且m小于最大重发次数M(M为正整数,且M小于等于16),则令m增1,向资源接收者重发rc_issue_request,再次启动RC1对应的颁发请求发送定时器,转4.2.1.5.3;如果颁发请求发送定时器超时且m等于M,则颁发请求失败,资源颁发者删除RC1,并由资源交易模块将“操作失败”以及操作失败的原因(原因为“发送超时”)发送给显示模块进行显示,转第五步;
4.2.1.5.3 RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文rc_issue_reply,rc_issue_reply内容包括接收的报文(rc_issue_request)、是否同意资源颁发者操作、随机数。如果未接收到,RC1的资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“未接收到从资源接收者发来的颁发请求应答报文”),转第五步;如果收到了rc_issue_reply,则检查rc_issue_reply的格式、内容,如果格式错误则丢弃rc_issue_reply,资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“颁发请求应答报文格式错误”),转第五步;如果格式正确,检查rc_issue_reply报文内容,如果是拒绝颁发,则资源颁发者删除RC1,同时资源颁发者向资源交易应用客户端的显示模块发送操作失败消息以及操作失败的原因(原因为“资源接收者不同意证书颁发”),显示模块显示操作失败消息以及操作失败的原因,转第五步;如果rc_issue_reply中是同意颁发操作请求,则执行4.2.1.6;
4.2.1.6资源颁发者的资源交易模块依据资源交易结构,构造RC1的颁发交易报文rc_issue,rc_issue的内容包括资源颁发者(此为RC的颁发者)、资源接收者(此为RC1的接收者)、交易类型(此为RC1颁发)、交易内容(此为RC1的具体内容)、交易属性(包括传递属性、过期属性)、交易的证据(此为rc_issue_reply报文、RC的接收者发布的随机数+1),RC1的资源颁发者对交易的签名(交易签名也就是以数字签名技术对交易信息进行加密,是对交易发起者发送信息真实性的一个有效证明);资源颁发者将rc_issue通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.1.7;
4.2.1.7验证节点从资源颁发者接收rc_issue,运行资源证书交易智能合约,做如下检查;
4.2.1.7.1资源证书交易智能合约检查rc_issue中的资源颁发者签名是否正确,检查rc_issue的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且rc_issue的格式正确,且rc_issue之前未提交过,执行4.2.1.7.2,若资源颁发者签名不正确或rc_issue的格式不正确,则记录失败原因为“发布者签名不正确或交易格式错误”,执行4.2.1.7.5;若RC1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.1.7.5;
4.2.1.7.2资源证书交易智能合约检查该交易的证据(交易证据包含在资源颁发报文rc_issue中,此为资源接收方发送给资源颁发者的颁发请求报文应答rc_issue_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方(资源颁发者和资源接收者)同意认可的报文,即检查资源颁发请求应答报文rc_issue_reply格式、内容(是否为资源接收者同意颁发请求),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.1.7.3,否则记录失败原因为“交易证据不正确”,执行4.2.1.7.5;
4.2.1.7.3资源证书交易智能合约提取RC1颁发交易报文的交易内容(即RC1的具体内容),从中解析出资源证书中包含的IP地址前缀,检查该IP地址前缀是否与资源颁发者已颁发的资源证书中所包含的IP地址前缀存在冲突;如果不存在冲突转4.2.1.7.4,否则记录失败原因为“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,转4.2.1.7.5;
4.2.1.7.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本中,转4.2.1.8;
4.2.1.7.5资源证书交易智能合约验证未通过,将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.1.8若资源接收者的资源交易模块从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,转4.2.1.9;若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,转4.2.1.10;
4.2.1.9资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
4.2.1.9.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
4.2.1.9.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
4.2.1.9.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.11;
4.2.1.10资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.12。
4.2.1.11如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.12如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为未正确接收到RC1证书),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC资源证书的持有者(作为资源接收者)、预撤销资源证书RC,按4.2.2.1~4.2.2.8所述证书撤销方法撤销证书RC2:
4.2.2.1资源颁发者的资源交易模块根据RC2撤销的消息设置撤销RC2指令,撤销RC2指令包括RC资源证书的持有者(作为资源接收者),以及预撤销的资源证书RC2,并向显示模块发送RC2的具体内容,显示模块显示RC2的具体内容;
4.2.2.2资源颁发者与预撤销的RC2证书的持有者(作为资源接收者)执行双向授权,方法是:
4.2.2.2.1资源颁发者的资源交易模块检查RC2证书所在节点(令为Vrc2)在资源树中是否属于叶节点,方法是:
4.2.2.2.1.1令变量结点v为资源树的根结点V0;
4.2.2.2.1.2找到节点Vrc2,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC2,若相等,节点v1即为Vrc2,转4.2.2.2.1.4,若不相等,转4.2.2.2.1.3;
4.2.2.2.1.3令v为v的子证书标识指向的子节点(即v1);转4.2.2.2.1.2;
4.2.2.2.1.4检查Vrc2的子证书标识是否为空,若为空,则Vrc2为叶节点,转4.2.2.2.2执行具体的撤销操作;若Vrc2的子证书标识不为空,转4.2.2.2.1.5;
4.2.2.2.1.5此时Vrc2不是叶节点,需要等待证书持有者撤销完节点Vrc2下的资源子树,才能撤销节点Vrc2,执行4.2.2.2.1.6;
4.2.2.2.1.6令Vrc2为Vrc2的子证书标识指向的子节点,转4.2.2.2.1.4;
4.2.2.2.2资源颁发者的资源交易模块基于UDP构造RC2的撤销报文rc_revoke_request,rc_revoke_request内容包括待撤销证书标识(此时为RC2的标识)、随机数r、证书持有者(即资源接收者)地址,资源颁发者的资源交易模块向资源接收者(此处为RC2的持有者)的资源交易模块发送rc_revoke_request;资源颁发者初始化第二重发次数m2为0,启动RC2对应的撤销请求发送定时器;
4.2.2.2.3 RC2的资源颁发者检查撤销请求发送定时器是否超时,如果未超时,转4.2.2.2.4;如果撤销请求发送定时器超时且m2小于最大重发次数M,则令m2增1,向资源接收者的资源交易模块重发rc_revoke_request,资源颁发者启动RC2对应的颁发请求发送定时器,转4.2.2.2.4;如果m2等于M,则撤销请求失败,资源颁发者的资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“撤销请求报文发送超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.2.2.4 RC2的资源颁发者的资源交易模块判定是否接收到从资源接收者的资源交易模块发送来的撤销请求应答报文rc_revoke_reply,rc_revoke_reply包括资源接收者接收的报文(rc_revoke_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为“未接收到从资源接收者发来的撤销请求应答报文”),转第五步;如果收到了rc_revoke_reply,检查rc_revoke_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因(原因为“资源接收者发来的撤销请求应答报文格式错误”),转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“证书持有者不同意证书撤销”),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3 RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”),显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4 RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,rc_revoke包括资源颁发者(此为RC2的颁发者)、交易接收者(此为RC2的持有者)、交易类型(此为RC撤销)、交易内容(此为RC2的具体内容)、交易属性(此为空)、交易的证据(此为rc_revoke_reply报文、RC2的持有者发布的随机数+1);由RC2的资源颁发者对交易签名,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.2.5;
4.2.2.5验证节点从资源颁发者接收rc_revoke,资源证书交易智能合约做如下检查;
4.2.2.5.1资源证书交易智能合约检查该rc_revoke中的资源颁发者签名是否正确,检查rc_revoke的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且RC2撤销交易报文之前未提交过,执行4.2.2.5.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.2.5.5;若rc_revoke之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.2.5.5;
4.2.2.5.2资源证书交易智能合约检查撤销交易的证据(交易证据包含在证书撤销报文rc_revoke中,此为资源接收者发给资源颁发者的撤销请求报文rc_revoke_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方同意认可的报文(即检查撤销请求应答报文rc_revoke_reply格式、内容(是否为资源接收者同意撤销操作请求)),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.2.5.3,否则记录失败原因为“交易证据不正确”,执行4.2.2.5.5;
4.2.2.5.3资源证书交易智能合约查询分布式账本,检查RC2是否已经被颁发,即在分布式账本中可以查询到已颁发的资源证书RC2,如果通过检查(即在分布式账本中存在已经被颁发的RC2),执行4.2.2.5.4,否则记录失败原因为“预撤销的资源证书RC2不存在”;执行4.2.2.5.5;
4.2.2.5.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本中,转4.2.2.6;
4.2.2.5.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.2.6资源接收者的资源交易模块根据rc_revoke中的交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.7;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.8。
4.2.2.7如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.8如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为“资源删除失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.7所述证书更新方法更新证书RC3:
4.2.3.1 RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的RC3、RC3资源证书的持有者、RC3的标识,以及更新操作可更改的属性值(包括证书过期时间、整数序列号),如果拟更新的属性值不符合取值范围(如RC3过期时间早于RC3的现有过期时间值),则向显示模块发送报错信息,重新设置拟更新的属性值,转4.2.3.2。
4.2.3.2 RC3的资源颁发者与RC3证书资源的持有者(作为资源接收者)执行双向授权,具体如下:
4.2.3.2.1 RC3的资源颁发者的资源交易模块基于UDP构造RC3的更新请求报文rc_overwrite1_request,rc_overwrite1_request内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文rc_overwrite1_request;资源颁发者的资源交易模块初始化第三重发次数m3为0,针对RC3,启动RC3对应的更新请求发送定时器;
4.2.3.2.2 RC3的资源颁发者的资源交易模块检查RC3的更新请求发送定时器是否超时,如果未超时,转4.2.3.2.3;如果RC3的更新请求发送定时器超时且m3小于最大重发次数M,则令m3增1,资源颁发者的资源交易模块重发RC3的rc_overwrite1_request,启动RC3的更新请求发送定时器,转4.2.3.2.2;如果RC3的更新请求发送定时器超时且m3等于M,则RC3的更新请求失败,向显示模块发送“操作失败”,以及操作失败的原因(原因为“更新请求报文发送失败,超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3.2.3RC3的资源颁发者的资源交易模块判定是否从证书持有者的资源交易模块接收到RC3的更新请求应答报文rc_overwrite1_reply,rc_overwrite1_reply内容包括资源接收者接收的报文(rc_overwriter1_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为“未收到从资源接收者资源交易模块发来的更新请求应答报文”),转第五步;如果收到rc_overwrite1_reply,检查rc_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为“更新请求应答报文格式错误”),转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因(原因为“证书持有者不同意该操作”),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3 RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,rc_overwrite1包括资源颁发者(此时为RC3的颁发者)、资源接收者(此时为RC3的持有者)、交易类型(此时为RC3更新)、交易内容(此时为新的RC3’内容(即待更新的RC3证书更新后内容)、交易属性(包括传递属性、过期属性)、交易的证据(此时为rc_overwrite1_reply报文、RC3的持有者发布的随机数+1),由RC3的资源颁发者对交易签名;RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.3.4;
4.2.3.4验证节点从RC3的资源颁发者接收rc_overwrite1(修改过期时间或证书序列号),资源证书交易智能合约做如下检查;
4.2.3.4.1资源证书交易智能合约检查rc_overwrite1中资源颁发者签名是否正确,检查从资源颁发者发来的资源证书更新交易报文rc_overwrite1的格式是否正确以及是否之前提交过(通过检查分布式账本中的交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且资源证书RC更新交易报文rc_overwrite1之前未提交过,执行4.2.3.4.2,若资源颁发者签名不正确或资源更新交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易报文格式错误”,执行4.2.3.4.5;若资源证书更新交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.3.4.5;
4.2.3.4.2资源证书交易智能合约检查该交易的证据(交易的证据包含在资源更新报文rc_overwrite1中,此为资源接收者发给资源颁发者的更新请求应答报文rc_overwrite1_reply、RC的接收者发布的随机数+1)是否正确,即检查交易是否有参与交易的双方同意认可的报文(检查更新请求应答报文rc_overwrite1_reply格式、内容(是否为资源接收者同意修改操作请求)),报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.3.4.3,否则记录失败原因为“交易证据不正确”,执行4.2.3.4.5;
4.2.3.4.3资源证书交易智能合约查询分布式账本,检查资源证书RC3是否已经被颁发,即在区块链分布式账本上可以查询到已颁发的资源证书RC3,如果通过检查(即存在已经被颁发的RC3)则执行4.2.3.4.4,否则记录失败原因为“预修改的资源证书RC3不存在”;执行4.2.3.4.5;
4.2.3.4.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.3.5;
4.2.3.4.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.3.5若资源接收者的资源交易模块根据rc_overwrite1中的交易类型(此为更新)和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(修改前为RC3的信息)用RC3’的信息替换,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.7。
4.2.3.6如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.7如果RC3的资源颁发者收到交易失败消息,则向显示模块发送“操作失败”以及操作失败的原因(原因为“资源接收者修改证书失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.4此时资源交易应用客户端的资源交易模块从资源颁发者收到涉及资源分配调整的RC(令为RC4)修改的消息,资源颁发者的资源交易模块需撤销旧证书RC4,再根据修改消息设置颁发新证书(令为RC5),方法是:
4.2.4.1按4.2.2所述证书撤销方法撤销RC4;
4.2.4.2根据修改消息设置颁发新证书(令为RC5)指令,按4.2.1所述证书颁发方法颁发RC5;转第五步。
4.2.5此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA1)颁发的消息,按4.2.5.1~4.2.5.8所述ROA颁发方法颁发ROA1:
4.2.5.1 ROA1的资源颁发者的资源交易模块设置ROA1颁发指令,ROA1颁发指令内容包括预颁发的IP地址前缀、AS号;
4.2.5.2 ROA1的资源颁发者的资源交易模块根据ROA1颁发指令中IP地址前缀和AS号,检查ROA1中包含的IP地址前缀和AS号是否是ROA1的资源颁发者所拥有,即检查预颁发的ROA1中包含的IP地址前缀和AS号是否包含在ROA1的资源颁发者所持有的资源证书所绑定的IP地址前缀和AS号中,若不包含,则冲突,转4.2.5.2.2,若包含,则不冲突,转4.2.5.2.1;
4.2.5.2.1 ROA1的资源颁发者的资源交易模块检查预颁发的IP地址前缀和AS号资源是否已经被颁发,查询分布式账本中记载的ROA1的资源颁发者ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀、AS号与预颁发的IP地址前缀、AS号是否重叠,若重叠,则发生冲突(说明已颁发过),转4.2.5.2.3;若不冲突,转4.2.5.3;
4.2.5.2.2 ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“资源冲突,资源颁发者持有的IP地址前缀和AS号资源并不包含预颁发的ROA中包含的IP地址前缀和AS号”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转第五步。
4.2.5.2.3 ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“预颁发的ROA中包含的IP地址前缀和AS号已经被颁发”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转4.2.5.2.4;
4.2.5.2.4 ROA1的资源颁发者的资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,则转第五步,否则转4.2.5.2.5;
4.2.5.2.5 ROA1的资源颁发者的资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与ROA1冲突的已颁发ROA),若接收到撤销消息,则撤销与预颁发ROA1产生冲突的已颁发ROA,转4.2.5.2;若未接收到撤销消息,转第五步。
4.2.5.3如果检查结果是未发生冲突,ROA1的资源颁发者的资源交易模块将ROA1颁发指令中的IP地址前缀和AS号发送给资源颁发者的资源证书生成模块;资源颁发者的资源证书生成模块根据ROA1的颁发指令内容(IP地址前缀,AS号)生成ROA1。
4.2.5.4 ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空);由ROA1的资源颁发者对交易签名,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者和验证节点,转4.2.5.5;
4.2.5.5验证节点从ROA1的资源颁发者接收roa_issue,资源证书交易智能合约做如下检查;
4.2.5.5.1资源证书交易智能合约检查roa_issue中的资源颁发者签名是否正确,检查roa_issue的格式是否正确以及是否之前提交过(通过检查分布式账本中交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且ROA1颁发交易报文之前未提交过,执行4.2.5.5.2,若资源颁发者签名不正确或资源颁发交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.5.5.4;若ROA1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.5.5.4;
4.2.5.5.2资源证书交易智能合约提取ROA1的资源颁发者提交的颁发交易报文roa_issue中的交易内容(即ROA1的具体内容)中包含的IP地址前缀,检查该IP地址前缀是否已经被资源颁发者颁发,方法是:查询分布式账本中记载的ROA1的资源颁发者颁发ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀与预颁发的IP地址前缀是否重叠,若重叠,则发生冲突;记录失败原因是“预颁发的IP地址资源与已颁发的ROA中包含的IP地址资源冲突”,转4.2.5.5.4;若不重叠则转4.2.5.5.3;
4.2.5.5.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.5.6;
4.2.5.5.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由验证节点签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.5.6若资源接收者的资源交易模块从roa_issue中解析得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.7;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.8。
4.2.5.7如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.8如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为“资源接收者获取交易内容失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.6所述ROA撤销方法撤销ROA2:
4.2.6.1 ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2 ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.6.3;
4.2.6.3.验证节点从ROA2的资源颁发者接收roa_revoke,资源证书交易智能合约做如下检查;
4.2.6.3.1资源证书交易智能合约检查roa_revoke中的资源颁发者签名是否正确,检查roa_revoke的格式是否正确以及是否之前提交过(通过检查分布式账本中交易记录查看之前是否提交过);若资源颁发者签名正确且交易报文格式正确,且ROA2撤销交易报文之前未提交过,执行4.2.6.3.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.6.3.4;若ROA2撤销交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.6.3.4;
4.2.6.3.2资源证书交易智能合约查询分布式账本,检查ROA2是否已经被颁发,即在分布式账本上可以查询到已颁发的ROA2,如果通过检查(即存在已经被颁发的ROA2)则执行4.2.6.3.3,否则记录失败原因是“预撤销的ROA2不存在”;执行4.2.6.3.4
4.2.6.3.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.6.4;
4.2.6.3.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果(含失败原因)由签名后发送给资源颁发者,使得资源颁发者得知资源交易验证失败;转第五步;
4.2.6.4若资源接收者的资源交易模块从roa_revoke中解析得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.5;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.6。
4.2.6.5如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.6如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为“资源接收者删除ROA2失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA(令为ROA3)修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
4.2.7.2根据修改内容生成新的ROA3’,按4.3.5所述ROA颁发方法颁发ROA3’,转第五步;
第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。
Claims (14)
1.一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于包括以下步骤:
第一步,构建资源公钥基础设施RPKIB系统,RPKIB系统由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点组成;
区块链网络与资源颁发者、资源接收者、验证节点相连,资源颁发者、资源接收者与区块链网络相连后即成为区块链网络的一个普通节点;验证节点是区块链网络中的与普通节点不同的另一类节点,是对资源颁发者发起的资源交易进行验证的服务器,其上安装有资源证书交易智能合约;资源颁发者与资源接收者将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中;分布式账本存在于所有区块链节点中;
资源颁发者是服务器,其上安装有资源交易应用客户端,资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方的同意之后,资源颁发者将交易发送给区块链网络;
资源接收者是服务器,其上安装有资源交易应用客户端;
资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成;
资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书生成模块根据预颁发的ROA信息对资源接收者所持有的资源创建ROA,一个有效的ROA包括三个部分:一个AS号、一个IP地址前缀列表、对IP地址前缀进行限制的可选内容;资源证书生成模块将生成的RC和ROA发送给资源交易模块;
资源交易模块与资源颁发者或资源接收者、资源证书生成模块、显示模块、区块链网络相连;资源交易模块从资源证书生成模块接收RC或ROA,从资源颁发者接收关于RC或ROA的操作指令,通过区块链网络进行交易,为资源颁发者提供RC或ROA资源交易的各种操作服务,一个操作即为RPKIB中的一笔交易;交易成功时资源交易模块将成功消息发送到显示模块,交易不成功时资源交易模块将冲突检测到的冲突原因、操作失败原因、交易结果发送到显示模块,在撤销操作时将RC、ROA发送给显示模块;
显示模块与资源交易模块相连,它从资源交易模块接收交易成功消息或交易不成功时的冲突原因、操作失败原因、交易结果,并显示出来;在撤销操作时从资源交易模块接收RC、ROA,并将RC、ROA的具体内容显示出来;
验证节点是对资源颁发者发给区块链的资源交易进行验证的服务器,其上安装有资源证书交易智能合约;验证节点运行智能合约对交易进行验证,验证交易的签名、交易的内容是否符合资源颁发者的权限,交易的内容是否与当前已分配的资源没有冲突,将通过验证的交易记录到分布式账本中;
资源证书交易智能合约由资源颁发者、资源接收者共同制定,是以数字形式定义的一段计算机可读的代码,用于解决资源颁发者和资源接收者之间的交易行为;
第二步,定义资源交易结构,资源交易结构包括交易发起者,交易接收者,交易类型,交易内容,交易属性,交易证据、交易发起者给出的交易签名;交易发起者指资源颁发者地址,交易接收者即为资源接收者地址;交易签名指在区块链网络中由交易发起者对所发起的交易所进行的数字签名;交易类型包括七种,分别为:RC颁发、RC撤销、RC更新、RC修改,ROA颁发、ROA撤销、ROA修改;交易内容是与交易相对应的RC或ROA的内容;交易属性包括传递属性、过期属性;传递属性表示分配给某一机构的IP地址资源是否可以再分配到另一个资源授权实体,传递属性是0,表示资源颁发者不希望将分配给某个机构的IP地址前缀资源进行子分配,此时该机构称为终端节点,其所拥有的IP地址资源和AS号码资源不可再分,且只有终端节点才可以颁发ROA;传递属性是1,表示资源颁发者希望将分配给某个机构的IP地址前缀资源进行子分配;过期属性显示IP地址资源是否具有租约期限,过期属性为0表示租约时间未到期,过期属性为1表示租约时间到期,应将IP地址资源释放返回原资源授权实体;交易证据表示资源颁发者和资源接收者两次签名,双方同意的证据,由双方交易的报文以及随机数构成;交易发起者给出的交易签名显示交易发起者和交易接收者就此交易达成协议;ROA相关操作交易的发起者给出的交易签名字段为NULL;
第三步,定义资源树,资源树由资源交易模块根据有效的资源证书构建,资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP地址前缀,证书中包含的AS号;节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点;证书中包含的IP地址前缀,证书中包含的AS号,均由资源交易模块通过解析证书得到;资源树保存在区块链分布式账本中,由资源颁发者和资源接收者共同维护;
第四步,基于区块链的资源公钥基础设施系统RPKIB对资源颁发者与资源接收者两者之间的资源操作进行双向授权,在每一种双向授权通过后资源颁发者与资源接收者进行与资源操作相应的交易;当验证节点收到相应的交易报文时,运行资源证书交易智能合约对相应的交易进行验证,方法是:
4.1资源交易模块初始化资源树的根节点,令根节点为V0:以互联网注册管理机构RIR作为区块链的创世纪者创建区块链的第一个区块,将RIR所拥有的资源证书作为资源树的根节点V0:V0的资源颁发者和资源接收者均为RIR的IP地址,V0的资源证书为RIR所持有的资源证书,V0的父证书标识为NULL,V0的子证书标识为NULL,V0的IP地址前缀为RIR所拥有的IP地址前缀,AS号为RIR所拥有的AS号;把V0记录到分布式账本中;
4.2资源交易应用客户端的资源交易模块从资源颁发者接收消息,若接收到资源证书RC1的颁发消息,转4.2.1;若接收到资源证书RC2的撤消消息,转4.2.2;若接收到资源证书RC3更新的消息,转4.2.3;若接收到涉及资源分配调整的RC4修改的消息,转4.2.4;若接收到ROA1颁发的消息,转4.2.5;若接收到ROA2撤销的消息,转4.2.6;若接收到ROA3修改的消息,转4.2.7:
4.2.1此时资源交易模块从所属资源颁发者接收到RC1颁发消息,RC1颁发消息中包含资源接收者的IP地址即IP接收1、预颁发给资源接收者的IP地址前缀即IP前缀1、AS号即AS1,按4.2.1.1~4.2.1.12所述证书颁发方法颁发证书RC1:
4.2.1.1资源交易模块设置一条RC1颁发指令,RC1颁发指令包括IP接收1,IP前缀1、AS1;
4.2.1.2资源交易模块按照RC1颁发指令内容进行以下操作:
4.2.1.2.1资源交易模块根据RC1颁发指令中的IP前缀1、AS1,查找资源树,检查预颁发的RC1证书是否与资源树中已颁发的RC证书冲突,方法是:
4.2.1.2.1.1检查预颁发的IP前缀1和AS1是不是由资源颁发者所拥有,令资源颁发者IP地址为IP颁发1,方法是:
4.2.1.2.1.1.1资源颁发者的资源交易模块解析自身持有的资源证书RC颁发,得到RC颁发中包含的IP地址前缀和AS号;
4.2.1.2.1.1.2资源颁发者的资源交易模块检查预颁发的IP前缀1和AS1是不是包含在RC颁发包含的IP地址前缀和AS号中,若包含在RC颁发包含的IP地址前缀和AS号中,说明预颁发的IP前缀1和AS1由资源颁发者所拥有,不冲突,转4.2.1.2.1.2;若不包含在RC颁发中,则预颁发的IP前缀1和AS1不被资源颁发者所拥有,冲突,转4.2.1.2.1.3;
4.2.1.2.1.2检查预颁发的RC1证书中包含的IP前缀1和AS1是否已经被颁发,即检查资源颁发者已经颁发的资源证书中包含的IP地址前缀和AS号是否包含IP前缀1和AS1,若检查结果为“未被颁发”,转4.2.1.3;若检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,转4.2.1.2.1.4;
4.2.1.2.1.3资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因,冲突原因为“预颁发的RC证书中包含的IP地址前缀资源和AS号不被当前证书颁发者所拥有”,转第五步;
4.2.1.2.1.4资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因,冲突原因为“预颁发的RC证书中包含的IP地址前缀和AS号已经被颁发”,转4.2.1.2.2;
4.2.1.2.2资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步;否则转4.2.1.2.3;
4.2.1.2.3资源交易模块判定是否从资源颁发者接收到撤销与预颁发的RC1产生冲突的已颁发资源的撤销消息,若接收到撤销消息,撤销与预颁发RC1相冲突的已颁发RC;若未接收到撤销消息,转第五步;
4.2.1.3资源交易模块将RC1颁发指令中的IP前缀1和AS1发送给资源证书生成模块,转4.2.1.4;
4.2.1.4资源证书生成模块根据从资源交易模块接收的IP前缀1和AS1,生成资源证书,将此证书命名为RC1;
4.2.1.5RC1的资源颁发者和资源接收者进行双向授权,具体如下:
4.2.1.5.1RC1的资源颁发者的资源交易模块基于UDP构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块;RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转4.2.1.5.3;如果颁发请求发送定时器超时且m小于最大重发次数M,M为正整数,则令m增1,向资源接收者重发rc_issue_request,再次启动RC1对应的颁发请求发送定时器,转4.2.1.5.3;如果颁发请求发送定时器超时且m等于M,则颁发请求失败,资源颁发者删除RC1,并由资源交易模块将“操作失败以及操作失败的原因,原因为发送超时”发送给显示模块进行显示,转第五步;
4.2.1.5.3RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文rc_issue_reply;如果未接收到,RC1的资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因,原因为“未接收到从资源接收者发来的颁发请求应答报文”,转第五步;如果收到了rc_issue_reply,则检查rc_issue_reply的格式、内容,如果格式错误则丢弃rc_issue_reply,资源交易模块向显示模块发送失败消息以及操作失败的原因,原因为“颁发请求应答报文格式错误”,转第五步;如果格式正确,检查rc_issue_reply报文内容,如果是拒绝颁发,则资源颁发者删除RC1,同时资源颁发者向资源交易应用客户端的显示模块发送操作失败消息以及操作失败的原因,原因为“资源接收者不同意证书颁发”,显示模块显示操作失败消息以及操作失败的原因,转第五步;如果rc_issue_reply中是同意颁发操作请求,则执行4.2.1.6;
4.2.1.6资源颁发者的资源交易模块依据资源交易结构,构造RC1的颁发交易报文rc_issue,资源颁发者将rc_issue通过区块链网络发送给资源接收者的资源交易模块和验证节点,所述rc_issue中包括RC1的资源颁发者对交易的签名;
4.2.1.7验证节点从资源颁发者接收rc_issue,运行资源证书交易智能合约,做如下检查;
4.2.1.7.1资源证书交易智能合约检查rc_issue中的资源颁发者签名是否正确,检查rc_issue的格式是否正确以及是否之前提交过;若资源颁发者签名正确且rc_issue的格式正确,且rc_issue之前未提交过,执行4.2.1.7.2,若资源颁发者签名不正确或rc_issue的格式不正确,则记录失败原因为“发布者签名不正确或交易格式错误”,执行4.2.1.7.5;若RC1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.1.7.5;
4.2.1.7.2资源证书交易智能合约检查该交易的证据是否正确,即检查资源颁发请求应答报文rc_issue_reply格式、内容,报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.1.7.3,否则记录失败原因为“交易证据不正确”,执行4.2.1.7.5;
4.2.1.7.3资源证书交易智能合约提取RC1颁发交易报文的交易内容,从中解析出资源证书中包含的IP地址前缀,检查该IP地址前缀是否与资源颁发者已颁发的资源证书中所包含的IP地址前缀存在冲突;如果不存在冲突转4.2.1.7.4,否则记录失败原因为“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,转4.2.1.7.5;
4.2.1.7.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本中,转4.2.1.8;
4.2.1.7.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果和失败原因由验证节点签名后发送给资源颁发者,转第五步;
4.2.1.8若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,转4.2.1.9;若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,转4.2.1.10;
4.2.1.9资源接收者的资源交易模块为资源树创建一个新的节点即RC1节点,并向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.11;
4.2.1.10资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.12;
4.2.1.11如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.12如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因,原因为“未正确接收到RC1证书”,显示模块显示“操作失败”消息和操作失败的原因,转第五步;
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC2撤销的消息,RC2撤销的消息包括RC资源证书的持有者、预撤销资源证书RC,按4.2.2.1~4.2.2.8所述证书撤销方法撤销证书RC2,此时RC资源证书的持有者作为资源接收者:
4.2.2.1资源颁发者的资源交易模块根据RC2撤销的消息设置撤销RC2指令,撤销RC2指令包括RC资源证书的持有者,以及预撤销的资源证书RC2,并向显示模块发送RC2的具体内容,显示模块显示RC2的具体内容;
4.2.2.2资源颁发者与预撤销的RC2证书的持有者执行双向授权,方法是:
4.2.2.2.1资源颁发者的资源交易模块检查RC2证书所在节点即Vrc2在资源树中是否属于叶节点,方法是:
4.2.2.2.1.1令变量结点v为资源树的根结点V0;
4.2.2.2.1.2找到节点Vrc2,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC2,若相等,节点v1即为Vrc2,转4.2.2.2.1.4,若不相等,转4.2.2.2.1.3;
4.2.2.2.1.3令v为v1;转4.2.2.2.1.2;
4.2.2.2.1.4检查Vrc2的子证书标识是否为空,若为空,则Vrc2为叶节点,转4.2.2.2.2执行具体的撤销操作;若Vrc2的子证书标识不为空,转4.2.2.2.1.5;
4.2.2.2.1.5此时Vrc2不是叶节点,需要等待证书持有者撤销完节点Vrc2下的资源子树,才能撤销节点Vrc2,执行4.2.2.2.1.6;
4.2.2.2.1.6令Vrc2为Vrc2的子证书标识指向的子节点,转4.2.2.2.1.4;
4.2.2.2.2资源颁发者的资源交易模块基于UDP构造RC2的撤销报文rc_revoke_request,资源颁发者的资源交易模块向资源接收者即RC2的持有者的资源交易模块发送rc_revoke_request;资源颁发者初始化第二重发次数m2为0,启动RC2对应的撤销请求发送定时器;
4.2.2.2.3RC2的资源颁发者检查撤销请求发送定时器是否超时,如果未超时,转4.2.2.2.4;如果撤销请求发送定时器超时且m2小于最大重发次数M,则令m2增1,向资源接收者的资源交易模块重发rc_revoke_request,资源颁发者启动RC2对应的颁发请求发送定时器,转4.2.2.2.4;如果m2等于M,则撤销请求失败,资源颁发者的资源交易模块向显示模块发送“操作失败”以及操作失败的原因,原因为“撤销请求报文发送超时”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.2.4RC2的资源颁发者的资源交易模块判定是否接收到从资源接收者的资源交易模块发送来的撤销请求应答报文rc_revoke_reply,如果未接收到,资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因,原因为“未接收到从资源接收者发来的撤销请求应答报文”,转第五步;如果收到了rc_revoke_reply,检查rc_revoke_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因,原因为“资源接收者发来的撤销请求应答报文格式错误”,转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因,原因为“证书持有者不同意证书撤销”,显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点v1是否在资源树中是叶节点,即判定v1的子证书标识域的值是否为NULL,如果v1是叶节点,转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因,原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.2.5;所述撤销交易报文rc_revoke中包括RC2的资源颁发者对交易的签名;
4.2.2.5验证节点从资源颁发者接收rc_revoke,资源证书交易智能合约做如下检查;
4.2.2.5.1资源证书交易智能合约检查该rc_revoke中的资源颁发者签名是否正确,检查rc_revoke的格式是否正确以及是否之前提交过;若资源颁发者签名正确且交易报文格式正确,且RC2撤销交易报文之前未提交过,执行4.2.2.5.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.2.5.5;若rc_revoke之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.2.5.5;
4.2.2.5.2资源证书交易智能合约检查撤销交易的证据是否正确,即检查撤销请求应答报文rc_revoke_reply格式、内容,报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复的;如果通过检查执行4.2.2.5.3,否则记录失败原因为“交易证据不正确”,执行4.2.2.5.5;
4.2.2.5.3资源证书交易智能合约查询分布式帐本,检查RC2是否已经被颁发,即在分布式帐本中可以查询到已颁发的资源证书RC2,如果在分布式帐本中存在已经被颁发的RC2,执行4.2.2.5.4,否则记录失败原因为“预撤销的资源证书RC2不存在”;执行4.2.2.5.5;
4.2.2.5.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.2.6;
4.2.2.5.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果和失败原因由验证节点签名后发送给资源颁发者,转第五步;
4.2.2.6资源接收者的资源交易模块根据rc_revoke中的交易类型和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除,此时交易成功;资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.7;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.8;4.2.2.7如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.8如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因,原因为“资源删除失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.7所述证书更新方法更新证书RC3:
4.2.3.1RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的RC3、RC3资源证书的持有者、RC3的标识,以及更新操作可更改的属性值,如果拟更新的属性值不符合取值范围,则向显示模块发送报错信息,重新设置拟更新的属性值,转4.2.3.2;
4.2.3.2RC3的资源颁发者与RC3证书资源的持有者即资源接收者执行双向授权,具体如下:
4.2.3.2.1RC3的资源颁发者的资源交易模块基于UDP构造RC3的更新请求报文rc_overwrite1_request,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送rc_overwrite1_request;资源颁发者的资源交易模块初始化第三重发次数m3为0,针对RC3,启动RC3对应的更新请求发送定时器;
4.2.3.2.2RC3的资源颁发者的资源交易模块检查RC3的更新请求发送定时器是否超时,如果未超时,转4.2.3.2.3;如果RC3的更新请求发送定时器超时且m3小于最大重发次数M,则令m3增1,资源颁发者的资源交易模块重发RC3的rc_overwrite1_request,启动RC3的更新请求发送定时器,转4.2.3.2.2;如果RC3的更新请求发送定时器超时且m3等于M,则RC3的更新请求失败,向显示模块发送“操作失败”,以及操作失败的原因,原因为“更新请求报文发送失败,超时”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.3.2.3RC3的资源颁发者的资源交易模块判定是否从证书持有者的资源交易模块接收到RC3的更新请求应答报文rc_overwrite1_reply,如果未接收到,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因,原因为“未收到从资源接收者资源交易模块发来的更新请求应答报文”,转第五步;如果收到rc_overwrite1_reply,检查rc_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因,原因为“更新请求应答报文格式错误”,转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因,原因为“证书持有者不同意该操作”,显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块和验证节点;所述rc_overwrite1中包括RC3的资源颁发者对交易的签名;
4.2.3.4验证节点从RC3的资源颁发者接收rc_overwrite1,资源证书交易智能合约做如下检查;
4.2.3.4.1资源证书交易智能合约检查rc_overwrite1中资源颁发者签名是否正确,检查rc_overwrite1的格式是否正确以及是否之前提交过;若资源颁发者签名正确且交易报文格式正确,且资源证书RC更新交易报文rc_overwrite1之前未提交过,执行4.2.3.4.2,若资源颁发者签名不正确或资源更新交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易报文格式错误”,执行4.2.3.4.5;若资源证书更新交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.3.4.5;
4.2.3.4.2资源证书交易智能合约检查该交易的证据是否正确,即检查更新请求应答报文rc_overwrite1_reply格式、内容,报文中双方的随机数是否与当前保存的双方已经接收过的随机数没有重复;如果通过检查执行4.2.3.4.3,否则记录失败原因为“交易证据不正确”,执行4.2.3.4.5;
4.2.3.4.3资源证书交易智能合约查询分布式账本,检查资源证书RC3是否已经被颁发,即在分布式账本上可以查询到已颁发的资源证书RC3,如果存在已经被颁发的RC3,执行4.2.3.4.4,否则记录失败原因为“预修改的资源证书RC3不存在”,执行4.2.3.4.5;
4.2.3.4.4资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.3.5;
4.2.3.4.5资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果和失败原因由验证节点签名后发送给资源颁发者,转第五步;
4.2.3.5若资源接收者的资源交易模块根据rc_overwrite1中的交易类型和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域用RC3’的信息替换,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.7;
4.2.3.6如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.7如果RC3的资源颁发者收到交易失败消息,则向显示模块发送“操作失败”以及操作失败的原因,原因为“资源接收者修改证书失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.4此时资源交易应用客户端的资源交易模块从资源颁发者收到涉及资源分配调整的RC4修改的消息,资源颁发者的资源交易模块需撤销旧证书RC4,再根据修改消息设置颁发新证书即RC5,方法是:
4.2.4.1按4.2.2所述证书撤销方法撤销RC4;
4.2.4.2根据修改消息设置颁发新证书RC5指令,按4.2.1所述证书颁发方法颁发RC5;转第五步;
4.2.5此时资源交易客户端的资源交易模块从资源颁发者收到ROA1颁发的消息,按4.2.5.1~4.2.5.8所述ROA颁发方法颁发ROA1:
4.2.5.1ROA1的资源颁发者的资源交易模块设置ROA1颁发指令,ROA1颁发指令内容包括预颁发的IP地址前缀、AS号;
4.2.5.2ROA1的资源颁发者的资源交易模块根据ROA1颁发指令中IP地址前缀和AS号,检查ROA1中包含的IP地址前缀和AS号是否是ROA1的资源颁发者所拥有,即检查预颁发的ROA1中包含的IP地址前缀和AS号是否包含在ROA1的资源颁发者所持有的资源证书所绑定的IP地址前缀和AS号中,若不包含,则冲突,转4.2.5.2.2,若包含,则不冲突,转4.2.5.2.1;
4.2.5.2.1ROA1的资源颁发者的资源交易模块检查预颁发的IP地址前缀和AS号资源是否已经被颁发,查询分布式账本中记载的ROA1的资源颁发者ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀、AS号与预颁发的IP地址前缀、AS号是否重叠,若重叠,则发生冲突,转4.2.5.2.3;若不冲突,转4.2.5.3;
4.2.5.2.2ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因,原因为“资源冲突,资源颁发者持有的IP地址前缀和AS号资源并不包含预颁发的ROA中包含的IP地址前缀和AS号”,显示模块显示“操作失败”消息,消息中包含操作失败的原因,转第五步;
4.2.5.2.3ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因,原因为“预颁发的ROA中包含的IP地址前缀和AS号已经被颁发”,显示模块显示“操作失败”消息,消息中包含操作失败的原因;
4.2.5.2.4ROA1的资源颁发者的资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步,否则转4.2.5.2.5;
4.2.5.2.5ROA1的资源颁发者的资源交易模块判定是否从资源颁发者接收到撤销与ROA1冲突的已颁发ROA的撤销消息,若接收到撤销消息,则撤销与预颁发ROA1产生冲突的已颁发ROA,转4.2.5.2;若未接收到撤销消息,转第五步;
4.2.5.3如果检查结果是未发生冲突,ROA1的资源颁发者的资源交易模块将ROA1颁发指令中的IP地址前缀和AS号发送给资源颁发者的资源证书生成模块;资源颁发者的资源证书生成模块根据ROA1的颁发指令内容生成ROA1;
4.2.5.4ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者和验证节点;所述roa_issue中包括ROA1的资源颁发者对交易的签名;
4.2.5.5验证节点从ROA1的资源颁发者接收roa_issue,资源证书交易智能合约做如下检查;
4.2.5.5.1资源证书交易智能合约检查roa_issue中的资源颁发者签名是否正确,检查roa_issue的格式是否正确以及是否之前提交过;若资源颁发者签名正确且交易报文格式正确,且ROA1颁发交易报文之前未提交过,执行4.2.5.5.2,若资源颁发者签名不正确或资源颁发交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.5.5.4;若ROA1颁发交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.5.5.4;
4.2.5.5.2资源证书交易智能合约提取ROA1的资源颁发者提交的颁发交易报文roa_issue中的交易内容中包含的IP地址前缀,检查该IP地址前缀是否已经被资源颁发者颁发,方法是:查询分布式账本中记载的ROA1的资源颁发者颁发ROA的交易记录,得到ROA1的资源颁发者已颁发的所有ROA,对比已颁发的所有ROA中包含的IP地址前缀与预颁发的IP地址前缀是否重叠,若重叠,则发生冲突;记录失败原因是“预颁发的IP地址资源与已颁发的ROA中包含的IP地址资源冲突”,转4.2.5.5.4;若不重叠则转4.2.5.5.3;
4.2.5.5.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.5.6;
4.2.5.5.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果和失败原因由验证节点签名后发送给资源颁发者;转第五步;
4.2.5.6若资源接收者的资源交易模块从roa_issue中解析得到交易类和交易内容,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.7;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.8;
4.2.5.7如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.8如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因,原因为“资源接收者获取交易内容失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA2撤销的消息,则按4.2.6.1~4.2.6.6所述ROA撤销方法撤销ROA2:
4.2.6.1ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点;所述roa_revoke中有ROA2的资源颁发者对交易签名;
4.2.6.3.验证节点从ROA2的资源颁发者接收roa_revoke,资源证书交易智能合约做如下检查;
4.2.6.3.1资源证书交易智能合约检查roa_revoke中的资源颁发者签名是否正确,检查roa_revoke的格式是否正确以及是否之前提交过;若资源颁发者签名正确且交易报文格式正确,且ROA2撤销交易报文之前未提交过,执行4.2.6.3.2,若资源颁发者签名不正确或资源撤销交易报文格式不正确,则记录失败原因是“发布者签名不正确或交易格式错误”,执行4.2.6.3.4;若ROA2撤销交易报文之前已经提交过,记录失败原因为“该交易报文之前已经提交过”,转4.2.6.3.4;
4.2.6.3.2资源证书交易智能合约查询分布式账本,检查ROA2是否已经被颁发,即在分布式账本上可以查询到已颁发的ROA2,如果存在已经被颁发的ROA2,执行4.2.6.3.3;否则记录失败原因是“预撤销的ROA2不存在”,执行4.2.6.3.4;
4.2.6.3.3资源证书交易智能合约验证通过,验证节点将交易记录到分布式账本,转4.2.6.4;
4.2.6.3.4资源证书交易智能合约验证未通过,验证节点将交易检查失败的结果和失败原因由验证节点签名后发送给资源颁发者,转第五步;
4.2.6.4若资源接收者的资源交易模块从roa_revoke中解析得到交易类型为ROA2撤销,且交易内容为ROA2,资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.5;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.6;
4.2.6.5如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.6如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因,原因为“资源接收者删除ROA2失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA3修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
4.2.7.2根据修改内容生成新的ROA3’,按4.3.5所述ROA颁发方法颁发ROA3’,转第五步;
第五步,转4.2。
2.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和AS扩展标识符。
3.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.1.2.1.2步所述检查预颁发的RC1证书中包含的IP前缀1和AS1是否已经被颁发的方法是检查资源颁发者已经颁发的资源证书中包含的IP地址前缀和AS号是否包含IP前缀1和AS1,具体方法是:
4.2.1.2.1.2.1令节点变量v=V0;
4.2.1.2.1.2.2检查v的子证书标识域中的值,若为NULL,检查结果为“未被颁发”,结束;若不为NULL,则找到资源颁发者所在节点,方法是:由v的子证书标识域中的值得到子节点v1,判定v1的资源证书域的值是否就是资源颁发者持有的RC1,若相等,节点v1即为资源颁发者所在节点,转4.2.1.2.1.2.4,若不相等,转4.2.1.2.1.2.3;
4.2.1.2.1.2.3令v为v1,转4.2.1.2.1.2.2;
4.2.1.2.1.2.4通过v1节点的子证书标识域得到v1的子节点v2,资源颁发者的资源交易模块解析子节点v2持有的资源证书RCv2,对比RCv2中包含的IP地址前缀、AS号与预颁发的IP前缀1和AS1是否重叠,若重叠,说明预颁发的IP前缀1和AS1已经被颁发,产生冲突,检查结果为“预颁发的IP前缀1和AS1已经被颁发,产生冲突”,结束;若没有重叠部分,则说明预颁发的IP前缀1和AS1还未被颁发,检查结果为“尚未颁发”,结束。
4.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.1.2.3步所述撤销与预颁发RC1相冲突的已颁发RC采用的方法是4.2.2所述的证书撤销方法。
5.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述最大重发次数M小于等于16。
6.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.1.9步所述资源接收者的资源交易模块为资源树创建RC1节点的方法是:
4.2.1.9.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点;
4.2.1.9.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
7.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述rc_issue_request内容包括颁发的证书、父证书即资源颁发者所拥有的证书标识、随机数r、资源接收者地址;所述rc_issue_reply内容包括接收的报文、是否同意资源颁发者操作、随机数;所述rc_issue的内容包括资源颁发者即RC1的颁发者、资源接收者RC1的接收者、交易类型即RC1颁发、交易内容即RC1的具体内容、交易属性即传递属性和过期属性、交易的证据即rc_issue_reply报文、RC的接收者发布的随机数+1,RC1的资源颁发者对交易的签名。
8.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述rc_revoke_request内容包括待撤销证书标识、随机数r、证书持有者地址;所述rc_revoke_reply内容包括资源接收者接收的报文rc_revoke_request、是否同意资源颁发者操作、随机数,所述撤销交易报文rc_revoke包括资源颁发者即RC2的颁发者、交易接收者即RC2的持有者、交易类型即RC2撤销、交易内容即RC2的具体内容、交易属性、交易的证据即rc_revoke_reply报文、RC2的持有者发布的随机数+1;RC2的资源颁发者对交易的签名;此时交易属性为空。
9.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.3.1所述更新操作可更改的属性值包括证书过期时间、整数序列号。
10.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述rc_overwrite1_request内容包括待修改证书标识、随机数r、证书持有者ID;所述rc_overwrite1_reply内容包括资源接收者接收的报文rc_overwriter1_request、是否同意资源颁发者操作、随机数;所述rc_overwrite1包括资源颁发者即RC3的颁发者、资源接收者即RC3的持有者、交易类型即RC3更新、交易内容即待修改的RC3证书修改后内容RC3’、交易属性即传递属性和过期属性、交易的证据即rc_overwrite1_reply报文、RC3的持有者发布的随机数+1,RC3的资源颁发者对交易的签名。
11.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述roa_issue包括的内容为资源颁发者即ROA1的颁发者、资源接收者即ROA1的接收者、交易类型即ROA1颁发、交易内容即ROA1的具体内容、交易属性、交易的证据,ROA1的资源颁发者对交易的签名;交易属性中的传递属性为空,过期属性表示该ROA是否有期限限制,交易的证据此时为空。
12.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于所述roa_revoke内容包括资源颁发者即ROA2的颁发者、资源接收者即ROA2的持有者、交易类型即ROA2撤销、交易内容即ROA2的标识、交易属性、交易的证据,ROA2的资源颁发者对交易签名,交易属性和交易的证据此时均为空。
13.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.5.2.5步所述撤销与预颁发ROA1产生冲突的已颁发ROA所采用的方法是4.2.6步所述的ROA撤销方法。
14.如权利要求1所述的一种基于区块链的资源公钥基础设施的证书交易验证方法,其特征在于4.2.1.7.1步所述资源证书交易智能合约检查rc_issue是否之前提交过、4.2.2.5.1步检查rc_revoke是否之前提交过、4.2.3.4.1步检查rc_overwrite1是否之前提交过、4.2.5.5.1检查roa_issue是否之前提交过、4.2.6.3.1检查roa_revoke是否之前提交过的方法是检查分布式账本中的交易记录查看之前是否提交过相应报文。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168125.4A CN111106940B (zh) | 2019-11-25 | 2019-11-25 | 一种基于区块链的资源公钥基础设施的证书交易验证方法 |
US17/100,822 US11521205B2 (en) | 2019-11-25 | 2020-11-21 | Method for certificate transaction validation of blockchain-based resource public key infrastructure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911168125.4A CN111106940B (zh) | 2019-11-25 | 2019-11-25 | 一种基于区块链的资源公钥基础设施的证书交易验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111106940A true CN111106940A (zh) | 2020-05-05 |
CN111106940B CN111106940B (zh) | 2022-11-04 |
Family
ID=70421149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911168125.4A Active CN111106940B (zh) | 2019-11-25 | 2019-11-25 | 一种基于区块链的资源公钥基础设施的证书交易验证方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11521205B2 (zh) |
CN (1) | CN111106940B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765203A (zh) * | 2021-02-04 | 2021-05-07 | 北京邮电大学 | 一种互联网码号资源管理方法及装置 |
CN112865979A (zh) * | 2021-01-22 | 2021-05-28 | 广州大学 | 一种基于区块链的资源公钥基础设施的资源冲突检测方法 |
CN115021930A (zh) * | 2022-05-30 | 2022-09-06 | 广州大学 | 一种基于资源公钥基础设施区块链的路由器证书颁发方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020042150A1 (zh) * | 2018-08-31 | 2020-03-05 | 重庆小雨点小额贷款有限公司 | 区块链系统、信息共享方法及相关设备 |
EP4154467A1 (en) * | 2020-06-18 | 2023-03-29 | Huawei Technologies Co., Ltd. | Route authorization with blockchain enhanced origin confirmation |
CN114124411B (zh) * | 2021-12-07 | 2024-01-09 | 牙木科技股份有限公司 | 信息注册方法、信息认证方法、dns服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017192475A1 (en) * | 2016-05-03 | 2017-11-09 | Alcatel-Lucent Usa Inc. | Securing transactions for allocation of internet resources with blockchain |
CN110012119A (zh) * | 2019-03-12 | 2019-07-12 | 广州大学 | 一种ip地址前缀授权与管理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020029200A1 (en) | 1999-09-10 | 2002-03-07 | Charles Dulin | System and method for providing certificate validation and other services |
US8751791B2 (en) | 2008-09-17 | 2014-06-10 | Motorola Solutions, Inc. | Method and device for confirming authenticity of a public key infrastructure (PKI) transaction event |
US9350550B2 (en) | 2013-09-10 | 2016-05-24 | M2M And Iot Technologies, Llc | Power management and security for wireless modules in “machine-to-machine” communications |
CN105681345B (zh) * | 2016-03-11 | 2019-06-11 | 中国互联网络信息中心 | 一种加强rpki中ca证书签发安全的事前控制方法 |
US10411905B2 (en) * | 2016-07-01 | 2019-09-10 | Intel Corporation | Public key infrastructure using blockchains |
CN106384236B (zh) * | 2016-08-31 | 2019-07-16 | 江苏通付盾科技有限公司 | 基于区块链的ca认证管理方法、装置及系统 |
CN107360001B (zh) * | 2017-07-26 | 2021-12-14 | 创新先进技术有限公司 | 一种数字证书管理方法、装置和系统 |
US10454690B1 (en) * | 2017-08-04 | 2019-10-22 | Amazon Technologies, Inc. | Digital certificates with distributed usage information |
CN107911339B (zh) * | 2017-10-20 | 2020-08-11 | 新华三技术有限公司 | 信息维护方法及装置 |
CN108964924B (zh) * | 2018-07-24 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 数字证书校验方法、装置、计算机设备和存储介质 |
US11455380B2 (en) * | 2018-11-20 | 2022-09-27 | International Business Machines Corporation | Chain-of-custody of digital content in a database system |
CN111385246B (zh) * | 2018-12-28 | 2021-09-21 | 华为技术有限公司 | 一种安全路由识别方法及装置 |
CN111031010B (zh) | 2019-11-25 | 2021-10-08 | 鹏城实验室 | 一种基于区块链的资源公钥基础设施的证书交易告警方法 |
CN111080421A (zh) | 2020-03-24 | 2020-04-28 | 国网电子商务有限公司 | 一种基于区块链的绿色电力证书交易方法及装置 |
-
2019
- 2019-11-25 CN CN201911168125.4A patent/CN111106940B/zh active Active
-
2020
- 2020-11-21 US US17/100,822 patent/US11521205B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017192475A1 (en) * | 2016-05-03 | 2017-11-09 | Alcatel-Lucent Usa Inc. | Securing transactions for allocation of internet resources with blockchain |
CN109076344A (zh) * | 2016-05-03 | 2018-12-21 | 诺基亚美国公司 | 利用区块链保护用于互联网资源分配的事务 |
CN110012119A (zh) * | 2019-03-12 | 2019-07-12 | 广州大学 | 一种ip地址前缀授权与管理方法 |
Non-Patent Citations (1)
Title |
---|
彭素芳等: ""基于区块链的RPKI中CA资源异常分配检测技术"", 《网络空间安全》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112865979A (zh) * | 2021-01-22 | 2021-05-28 | 广州大学 | 一种基于区块链的资源公钥基础设施的资源冲突检测方法 |
CN112865979B (zh) * | 2021-01-22 | 2022-04-01 | 广州大学 | 一种基于区块链的资源公钥基础设施的资源冲突检测方法 |
CN112765203A (zh) * | 2021-02-04 | 2021-05-07 | 北京邮电大学 | 一种互联网码号资源管理方法及装置 |
CN115021930A (zh) * | 2022-05-30 | 2022-09-06 | 广州大学 | 一种基于资源公钥基础设施区块链的路由器证书颁发方法 |
CN115021930B (zh) * | 2022-05-30 | 2023-05-26 | 广州大学 | 一种基于资源公钥基础设施区块链的路由器证书颁发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111106940B (zh) | 2022-11-04 |
US11521205B2 (en) | 2022-12-06 |
US20210158346A1 (en) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111106940B (zh) | 一种基于区块链的资源公钥基础设施的证书交易验证方法 | |
CN111031010B (zh) | 一种基于区块链的资源公钥基础设施的证书交易告警方法 | |
CN111130766B (zh) | 一种基于区块链的资源公钥基础设施双向授权的方法 | |
Lu et al. | DRRS-BC: Decentralized routing registration system based on blockchain | |
Madala et al. | Certificate transparency using blockchain | |
CN110288480B (zh) | 一种区块链的私密交易方法及装置 | |
CN101193103B (zh) | 一种分配和验证身份标识的方法及系统 | |
US20230006840A1 (en) | Methods and devices for automated digital certificate verification | |
CN111262860A (zh) | 跨链模式下的身份认证方法及装置 | |
US20080052388A1 (en) | Substitutable domain management system and method for substituting the system | |
US20220094542A1 (en) | Methods and devices for public key management using a blockchain | |
CN110445795B (zh) | 一种区块链认证唯一性确认方法 | |
CN114338242B (zh) | 一种基于区块链技术的跨域单点登录访问方法及系统 | |
CN113726665B (zh) | 基于区块链的边界网关路由的更新方法 | |
Ahmed et al. | Turning trust around: smart contract-assisted public key infrastructure | |
US11962698B2 (en) | Token node locking with fingerprints authenticated by digital certificates | |
CN115292684A (zh) | 基于区块链的询证函数据处理的方法和区块链系统 | |
CN112865979B (zh) | 一种基于区块链的资源公钥基础设施的资源冲突检测方法 | |
CN112132581B (zh) | 基于iota的pki身份认证系统及方法 | |
CN114930770A (zh) | 基于分布式分类账的凭证鉴别方法及系统 | |
CN114079632B (zh) | 一种基于区块链的可信域间路由方法及系统 | |
JP2022120785A (ja) | 電子メッセージングのセキュリティ及び認証 | |
CN115021930B (zh) | 一种基于资源公钥基础设施区块链的路由器证书颁发方法 | |
KR20200133140A (ko) | 하이브리드 블록체인 기반 고속 거래 처리 방법 및 그 시스템 | |
CN117834108A (zh) | 一种基于区块链的bgp域间路由认证方法和系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |