首页 / 专利库 / 银行与财务事项 / 分布式账本技术 / 区块链 / 区块链账本 / 一种基于区块链的资源公钥基础设施的证书交易告警方法

一种基于链的资源公钥基础设施的证书交易告警方法

阅读:474发布:2020-05-12

专利汇可以提供一种基于链的资源公钥基础设施的证书交易告警方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 区 块 链 的资源公钥 基础 设施的证书交易告警方法,目的是当交易过程中出现资源冲突或者交易非法时及时报警提醒。技术方案是:构建由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证 节点 、告警 服务器 组成的资源公钥基础设施;将资源证书及路由起源授权的操作设计为交易;验证节点运行 智能合约 对交易进行验证,通过验证的成功交易保存在资源交易成功区块链,未通过验证的失败交易及原因保存在资源交易失败区块链;告警服务器根据资源交易失败区块链中的失败交易及原因给出潜在的恶意者 风 险并发出告警。采用本发明可有效提升RPKI的安全性,解决RPKI系统中缺少告警系统,操作中产生错误而不自知的问题。,下面是一种基于链的资源公钥基础设施的证书交易告警方法专利的具体信息内容。

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区块链初始化以及资源树初始化:
4.1.1初始化资源交易成功区块链和资源交易失败区块链为空;
4.1.2资源交易模块初始化资源树的根节点,令根节点为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.7.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
4.2.1.7.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.1.7.6.2;
4.2.1.7.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步;否则转4.2.1.7.6.3;
4.2.1.7.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步;否则转4.2.1.7.6.4;
4.2.1.7.6.4如果资源交易失败的原因是“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,提示“恶意的角色是资源颁发者”,转第五步;
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.5.6;
4.2.2.5.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
4.2.2.5.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.2.5.6.2;
4.2.2.5.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.2.5.6.3;
4.2.2.5.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.2.5.6.4;
4.2.2.5.6.4如果资源交易失败的原因是“预撤销的资源证书RC2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
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.4.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
4.2.3.4.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.3.4.6.2;
4.2.3.4.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.3.4.6.3;
4.2.3.4.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.3.4.6.4;
4.2.3.4.6.4如果资源交易失败的原因是“预修改的资源证书RC3不存在”,提示“恶意的角色是资源颁发者”,转第五步;
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.5.5;
4.2.5.5.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
4.2.5.5.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.5.5.5.2;
4.2.5.5.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.5.5.5.3;
4.2.5.5.5.3如果资源交易失败的原因是“预颁发的IP地质资源与已颁发的ROA中包含的IP地址资源冲突”,则提示“恶意的角色是资源颁发者”,转第五步;
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.3.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
4.2.6.3.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.6.3.5.2;
4.2.6.3.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,4.2.6.3.5.3;
4.2.6.3.5.3如果资源交易失败的原因是“预撤销的ROA2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
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是否之前提交过的方法是检查资源交易成功区块链中的交易记录查看之前是否提交过相应报文。

说明书全文

一种基于链的资源公钥基础设施的证书交易告警方法

技术领域

[0001] 本发明属于网络信息安全领域,尤其涉及一种基于区块链的改善RPKI(Resource Public Key Infrastructure,即资源公钥基础设施)安全性的资源公钥基础设施的证书交易告警方法。

背景技术

[0002] 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对应的二进制为:
[0003] 1100 0000(192),1010 1000(168),0001 1000(24),0000 0000(0)
[0004] 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 Origin Authorization)的签名对象,以及用于保存对象的分布式存储系统。RP(Relying Party即依赖方)是RPKI的使用者,RP获取签名对象集合的副本,验证签名,生成有效ROA列表,并定期检查在分布式存储系统中签名对象的更新,并同步这些更新。ROA是IP地址所有者授权AS为其进行路由通告的授权信息,包含一个AS号码以及一个或多个IP地址前缀之间的“绑定关系”。
[0005] ROA可以被RP用来验证为某一特定IP地址前缀发起路由的AS是否被地址所有者所授权。BGP路由器使用RPKI中RP提供的有效ROA列表信息来区分合法起源AS发起的BGP路由以及可能被劫持的BGP路由。
[0006] 然而RPKI自身也面临安全险。虽然RPKI的许多规范讨论了RPKI如何验证BGP路由,但是RPKI的正确运行取决于RP能否提供正确的、全面的有效ROA信息。RPKI的自身主要安全问题是:恶意授权机构可以通过在RPKI上对于各类资源证书RC(Resource certificate)的恶意操作(RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779的IP地址和AS扩展标识符,用来担保IP地址前缀和AS号的分配),导致某些合法BGP路由不合法。或者恶意授权机构操纵不同的资源证书视图给不同的RP,从而达到某些合法IP地址在路由转发层面就被阻断或者被重新定向到不同的转发路径上达到非法吸引流量的目的。针对上述问题,当前的RPKI对于各种资源证书对象的操作(机构管理员操作错误还是受到攻击的恶意行为)造成的错误操作没有一个报警机制来及时发出报警信息,从而可以对造成的错误作出及时补救。
[0007] 区块链一般用于解决中心化导致的信任问题,2008年,中本聪在《Bitcoin:A Peer-to-Peer Electronic Cash System》(即《比特币:一种点对点的电子现金系统》)一文中将区块链作为比特币的底层技术提出。区块链由多个区块(规定第一个区块叫做创世区块)按照生成交易的时间戳顺序连成。区块链一般用于解决节点依赖问题,作为一种去中心化的技术允许交易双方在线直接交易,而不需要通过第三方管理机构,没有中心管制,所有节点能够在系统中自动安全的验证、交换数据。区块链技术将信任存于网络而不是某个中心机构。负责维护网络运行的终端就可以称之为——节点。区块链是去中心化的分布式数据库,他不依托于哪一个中心化的服务器,而是由众多“小服务器”组成,只要服务器安装了区块链客户端,该服务器就变成了众多“小服务器”中的一员,那么该服务器就是一个节点。
[0008] 智能合约这一概念在1994年被计算机学家Nick Szabo首次提出,NickSzabo在当时自己的网站上发表了几篇文章,文章中提到了智能合约这个理念。他写道:“智能合约的总体目标是满足共同的合同条件(例如付款项、留置权、保密性,甚至强制执行),最大限度地减少异常以及对可信中介的需求。相关的经济目标包括减少欺诈损失、仲裁和执行成本以及其他交易成本。数字形式的智能合约意味着合约是通过计算机代码实现的。在智能合约中,只要参与方达成协定,智能合约就会建立起各方的权利和义务。然后通过计算机网络实行合约。
[0009] 还未见有公开文献涉及利用区块链来解决RPKI固有安全问题。
[0010] 因为在RPKI系统中没有一个色是用来告警的,即当资源证书RC和路由起源授权ROA的操作产生冲突时,或者操作本身非法时,没有一个监控用户来发出告警信息,来提醒操作人员操作失误或者是受到攻击,也就无法使得操作人员及时的做出反应,导致出现操作失误或非法操作而未察觉,使得合法域间路由被判断非法而导致合法IP地址被阻断或对应流量被恶意吸引,造成极大的安全威胁。

发明内容

[0011] 本发明要解决的技术问题是提供一种基于区块链的资源公钥基础设施的告警方法,将资源证书的颁发、撤销、更新、修改的任何操作设计为区块链中的交易行为,当资源证书RC和路由起源授权ROA在区块链中进行交易(颁发交易、撤销交易、更新交易、修改交易)出现资源冲突或者交易非法时,及时报警提醒,避免交易时有操作失误或非法操作而未察觉导致出现的安全威胁。
[0012] 本发明的技术方案是:更改当前RPKI的工作架构,将资源证书以及路由起源授权ROA的操作设计为交易,资源颁发者将这些对象的操作作为交易向区块链平台进行提交,验证节点运行智能合约来对交易进行验证。将通过智能合约验证的成功交易记录在资源交易成功区块链;未能通过智能合约验证的失败交易以及失败原因保存在资源交易失败区块链,监控用户根据资源交易失败区块链中记录的失败交易以及原因,给出潜在的恶意者风险并发出告警提示。
[0013] 本发明包含如下步骤:
[0014] 第一步,构建资源公钥基础设施RPKIB(RPKIBlockchain)系统。它由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点、告警服务器组成。
[0015] 区块链网络是一种去中心化的系统,区块链网络中的各个节点都是对等的,对等节点既可以作为资源颁发者也可以作为资源接收者。区块链网络通过去中心化机制消除原RPKI对中心节点的依赖问题,区块链网络与资源颁发者、资源接收者、告警服务器、验证节点相连。资源颁发者、资源接收者、告警服务器与区块链网络相连后即成为区块链网络的一个普通节点。验证节点是区块链网络中的与普通节点不同的另一类节点,是对资源颁发者发起的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。资源颁发者与资源接收者将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中。分布式账本中包含资源树以及两条链:资源树用于存储有效的资源证书;资源交易成功区块链和资源交易失败区块链,这两条链存在于所有区块链节点中,且每个节点的资源交易成功区块链和资源交易失败区块链的内容保持一致。资源交易成功区块链是分布式账本中的一条链,用来保存成功通过资源证书交易智能合约验证的资源交易记录。资源交易失败区块链是分布式账本中的另一条链,用来保存未能通过资源证书交易智能合约验证的资源交易失败区块链,并记录资源交易失败的原因。
[0016] 资源颁发者是服务器,其上安装有资源交易应用客户端,资源颁发者连接到区块链网络后成为区块链网络的节点。资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方(即资源颁发者、资源接收者)的同意之后,资源颁发者将交易发送给区块链网络。
[0017] 资源接收者是服务器,其上安装有资源交易应用客户端,与区块链相连。资源接收者连到区块链网络,成为区块链网络的节点。
[0018] 资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成。
[0019] 资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和的AS扩展标识符。资源证书生成模块根据预颁发的ROA信息(包括一个AS号和一个或多个IP地址前缀)对资源接收者所持有的资源创建路由起源授权(ROA)。一个有效的ROA包括三个部分:一个AS号;一个IP地址前缀列表;对IP地址前缀进行限制的可选内容。资源证书生成模块将生成的RC和ROA发送给资源交易模块。
[0020] 资源交易模块与资源颁发者(或资源接收者)、资源证书生成模块、显示模块、区块链网络相连。资源交易模块从资源证书生成模块接收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发送给显示模块。
[0021] 显示模块与资源交易模块相连,它从资源交易模块接收交易成功消息或交易不成功时的冲突原因、操作失败原因、交易结果,并显示出来;在撤销操作时从资源交易模块接收RC、ROA,并将RC、ROA的具体内容显示出来。
[0022] 验证节点是对资源颁发者发给区块链的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。验证节点运行智能合约对交易进行验证,验证交易的签名、交易的内容是否符合资源颁发者的权限,交易的内容是否与当前已分配的资源没有冲突,将通过验证的交易记录到资源交易成功区块链中,将未通过验证的交易及交易失败的原因记录到资源交易失败区块链中。
[0023] 资源证书交易智能合约由资源颁发者、资源接收者共同制定,是以数字形式定义的承诺,数字形式意味着合约是一段计算机可读的代码,用于解决资源颁发者和资源接收者之间的交易行为。智能合约建立的承诺和协议由一台计算机或者计算机网络执行。
[0024] 告警服务器是对资源交易中出现的非法交易进行告警的服务器,与区块链网络相连。告警服务器作为监控用户加入区块链网络中,其上安装有资源证书交易告警模块。
[0025] 资源证书交易告警模块获取资源交易失败区块链中的失败交易记录及原因,根据资源交易失败的原因,分析可能出现恶意的角色,给出潜在的恶意者风险告警提示。
[0026] 第二步,定义资源交易结构。
[0027] 资源交易结构包括交易发起者,交易接收者,交易类型,交易内容,交易属性,交易证据、交易发起者给出的交易签名。交易发起者指资源颁发者地址,交易接收者即为资源接收者地址。交易签名指在区块链网络中由交易发起者对所发起的交易所进行的数字签名。交易类型包括七种,分别为: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。
[0028] 第三步,定义资源树,资源树由资源交易模块根据有效的资源证书RC来构建。资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP(InternetProtocol)地址前缀,证书中包含的AS(Autonomous System)号。节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点。证书中包含的IP地址前缀,证书中包含的AS号,均由资源交易模块通过解析证书得到。资源树保存在分布式账本中,由资源颁发者和资源接收者共同维护。
[0029] 第四步,基于区块链的资源公钥基础设施系统RPKIB对资源颁发者与资源接收者两者之间的资源操作进行双向授权,在每一种双向授权通过后资源颁发者与资源接收者进行与资源操作相应的交易;当验证节点收到相应的交易报文时,验证节点运行资源证书交易智能合约对相应的交易进行验证,将通过验证的交易记录到资源交易成功区块链中,将未通过验证的交易及交易失败的原因记录到资源交易失败区块链中;告警服务器资源证书交易告警模块监控资源交易失败区块链,当发现有未通过验证的交易及交易失败的原因记录到资源交易失败区块链时,根据资源交易失败的原因,分析可能出现恶意的角色,给出潜在的恶意者风险告警提示;方法是:
[0030] 4.1区块链初始化以及资源树初始化:
[0031] 4.1.1初始化资源交易成功区块链和资源交易失败区块链为空。
[0032] 4.1.2资源交易模块初始化资源树的根节点,令根节点为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记录到分布式账本中。
[0033] 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:
[0034] 4.2.1此时资源交易模块从所属资源颁发者接收到RC1颁发消息,RC1颁发消息中包含资源接收者的IP地址(令为IP接收1)、预颁发给资源接收者的IP地址前缀(令为IP前缀1)、AS号(令为AS1),按4.2.1.1~4.2.1.12所述证书颁发方法颁发证书RC1。
[0035] 4.2.1.1资源交易模块设置一条RC1颁发指令,RC1颁发指令包括IP接收1,IP前缀1、AS1。
[0036] 4.2.1.2资源交易模块按照RC1颁发指令内容进行以下操作:
[0037] 4.2.1.2.1资源交易模块根据RC1颁发指令中的IP前缀1、AS1,查找资源树,检查预颁发的RC1证书是否与资源树中已颁发的RC证书冲突,方法是:
[0038] 4.2.1.2.1.1检查预颁发的IP前缀1和AS1是不是由资源颁发者(令其IP地址为IP颁发1)所拥有,方法是:
[0039] 4.2.1.2.1.1.1资源颁发者的资源交易模块解析自身持有的资源证书RC颁发,得到RC颁发中包含的IP地址前缀和AS号。
[0040] 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;
[0041] 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;具体方法是:
[0042] 4.2.1.2.1.2.1令节点变量v=V0;
[0043] 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;
[0044] 4.2.1.2.1.2.3令v为v1,转4.2.1.2.1.2.2;
[0045] 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。
[0046] 4.2.1.2.1.3资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀资源和AS号不被当前证书颁发者所拥有”),转第五步。
[0047] 4.2.1.2.1.4资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀和AS号已经被颁发”),转4.2.1.2.2。
[0048] 4.2.1.2.2资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步;否则转4.2.1.2.3。
[0049] 4.2.1.2.3资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与预颁发的RC1产生冲突的已颁发资源),若接收到撤销消息,撤销与预颁发RC1相冲突的已颁发RC;若未接收到撤销消息,转第五步;
[0050] 4.2.1.3资源交易模块将RC1颁发指令中的IP前缀1和AS1发送给资源证书生成模块,转4.2.1.4;
[0051] 4.2.1.4资源证书生成模块根据从资源交易模块接收的IP前缀1和AS1,生成资源证书,将此证书命名为RC1。
[0052] 4.2.1.5RC1的资源颁发者和资源接收者进行双向授权,具体如下:
[0053] 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颁发请求应答报文;
[0054] 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,并由资源交易模块将“操作失败”以及操作失败的原因(原因为“发送超时”)发送给显示模块进行显示,转第五步;
[0055] 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;
[0056] 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;
[0057] 4.2.1.7验证节点从资源颁发者接收rc_issue,运行资源证书交易智能合约,做如下检查;
[0058] 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;
[0059] 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;
[0060] 4.2.1.7.3资源证书交易智能合约提取RC1颁发交易报文的交易内容(即RC1的具体内容),从中解析出资源证书中包含的IP地址前缀,检查该IP地址前缀是否与资源颁发者已颁发的资源证书中所包含的IP地址前缀存在冲突;如果不存在冲突转4.2.1.7.4,否则记录失败原因为“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,转4.2.1.7.5;
[0061] 4.2.1.7.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.1.8;
[0062] 4.2.1.7.5资源证书交易智能合约验证未通过,验证节点将交易和失败原因记录到资源交易失败区块链;
[0063] 4.2.1.7.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0064] 4.2.1.7.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步;否则转4.2.1.7.6.2;
[0065] 4.2.1.7.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步;否则转4.2.1.7.6.3;
[0066] 4.2.1.7.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步;否则转4.2.1.7.6.4;
[0067] 4.2.1.7.6.4如果资源交易失败的原因是“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,提示“恶意的角色是资源颁发者”,转第五步;
[0068] 4.2.1.8若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,且从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,转4.2.1.9;若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,转4.2.1.10;
[0069] 4.2.1.9资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
[0070] 4.2.1.9.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
[0071] 4.2.1.9.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
[0072] 4.2.1.9.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.11;
[0073] 4.2.1.10资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.12。
[0074] 4.2.1.11如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
[0075] 4.2.1.12如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为“未正确接收到RC1证书”),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
[0076] 4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC资源证书的持有者(作为资源接收者)、预撤销资源证书RC,按4.2.2.1~4.2.2.8所述证书撤销方法撤销证书RC2:
[0077] 4.2.2.1资源颁发者的资源交易模块根据RC2撤销的消息设置撤销RC2指令,撤销RC2指令包括RC资源证书的持有者(作为资源接收者),以及预撤销的资源证书RC2,并向显示模块发送RC2的具体内容,显示模块显示RC2的具体内容;
[0078] 4.2.2.2资源颁发者与预撤销的RC2证书的持有者(作为资源接收者)执行双向授权,方法是:
[0079] 4.2.2.2.1资源颁发者的资源交易模块检查RC2证书所在节点(令为Vrc2)在资源树中是否属于叶节点,方法是:
[0080] 4.2.2.2.1.1令变量结点v为资源树的根结点V0;
[0081] 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;
[0082] 4.2.2.2.1.3令v为v的子证书标识指向的子节点(即v1);转4.2.2.2.1.2;
[0083] 4.2.2.2.1.4检查Vrc2的子证书标识是否为空,若为空,则Vrc2为叶节点,转4.2.2.2.2执行具体的撤销操作;若Vrc2的子证书标识不为空,转4.2.2.2.1.5;
[0084] 4.2.2.2.1.5此时Vrc2不是叶节点,需要等待证书持有者撤销完节点Vrc2下的资源子树,才能撤销节点Vrc2,执行4.2.2.2.1.6;
[0085] 4.2.2.2.1.6令Vrc2为Vrc2的子证书标识指向的子节点,转4.2.2.2.1.4;
[0086] 4.2.2.2.2资源颁发者的资源交易模块基于UDP构造RC2的撤销报文rc_revoke_request,rc_revoke_request内容包括待撤销证书标识(此时为RC2的标识)、随机数r、证书持有者(即资源接收者)地址,资源颁发者的资源交易模块向资源接收者(此处为RC2的持有者)的资源交易模块发送rc_revoke_request;资源颁发者初始化第二重发次数m2为0,启动RC2对应的撤销请求发送定时器;
[0087] 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,则撤销请求失败,资源颁发者的资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“撤销请求报文发送超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0088] 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;
[0089] 4.2.2.3RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”),显示模块显示“操作失败”以及操作失败的原因,转第五步;
[0090] 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;
[0091] 4.2.2.5验证节点从资源颁发者接收rc_revoke,资源证书交易智能合约做如下检查;
[0092] 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;
[0093] 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;
[0094] 4.2.2.5.3资源证书交易智能合约查询资源交易成功区块链,检查RC2是否已经被颁发,即在资源交易成功区块链中可以查询到已颁发的资源证书RC2,如果通过检查(即在资源交易成功区块链中存在已经被颁发的RC2),执行4.2.2.5.4,否则记录失败原因为“预撤销的资源证书RC2不存在”;执行4.2.2.5.5;
[0095] 4.2.2.5.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.2.6;
[0096] 4.2.2.5.5资源证书交易智能合约验证未通过,验证节点将交易和失败原因记录到资源交易失败区块链;转4.2.2.5.6;
[0097] 4.2.2.5.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0098] 4.2.2.5.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.2.5.6.2;
[0099] 4.2.2.5.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.2.5.6.3;
[0100] 4.2.2.5.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.2.5.6.4;
[0101] 4.2.2.5.6.4如果资源交易失败的原因是“预撤销的资源证书RC2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
[0102] 4.2.2.6资源接收者的资源交易模块根据rc_revoke中的交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.7;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.8。
[0103] 4.2.2.7如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0104] 4.2.2.8如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为“资源删除失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0105] 4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.7所述证书更新方法更新证书RC3:
[0106] 4.2.3.1RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的RC3、RC3资源证书的持有者、RC3的标识,以及更新操作可更改的属性值(包括证书过期时间、整数序列号),如果拟更新的属性值不符合取值范围(如RC3过期时间早于RC3的现有过期时间值),则向显示模块发送报错信息,重新设置拟更新的属性值,转4.2.3.2。
[0107] 4.2.3.2RC3的资源颁发者与RC3证书资源的持有者(作为资源接收者)执行双向授权,具体如下:
[0108] 4.2.3.2.1RC3的资源颁发者的资源交易模块基于UDP构造RC3的更新请求报文rc_overwrite1_request,rc_overwrite1_request内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文rc_overwrite1_request;资源颁发者的资源交易模块初始化第三重发次数m3为0,针对RC3,启动RC3对应的更新请求发送定时器;
[0109] 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的更新请求失败,向显示模块发送“操作失败”,以及操作失败的原因(原因为“更新请求报文发送失败,超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0110] 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;
[0111] 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;
[0112] 4.2.3.4验证节点从RC3的资源颁发者接收rc_overwrite1(修改过期时间或证书序列号),资源证书交易智能合约做如下检查;
[0113] 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;
[0114] 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;
[0115] 4.2.3.4.3资源证书交易智能合约查询资源交易成功区块链,检查资源证书RC3是否已经被颁发,即在资源交易成功区块链上可以查询到已颁发的资源证书RC3,如果通过检查(即存在已经被颁发的RC3)则执行4.2.3.4.4,否则记录失败原因为“预修改的资源证书RC3不存在”;执行4.2.3.4.5;
[0116] 4.2.3.4.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.3.5;
[0117] 4.2.3.4.5资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.3.4.6;
[0118] 4.2.3.4.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0119] 4.2.3.4.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.3.4.6.2;
[0120] 4.2.3.4.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.3.4.6.3;
[0121] 4.2.3.4.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.3.4.6.4;
[0122] 4.2.3.4.6.4如果资源交易失败的原因是“预修改的资源证书RC3不存在”,提示“恶意的角色是资源颁发者”转第五步;
[0123] 4.2.3.5若资源接收者的资源交易模块根据rc_overwrite1中的交易类型(此为更新)和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(修改前为RC3的信息)用RC3’的信息替换,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.7。
[0124] 4.2.3.6如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0125] 4.2.3.7如果RC3的资源颁发者收到交易失败消息,则向显示模块发送“操作失败”以及操作失败的原因(原因为“资源接收者修改证书失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0126] 4.2.4此时资源交易应用客户端的资源交易模块从资源颁发者收到涉及资源分配调整的RC(令为RC4)修改的消息,资源颁发者的资源交易模块需撤销旧证书RC4,再根据修改消息设置颁发新证书(令为RC5),方法是:
[0127] 4.2.4.1按4.2.2所述证书撤销方法撤销RC4;
[0128] 4.2.4.2根据修改消息设置颁发新证书(令为RC5)指令,按4.2.1所述证书颁发方法颁发RC5;转第五步。
[0129] 4.2.5此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA1)颁发的消息,按4.2.5.1~4.2.5.8所述ROA颁发方法颁发ROA1:
[0130] 4.2.5.1ROA1的资源颁发者的资源交易模块设置ROA1颁发指令,ROA1颁发指令内容包括预颁发的IP地址前缀、AS号;
[0131] 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;
[0132] 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;
[0133] 4.2.5.2.2ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“资源冲突,资源颁发者持有的IP地址前缀和AS号资源并不包含预颁发的ROA中包含的IP地址前缀和AS号”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转第五步。
[0134] 4.2.5.2.3ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“预颁发的ROA中包含的IP地址前缀和AS号已经被颁发”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转4.2.5.2.4;
[0135] 4.2.5.2.4ROA1的资源颁发者的资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,则转第五步,否则转4.2.5.2.5;
[0136] 4.2.5.2.5ROA1的资源颁发者的资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与ROA1冲突的已颁发ROA),若接收到撤销消息,则撤销与预颁发ROA1产生冲突的已颁发ROA,转4.2.5.2;若未接收到撤销消息,转第五步。
[0137] 4.2.5.3如果检查结果是未发生冲突,ROA1的资源颁发者的资源交易模块将ROA1颁发指令中的IP地址前缀和AS号发送给资源颁发者的资源证书生成模块;资源颁发者的资源证书生成模块根据ROA1的颁发指令内容(IP地址前缀,AS号)生成ROA1。
[0138] 4.2.5.4ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空),ROA1的资源颁发者对交易的签名;ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者和验证节点,转4.2.5.5;
[0139] 4.2.5.5验证节点从ROA1的资源颁发者接收roa_issue,资源证书交易智能合约做如下检查;
[0140] 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;
[0141] 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;
[0142] 4.2.5.5.3资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.5.6;
[0143] 4.2.5.5.4资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.5.5.5;
[0144] 4.2.5.5.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0145] 4.2.5.5.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.5.5.5.2;
[0146] 4.2.5.5.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.5.5.5.3;
[0147] 4.2.5.5.5.3如果资源交易失败的原因是“预颁发的IP地质资源与已颁发的ROA中包含的IP地址资源冲突”,则提示“恶意的角色是资源颁发者”,转第五步;
[0148] 4.2.5.6若资源接收者的资源交易模块从roa_issue中解析得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.7;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.8。
[0149] 4.2.5.7如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0150] 4.2.5.8如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为“资源接收者获取交易内容失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0151] 4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.6所述ROA撤销方法撤销ROA2:
[0152] 4.2.6.1ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
[0153] 4.2.6.2ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.6.3;
[0154] 4.2.6.3.验证节点从ROA2的资源颁发者接收roa_revoke,资源证书交易智能合约做如下检查;
[0155] 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;
[0156] 4.2.6.3.2资源证书交易智能合约查询资源交易成功区块链,检查ROA2是否已经被颁发,即在资源交易成功区块链上可以查询到已颁发的ROA2,如果通过检查(即存在已经被颁发的ROA2)则执行4.2.6.3.3;否则记录失败原因是“预撤销的ROA2不存在”,执行4.2.6.3.4;
[0157] 4.2.6.3.3资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.6.4;
[0158] 4.2.6.3.4资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.6.3.5;
[0159] 4.2.6.3.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0160] 4.2.6.3.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.6.3.5.2;
[0161] 4.2.6.3.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.6.3.5.3;
[0162] 4.2.6.3.5.3如果资源交易失败的原因是“预撤销的ROA2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
[0163] 4.2.6.4若资源接收者的资源交易模块从roa_revoke中解析得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.5;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.6。
[0164] 4.2.6.5如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0165] 4.2.6.6如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为“资源接收者删除ROA2失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0166] 4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA(令为ROA3)修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
[0167] 4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
[0168] 4.2.7.2根据修改内容生成新的ROA3’,按4.3.5所述ROA颁发方法颁发ROA3’,转第五步;
[0169] 第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。
[0170] 说明:4.2.1.2.3中接收到撤销消息(撤销与预颁发RC1冲突的资源证书)时,撤销与预颁发RC1相冲突的已颁发RC所采用的撤销方法与4.2.2所述的方法一样。4.2.5.2.5中接收到ROA1撤销消息(撤销与ROA1冲突的已颁发ROA)时,撤销与预颁发ROA1产生冲突的已颁发ROA时所采用的方法与4.2.6所述的方法一样。
[0171] 采用本发明可以达到以下技术效果:
[0172] 1.本发明是一种构建于区块链之上的RPKI的资源交易告警方法,有效提升了基于区块链的RPKI的安全性。通过告警服务器的加入,如果资源颁发者发起的各种资源交易操作在区块链中交易产生资源冲突或者资源颁发者提交不合法交易,以及资源颁发者和资源接收者合谋进行非法交易,资源证书交易告警模块都会根据具体原因发出报警信息,并根据交易失败原因给出可能的出现的恶意角色。弥补现有RPKI系统中缺少告警系统,各种资源操作中产生错误而不自知的情况。
[0173] 2.本发明使用了区块链技术,由于区块链网络所具有的容错性,一些节点出错后不会导致整个区块链网络出错,使得第一步构建的RPKIB也具有一定的容错性。附图说明
[0174] 图1是本发明第一步构建的基于区块链的资源公钥基础设施的交易验证系统RPKIB的总体结构图;
[0175] 图2是本发明第二步所述的资源交易结构的结构图;
[0176] 图3是本发明第三步所述的资源树的结构图;
[0177] 图4是本发明总体流程图

具体实施方式

[0178] 图4是本发明总体流程图。如图4所示,本发明包括以下步骤:
[0179] 第一步,构建资源公钥基础设施RPKIB系统。资源公钥基础设施RPKIB系统如图1所示,由资源颁发者、资源交易应用客户端、资源接收者、区块链网络、验证节点、告警服务器组成。
[0180] 区块链网络与资源颁发者、资源接收者、告警服务器、验证节点相连。资源颁发者、资源接收者、告警服务器与区块链网络相连后即成为区块链网络的一个普通节点。验证节点是区块链网络中的与普通节点不同的另一类节点,是对资源颁发者发起的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。资源颁发者与资源接收者将资源证书以及路由起源授权ROA的各种操作均作为交易通过区块链网络进行,并将交易记录保存在分布式账本中。分布式账本中包含资源树以及两条链:资源树用于存储有效的资源证书;资源交易成功区块链和资源交易失败区块链,这两条链存在于所有区块链节点中,且每个节点的资源交易成功区块链和资源交易失败区块链的内容保持一致。资源交易成功区块链用来保存成功通过资源证书交易智能合约验证的资源交易记录。资源交易失败区块链来保存未能通过资源证书交易智能合约验证的资源交易失败区块链,并记录资源交易失败的原因。
[0181] 资源颁发者是服务器,其上安装有资源交易应用客户端,资源颁发者连接到区块链网络后成为区块链网络的节点。资源颁发者与资源接收者作为交易双方,经过双向授权获得交易双方的同意之后,资源颁发者将交易发送给区块链网络。
[0182] 资源接收者是服务器,其上安装有资源交易应用客户端,与区块链相连。资源接收者连到区块链网络,成为区块链网络的节点。
[0183] 资源交易应用客户端安装在资源颁发者和资源接收者上,由资源交易模块、资源证书生成模块、显示模块组成。
[0184] 资源证书生成模块与资源交易模块相连;资源证书生成模块从资源交易模块接收预颁发的RC证书、ROA的信息,根据预颁发的RC证书生成与RPKI定义相同的资源证书RC,资源证书RC的内容包括标准RFC 5280的X.509证书,并附有RFC 3779标准的IP地址和的AS扩展标识符。资源证书生成模块根据预颁发的ROA信息(包括一个AS号和一个或多个IP地址前缀)对资源接收者所持有的资源创建路由起源授权(ROA)。一个有效的ROA包括三个部分:一个AS号;一个IP地址前缀列表;对IP地址前缀进行限制的可选内容。资源证书生成模块将生成的RC和ROA发送给资源交易模块。
[0185] 资源交易模块与资源颁发者(或资源接收者)、资源证书生成模块、显示模块、区块链网络相连。资源交易模块从资源证书生成模块接收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发送给显示模块。
[0186] 显示模块与资源交易模块相连,它从资源交易模块接收交易成功消息或交易不成功时的冲突原因、操作失败原因、交易结果,并显示出来;在撤销操作时从资源交易模块接收RC、ROA,并将RC、ROA的具体内容显示出来。
[0187] 验证节点是对资源颁发者发给区块链的资源交易进行验证的服务器,其上安装有资源证书交易智能合约。验证节点运行智能合约对交易进行验证,验证交易的签名、交易的内容是否符合资源颁发者的权限,交易的内容是否与当前已分配的资源没有冲突,将通过验证的交易记录到资源交易成功区块链中,将未通过验证的交易及交易失败的原因记录到资源交易失败区块链中。
[0188] 资源证书交易智能合约由资源颁发者、资源接收者共同制定,是一段计算机可读的代码,用于解决资源颁发者和资源接收者之间的交易行为。
[0189] 告警服务器是对资源交易中出现的非法交易进行告警的服务器,与区块链网络相连。告警服务器作为监控用户加入区块链网络中,其上安装有资源证书交易告警模块。
[0190] 资源证书交易告警模块获取资源交易失败区块链中的失败交易记录及原因,根据资源交易失败的原因,分析可能出现恶意的角色,给出潜在的恶意者风险告警提示。
[0191] 第二步,定义资源交易结构。
[0192] 资源交易结构如图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。
[0193] 第三步,定义资源树,资源树由资源交易模块根据有效的资源证书RC来构建。如图3所示,资源树的一个节点包括7个域,分别是:资源颁发者,资源接收者,资源证书,父证书标识,子证书标识,证书中包含的IP地址前缀,证书中包含的AS号。节点通过子证书标识域链接到子节点,通过父证书标识域链接到节点的父节点。证书中包含的IP地址前缀,证书中包含的AS号,均由资源交易模块通过解析证书得到。资源树保存在分布式账本中,由资源颁发者和资源接收者共同维护。
[0194] 第四步,基于区块链的资源公钥基础设施系统RPKIB对资源颁发者与资源接收者两者之间的资源操作进行双向授权,在每一种双向授权通过后资源颁发者与资源接收者进行与资源操作相应的交易;当验证节点收到相应的交易报文时,验证节点运行资源证书交易智能合约对相应的交易进行验证,将通过验证的交易记录到资源交易成功区块链中,将未通过验证的交易及交易失败的原因记录到资源交易失败区块链中;告警服务器资源证书交易告警模块监控资源交易失败区块链,当发现有未通过验证的交易及交易失败的原因记录到资源交易失败区块链时,根据资源交易失败的原因,分析可能出现恶意的角色,给出潜在的恶意者风险告警提示;方法是:
[0195] 4.1区块链初始化以及资源树初始化:
[0196] 4.1.1初始化资源交易成功区块链和资源交易失败区块链为空。
[0197] 4.1.2资源交易模块初始化资源树的根节点,令根节点为V0:以互联网注册管理机构RIR作为区块链的创世纪者创建创世区块,将RIR所拥有的资源证书作为资源树的根节点V0:V0的资源颁发者和资源接收者均为RIR的IP地址,V0的资源证书为RIR所持有的资源证书,V0的父证书标识为NULL,V0的子证书标识为NULL(因为RIR还未颁发子证书),V0的IP地址前缀为RIR所拥有的IP地址前缀,AS号为RIR所拥有的AS号。把V0记录到分布式账本中。
[0198] 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:
[0199] 4.2.1此时资源交易模块从所属资源颁发者接收到RC1颁发消息,RC1颁发消息中包含资源接收者的IP地址(令为IP接收1)、预颁发给资源接收者的IP地址前缀(令为IP前缀1)、AS号(令为AS1),按4.2.1.1~4.2.1.12所述证书颁发方法颁发证书RC1。
[0200] 4.2.1.1资源交易模块设置一条RC1颁发指令,RC1颁发指令包括IP接收1,IP前缀1、AS1。
[0201] 4.2.1.2资源交易模块按照RC1颁发指令内容进行以下操作:
[0202] 4.2.1.2.1资源交易模块根据RC1颁发指令中的IP前缀1、AS1,查找资源树,检查预颁发的RC1证书是否与资源树中已颁发的RC证书冲突,方法是:
[0203] 4.2.1.2.1.1检查预颁发的IP前缀1和AS1是不是由资源颁发者(令其IP地址为IP颁发1)所拥有,方法是:
[0204] 4.2.1.2.1.1.1资源颁发者的资源交易模块解析自身持有的资源证书RC颁发,得到RC颁发中包含的IP地址前缀和AS号。
[0205] 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;
[0206] 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;具体方法是:
[0207] 4.2.1.2.1.2.1令节点变量v=V0;
[0208] 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;
[0209] 4.2.1.2.1.2.3令v为v1,转4.2.1.2.1.2.2;
[0210] 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。
[0211] 4.2.1.2.1.3资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀资源和AS号不被当前证书颁发者所拥有”),转第五步。
[0212] 4.2.1.2.1.4资源交易模块将“资源冲突”消息发送给显示模块,显示模块显示“资源冲突”消息,消息中包含资源冲突原因(冲突原因为“预颁发的RC证书中包含的IP地址前缀和AS号已经被颁发”),转4.2.1.2.2。
[0213] 4.2.1.2.2资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,转第五步;否则转4.2.1.2.3。
[0214] 4.2.1.2.3资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与预颁发的RC1产生冲突的已颁发资源),若接收到撤销消息,撤销与预颁发RC1相冲突的已颁发RC;若未接收到撤销消息,转第五步;
[0215] 4.2.1.3资源交易模块将RC1颁发指令中的IP前缀1和AS1发送给资源证书生成模块,转4.2.1.4;
[0216] 4.2.1.4资源证书生成模块根据从资源交易模块接收的IP前缀1和AS1,生成资源证书,将此证书命名为RC1。
[0217] 4.2.1.5RC1的资源颁发者和资源接收者进行双向授权,具体如下:
[0218] 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颁发请求应答报文;
[0219] 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,并由资源交易模块将“操作失败”以及操作失败的原因(原因为“发送超时”)发送给显示模块进行显示,转第五步;
[0220] 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;
[0221] 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;
[0222] 4.2.1.7验证节点从资源颁发者接收rc_issue,运行资源证书交易智能合约,做如下检查;
[0223] 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;
[0224] 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;
[0225] 4.2.1.7.3资源证书交易智能合约提取RC1颁发交易报文的交易内容(即RC1的具体内容),从中解析出资源证书中包含的IP地址前缀,检查该IP地址前缀是否与资源颁发者已颁发的资源证书中所包含的IP地址前缀存在冲突;如果不存在冲突转4.2.1.7.4,否则记录失败原因为“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,转4.2.1.7.5;
[0226] 4.2.1.7.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.1.8;
[0227] 4.2.1.7.5资源证书交易智能合约验证未通过,验证节点将交易和失败原因记录到资源交易失败区块链;
[0228] 4.2.1.7.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0229] 4.2.1.7.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步;否则转4.2.1.7.6.2;
[0230] 4.2.1.7.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步;否则转4.2.1.7.6.3;
[0231] 4.2.1.7.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步;否则转4.2.1.7.6.4;
[0232] 4.2.1.7.6.4如果资源交易失败的原因是“预颁发的IP地址资源与已颁发的资源证书中包含的IP地址资源冲突”,提示“恶意的角色是资源颁发者”,转第五步;
[0233] 4.2.1.8若资源接收者的资源交易模块接收到从资源颁发者发送来的rc_issue,且从rc_issue的交易内容域得到具体的交易内容即RC1资源证书,则交易成功,转4.2.1.9;若资源接收者的资源交易模块未接收到rc_issue或从rc_issue的交易内容域得到的交易内容不是RC1资源证书,转4.2.1.10;
[0234] 4.2.1.9资源接收者的资源交易模块为资源树创建一个新的节点(命名为RC1节点),方法是:
[0235] 4.2.1.9.1更新RC1节点的父节点即资源颁发者持有的证书RC颁发所在的节点的信息,在子证书标识域中添加一条子证书标识,该子证书标识指向新的节点RC1节点。
[0236] 4.2.1.9.2创建新节点RC1并填充各域的信息:RC1节点的资源颁发者域就是RC1的资源颁发者的IP地址IP颁发1,资源接收者域就是RC1的资源接收者的IP地址IP接收1,资源证书域内容为RC1,父证书标识域指向RC1的资源颁发者持有的资源证书RC颁发所在节点,子证书标识域为NULL,当前节点还未颁发子证书,证书中包含的IP地址前缀和AS号由资源交易模块解析RC1得到。
[0237] 4.2.1.9.3向资源颁发者的资源交易模块发送交易成功消息,转4.2.1.11;
[0238] 4.2.1.10资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.1.12。
[0239] 4.2.1.11如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,RC1的资源颁发者的资源交易模块向显示模块发送“交易成功”消息,显示模块显示“交易成功”,转第五步;
[0240] 4.2.1.12如果RC1的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易失败消息,则RC1的资源颁发者在资源树中删除RC1证书所在节点,同时RC1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息和操作失败的原因(原因为“未正确接收到RC1证书”),显示模块显示“操作失败”消息和操作失败的原因,转第五步。
[0241] 4.2.2此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC2)撤销的消息,RC2撤销的消息包括RC资源证书的持有者(作为资源接收者)、预撤销资源证书RC,按4.2.2.1~4.2.2.8所述证书撤销方法撤销证书RC2:
[0242] 4.2.2.1资源颁发者的资源交易模块根据RC2撤销的消息设置撤销RC2指令,撤销RC2指令包括RC资源证书的持有者(作为资源接收者),以及预撤销的资源证书RC2,并向显示模块发送RC2的具体内容,显示模块显示RC2的具体内容;
[0243] 4.2.2.2资源颁发者与预撤销的RC2证书的持有者(作为资源接收者)执行双向授权,方法是:
[0244] 4.2.2.2.1资源颁发者的资源交易模块检查RC2证书所在节点(令为Vrc2)在资源树中是否属于叶节点,方法是:
[0245] 4.2.2.2.1.1令变量结点v为资源树的根结点V0;
[0246] 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;
[0247] 4.2.2.2.1.3令v为v的子证书标识指向的子节点(即v1);转4.2.2.2.1.2;
[0248] 4.2.2.2.1.4检查Vrc2的子证书标识是否为空,若为空,则Vrc2为叶节点,转4.2.2.2.2执行具体的撤销操作;若Vrc2的子证书标识不为空,转4.2.2.2.1.5;
[0249] 4.2.2.2.1.5此时Vrc2不是叶节点,需要等待证书持有者撤销完节点Vrc2下的资源子树,才能撤销节点Vrc2,执行4.2.2.2.1.6;
[0250] 4.2.2.2.1.6令Vrc2为Vrc2的子证书标识指向的子节点,转4.2.2.2.1.4;
[0251] 4.2.2.2.2资源颁发者的资源交易模块基于UDP构造RC2的撤销报文rc_revoke_request,rc_revoke_request内容包括待撤销证书标识(此时为RC2的标识)、随机数r、证书持有者(即资源接收者)地址,资源颁发者的资源交易模块向资源接收者(此处为RC2的持有者)的资源交易模块发送rc_revoke_request;资源颁发者初始化第二重发次数m2为0,启动RC2对应的撤销请求发送定时器;
[0252] 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,则撤销请求失败,资源颁发者的资源交易模块向显示模块发送“操作失败”以及操作失败的原因(原因为“撤销请求报文发送超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0253] 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;
[0254] 4.2.2.3RC2的资源颁发者的资源交易模块根据RC2的标识,检查RC2所位于的节点(令为v1)是否在资源树中是叶节点(即判定v1的子证书标识域的值是否为NULL),如果v1是叶节点(即v1的子证书标识的值为NULL),转4.2.2.4;如果v1不是叶节点,说明RC2的持有者并没有将RC2的资源子树完全删除,RC2不符合撤销条件,向显示模块发送“操作失败”,以及操作失败的原因(原因为“RC2的持有者在没有撤销完子资源的条件下返回RC撤销同意请求,违反协议规定或者遭受到攻击”),显示模块显示“操作失败”以及操作失败的原因,转第五步;
[0255] 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;
[0256] 4.2.2.5验证节点从资源颁发者接收rc_revoke,资源证书交易智能合约做如下检查;
[0257] 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;
[0258] 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;
[0259] 4.2.2.5.3资源证书交易智能合约查询资源交易成功区块链,检查RC2是否已经被颁发,即在资源交易成功区块链中可以查询到已颁发的资源证书RC2,如果通过检查(即在资源交易成功区块链中存在已经被颁发的RC2),执行4.2.2.5.4,否则记录失败原因为“预撤销的资源证书RC2不存在”;执行4.2.2.5.5;
[0260] 4.2.2.5.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.2.6;
[0261] 4.2.2.5.5资源证书交易智能合约验证未通过,验证节点将交易和失败原因记录到资源交易失败区块链;转4.2.2.5.6;
[0262] 4.2.2.5.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0263] 4.2.2.5.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.2.5.6.2;
[0264] 4.2.2.5.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.2.5.6.3;
[0265] 4.2.2.5.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.2.5.6.4;
[0266] 4.2.2.5.6.4如果资源交易失败的原因是“预撤销的资源证书RC2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
[0267] 4.2.2.6资源接收者的资源交易模块根据rc_revoke中的交易类型(此为RC撤销)和交易内容执行删除操作,将资源证书RC2删除,同时修改资源树:删除RC2所在的节点v1,并将v1父节点中子证书标识域中指向节点v1的子证书标识删除。此时交易成功。资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.2.7;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.2.8。
[0268] 4.2.2.7如果RC2资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0269] 4.2.2.8如果资源颁发者收到交易失败消息,向显示模块发送“操作失败”,并提示操作失败的原因(原因为“资源删除失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0270] 4.2.3此时资源交易应用客户端的资源交易模块从资源颁发者接收到RC(令为RC3)过期时间修改、证书序列号等不涉及公私钥以及资源分配的RC3更新消息,按4.2.3.1~4.2.3.7所述证书更新方法更新证书RC3:
[0271] 4.2.3.1RC3的资源颁发者的资源交易模块设置RC3更新指令,RC3更新指令内容包括当前生效的RC3、RC3资源证书的持有者、RC3的标识,以及更新操作可更改的属性值(包括证书过期时间、整数序列号),如果拟更新的属性值不符合取值范围(如RC3过期时间早于RC3的现有过期时间值),则向显示模块发送报错信息,重新设置拟更新的属性值,转4.2.3.2。
[0272] 4.2.3.2RC3的资源颁发者与RC3证书资源的持有者(作为资源接收者)执行双向授权,具体如下:
[0273] 4.2.3.2.1RC3的资源颁发者的资源交易模块基于UDP构造RC3的更新请求报文rc_overwrite1_request,rc_overwrite1_request内容包括待更新证书标识、随机数r、证书持有者ID,资源颁发者的资源交易模块通过区块链网络向证书持有者的资源交易模块发送RC3的更新请求报文rc_overwrite1_request;资源颁发者的资源交易模块初始化第三重发次数m3为0,针对RC3,启动RC3对应的更新请求发送定时器;
[0274] 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的更新请求失败,向显示模块发送“操作失败”,以及操作失败的原因(原因为“更新请求报文发送失败,超时”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0275] 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;
[0276] 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;
[0277] 4.2.3.4验证节点从RC3的资源颁发者接收rc_overwrite1(修改过期时间或证书序列号),资源证书交易智能合约做如下检查;
[0278] 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;
[0279] 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;
[0280] 4.2.3.4.3资源证书交易智能合约查询资源交易成功区块链,检查资源证书RC3是否已经被颁发,即在资源交易成功区块链上可以查询到已颁发的资源证书RC3,如果通过检查(即存在已经被颁发的RC3)则执行4.2.3.4.4,否则记录失败原因为“预修改的资源证书RC3不存在”;执行4.2.3.4.5;
[0281] 4.2.3.4.4资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.3.5;
[0282] 4.2.3.4.5资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.3.4.6;
[0283] 4.2.3.4.6资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0284] 4.2.3.4.6.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.3.4.6.2;
[0285] 4.2.3.4.6.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.3.4.6.3;
[0286] 4.2.3.4.6.3如果资源交易失败的原因是“交易证据不正确”,则提示“恶意的角色是资源颁发者或资源接收者”,转第五步,否则转4.2.3.4.6.4;
[0287] 4.2.3.4.6.4如果资源交易失败的原因是“预修改的资源证书RC3不存在”,提示“恶意的角色是资源颁发者”转第五步;
[0288] 4.2.3.5若资源接收者的资源交易模块根据rc_overwrite1中的交易类型(此为更新)和交易内容用RC3’替换掉待更新的RC3,此时交易成功,资源接收者的资源交易模块修改资源树:将资源证书RC3所在节点的资源证书域的信息进行修改,即将资源证书域(修改前为RC3的信息)用RC3’的信息替换,同时资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.3.6;否则向资源颁发者的资源交易模块发送交易失败消息,转4.2.3.7。
[0289] 4.2.3.6如果RC3的资源颁发者的资源交易模块收到从资源接收者的资源交易模块发送来的交易成功的消息,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0290] 4.2.3.7如果RC3的资源颁发者收到交易失败消息,则向显示模块发送“操作失败”以及操作失败的原因(原因为“资源接收者修改证书失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0291] 4.2.4此时资源交易应用客户端的资源交易模块从资源颁发者收到涉及资源分配调整的RC(令为RC4)修改的消息,资源颁发者的资源交易模块需撤销旧证书RC4,再根据修改消息设置颁发新证书(令为RC5),方法是:
[0292] 4.2.4.1按4.2.2所述证书撤销方法撤销RC4;
[0293] 4.2.4.2根据修改消息设置颁发新证书(令为RC5)指令,按4.2.1所述证书颁发方法颁发RC5;转第五步。
[0294] 4.2.5此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA1)颁发的消息,按4.2.5.1~4.2.5.8所述ROA颁发方法颁发ROA1:
[0295] 4.2.5.1ROA1的资源颁发者的资源交易模块设置ROA1颁发指令,ROA1颁发指令内容包括预颁发的IP地址前缀、AS号;
[0296] 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;
[0297] 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;
[0298] 4.2.5.2.2ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“资源冲突,资源颁发者持有的IP地址前缀和AS号资源并不包含预颁发的ROA中包含的IP地址前缀和AS号”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转第五步。
[0299] 4.2.5.2.3ROA1的资源颁发者的资源交易模块向显示模块发送“操作失败”消息及原因(原因为“预颁发的ROA中包含的IP地址前缀和AS号已经被颁发”),显示模块显示“操作失败”消息,消息中包含操作失败的原因,转4.2.5.2.4;
[0300] 4.2.5.2.4ROA1的资源颁发者的资源交易模块检查是否从资源颁发者接收到“放弃本次交易”的指令,若接收到,则转第五步,否则转4.2.5.2.5;
[0301] 4.2.5.2.5ROA1的资源颁发者的资源交易模块判定是否从资源颁发者接收到撤销消息(撤销与ROA1冲突的已颁发ROA),若接收到撤销消息,则撤销与预颁发ROA1产生冲突的已颁发ROA,转4.2.5.2;若未接收到撤销消息,转第五步。
[0302] 4.2.5.3如果检查结果是未发生冲突,ROA1的资源颁发者的资源交易模块将ROA1颁发指令中的IP地址前缀和AS号发送给资源颁发者的资源证书生成模块;资源颁发者的资源证书生成模块根据ROA1的颁发指令内容(IP地址前缀,AS号)生成ROA1。
[0303] 4.2.5.4ROA1的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA1的颁发交易报文roa_issue,roa_issue包括资源颁发者(此时为ROA1的颁发者)、资源接收者(此时为ROA1的接收者)、交易类型(此时为ROA1颁发)、交易内容(此时为ROA1的具体内容)、交易属性(包括传递属性,过期属性,传递属性为空,过期属性表示该ROA是否有期限限制)、交易的证据(此时为空),ROA1的资源颁发者对交易的签名;ROA1的资源颁发者的资源交易模块将ROA1的颁发交易报文roa_issue通过区块链网络发送给资源接收者和验证节点,转4.2.5.5;
[0304] 4.2.5.5验证节点从ROA1的资源颁发者接收roa_issue,资源证书交易智能合约做如下检查;
[0305] 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;
[0306] 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;
[0307] 4.2.5.5.3资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.5.6;
[0308] 4.2.5.5.4资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.5.5.5;
[0309] 4.2.5.5.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0310] 4.2.5.5.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.5.5.5.2;
[0311] 4.2.5.5.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.5.5.5.3;
[0312] 4.2.5.5.5.3如果资源交易失败的原因是“预颁发的IP地质资源与已颁发的ROA中包含的IP地址资源冲突”,则提示“恶意的角色是资源颁发者”,转第五步;
[0313] 4.2.5.6若资源接收者的资源交易模块从roa_issue中解析得到交易类型(此为ROA1颁发)和交易内容(ROA1的具体内容),此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.5.7;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.5.8。
[0314] 4.2.5.7如果ROA1的资源颁发者从资源接收者接收到交易成功的消息,则向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0315] 4.2.5.8如果ROA1的资源颁发者从资源接收者收到交易失败消息,则ROA1的资源颁发者的资源交易模块删除ROA1,并向显示模块发送操作失败的消息及操作失败的原因(原因为“资源接收者获取交易内容失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0316] 4.2.6此时资源交易客户端的资源交易模块从资源颁发者收到ROA(令为ROA2)撤销的消息,则按4.2.6.1~4.2.6.6所述ROA撤销方法撤销ROA2:
[0317] 4.2.6.1ROA2的资源颁发者的资源交易应用客户端的资源交易模块设置一条ROA2撤销指令,ROA2撤销指令包括ROA2的持有者,以及ROA2的标识,并向显示模块发送ROA2的具体内容,显示模块显示ROA2的具体内容;
[0318] 4.2.6.2ROA2的资源颁发者的资源交易模块依据定义的资源交易结构,构造ROA2的撤销交易报文roa_revoke,roa_revoke内容包括资源颁发者(此时为ROA2的颁发者)、资源接收者(此时为ROA2的持有者)、交易类型(此时为ROA2撤销)、交易内容(此时为ROA2的标识)、交易属性(此时为空)、交易的证据(此时为空);由ROA2的资源颁发者对交易签名,资源颁发者的资源交易模块将roa_revoke通过区块链网络发送给资源接收者的资源交易模块和验证节点,转4.2.6.3;
[0319] 4.2.6.3.验证节点从ROA2的资源颁发者接收roa_revoke,资源证书交易智能合约做如下检查;
[0320] 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;
[0321] 4.2.6.3.2资源证书交易智能合约查询资源交易成功区块链,检查ROA2是否已经被颁发,即在资源交易成功区块链上可以查询到已颁发的ROA2,如果通过检查(即存在已经被颁发的ROA2)则执行4.2.6.3.3;否则记录失败原因是“预撤销的ROA2不存在”,执行4.2.6.3.4;
[0322] 4.2.6.3.3资源证书交易智能合约验证通过,验证节点将交易记录到资源交易成功区块链,转4.2.6.4;
[0323] 4.2.6.3.4资源证书交易智能合约验证未通过,验证节点将交易记录包含失败原因到资源交易失败区块链;转4.2.6.3.5;
[0324] 4.2.6.3.5资源证书交易告警模块监控到资源交易失败区块链的变化,读取资源交易失败区块链中新添加的失败交易记录及原因,分析出可能出现的恶意角色,并给出提示,具体如下:
[0325] 4.2.6.3.5.1如果资源交易失败的原因是“发布者签名不正确或交易格式错误”,则提示“恶意的额角色是资源颁发者”,转第五步,否则转4.2.6.3.5.2;
[0326] 4.2.6.3.5.2如果资源交易失败的原因是“该交易报文之前已经提交过”,则提示“恶意的角色为资源颁发者”,转第五步,否则转4.2.6.3.5.3;
[0327] 4.2.6.3.5.3如果资源交易失败的原因是“预撤销的ROA2不存在”,提示“恶意的角色是资源颁发者”,转第五步;
[0328] 4.2.6.4若资源接收者的资源交易模块从roa_revoke中解析得到交易类型(此时为ROA2撤销)和交易内容(ROA2的具体内容),资源接收者的资源交易模块删除ROA2,此时交易成功,资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易成功消息,转4.2.6.5;若交易不成功,则资源接收者的资源交易模块向资源颁发者的资源交易模块发送交易失败消息,转4.2.6.6。
[0329] 4.2.6.5如果资源颁发者的资源交易模块收到从资源接收者发送来的交易成功的消息,则资源接收者资源交易模块删除ROA2,并向显示模块发送“交易成功”,显示模块显示“交易成功”,转第五步;
[0330] 4.2.6.6如果资源颁发者的资源交易模块接收到交易失败消息,则向显示模块发送该操作失败的通知及操作失败的原因(原因为“资源接收者删除ROA2失败”),显示模块显示“操作失败”以及操作失败的原因,转第五步。
[0331] 4.2.7此时资源交易应用客户端的资源交易模块从资源颁发者接收到ROA(令为ROA3)修改的指令,则ROA3的资源颁发者的资源交易模块需先撤销ROA3,再根据修改内容生成新的ROA3’,并颁发新ROA3’,方法是:
[0332] 4.2.7.1按4.2.6所述ROA撤销方法撤销ROA3:
[0333] 4.2.7.2根据修改内容生成新的ROA3’,按4.3.5所述ROA颁发方法颁发ROA3’,转第五步;
[0334] 第五步,转4.2,资源交易应用客户端的资源交易模块等待从资源颁发者接收下一条消息,以进行下一个交易。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈