CN111130766B - 一种基于区块链的资源公钥基础设施双向授权的方法 - Google Patents

一种基于区块链的资源公钥基础设施双向授权的方法 Download PDF

Info

Publication number
CN111130766B
CN111130766B CN201911168985.8A CN201911168985A CN111130766B CN 111130766 B CN111130766 B CN 111130766B CN 201911168985 A CN201911168985 A CN 201911168985A CN 111130766 B CN111130766 B CN 111130766B
Authority
CN
China
Prior art keywords
resource
transaction
issuer
certificate
module
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.)
Active
Application number
CN201911168985.8A
Other languages
English (en)
Other versions
CN111130766A (zh
Inventor
刘亚萍
张硕
方滨兴
孙鹏
李清源
周逸菲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou University
Original Assignee
Guangzhou University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou University filed Critical Guangzhou University
Priority to CN201911168985.8A priority Critical patent/CN111130766B/zh
Publication of CN111130766A publication Critical patent/CN111130766A/zh
Priority to US17/100,812 priority patent/US11368450B2/en
Application granted granted Critical
Publication of CN111130766B publication Critical patent/CN111130766B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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/3268Cryptographic 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic 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)
  • 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)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种基于区块链的资源公钥基础设施双向授权的方法,目的是解决恶意操作导致合法BGP路由不合法、合法IP地址被阻断等安全威胁问题。技术方案是:构建由资源颁发者、资源交易应用客户端、资源接收者、区块链网络组成的基于区块链的资源公钥基础设施系统RPKIB;将资源颁发者对资源证书进行颁发、撤销、更新、修改的任何操作变为双向授权方式,只有颁发者和接收者都同意,才能实施资源证书的操作;颁发者将资源证书RC和路由起源授权ROA的操作作为交易通过区块链网络进行,通过双向授权区分操作是恶意行为还是正常操作。采用本发明可克服当前RPKI所面临的恶意操作,有效避免了合法BGP路由不合法、合法IP地址被阻断等安全威胁。

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依附于INR(InternetNumbersResources)的分配过程,INR(Internet数字资源)包括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的内容包括标准RFC5280的X.509证书,并附有RFC 3779的IP地址和AS扩展标识符,用来担保IP地址前缀和AS号的分配),导致某些合法BGP路由不合法。或者恶意授权机构操纵不同的资源证书视图给不同的RP,从而达到某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径上达到非法吸引流量的目的。针对上述问题,当前的RPKI很难区分各种资源证书对象的操作是由于机构管理员操作错误还是受到攻击的恶意行为,还是资源证书的颁发者与被颁发者之间达成的正常合约。上述安全问题,现有RPKI架构与机制难以解决。
双向授权是一种安全过程,在对某一资源的操作过程时,需要客户端和服务端两者在实际操作发生前对这一操作进行授权,使操作更安全,更可靠。但当前RPKI中不存在双向授权过程,资源颁发者对于RPKI中证书资源的操作没有得到资源接收者的授权,导致恶意资源颁发者可以对各种资源证书进行恶意操作,导致某些原本合法的路由变得不合法。因此如何对颁发者和接收者的操作进行授权以确定资源颁发者的身份是否合法以提高RPKI的安全性,是当前RPKI需要解决的技术问题。
区块链一般用于解决中心化导致的信任问题,2008年,中本聪将区块链作为比特币的底层技术提出。区块链由多个区块(规定第一个区块叫做创世区块)按照生成交易的时间戳顺序连成。一个区块分为两大部分:区块头和区块体,区块头里面存储着区块的头信息,包含上一区块的哈希值,本区块体的哈希值,区块ID以及时间戳,区块体存储着这个区块的详细数据,这个数据包含若干行交易信息。区块链一般用于解决节点依赖问题,作为一种去中心化的技术允许交易双方在线直接交易,而不需要通过第三方管理机构,没有中心管制,所有节点能够在系统中自动安全的验证、交换数据。区块链技术将信任存于网络而不是某个中心机构。负责维护网络运行的终端就可以称之为——节点。区块链是去中心化的分布式数据库,他不依托与哪一个中心化的服务器,而是由众多“小服务器”组成,只要服务器安装了区块链客户端,该服务器就变成了众多“小服务器”中的一员,那么该服务器就是一个节点。
还未见有公开文献涉及利用区块链来实现颁发者和接收者的操作进行双向授权以解决RPKI固有安全问题。
因此,如何克服当前RPKI所面临的恶意资源颁发者对于各类资源证书RC的恶意操作、某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径的安全威胁是本领域技术人员极为关注的技术问题。
发明内容
本发明要解决的技术问题是提供一种基于区块链的资源公钥基础设施双向授权的方法,解决当前RPKI面临的恶意资源颁发者的恶意操作导致合法BGP路由不合法、合法IP地址被阻断或对应流量被恶意阻断的安全威胁问题。
本发明的技术方案是:更改当前RPKI的工作架构,将资源颁发者对资源证书进行发布、撤销、更新、修改的任何操作都变为双向授权的方式,只有在资源证书的颁发者和接收者二者都同意的基础上,才能实施资源证书的操作;将资源证书以及路由起源授权ROA的操作设计为交易,颁发者将资源证书以及路由起源授权ROA的操作作为交易通过区块链平台进行。通过区块链机制消除对任何类型节点完全信赖的假设,通过双向授权的方式区分一个操作是授权机构的恶意行为,还是正常操作。
本发明具体包含如下步骤:
第一步,构建基于区块链的资源公钥基础设施系统RPKIB(RPKI Blockchain),它由资源颁发者、资源交易应用客户端、资源接收者、区块链网络组成。
区块链网络是一种去中心化的系统,区块链网络中的各个节点都是对等的,对等节点既可以作为颁发方也可以作为接收方。区块链网络通过去中心化机制消除原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.10描述的证书颁发方法颁发证书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.5RC1的资源颁发者和资源接收者进行双向授权,具体如下:
4.2.1.5.1RC1的资源颁发者的资源交易模块基于UDP(User Datagram Protocol,用户数据报协议)构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块,rc_issue_request内容包括颁发的证书(在此为RC1)、父证书(资源颁发者所拥有的证书)标识、随机数r、资源接收者地址。RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转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.3RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文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报文、RC1的接收者发布的随机数增加1),由RC1的资源颁发者对交易签名(交易签名也就是以数字签名技术对交易信息进行加密,是对交易发起者发送信息真实性的一个有效证明);资源颁发者将rc_issue通过区块链网络发送给资源接收者;
4.2.1.7若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功。资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
4.2.1.7.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
4.2.1.7.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
4.2.1.7.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.9;
4.2.1.8若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,则向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.10。
4.2.1.9如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.10如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为未正确接收到RC1证书),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC2资源证书的持有者(作为资源接收者)、预撤销资源证书RC2,按4.2.2.1~4.2.2.7描述的证书撤销方法撤销证书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.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_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为未接收到从资源接收者发来的撤销请求应答报文),转第五步;如果收到了rc_revoke_reply,检查rc_revoke_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因(原因为资源接收者发来的撤销请求应答报文格式错误),转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为证书持有者不同意证书撤销),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击),显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,rc_revoke包括资源颁发者(此为RC2的颁发者)、交易接收者(此为RC2的持有者)、交易类型(此为RC撤销)、交易内容(此为RC2的具体内容)、交易属性(此为空)、交易的证据(此为rc_revoke_reply报文、RC2的持有者发布的随机数增加1);RC2的资源颁发者对交易的签名,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块。
4.2.2.5如果资源接收者的资源交易模块收到从资源颁发者的资源交易模块发送来的rc_revoke,资源接收者的资源交易模块根据交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.7。
4.2.2.6如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.7如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为资源删除失败),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.6描述的证书更新方法更新证书RC3:
4.2.3.1RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的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内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文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_overwriter1_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为未收到从资源接收者资源交易模块发来的更新请求应答报文),转第五步;如果收到rc_overwrite1_reply,检查rc_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为更新请求应答报文格式错误),转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因(原因为证书持有者(即资源接收者)不同意该操作),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,rc_overwrite1包括资源颁发者(此时为RC3的颁发者)、资源接收者(此时为RC3的持有者)、交易类型(此时为RC3更新)、交易内容(此时为新的RC3’内容(即待更新的RC3证书更新后内容)、交易属性(包括传递属性、过期属性)、交易的证据(此时为rc_overwrite1_reply报文、RC3的持有者发布的随机数增加1),RC3的资源颁发者对交易的签名;RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块。
4.2.3.4若资源接收者的资源交易模块接收到从资源颁发者的资源交易模块发送来的rc_overwrite1,则资源接收者的资源交易模块根据交易类型(此为更新)和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(修改前为RC3的信息)用RC3’的信息替换,资源接收者的资源交易模块将交易记录到分布式账本,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.5;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.6。
4.2.3.5如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.6如果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.7描述的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.4;
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的颁发指令内容(IP地址前缀,AS号)生成ROA1。
4.2.5.4ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空);由ROA1的资源颁发者对交易签名,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者。
4.2.5.5若资源接收者的资源交易模块收到从ROA1的资源颁发者资源交易模块发送来的roa_issue,解析报文得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块将交易记录到分布式账本中,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.6;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.7。
4.2.5.6如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.7如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为资源接收者获取交易内容失败),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.5描述的ROA撤销方法撤销ROA2:
4.2.6.1ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块。
4.2.6.3若资源接收者的资源交易模块收到从资源颁发者资源交易模块发送来的roa_revoke,解析报文得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.4;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.5。
4.2.6.4如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,将交易记录到分布式账本中,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.5如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为资源接收者删除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.2.5所述ROA颁发方法颁发ROA3’,转第五步;
第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。
说明:4.2.1.2.3中接收到撤销消息(撤销与预颁发RC1冲突的资源证书)时,撤销与预颁发RC1相冲突的已颁发RC所采用的撤销方法与4.2.2所述的方法一样。4.2.5.2.5中接收到ROA1撤销消息(撤销与ROA1冲突的已颁发ROA)时,撤销与预颁发ROA1产生冲突的已颁发ROA时所采用的方法与4.2.6所述的方法一样。
采用本发明可以达到以下技术效果:
1.采用本发明可以克服当前RPKI所面临的恶意资源颁发者对于各类资源证书RC的恶意操作,双向授权的加入使得资源颁发者对于资源证书的各种操作都需要得到资源接收者的同意,有效避免了某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径的安全威胁。
2.本发明是一种构建于区块链之上的RPKI的双向授权方法,有效提升了RPKI的安全性。通过双向授权的加入,资源颁发者对于资源的任何操作(颁发、撤销、修改、更新),都需要获得资源接收者的允许,有效的限制了资源颁发者的权利,可以有效防止在当前RPKI架构下,恶意授权机构通过对各类资源证书的恶意操作,导致某些合法路由不合法的安全威胁。
3.本发明采用区块链来存贮交易,区块链中所有的分布式账本中数据均相同且不可篡改,因此不同的用户在查询交易记录时从账本中读取资源证书数据,看到的都是同一份数据,因此本发明可以有效防止当前RPKI中存在的镜像攻击风险。镜像攻击即恶意授权机构操纵不同的资源证书视图给不同的用户,从而达到某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径上达到非法吸引流量的目的。
4.本发明使用了区块链技术,由于区块链网络所具有的容错性,一些节点出错后不会导致整个区块链网络出错,使得第一步构建的RPKIB也具有一定的容错性。
附图说明
图1是本发明第一步构建的基于区块链的资源公钥基础设施的双向授权系统RPKIB的总体结构图;
图2是本发明第二步所述的资源交易结构的结构图;
图3是本发明第三步所述的资源树的结构图;
图4是本发明总体流程图。
具体实施方式
如图4所示,本发明包括以下步骤:
第一步,构建基于区块链的资源公钥基础设施系统RPKIB,如图1所示,RPKIB由资源颁发者、资源交易应用客户端、资源接收者、区块链网络组成。
区块链网络与资源颁发者、资源接收者、资源交易应用客户端相连。资源颁发者与资源接收者作为区块链网络的一个节点,资源交易应用客户端安装在资源颁发者和资源接收者所在节点上。资源交易应用客户端将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中。分布式账本存在于所有区块链节点中。
资源颁发者是服务器,其上安装有资源交易应用客户端,与区块链网络相连。资源颁发者连接到区块链网络,成为区块链网络的节点。资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方的同意之后,交易双方通过区块链网络进行交易,并将交易记录到分布式账本中。
资源接收者是服务器,其上安装有资源交易应用客户端,与区块链相连。资源接收者连到区块链网络,成为区块链网络的节点。
资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成。
资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和的AS扩展标识符。资源证书生成模块根据预颁发的ROA信息(包括一个AS号和一个或多个IP地址前缀)对资源接收者所持有的资源创建路由起源授权ROA。资源证书生成模块将生成的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地址资源释放返回原资源授权实体。交易证据表示资源颁发者和资源接收者两次签名,双方同意的证据,由双方交易的报文以及随机数构成。交易发起者给出的交易签名显示交易发起者和交易接收者就此交易达成协议。对于ROA相关操作交易,交易的发起者给出的交易签名字段为NULL。
第三步,定义资源树,如图3所示,资源树由资源交易模块根据有效的资源证书RC来构建。资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP地址前缀,证书中包含的AS号。节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点。证书中包含的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.10描述的证书颁发方法颁发证书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.5RC1的资源颁发者和资源接收者进行双向授权,具体如下:
4.2.1.5.1RC1的资源颁发者的资源交易模块基于UDP构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块,rc_issue_request内容包括颁发的证书(在此为RC1)、父证书(资源颁发者所拥有的证书)标识、随机数r、资源接收者地址。RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转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.3RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文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若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功。资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
4.2.1.7.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
4.2.1.7.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
4.2.1.7.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.9;
4.2.1.8若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,则向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.10。
4.2.1.9如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.10如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为未正确接收到RC1证书),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC2资源证书的持有者(作为资源接收者)、预撤销资源证书RC2,按4.2.2.1~4.2.2.7描述的证书撤销方法撤销证书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.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_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送失败消息以及操作失败的原因(原因为未接收到从资源接收者发来的撤销请求应答报文),转第五步;如果收到了rc_revoke_reply,检查rc_revoke_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因(原因为资源接收者发来的撤销请求应答报文格式错误),转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为证书持有者不同意证书撤销),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击),显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,rc_revoke包括资源颁发者(此为RC2的颁发者)、交易接收者(此为RC2的持有者)、交易类型(此为RC撤销)、交易内容(此为RC2的具体内容)、交易属性(此为空)、交易的证据(此为rc_revoke_reply报文、RC2的持有者发布的随机数增加1);由RC2的资源颁发者对交易签名,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块。
4.2.2.5如果资源接收者的资源交易模块收到从资源颁发者的资源交易模块发送来的rc_revoke,资源接收者的资源交易模块根据交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.7。
4.2.2.6如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.7如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为资源删除失败),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.6描述的证书更新方法更新证书RC3:
4.2.3.1RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的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内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文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_overwriter1_request)、是否同意资源颁发者操作、随机数。如果未接收到,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为未收到从资源接收者资源交易模块发来的更新请求应答报文),转第五步;如果收到rc_overwrite1_reply,检查rc_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因(原因为更新请求应答报文格式错误),转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因(原因为证书持有者不同意该操作),显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,rc_overwrite1包括资源颁发者(此时为RC3的颁发者)、资源接收者(此时为RC3的持有者)、交易类型(此时为RC3更新)、交易内容(此时为新的RC3’内容(即待更新的RC3证书更新后内容)、交易属性(包括传递属性、过期属性)、交易的证据(此时为rc_overwrite1_reply报文、RC3的持有者发布的随机数增加1),由RC3的资源颁发者对交易签名;RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块。
4.2.3.4若资源接收者的资源交易模块接收到从资源颁发者的资源交易模块发送来的rc_overwrite1,则资源接收者的资源交易模块根据交易类型(此为更新)和交易内容用RC3’替换掉待修改的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(更新前为RC3的信息)用RC3’的信息替换,资源接收者的资源交易模块将交易记录到分布式账本,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.5;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.6。
4.2.3.5如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.6如果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.6描述的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.4;
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的颁发指令内容(IP地址前缀,AS号)生成ROA1。
4.2.5.4ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空);由ROA1的资源颁发者对交易签名,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者。
4.2.5.5若资源接收者的资源交易模块收到从ROA1的资源颁发者资源交易模块发送来的roa_issue,解析报文得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块将交易记录到分布式账本中,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.6;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.7。
4.2.5.6如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.7如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为资源接收者获取交易内容失败),显示模块显示“操作失败”以及操作失败的原因,转第五步。
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.5描述的ROA撤销方法撤销ROA2:
4.2.6.1ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块。
4.2.6.3若资源接收者的资源交易模块收到从资源颁发者资源交易模块发送来的roa_revoke,解析报文得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.4;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.5。
4.2.6.4如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,将交易记录到分布式账本中,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.5如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为资源接收者删除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.2.5所述ROA颁发方法颁发ROA3’,转第五步;
第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。

Claims (13)

1.一种基于区块链的资源公钥基础设施双向授权的方法,其特征在于包括以下步骤:
第一步,构建基于区块链的资源公钥基础设施系统RPKIB,RPKIB由资源颁发者、资源交易应用客户端、资源接收者、区块链网络组成;
区块链网络与资源颁发者、资源接收者、资源交易应用客户端相连;资源颁发者与资源接收者作为区块链网络的一个节点,资源交易应用客户端安装在资源颁发者和资源接收者所在节点上;资源交易应用客户端将资源证书即RC以及路由起源授权即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.10描述的证书颁发方法颁发证书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是否已经被颁发,若检查结果为“未被颁发”,转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.5 RC1的资源颁发者和资源接收者进行双向授权,方法是:
4.2.1.5.1 RC1的资源颁发者的资源交易模块基于UDP构造RC1的颁发请求报文rc_issue_request,将rc_issue_request通过区块链网络发送给资源接收者的资源交易模块;RC1的资源颁发者初始化重发次数m=0,启动RC1对应的颁发请求发送定时器,等待从资源接收者接收RC1颁发请求应答报文;
4.2.1.5.2 RC1的资源颁发者检查颁发请求发送定时器是否超时,如果未超时,转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.3 RC1的资源颁发者判定是否从资源接收者接收到颁发请求应答报文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通过区块链网络发送给资源接收者;
4.2.1.7若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块为资源树创建一个新的节点即RC1节点,并向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.9;
4.2.1.8若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,则向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.10;
4.2.1.9如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
4.2.1.10如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因,原因为“未正确接收到RC1证书”,显示模块显示“操作失败”消息和操作失败的原因,转第五步;
4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC2撤销的消息,RC2撤销的消息包括RC2资源证书的持有者、预撤销资源证书RC2,按4.2.2.1~4.2.2.7描述的证书撤销方法撤销证书RC2,此时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为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.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_reply的格式、内容,如果格式错误,则丢弃该报文,向显示模块发送失败消息以及操作失败的原因,原因为“资源接收者发来的撤销请求应答报文格式错误”,转第五步;如果格式正确,检查rc_revoke_reply中的应答信息,如果是拒绝撤销操作请求,则资源交易模块向显示模块发送“操作失败”以及操作失败的原因,原因为“证书持有者不同意证书撤销”,显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果是同意撤销操作请求,转4.2.2.3;
4.2.2.3 RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点v1是否在资源树中是叶节点,即判定v1的子证书标识域的值是否为NULL,如果v1是叶节点,转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因,原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.2.4 RC2的资源颁发者的资源交易模块依据资源交易结构,构造RC2的撤销交易报文rc_revoke,资源颁发者的资源交易模块将rc_revoke通过区块链网络发送给资源接收者的资源交易模块;
4.2.2.5如果资源接收者的资源交易模块收到从资源颁发者的资源交易模块发送来的rc_revoke,资源接收者的资源交易模块根据交易类型和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除,此时交易成功;资源接收者的资源交易模块将交易记录到分布式账本,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.7;
4.2.2.6如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.2.7如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因,原因为“资源删除失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.6描述的证书更新方法更新证书RC3:
4.2.3.1 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;资源颁发者的资源交易模块初始化第三重发次数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_overwrite1_reply的格式、内容,如果格式错误则丢弃该报文,资源颁发者的资源交易模块向显示模块发送“操作失败”及原因,原因为“更新请求应答报文格式错误”,转第五步;如果格式正确,则检查rc_overwrite1_reply,如果是拒绝更新操作请求,则向显示模块发送“操作失败”以及操作失败的原因,原因为“证书持有者不同意该操作”,显示模块显示“操作失败”以及操作失败的原因,并转第五步;如果rc_overwrite1_reply应答信息中是同意该操作请求,则执行4.2.3.3;
4.2.3.3 RC3的资源颁发者的资源交易模块依据资源交易结构,构造RC3的更新报文rc_overwrite1,RC3的资源颁发者的资源交易模块将rc_overwrite1通过区块链网络发送给资源接收者的资源交易模块;
4.2.3.4若资源接收者的资源交易模块接收到从资源颁发者的资源交易模块发送来的rc_overwrite1,则资源接收者的资源交易模块根据交易类型和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域用RC3’的信息替换,资源接收者的资源交易模块将交易记录到分布式账本,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.5;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.6;
4.2.3.5如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.3.6如果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.7描述的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 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的颁发指令内容生成ROA1;
4.2.5.4 ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者;
4.2.5.5若资源接收者的资源交易模块收到从ROA1的资源颁发者资源交易模块发送来的roa_issue,解析报文得到交易类型和交易内容,此时交易成功,资源接收者的资源交易模块将交易记录到分布式账本中,且资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.6;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.7;
4.2.5.6如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.5.7如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因,原因为“资源接收者获取交易内容失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA2撤销的消息,则按4.2.6.1~4.2.6.5描述的ROA撤销方法撤销ROA2:
4.2.6.1 ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
4.2.6.2 ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块;
4.2.6.3若资源接收者的资源交易模块收到从资源颁发者资源交易模块发送来的roa_revoke,解析报文得到交易类型即ROA2撤销和交易内容即ROA2的具体内容,资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.4;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.5;
4.2.6.4如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,将交易记录到分布式账本中,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
4.2.6.5如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因,原因为“资源接收者删除ROA2失败”,显示模块显示“操作失败”以及操作失败的原因,转第五步;
4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA3修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
4.2.7.2根据修改内容生成新的ROA3’,按4.2.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.7步所述资源接收者的资源交易模块为资源树创建RC1节点的方法是:
4.2.1.7.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点;
4.2.1.7.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报文、RC1的接收者发布的随机数增加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的标识、交易属性、交易的证据,交易属性和交易的证据此时均为空。
13.如权利要求1所述的一种基于区块链的资源公钥基础设施双向授权的方法,其特征在于4.2.5.2.5步所述撤销与预颁发ROA1产生冲突的已颁发ROA所采用的方法是4.2.6所述的ROA撤销方法。
CN201911168985.8A 2019-11-25 2019-11-25 一种基于区块链的资源公钥基础设施双向授权的方法 Active CN111130766B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911168985.8A CN111130766B (zh) 2019-11-25 2019-11-25 一种基于区块链的资源公钥基础设施双向授权的方法
US17/100,812 US11368450B2 (en) 2019-11-25 2020-11-20 Method for bidirectional authorization of blockchain-based resource public key infrastructure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911168985.8A CN111130766B (zh) 2019-11-25 2019-11-25 一种基于区块链的资源公钥基础设施双向授权的方法

Publications (2)

Publication Number Publication Date
CN111130766A CN111130766A (zh) 2020-05-08
CN111130766B true CN111130766B (zh) 2022-11-04

Family

ID=70496674

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911168985.8A Active CN111130766B (zh) 2019-11-25 2019-11-25 一种基于区块链的资源公钥基础设施双向授权的方法

Country Status (2)

Country Link
US (1) US11368450B2 (zh)
CN (1) CN111130766B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2592979A (en) * 2020-03-13 2021-09-15 Nchain Holdings Ltd Revoking access to a network
CN111884926B (zh) * 2020-06-18 2021-09-17 北京邮电大学 一种基于区块链的域间路由安全扩展方法及系统
WO2021257140A1 (en) * 2020-06-18 2021-12-23 Futurewei Technologies, Inc. Route authorization with blockchain enhanced origin confirmation
CN111539813B (zh) * 2020-07-10 2020-12-11 支付宝(杭州)信息技术有限公司 业务行为的回溯处理方法、装置、设备及系统
US11930037B2 (en) * 2020-10-08 2024-03-12 Charter Communications Operating, Llc Validation and implementation of flow specification (Flowspec) rules
CN112865979B (zh) * 2021-01-22 2022-04-01 广州大学 一种基于区块链的资源公钥基础设施的资源冲突检测方法
US20230054738A1 (en) * 2021-08-19 2023-02-23 Cisco Technology, Inc. Advertising bgp destination secure path requirement in global internet
CN113794724B (zh) * 2021-09-15 2022-05-24 中国科学院计算机网络信息中心 一种路由起源授权压缩的编码和解码方法及系统
CN115021930B (zh) * 2022-05-30 2023-05-26 广州大学 一种基于资源公钥基础设施区块链的路由器证书颁发方法
CN115422569A (zh) * 2022-11-02 2022-12-02 飞天诚信科技股份有限公司 一种nft流通数据的权限控制方法及装置
CN118174866B (zh) * 2024-05-13 2024-07-23 鹏城实验室 资源证书管理系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376098A (zh) * 2015-11-30 2016-03-02 中国互联网络信息中心 一种路由源和路径双重验证方法
WO2016086478A1 (zh) * 2014-12-01 2016-06-09 中国科学院计算机网络信息中心 一种rpki数据的主动同步方法和系统
CN105681345A (zh) * 2016-03-11 2016-06-15 中国互联网络信息中心 一种加强rpki中ca证书签发安全的事前控制方法
CN106060014A (zh) * 2016-05-18 2016-10-26 中国互联网络信息中心 一种同时解决前缀劫持、路径劫持及路由泄露攻击的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268120A1 (en) 2003-06-26 2004-12-30 Nokia, Inc. System and method for public key infrastructure based software licensing
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
US10411905B2 (en) * 2016-07-01 2019-09-10 Intel Corporation Public key infrastructure using blockchains
US10382485B2 (en) * 2016-12-23 2019-08-13 Vmware, Inc. Blockchain-assisted public key infrastructure for internet of things applications
US10657261B2 (en) * 2017-11-30 2020-05-19 Mocana Corporation System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
CN108876618A (zh) 2018-06-15 2018-11-23 浙江华信区块链科技服务有限公司 一种交换区块链系统及相应的通用区块链互操作方法和网络
US10936723B2 (en) * 2019-03-27 2021-03-02 Intel Corporation Fast and secure protocol to bootstrap a blockchain by restoring the blockchain state using trusted execution environment
CN111352770A (zh) 2020-02-27 2020-06-30 苏州市星际云通区块链科技有限公司 区块链备份系统、备份方法和区块链验证方法、验证系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016086478A1 (zh) * 2014-12-01 2016-06-09 中国科学院计算机网络信息中心 一种rpki数据的主动同步方法和系统
CN105376098A (zh) * 2015-11-30 2016-03-02 中国互联网络信息中心 一种路由源和路径双重验证方法
CN105681345A (zh) * 2016-03-11 2016-06-15 中国互联网络信息中心 一种加强rpki中ca证书签发安全的事前控制方法
CN106060014A (zh) * 2016-05-18 2016-10-26 中国互联网络信息中心 一种同时解决前缀劫持、路径劫持及路由泄露攻击的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Jordi Paillisse et al..《IPchain: Securing IP Prefix Allocation and Delegation with Blockchain》.《2018 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)》.2018, *
彭素芳等.《基于区块链的RPKI中CA资源异常分配检测技术》.《网络空间安全》.2019, *

Also Published As

Publication number Publication date
US11368450B2 (en) 2022-06-21
US20210160067A1 (en) 2021-05-27
CN111130766A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111130766B (zh) 一种基于区块链的资源公钥基础设施双向授权的方法
CN111106940B (zh) 一种基于区块链的资源公钥基础设施的证书交易验证方法
CN111031010B (zh) 一种基于区块链的资源公钥基础设施的证书交易告警方法
CN113950801B (zh) 用于使用区块链进行公钥管理的方法和装置
US20230006840A1 (en) Methods and devices for automated digital certificate verification
US12063213B2 (en) Secure peer-to-peer based communication sessions via network operating system in secure data network
US12058258B2 (en) Crypto tunnelling between two-way trusted network devices in a secure peer-to-peer data network
CN112865979B (zh) 一种基于区块链的资源公钥基础设施的资源冲突检测方法
CN114338242B (zh) 一种基于区块链技术的跨域单点登录访问方法及系统
CN101540755A (zh) 一种修复数据的方法、系统和装置
CN115943603B (zh) 区块链增强路由授权
WO2013013481A1 (zh) 接入认证方法、设备、服务器及系统
WO2018235085A1 (en) METHOD OF CERTIFYING ADDRESS PROPERTIES AND ASSOCIATED SYSTEM
WO2023022880A1 (en) Advertising bgp destination secure path requirement in global internet
US11582201B1 (en) Establishing and maintaining trusted relationship between secure network devices in secure peer-to-peer data network based on obtaining secure device identity containers
CN115021930B (zh) 一种基于资源公钥基础设施区块链的路由器证书颁发方法
CN108092897B (zh) 一种基于sdn的可信路由源管理方法
CN110417758B (zh) 基于证书请求的安全邻居发现运行模式探测方法
US11870899B2 (en) Secure device access recovery based on validating encrypted target password from secure recovery container in trusted recovery device
KR20210067400A (ko) Ndn 기반 네트워크에서, as 경로 무결성 검증 방법 및 장치
CN118802101A (zh) 一种区块链资源公钥基础设施的路由行为验证方法
CN113326543B (zh) 资源管理公钥基础设施证书操作方法及系统
CN118802102A (zh) 一种区块链资源公钥基础设施的路由配置验证方法
US20230125556A1 (en) Secure autonomic recovery from unusable data structure via a trusted device in a secure peer-to-peer data network
Murphy et al. Progress Toward Securing the Routing Infrastructure

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