1.一种基于区块链技术的车联网分层认证方法,其特征在于:该方法包括以下步骤:S1:基于区块链的分层证书服务模型,此模型是指将三级认证机构作为区块链网络上的节点,由同一层内实体都有的统一的层标识和下层认证实体依靠从上层认证实体获取的身份证书来建立逻辑分层,运用区块链技术的共识机制和不可篡改的数据结构等安全措施去处理证书服务和认证实体状态记录,最终形成分层的证书服务链,向道路交通实体提供证书颁发、验证以及回撤证书的服务;
其中,三级认证机构包括:
MasterAuthority,简称MA,
CertificateAuthority,简称CA,
以及Road Side Unit,简称RSU,
分别形成:
主权力机构层,简称MA层,
证书权力机构层,简称CA层,
证书权力机构代表层,简称CAPAE层;
S2:建立分层信誉共识机制:依据分层信誉积分计算模型计算各层认证实体的信誉积分,此计算模型基于逻辑回归预测二分事件发生概率的原理,量化个体和每一层的证书服务记录,个体信誉积分包括个体认证行为积分、应扣除的的层损失积分和能激励长期保持可信的阶段积分,两次共识间隔即为一个阶段;层损失积分依据某一层的出错行为进行计算,引入是为处罚同一层内认证实体的合谋攻击,然后基于信誉积分和两次共识间隔内的认证行为得到分布式实体的可靠性,最后依据可靠性快速高效共识;
S3:基于信誉积分和两次共识间隔内的认证行为得到分布式实体的可靠性,然后对链上实体进行动态管理,即剔除不可靠认证实体和新认证实体的加入;
S4:快速验证或安全性验证,快速验证时间效率高,安全性验证保证远距离通信中实体的可靠性,根据实际的安全性和时效性需求选择一种验证方式。
2.根据权利要求1中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S1具体包括以下步骤:
S11:MA层的实体由一个城市的交通管理部门和车联网技术标准机构担任;作为整个链上最上层认证实体负责管理下面CA层的认证实体,另外步骤S2中的分层信誉共识在MA层产生记账节点,记账节点负责将各层的证书和认证实体的关键信息写进区块;
S12:CA层的实体由城市各个区的交通管理部门担任,CA层的实体向上层的MA实体发出证书申请,报告自己的身份签名信息,验证通过之后收到来自上层MA实体颁发的证书;接收到MA层返回的证书后,表示在链上注册成功,证书中有在链上的标识和密钥,通过智能合约进行记录维护,之后能够代理MA层实体处理来自RSU组的认证请求和管理下层由注册成功的RSU组成的CAPAE层的实体;
S13:第三层CAPAE层的认证实体则由路边的基站组担任,向CA层进行申请注册,获取证书,同样由CA层的实体生成相应的链上标识和密钥,颁发相应的证书;注册成功之后形成CAPAE层,层内实体处理来自交通实体的认证请求;交通实体的信息和状态则能够由链上所有节点进行管理;
S14:分层认证体系形成之后,分层证书服务模型中各层认证实体和身份证书的关键信息就以智能合约进行维护,其中,身份证书包括链外交通实体的身份证书,然后由分层信誉共识机制选举出的记账节点将记录写入区块中,至少需要链上信誉值较高的前2/3的节点验证通过;MA层实体公开自己的公钥用于交通实体加密自己的身份信息,一旦交通实体出现恶意行为,由MA实体根据这个交通实体的证书区块高度由步骤S4里提出来的页和部分的检索方式查询到此交通实体的证书内容,利用私钥解密出恶意节点的真实身份。
3.根据权利要求1中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S2具体包括以下步骤:
S21;为计算和审计整个分层证书服务网络实体的信用分数,整个证书服务链上维护关于链上实体属性和链上证书属性:链上实体属性包括:
实体标识:回撤的证书;
颁发的证书:验证的证书;
状态:区域id;
信誉积分:选票数;
父CA:验证列表;
错误记录:有效周期
链上证书属性包括:
申请者公钥:状态;
颁发者标识:证书哈希值;
申请者标识:颁发时间;
有效高度:实体的可信度;
S22:当分层证书服务链上的认证实体在一个证书到期后或者需要开始新一轮共识时,相应上层的父认证实体依据自己维护的链上实体信息进行信誉积分计算,在颁发新的证书时将信誉积分写进证书,并由记账节点将实体包含积分的关键属性写进区块;依据分层信誉积分模型计算信誉积分;信誉积分模型中的j表示层数,j∈{1,2,3}分别表示MA,CA和CAPAE层。
4.根据权利要求3中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S22分层信誉积分计算模型,具体包括以下步骤:
S221:根据公式(1)与(2)计算第j层的编号为m的实体的出错率;
Bjm=Bi+Bv+Br (1)
其中Pjm表示第j层编号为m的认证实体AEjm的出错率;Bjm表示此认证实体两次共识间隔期间总的链上行为数,具体包括颁发的证书数Bi,验证的证书行为数Bv,回撤的证书行为数r i v rB ;EB、EB和EB分别表示此认证实体颁发,验证和回撤证书出错的记录数;α、β和χ分别表示EBi、EBv和EBr对此认证实体AEjm出错率的影响权重;
S222:考虑到纵向上下层实体的安全行为约束关系,计算一个接出错率,即是父认证实体在子认证实体出错之后应接受相应的处罚,在计算父认证实体的信誉积分时,将相应的间接出错率加上父认证实体的出错率,如公式(4)所示;计算方法如公式(3)所示,通过计算子认证实体的出错率之和,然后计算出错的子认证实体在总体的子认证实体中的比例,相乘得到最后的间接出错率;
Pjm=Pjm+IPjm (4)
其中num2为此认证实体AEjm总的子实体个数,num1为出错的子实体数,CAPAE层的子实体以具体管理的交通实体个数为准;
S222:根据公式(5)与(6)计算此认证实体AEjm在两次共识间隔内的认证行为积分;
CBjm=Bjm-(EBi+EBv+EBr) (5)
其中CBjm和Sjm分别表示认证实体AEjm的正确行为记录数和行为积分;
S223:根据公式(7)计算AEjm所在的第j层的出错率,用LPj表示;且n为此层的所有认证实体的集合;
S224:先根据公式(9)计算层的信用积分Sj,然后根据公式(10)计算出相应层的损失积分LSj;层损失积分引入是为惩罚层内实体进行合谋攻击的情况,如果一组认证实体的出错率高而其它实体没有出错率,那么层损失积分全由他们承担,相应的本轮他们的激励积分也很少,则整体积分少,则被从链上剔除;
其中CBj表示第j层在两次共识间隔内总的正确认证行为数,公式(1-LPj)计算的是j层正确率;
S225:根据证书服务链上的认证实体在不同服务阶段,服务阶段内提供的正确认证服务记录来计算阶段激励积分;以两次共识间隔为阶段衡量标准,一个共识间隔算一个阶段,用Phase表示;首先计算3层的平均积分,为层内认证实体提供一个统一的激励标准;层积分不采用累加的方式,而是基于本阶段的层内认证行为进行层积分的计算;然后采用阶段累加的方式统计此认证实体的正确行为和所在层的正确行为数,AEjm服务阶段越长提供的正确的服务数越多获得的阶段激励积分越多;计算方法如下公式(11):S226:接下来通过公式(12)计算链上认证实体的出错率与层出错率的比率,通过公式(13)计算相应的认证实体AEjm应该承担的损失积分;
odds=Pjm/LPj (12)
LSjm=LSj*(1-e-odds) (13)
S228:分层认证模型上的认证实体的信用积分包括三部分,第一提供正确服务应得的行为积分,根据自身出错率承担的本层的损失积分,按服务阶段提供的正确服务记录得到的阶段激励积分,计算方法如公式(14)所示:RVjm=Sjm+LSjm+PSjmj∈{1,2,3} (14)S23:计算得到信誉积分后,发送给链上父认证实体进行验证,验证通过在证书颁发时将实体所获得积分写入证书,除此之外认证实体的信誉积分能为认证申请者提供一个选择分布式认证实体的标准以及为分层信誉共识做好准备。
5.根据权利要求4中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S23分层信誉积分共识,具体包括以下步骤:
S231:首先选取区块高度h1,h2计算两个区块高度之间内的MA层的出错率和本层认证实体的出错率,分别用λ1m,λ1表示;由出错率计算相应MA层与层内的实体的可靠性,分别用R1m,R1表示;此处的j取1表示MA层,计算方式如下:S232:如果个体可靠性大于等于MA层可靠性,则将相应的实体加入候选池;
S233:CAPAE层和CA层的实体依据经过折算后的票数,用Votejm表示,对候选池中的节点进行投票,每个节点每次只能将自己的票投给候选池中的一个MA节点,可以投出的票数Votejm计算方法如下:S234:最终按照公式(20)统计候选池中的某一实体MA1m统计票数;
其中CAi与CAPAEi分别表示下层给MA1m投票的认证实体标识,一个标识表示获得一份折算后的票数,再乘以MA1m的可靠性和MA层可靠性的占比,最终统计出最终的票数;
S235:最后候选人池中的节点根据所得的最终票数和本身积分进行哈希运算,要求CA和CAPAE投票的节点至少需要2/3以上的节点参与投票,做出正确哈希运算的MA进入记账节点序列,哈希运算的原则如公式(21),其中r是一定范围内的随机数,Cons表示一个常数,TD表示目标难度:S236:依照先后顺序,将做出满足哈希运算要求的候选池中的前 候选人节点加入记账节点序列,如果两个节点同时提供了满足要求的哈希输入,就将信用积分更高或者提供更小的哈希的候选节点加入;
S237:产生记账节点序列后,每次记账时随机打乱记账节点序列顺序;在CAPAE层和CA层的信誉值在前2/3的认证实体,候选池中没有参与记账的认证实体作为验证节点,每次验证者会依据记账节点的信誉积分和和票数,可靠性和产生区块的顺序,当然还需要验证区块内容,这些节点验证通过之后,区块有效;
S238:另外如果当前节点该出块时却没有出现在下一轮共识的候选池中那么就相应延后,如果出现了就不用重新投票和做哈希,直接开始记账产生区块,区块头部需要写入该节点本轮新的信誉值;下一轮共识中如果该节点被剔除了,那么将该节点就从记账节点序列里剔除。
6.根据权利要求1中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S3具体包括以下步骤:
S31:在信用积分的计算完成之后,上层的父实体对下层子实体进行动态管理,作为MA层实体如果不符合系统要求,则由同层的认证实体回撤其证书,将其从分层认证链上进行剔除;同时接收新的同区域下的认证实体注册;
S32:判断错误占比odds是否为0,为0就直接返回当前认证实体状态有效,否则进行下一步;
S33:判断当前未进入候选池中的认证实体的可靠性是否满足Rjm<Rj,满足就将当前实体的不可靠标记加1;当不可靠标记等于2次时或者当前认证实体出现在父认证实体的黑名单中,就发起一笔交易将该认证实体的证书回撤,同时将该认证实体的状态设为无效;
S34:同时选择同区域下新的申请者注册为链上的认证实体,新加入的认证实体一开始不能提供认证和回撤证书的服务,只能为链下的安全验证申请者转发需验证的内容和查询区块内容返回验证结果,当有一段时间的诚实行为贡献之后,由同层的其它认证实体投票决定是否可以提供认证服务。
7.根据权利要求1中所述的一种基于区块链技术的车联网分层认证方法,其特征在于:所述步骤S4具体包括以下步骤:
S41:链外的交通实体从链上认证实体处获得证书之后,将发送请求建立安全连接的参数,包括证书颁发时的区块高度、证书的颁发者和证书的哈希值;
S42:根据实际需求选择验证方式,快速验证首先进行证书存在性验证,根据证书的区块高度在链上查找相应信息,然后对比目前的区块高度和证书的有效高度,最后进行证书签名验证;
S43:安全性验证是在快速验证完成之后进行的,先进行回撤验证,首先根据证书颁发时的区块高度将证书按照页和部分进行存放到相应存储服务器上的页和部分处,并且以Key:Hash(Hash(Certi)+R||O),R代表回撤,O代表普通没有被回撤的证书,Value:Certi键值对的形式进行存储证书;回撤验证时首先查看有无相应的回撤实体的哈希,然后根据页号和部分号快速定位到相应的存储区域,加上相应标志位进行验证;
S44:然后对被验证实体的父认证实体和中转节点的证书进行快速验证与回撤验证。