基于双层分片区块链的车联网跨信任域高效认证分析
2024-05-08钱志奇
钱志奇
摘要:在车联网系统中,为了提高车联网系统的安全性、可扩展性和效率,可以利用双层分片区块链技术进行车联网跨信任域高效认证。本文主要分析了双层分片区块链具体技术,提出实现车联网跨域认证的流程,主要是进行全局层共识、本地层认证及共识、跨域认证、记录交互信息,通过跨信任域的高效认证,可以确保整个网络的安全性和可扩展性。双层分片设计很好地支持了车联网跨域高效认证的需求,有利于推动车联网应用的发展。
关键词:双层分片区块链;车联网;跨信任域高效认证
引言
基于双层分片区块链的车联网跨信任域高效认证,采用了双层分片的架构,将整个网络分为两个层级,即全局层和本地层。在全局层,通过共识算法和分片机制,确保整个网络的安全性和可扩展性,记录了所有参与车联网实体的身份和信任信息。在本地层,每个车辆或设备都有一个本地的区块链,用于记录本地的交互和认证信息,可以快速进行本地的认证操作,减少了通信延迟和计算开销。
1. 双层分片区块链技术
1.1 全局层
在双层分片区块链技术中,全局层是指整个网络的顶层结构,是负责维护全局层账本和处理全局层共识的层级。其主要功能包括四個方面。第一,全局层账本维护。全局层维护了整体账本,记录了所有参与车联网实体的身份和信任信息。全局层账本是分布式的,存储在网络中的多个节点上,确保了数据的可靠性和安全性。第二,全局层共识。全局层的节点通过共识算法达成一致,确保全局层账本的一致性和安全性[1]。共识算法可以采用拜占庭容错算法、Proof of Stake(PoS)、Proof of Authority(PoA)等机制来实现,确保网络中的节点能够就账本的状态达成一致。第三,跨信任域认证。全局层的账本记录了所有参与车联网实体的身份和信任信息。这使得不同车辆或设备之间可以互相认证和验证身份和信任信息,实现跨信任域的认证。第四,安全和隐私保护。全局层需要采取相应的安全措施,保护全局层账本中的数据安全和隐私,可以通过加密技术、访问控制机制、匿名性保护等手段来实现。
全局层在双层分片区块链技术中起到了关键作用,通过维护全局层账本和处理全局层共识,实现跨信任域的认证和数据一致性。同时,全局层也提供了一个安全可靠的基础,为车联网系统的其他功能和应用提供支持。
1.2 本地层
在双层分片区块链技术中,本地层是指每个车辆或设备所拥有的本地区块链,用于记录本地的交互和认证信息。本地层的主要功能也包括四个方面。第一,本地认证。每个车辆或设备可以通过本地层的区块链进行本地认证,验证其他车辆或设备的身份和信任信息。本地层的认证可以基于加密技术和数字签名等机制进行,确保交互的安全性和可信性。进行对称密钥加密时,使用相同的密钥进行加密和解密,加密算法采用AES(高级加密标准),其具体公式如下:
加密:密文=AES(明文,密钥)
解密:明文=AES(密文,密钥)
例如,明文:“Hello World!”,那么密钥就是“SecretKey12345”,加密后的密文则是“V2K6n8Cv0FVw4XVdJg1Ykg==”。
进行非对称密钥加密时,使用公钥和私钥这一对密钥,其中公钥用于加密,私钥用于解密。加密算法采用RSA,其具体公式如下:
加密:密文=AES(明文,公钥)
解密:明文=AES(密文,私钥)
第二,本地共识。在本地层,车辆或设备之间需要达成共识,确保本地层区块链的一致性和安全性。本地层的共识机制可以采用类似于全局层的共识算法,也可以根据具体需求设计合适的共识机制。第三,本地层的区块链用于存储和记录车辆或设备的交互信息,包括认证结果、交易记录、位置信息等,这些数据可以被其他车辆或设备查询和验证,实现跨域认证和数据交互。本地层的存在使得车辆或设备可以在本地进行快速认证和交互,减少了通信延迟和计算开销。同时,本地层的区块链也提供了一定的可信度和安全性,为车联网系统的其他功能和应用提供支持。
2. 应用双层分片区块链技术实现车联网跨域认证的流程
2.1 全局层共识
全局层共识在车联网跨域认证流程中起到了关键作用,确保了数据一致性、节点信任、交易顺序和有效性,以及系统的可扩展性,是实现车联网系统安全可靠的基础。所以,在进行跨信任域高效认证的时候,要进行全局层共识操作[2]。首先,进行共识节点选择,从参与车联网的节点中选择一部分节点作为全局层的共识节点,这些共识节点负责验证和打包交易,并参与共识算法的运算。其次,进行交易验证,当车辆需要进行认证时,将认证请求发送给全局层的共识节点。共识节点首先对认证请求进行验证,确保请求的合法性和有效性。验证包括检查车辆的身份信息、签名等。接下来,开展交易打包,经过验证的认证请求会被打包成交易,并广播给全局层的其他共识节点,交易包括认证请求的相关信息,如请求的发起方、目标方、认证类型等。最后,实现共识算法运算,全局层的共识节点通过共识算法进行运算,以达成一致并确定交易的有效性和顺序。共识算法可以采用拜占庭容错算法、PoS、PoA等机制,确保节点能够就全局层的账本状态达成一致。
例如,使用拜占庭容错算法,这是一种能够在存在恶意节点的情况下依然保证共识正确性的算法。假设有5个共识节点(节点A、节点B、节点C、节点D、节点E),其中节点C是一个恶意节点,其他节点都是诚实的,这些节点需要就某个认证交易达成共识。
提案:节点A:发送消息:{value:10};节点B:发送消息:{value:10};节点C(恶意节点):发送消息:{value:5};节点D:发送消息:{value:10};节点E:发送消息:{value:10}。
投票:每个节点对提案进行投票,表明它们对提案的同意或不同意。节点A、节点B、节点D、节点E表示同意,节点C作为恶意节点,不同意。
汇总:共识节点汇总所有的投票结果,并计算出多数派的决策。在这个案例中,4个节点都同意提案。
验证:每个节点验证最终的决策是否满足共识算法的要求。在这个案例中,满足多数派同意的条件。
确认:最终决策被确认,并将认证交易添加到全局层的账本中。
通过拜占庭容错算法,即使存在恶意节点(节点C)试图破坏共识过程,其他诚实节点仍然能够达成共识,并确保认证交易的正确性和一致性。
最后,当共识节点达成共识后,认证交易被确认,并将其添加到全局层的账本中。这使得全局层的账本保持一致,并可以被所有参与车辆或设备访问和查询,实现跨域认证,这样可以确保全局层账本的一致性和安全性,实现车联网系统的跨信任域认证。
2.2 本地层认证及共识
在进行本地认证的时候,每个车辆或设备在本地层进行认证,验证其他车辆或设备的身份和信任信息。本地认证可以基于加密技术和数字签名等机制进行,确保认证的安全性和可信度,本地认证主要包括验证对方的数字证书、身份信息、信任度等。而进行本地共识时,在本地层,车辆或设备之间需要达成共识,确保本地层区块链的一致性和安全性。本地共识可以使用一些轻量级的共识算法,例如Proof of Authority(PoA)或Proof of Stake(PoS)。这些算法不需要复杂的计算过程,而是依赖于特定的节点或权益来决定共识节点和区块的生成[3]。例如,在车联网系统启动时,先确定一组可信任的权威节点,这些节点将负责本地层的共识过程,权威节点一般由系统管理员或特定的机构进行指定。当车辆A需要对车辆B进行认证时,车辆A生成认证请求,并将请求发送给本地层的权威节点。权威节点收到认证请求后,首先对请求进行验证,包括检查数字签名、验证身份证书、验证认证请求的完整性等,只有通过验证的认证请求才能进入本地层的共识过程。通过验证的认证请求进入共识过程后,权威节点根据PoA算法进行计算。具体公式为:
计算结果=f(认证请求,额外信息)
其中,f()是一个特定的计算函数,它接受认证请求和额外的信息作为输入,并生成一个计算结果。在PoA算法中,权威节点负责生成和验证区块,而不需要进行复杂的计算任务,权威节点打包认证请求为一个区块,并将其添加到本地层的区块链中。当车辆或设备进行认证时,本地层需要验证认证请求的有效性和合法性。这可能涉及检查数字签名、验证对方的身份证书、检查认证请求的完整性等步骤,只有通过了验证的认证请求才能进入本地层的共识过程。通过本地层的认证和共识,车辆或设备可以在本地进行快速认证和交互,减少了通信延迟和计算开销。
2.3 跨域认证
车联网系统中存在多个域,每个域都可能有自己的认证机制和信任标准,通过跨域认证,不同域中的车辆或设备可以相互认证,建立起跨域的信任关系,从而实现安全可靠的跨域通信和相互操作。而且通过跨域认证,合法授权的车辆或设备可以跨域访问其他域中的数据,从而支持更灵活的数据交换和应用场景。进行跨域认证请求,当车辆A需要对车辆B进行跨域认证时,在本地层完成本地认证后,车辆A生成跨域认证请求,并将请求发送给全局层。
全局层接收到跨域认证请求后,进行验证,包括检查数字签名、验证身份证书、验证认证请求的完整性等,只有通过验证的跨域认证请求才能进入全局层的共识过程。通过验证的跨域认证请求进入全局层的共识过程,全局层的共识可以采用一些更为复杂的共识算法,如拜占庭容错算法,以确保在跨域环境中的一致性和安全性。跨域认证结果生成,全局层的共识节点根据共识算法生成跨域认证结果,并将其添加到全局层的区块链中。当其他节点验证通过后,最终达成全局层共识,跨域认证结果被确认并添加到全局层的区块链中。
例如,车辆A的身份信息为ID_A,认证请求数据为Data_A;车辆B的身份信息为ID_B,认证请求数据为Data_B。
车辆A生成数字签名:Signature_A=Sign(Data_A,PrivateKey_A)。
全局层验证车辆A的身份:Verification_A=Verify(Signature_A,Data_A,PublicKey_A)
全局层生成认证结果:AuthResult_A=Hash(ID_A+Data_A+Signature_A)
全局层将认证结果和车辆A的身份信息存入全局层区块链。
车辆B生成数字签名:Signature_B=Sign(Data_B,PrivateKey_B)
全局层验证车辆B的身份:Verification_B=Verify(Signature_B,Data_B,PublicKey_B)
全局层生成认证结果:AuthResult_B=Hash(ID_B+Data_B+Signature_B)
全局层将认证结果和车辆B的身份信息存入全局层区块链。
全局层将车辆A和车辆B的认证结果发送给车辆A和车辆B。
通过全局层的跨域认证操作,车辆或设备可以在不同的域中进行认证,并确保认证结果的一致性和可信度。全局层的区块链提供了一个共享的信任机制,使得不同域中的车辆或设备可以相互认证,并建立起跨域的信任关系。
2.4 记录交互信息
记录交互信息可以实现交互过程的可追溯性,通过区块链的不可篡改性和分布式存储,可以确保交互信息的完整性和真实性,保证交互过程中的每一步操作都可以被追溯和审计[4]。而且通过加密和数字签名等技术,交互信息可以得到保护,防止信息被篡改或冒充,同时,区块链的去中心化和分布式特性也增加了系统的抗攻击能力。
首先生成交互信息,当车辆A与车辆B进行跨域认证时,双方会进行信息交互,交互信息可以包括认证请求、认证结果、证书、数字签名等。为保护交互信息的安全性和隐私,可以采用加密算法对交互信息进行加密。为确保交互信息的完整性和真实性,可以使用数字签名技术对交互信息进行签名。签名可以使用私钥对信息进行加密,并与公钥一起发送给对方,接收方可以使用公钥验证签名的有效性。交互信息可以通过网络广播或点对点通信传输给其他参与方,在全局层中,交互信息会被广播给其他全局层节点进行验证和存储。接收方收到交互信息后,首先进行验证。验证包括解密加密的交互信息、验证数字签名的有效性以及验证交互信息的完整性和合法性。验证通过的交互信息会被存储在全局层的区块链中,区块链提供了分布式存储和共享的機制,确保交互信息的安全性和可信度。通过记录交互信息,可以实现交互过程的可追溯性、增强安全性、建立信任关系、促进数据共享和合作。
结语
综上所述,基于双层分片区块链技术,对车联网跨信任域进行高效认证,可以提高车联网系统的安全性、可扩展性和效率,为车联网应用提供了更加可靠和高效的认证机制。在进行高效认证的时候,主要是从全局层、本地层两个方面入手,实现全局层、本地层的共识和认证,最终实现双层跨域认证,保证不同车辆之间的可靠身份认证,并且避免跨分片通信,减少了验证延迟,提升认证效率,保证网络的安全。
参考文献:
[1]张金龙.分布式环境下的跨信任域之间的信任管理策略[J].移动通信,2023, 47(8):74-78.
[2]刘雪娇,钟强,夏莹杰.基于双层分片区块链的车联网跨信任域高效认证方案[J].通信学报,2023,44(5):213-223.
[3]霍炜,张琼露,欧嵬,等.面向区块链的物联网终端跨域认证方法综述[J].计算机科学与探索,2023,17(9):1995-2014.
[4]夏莹杰,朱思雨,刘雪娇.区块链架构下具有条件隐私的车辆编队跨信任域高效群组认证研究[J].通信学报,2023, 44(4):111-123.
作者简介:钱志奇,在读博士研究生,高级工程师,研究方向:车联网、智慧交通。