一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链和可信执行环境的车联网数据共享实现方法与流程

2022-03-02 03:12:21 来源:中国专利 TAG:


1.本发明涉及的是一种区块链应用领域的技术,具体是一种基于区块链和可信执行环境(trusted execution environment,tee)的车联网数据共享实现方法,通过引入区块链及tee技术在车联网中构建联盟链系统,设计统一的数据管理标准及隐私保护方法,解决车联网数据跨域共享和隐私保护的难题。


背景技术:

2.现有的车联网场景中普遍采用中心化的管理方式,各车企搭建自己的数据管理平台并服务于各自域内的车辆,无法在各车企或第三方之间形成统一的数据管理标准,无法实现跨管理域的数据共享。区块链作为分布式系统可以在车联网中构建一个去中心化的管理平台,但是现有的区块链系统隐私保护性能较弱,无法形成对敏感数据和智能合约的隐私保护。通过引入tee可以解决隐私保护的问题。现有的改进技术通过引入tee均是解决数据隐私处理的问题,但是并没有对区块链智能合约的隐私保护进行设计,没有考虑对海量数据的存储管理,也并未在车联网这一具体场景中进行设计或解决跨管理域的数据共享问题,没有针对多个数据提供方的数据管理标准不统一提出解决方案。


技术实现要素:

3.本发明针对现有的中心化车辆数据管理方案难以在多个车企之间形成统一的管理标准,因此较难实现跨管理域场景下的数据流动和共享,并且中心化的服务器容易遭受攻击导致系统性能不佳或隐私数据泄露以及基于现有区块链系统搭建的数据管理平台虽然实现去中心化,但是区块链公开透明的特性难以实现对智能合约执行和敏感数据处理的保护的缺陷,提出一种基于区块链和可信执行环境的车联网数据共享实现方法,引入tee技术,将区块链和tee结合可以在保证区块链基础功能的前提下增强对智能合约和敏感数据的隐私保护,并借助tee的数据密封功能构建链下存储系统解决海量数据的存储问题,围绕着基于可信执行环境构建的联盟链节点(tee node)的安全性功能设计解决对车辆数据的隐私保护和可信存储问题。
4.本发明是通过以下技术方案实现的:
5.本发明涉及一种基于区块链和可信执行环境的车联网数据共享实现方法,包括:
6.步骤1、构建基于区块链和tee的车联网基础管理架构,该架构核心为被配置为联盟链组织节点tee node的车企,各车企管理域内的车辆作为组织内的访问客户端,通过调用隐私合约实现多种业务操作,每个tee node中均设有安全飞地(enclave)。
7.所述的业务操作包括:车辆数据的存储、获取、更改、计算等功能。
8.所述的enclave包括:智能合约飞地、密钥管理飞地、存储管理飞地以实现合约执行、密钥保护、链下存储。
9.步骤2、由客户端发起隐私合约创建:首先客户端通过加密通道将合约代码发送给可信执行环境节点(tee node),tee node将合约代码加载到相应的飞地中并执行初始化操
作,加载完成后为该合约创建唯一的编号为cid。然后,密钥管理飞地在本地生成密钥对(pk
cid
,sk
cid
),并将私钥sk
cid
传递给存储管理飞地进行密封处理后存储在链下数据库中,并使用公钥pk
cid
对合约的初始状态进行加密生成:操作完成后tee node在飞地中通过签名生成对执行结果的认证δ
tee
,并发送给远程认证服务器(ias)获取认证报告其中:b属于0到1之间,表示ias对δ
tee
的有效性判定,δ
ias
是ias的签名。即认证报告包含ias对飞地执行结果的置信度评估及签名。最后tee node将消息:通过区块链网络广播给其他组织节点,其他节点会验证认证报告的有效性,验证成功后该消息在区块链网络中形成共识,隐私合约创建完成。
10.步骤3、客户端调用隐私合约:客户端首先在区块链上查找该合约的cid以及公钥pk
cid
,然后使用公钥加密需要传递的参数parameter以及cid生成消息:通过加密通道将该消息发送给tee node,tee node收到该消息后在tee中对该密文进行解密获得parameter和cid,然后在智能合约飞地中执行相应的合约代码并输出执行结果res,同时形成一个新的tee状态state_new。对于需要进行隐私保护的执行结果,采用链上存储数据索引及完整性证据,链下存储源数据的方式对res进行存储,将res密封后存储在链下数据库中,另外计算:作为数据索引存储在区块链上。同样tee会对上述操作结果进行远程认证获得认证报告将消息:发送给区块链网络形成共识,最后将执行结果res通过加密通道返回给客户端,隐私合约调用结束。
11.为保证tee的可用性,本发明提出将tee内部状态更新保存在区块链上,解决tee因某些原因导致状态丢失所带来的问题。当tee状态丢失后,客户端首先从区块链上获取存储的状态密文并发送给tee node,tee node在内部解密后重新加载tee状态并初始化飞地,这样可以保持tee状态的长期有效性。
12.步骤4、数据流转:本发明基于tee node的核心功能设计实现车辆数据的流转。车辆作为原始数据的提供方将加密数据提交给tee node,数据的解密及处理在tee内部完成,由于数据量巨大,采用链上存证,链下存储的方式对数据进行存储管理。在tee中执行隐私合约对原始数据进行处理,对处理后的源数据进行密封后存储在链下数据库中,将数据索引以及认证报告存储在区块链上。数据请求方在链上查询需要获取的数据索引并提交给tee node,tee node首先对数据请求方进行身份认证,在确定其具有数据使用权限后在tee中执行隐私合约完成数据的解封及处理,并提取有用的信息通过加密信道返回给数据请求方。
13.步骤5、数据提交:车辆作为原始数据提供方与tee node建立安全连接并发起数据提交请求,tee node会先对车辆进行身份验证并确定该车辆是否具有写数据权限,验证通过后调用智能合约飞地内部的合约对原始数据进行解密后处理得到源数据(source data),同时飞地对执行结果进行签名生成认证δ
tee
,提交给ias进行远程认证并获取(远程认证报告)。为方便对链下存储的数据进行完整性验证,对源数据进行哈希运算得出源数据的认证码,也即hamc值,并将其添加在源数据的头部形成完整的数据包。在tee环境中对数据包进行密封后生成:sealed(hamc||source data),将密封后的数据存储在链下数据库
中。此外,tee具有秒级别的可信时钟,可以为执行结果提供时间戳(timestamp),方便对数据进行溯源。计算数据索引值:data index=hash(enc(source data)),最后将data index,timestamp,以及其他的辅助信息一同上链存储。数据提供方可以通过上链查询认证报告来确认提交的数据已经完成可信存储,这形成了对数据提交流程的闭环监控。
14.步骤6、数据请求:数据请求方首先从区块链上获取数据索引data index以及隐私合约编号cid,然后与tee node建立安全连接并发起数据读取请求,tee node会先对数据请求方进行身份认证并确认该用户的等级是否有读数据权限,认证通过后在飞地中执行隐私合约。飞地根据data index查询链下存储数据库获取对应的数据条目,在tee中进行数据解封后得到(hamc||source data),重新计算源数据的认证码hmac并与之前存储的值进行比较以确保数据的完整性,完整性校验通过后从源数据中提取用户所需要的信息并通过加密信道返回给用户,同时将本次数据访问行为记录到区块链上。技术效果
15.本发明基于区块链构建去中心化的数据管理平台,解决现有中心化方案中由于各管理域的标准不统一而难以实现跨管理域数据共享的问题。现有的数据共享方案基于一个中心化的服务器,无法对各车企的数据管理标准进行统一。本发明通过对tee node进行设计,将车辆原始数据进行处理后采用统一的格式标准存储在链上和链下,各车企遵守统一的区块链管理标准,方便实现数据的共享。
16.本发明通过引入tee解决现有区块链系统中缺乏隐私保护的问题,为隐私合约和敏感数据提供一个受保护的执行环境。同时基于tee构建链下存储系统,将大量源数据存储在链下数据库中,只在链上存储数据索引,链上链下协同存储的方式可以降低区块链系统的存储开销,提高数据的可用性。基于安全多方计算和零知识证明的隐私保护方法只能在特定的场景下使用,使用范围局限,并且基于算法来实现隐私保护的计算开销较大,系统负担较重。
附图说明
17.图1为基于区块链和tee的车联网系统示意图;
18.图2为实施例合约创建流程示意图;
19.图3为实施例合约调用流程示意图;
20.图4为实施例数据流转过程示意图;
21.图5为实施例数据读写流程示意图;
22.图6为实施例车辆json数据格式设计示意图;
23.图7为实施例数据提交延迟示意图;
24.图8为实施例数据提交吞吐量示意图;
25.图9为实施例数据密封和解封的时间消耗示意图。
具体实施方式
26.本实施例涉及一种基于区块链和可信执行环境的车联网数据共享实现方法,包括:
27.步骤1、构建如图1所示的基于区块链和tee车联网基础管理架构,具体包括:
28.步骤1.1、基于tee构建联盟链的组织节点,为系统提供硬件安全基础;
29.步骤1.2、设计联盟成员的准入规则,确保只有身份可信的车企能够作为组织节点加入联盟链通道,并将其配置为tee node;
30.步骤1.3、在tee node中设计三个安全飞地,包括:智能合约飞地,密钥管理飞地,存储管理飞地,以实现对隐私合约调用、密钥管理、数据存储的安全操作;
31.步骤1.4、进行tee环境初始化,各安全飞地完成本地认证,以确定各飞地均成功执行实例化操作;
32.步骤1.5、各车企管理域内的车辆作为组织内的访问客户端,调用隐私合约实现多种业务操作,包括车辆数据的存储、获取、更改、计算等功能,其中将敏感数据和隐私合约的处理放在tee中完成;
33.步骤1.6、各车辆上传的数据经过tee node处理后采用统一的标准在链上和链下存储,经过tee node处理后的车辆数据采用统一的json格式进行管理,其基本的数据构成格式如图6所示;
34.步骤1.7、安全飞地与远程认证服务器通信获取认证报告,认证报告可作为程序执行过程和执行结果的可信背书证据。
35.步骤2、创建如图2所示的基于区块链和tee混合系统的隐私合约,具体包括:
36.步骤2.1、客户端发起合约创建,通过加密通道将合约代码发送给tee node,tee node将合约代码加载到相应的飞地中并进行初始化操作,加载完成后为该合约创建一个唯一编号为cid;
37.步骤2.2、密钥管理飞地在本地生成密钥对(pk
cid
,sk
cid
),私钥sk
cid
在存储管理飞地中进行密封后存储在链下数据库中;
38.步骤2.3、使用公钥pkcid对tee内部的初始状态进行加密生成
39.步骤2.4、操作完成后tee node在智能合约飞地中通过签名生成认证δ
tee
,并发送给远程认证服务器获取认证报告包含对飞地执行结果的置信度评估及签名;
40.步骤2.5、tee node将加密后的tee初始状态、加密公钥、合约编号、远程认证报告等辅助信息通过区块链网络广播给其他组织节点,其他节点会验证认证报告的有效性,验证成功后该消息在区块链网络中形成共识,隐私合约创建成功。
41.如图2所示,客户端通过加密信道将合约代码发送给tee node,合约代码在tee环境中进行解密并加载到相应的安全飞地中,同时在安全飞地中生成密钥对,使用公钥将tee的初始状态以及合约id加密后存储到区块链上。
42.步骤3、如图3所示,客户端调用隐私合约,具体包括:
43.步骤3.1、客户端首先在区块链上查找该合约的编号cid以及公钥pkcid,然后使用公钥加密需要传递的参数parameter以及cid生成消息通过加密信道将该消息发送给tee node;
44.步骤3.2、tee node收到该消息后在tee中对该密文进行解密获得parameter和cid,然后在智能合约飞地中执行相应的合约代码并输出执行结果res,同时形成一个新的tee状态state_new;
45.步骤3.3、采用链上存证,链下存储源数据的方式对执行结果res进行存储,将res密封后存储在链下数据库中,另外计算作为数据索引存储在区块链上;
46.步骤3.4、tee会对上述操作结果进行远程认证并获取认证报告最后将消息发送给区块链网络形成共识;
47.步骤3.5、最后将执行结果res通过加密通道返回给客户端,隐私合约调用结束。
48.如图3所示,客户端从链上获取合约id以及合约公钥,将输入参数以及合约id通过加密信道发送给tee node,在tee环境中进行解密获得明文合约id和输入参数,根据合约id调用安全飞地中的合约代码,执行完成后形成新的tee状态,将执行结果的加密hash值以及新的tee状态加密存储到区块链上,同时通过加密信道将执行结果返回给调用客户端。
49.步骤4、数据提交,具体包括:
50.步骤4.1、车辆作为原始数据提供方与tee node建立安全连接并发起数据提交请求,tee node会先对车辆进行身份验证并确定该车辆是否具有写数据权限;
51.步骤4.2、验证通过后调用隐私合约对原始数据进行处理得到源数据(source data),同时飞地对执行结果进行签名生成认证δ
tee
,提交给远程认证服务器获取认证报告
52.步骤4.3、为方便对数据进行完整性验证,对源数据进行哈希运算得出源数据的认证码,也即hamc值,并将其添加在源数据的头部形成完整的数据包;
53.步骤4.4、在tee环境中对数据包进行密封后生成sealed(hamc||source data),将密封后的数据存储在链下数据库中;
54.步骤4.5、tee为执行结果提供时间戳(timestamp)作为辅助信息,方便对数据进行溯源;
55.步骤4.6、计算数据索引值data index=hash(enc(source data)),最后将data index,timestamp,以及其他的辅助信息一同上链存储;
56.步骤4.7、数据提供方通过上链查询认证报告来确认提交的数据已经完成可靠存储,形成对数据提交流程的闭环监控。
57.如图4所示,tee node处于中心的位置,作为数据流转的枢纽,为隐私合约和敏感数据的处理提供可信的环境并基于数据密封功能构建链下数据存储系统。
58.步骤5、数据请求,具体包括:
59.步骤5.1、数据请求方首先从区块链上获取数据索引data index以及隐私合约编号cid,然后与tee node建立安全连接并发起数据读取请求;
60.步骤5.2、tee node会先对数据请求方进行身份认证并确认该用户的等级是否有读数据权限,认证通过后在安全飞地中执行隐私合约;
61.步骤5.3、飞地根据data index查询链下存储数据库获取对应的数据条目,在tee中进行数据解封后得到(hamc||source data),重新计算源数据的认证码hmac并与之前存储的值进行比较以确保数据的完整性;
62.步骤5.4、完整性校验通过后从源数据中提取用户所需要的信息,通过加密信道返回给用户,同时将本次数据访问行为记录到区块链上。
63.如图5所示,数据流转的核心为tee node,数据的解密以及处理均在tee node的安全飞地中完成,这确保了明文数据不会泄露。另外,tee node提供对链下存储数据库访问的唯一接口,简化对链下数据存储操作的流程,增强对数据存储的安全保护,同时在链下存储的数据头部添加hmac认证码来保证链下存储数据的完整性。在图中,联盟链作为一个去中
心化的系统记录数据索引值和完整性证据,为系统中各节点可见,因此可以作为数据防篡改的证据。远程认证服务器可以为tee的执行结果进行背书,这保证了tee中隐私合约程序执行的正确性。数据的提交和请求由客户端发起,tee node会首先对客户端进行身份认证并进行权限确认,确保客户端具有数据访问权限后通过调用隐私合约来执行对数据的处理并将相关的操作存储在区块链上作为不可抵赖的证据,最后通过安全信道将关键信息返回给客户端。从图中可以看出数据的提交和请求流程相对独立,并且对于数据提供方(车辆)和数据请求方(用户)的身份认证机制互不干涉,通过对tee node的设计实现数据所有权和使用权的安全隔离。
64.经过具体实际实验,在以车载终端设备tbox作为tee node的访问客户端,在tbox与tee node之间建立https安全通信信道,以json作为信息交换的数据格式。以手机app形式实现数据请求客户端参与到联盟链网络中。以hyperledger fabric v2.0作为基础联盟链平台,以intel sgx作为tee方案来构建的区块链和tee的混合系统。tee node使用八核inteli7-1065g7 cpu,具有1.8ghz运算主频和16gb的运行内存,2gbps网络连接,并且cpu提供intel sgx功能支持,在局域网中构建4个tee node的联盟链系统。在ubuntu16.04lts系统中基于intel sgx sdk设计tee程序,使用enclave规定的edl语言设计函数操作接口,并使用go语言编写隐私合约代码。设计三个安全飞地,分别实现合约执行,密钥管理,数据存储功能,在edl文件中定义的enclave函数接口分为trusted和untrusted两个部分,在trusted中定义的函数只能在ree中调用,函数在tee中执行,在untrusted中定义的函数只能在tee中调用,函数在ree中执行,ree侧和tee侧的交互只能通过在edl文件中定义的函数接口完成,这保证tee中函数执行的高度机密性。以couchdb作为链下存储数据库,存储key-value对。
65.所述的数据提交,其性能测试具体为:来自车辆客户端的数据会首先提交给tee node,在安全飞地中执行隐私合约并对数据进行密封操作,交易过程会记录在区块链上,以交易在区块链上形成共识作为数据提交过程结束的标志对整个过程的吞吐量和延迟进行测试,为验证设计的区块链和tee混合系统的性能,与无tee的联盟链进行比较。并且通过增加并发提交的客户端数量来观察测试结果的变化,数据提交延迟测试结果如图7所示。可以看出,在有tee的区块链系统中,交易处理的延迟比常规区块链略高,这是因为安全飞地在执行内部合约代码之前需要进行初始化操作,包括完整性度量,本地认证,数据密封/解封等,这些是不可避免的工作,会产生较大的时间开销,导致交易执行延迟增加。总体来看,混合区块链系统比传统区块链的交易处理延迟略高10%至20%。图8为数据提交过程的吞吐量测试,可以看出,交易吞吐量基本持平,tee混合区块链系统的交易吞吐量约为常规区块链的0.95x-0.99x。总体来看,混合区块链系统在交易处理性能上略有下降,但是相比于安全性能的大幅提升,轻微的性能降低是可以接收的。
66.所述的安全飞地的数据密封操作和解封操作的性能测试具体为:固定以2mb的数据大小进行测试,如图9所示,x轴表示密封数据块的大小,y轴表示cpu时间成本,单位为毫秒。从测试结果可以看出,当增加密封的数据块大小后,密封和解封所用的时间逐渐下降并趋于平稳,这是由于在数据密封和解封的过程中,需要在tee和ree之间进行数据交互,交互过程有一定的时间开销,选择的密封数据块越小则需要交互的频率越高,因此选择合适大小的数据块既可以保证存储空间的充分利用又可以降低密封/解封的时间开销。
67.与现有技术相比,本方法侧重于解决现有车联网数据管理方案中存在的中心化和隐私保护问题,在系统性能上与传统的区块链方案基本持平,但是在对数据隐私保护的安全性上有较大的提升。下面从数据的完整性、机密性、可用性、数据溯源等方面对本方案的安全性能进行分析:
68.数据完整性:车辆源数据存储在链下的数据库中,其完整性由hmac认证码保证,在存储时会计算源数据的hamc值并附在数据头部一同存储,在读取时会重新计算hmac值并与之前的存储值进行比较以确保数据的完整性,另外将数据进行加密密封后持久性存储在链下数据库中,可以保证数据的完整性不受破坏。在链上存储的是数据索引,其完整性由远程认证报告保证,中包含tee对执行结果的签名,并由intel进行背书,远程认证报告确保执行结果的可靠性与完整性。
69.数据机密性:为确保车辆数据的机密性,在数据提交过程,车辆客户端与tee node之间采用tls加密通信的方式,并使用合约公钥加密原始数据确保在数据进入tee环境之前一直以密文形式存在,在tee中完成解密、处理,对输出的结果也在tee中进行加密密封后存储,整个过程明文数据不出tee,这保证数据的隐私性,同时由intel远程认证背书,确保执行结果的可信性。另外在链上存储的是数据加密后的散列值,不会泄露原数据。在数据请求时,tee node会与请求客户端建立加密通道并进行身份认证,确保数据请求方的身份权限可以访问隐私数据,这确保隐私数据不会被恶意第三方获取。
70.数据的可用性:采用链上存证与链下存储源数据结合的方式既确保了海量车联网数据的有效存储,又降低了区块链网络共识的负担。同时,链下存储数据库只与tee node进行交互,一方面确保数据访问的安全性,另一方面确保数据访问接口的统一性。用户只需要与tee node进行交互即可获取有效数据而不需要亲自查询数据库,这提高了数据查询的效率,简化了交互的流程。同时,区块链作为分布式系统,可有效对抗单点失效问题,可确保链上存储的数据索引持久性存储。以上的设计确保数据具有很好的可用性。
71.数据溯源:在数据提交的时候交易中会包含车辆的身份信息,这作为数据来源有效的存储在区块链中,另外每笔交易都会附带时间戳可作为该数据的唯一性证据。每次数据请求或更改操作都会以发布交易的形式记录在区块链上,这保证对数据流转过程的记录。
72.综上,本发明实现了在多个车企管理域中数据的共享,解决现有车联网系统中数据跨域共享的难题。其中将联盟链引入到车联网系统中并实现对现有区块链技术的改进是一种新的技术手段,对共享数据的隐私保护也并非现有的区块链技术可以解决的问题。
73.现有的车联网场景中各车企管理域的管理标准不统一,中心化管理方案很难实现跨域的数据共享,因此本发明提出引入区块链来解决这一难题,并引入tee对现有区块链体系进行一系列的安全性功能改进。另外,虽然区块链和tee为现有的技术,但此前并未有在车联网场景中结合的应用方案,本发明通过技术上的改进对区块链和tee进行互补性的设计,采用技术手段解决现有车联网系统中存在的问题,因此要解决的是技术问题而非管理问题。
74.本发明一方面通过引入区块链来为多个车企管理域提供一个去中心化的管理方案,统一各车企的数据管理标准以方便实现数据共享。其中tee node的设计是本发明技术创新性的关键体现,通过tee node处理后的数据采用统一的数据格式在链上和链下存储;
另一方面是通过引入tee解决隐私保护的问题,通过对tee内部安全飞地的功能设计实现对敏感数据处理和隐私合约执行的安全保护,并构建链下存储系统解决海量车联网数据的安全存储问题,提升对车辆数据的安全性保护和整体系统的安全性能。
75.上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献