一种基于区块链的车联网数据共享细粒度访问控制方法与流程

专利2022-06-30  85


本发明属于区块链领域,具体涉及一种基于区块链的车联网数据共享细粒度访问控制方法。



背景技术:

随着移动计算,无线通信,嵌入式设备等技术的快速发展,车载adhoc网络(vanet)正逐步走向成熟。它为不同的车辆和道路设施提供实时的数据传输和功能交互,使得用户可以随时访问internet资源和共享数据,并致力于提高交通运输的效率和驾驶的安全性。同时vanet作为物联网的一个重要组成部分,已经引起了学术界和汽车行业的广泛关注。

在vanet中,车辆配置了各种传感器和通讯设备如gps,wi-fi,行车记录仪等其他增值服务设备。通过车载设备记录的车辆数据是vanet提供的一系列服务的基础。但随着vanet的逐步发展,越来越多的车辆和设备加入,这导致vanet中产生的数据量呈指数级别增长。面对如此规模的数据量,传统的本地存储方案已经不再适用于vanet,而云存储技术提供的丰富存储和计算资源完全能够满足现有vanet的需求。

未来需要一种新的云存储方式来同vanet相结合。在满足vanet数据高并发高吞吐量的基础上,能够有效的保护数据的安全性和隐私性。它并不需要第三方是否能够诚实的传输和存储数据,也无需担心因为第三方故障而导致的无法访问数据。而区块链技术的出现,为取代可信第三方提供了可能。区块链是用于数据存储和检索的分布式数据库,具有很强的不可篡改性。通过区块链来存储和共享vanet数据,数据的安全得到了有效的保障,这能够促进vanet数据的进一步流通和共享,为整个系统产生更大的价值。在vanet中大部分的数据需要与其他用户进行共享,为了保护数据的安全性和数据所有者的隐私,这就需要一种技术实现对数据机密性保护的访问控制机制,以防止未经授权的实体访问数据。为了使处处在云服务器上的数据能够采用细粒度的访问控制,需要一种技术来实现对只能由特定用户访问和解密的数据访问控制。

在对数据的细粒度访问控制的需求推动下,基于属性的加密机制(abe)被迅速的提出和发展起来。abe旨在用于一对多的加密,在实现对数据的细粒度访问控制的同时保持数据的机密性。cp-abe是数据所有者能够通过一组属性在指定的访问策略下加密其数据,且只有当数据访问者自身的属性满足策略要求时才能够解密数据。

基于区块链的分布式存储系统能够提供远超于传统存储方式的安全可靠性,能够避免第三方服务商带来的数据丢失和隐私泄露。ipfs作为一种新兴的内容寻址的分布式存储平台,它使用filecoin作为激励手段,构建一个全局的整和所有可用的存储提供商的云存储市场。它是一个致力于免审查,免监控,高可用性的云存储平台,它提供端到端的加密方法,并在区块链上存储文件的元数据。旨在从概念上证明云存储应用程序可以更加分散,安全和高效。使用加密合约实现文件分布式存储,合约中定义了存储哪些数据和数据以何种价格被存储。

不足:

ipfs缺乏强有力的保障去应对强大的攻击者。ipfs目前还不能够应对大规模的网络攻击,无法适用于车联网这一庞大的网络环境。

ipfs并未针对车联网场景进行优化,无法处理车联网设备性能差异巨大的问题。

ipfs并未针对不同用户群体的提供不同的访问方式,这导致访问效率低下。



技术实现要素:

针对现有技术中的上述不足,本发明提供的一种基于区块链的车联网数据共享细粒度访问控制方法解决了车联网场景中的网络攻击,设备性能不一致,数据访问效率低下的问题。

为了达到上述发明目的,本发明采用的技术方案为:一种基于区块链的车联网数据共享细粒度访问控制方法,包括以下步骤:

s1、构造系统主密钥msk和公钥pk,存储用户身份信息到区块链并生成用户私钥sk,完成用户注册;

s2、通过利用用户注册阶段生成的公钥pk对数据进行属性加密,完成数据上传;

s3、对加密的数据进行访问。

进一步地:步骤s1包括以下步骤:

s101、将身份验证链所属智能合约scic部署到区块链网络,通过执行cp-abe加密算法的初始化算法生成系统主密钥msk和公钥pk;

s102、通过身份验证链所属智能合约scic将系统主密钥msk和公钥pk写入身份验证链ic中;

s103、通过身份验证链所属智能合约scic使用系统主密钥msk构造用户密钥sk,并将用户信息写入到身份验证链ic中;

s104、在数据所有者do或数据使用者du首次通过路旁通信单元rsu接入车联网网络,向路旁通信单元rsu发送包含自身obu的id和身份信息属性集s的注册请求;

s105、通过路旁通信单元rsu接收注册请求,并对obu的id和身份信息属性集s进行验证,若验证通过,通过路旁通信单元rsu将注册请求转发到身份验证链所属智能合约scic,并进入步骤s106,若验证失败,则丢弃该条注册请求,并跳转至步骤s104;

s106、根据系统主密钥msk和用户属性集s',通过身份验证链所属智能合约scic执行用户注册算法生成用户私钥sk;

s107、通过身份验证链所属智能合约scic构造用户的身份凭据,用于构造ic交易,通过身份验证链所属智能合约scic将构造的ic交易写入身份验证链ic,得到用户在身份验证链ic中的序列号uid;

s108、通过身份验证链所属智能合约scic向路旁通信单元rsu中发送用户id和用户私钥sk;

s109、通过路旁通信单元rsu接收用户id和用户私钥sk,并将用户id和用户私钥sk发送给用户,完成注册。

进一步地:步骤s2包括以下步骤:

s201、对数据文件进行aes加密,得到加密文件ctf、文件解密密钥ck和文件检索关键词集kws;

s202、通过数据所有者do构造用于数据的细粒度访问的访问结构

s203、通过数据所有者do构造数据上传请求,并将数据上传请求发送至路旁通信单元rsu;

s204、通过路旁通信单元rsu接收数据上传请求,同数据所有者do建立稳定的数据连接通道;

s205、通过数据连接通道接收加密文件ctf,根据公钥pk,对访问结构a执行加密算法,得到第一中间密文ct';

s206、通过路旁通信单元rsu将第一中间密文ct′和数据成功上传到存储平台ipfs的消息发送回数据所有者do;

s207、通过数据所有者do接收第一中间密文ct′和数据成功上传到存储平台ipfs的消息,根据公钥pk和文件解密密钥ck,对第一中间密文ct′执行加密算法,得到最终密文ct;

s208、将最终密文ct发送至路旁通信单元rsu;

s209、通过路旁通信单元rsu接收最终密文ct,并构造响应消息;

s210、将响应消息发送给身份验证链所属智能合约scic;

s211、通过身份验证链所属智能合约scic接收响应消息,并根据响应消息构建dc交易,并将dc交易写入dc区块链中,数据上传成功。

进一步地:步骤s3包括以下步骤:

s301、通过数据使用者du向路旁通信单元rsu进行请求;

s302、通过路旁通信单元rsu接收数据使用者du的请求,构造du请求消息,并调用区块链网络中的区块链所属智能合约scdc发送du请求消息;

s303、通过区块链所属智能合约scdc将du请求消息拆分为消息a和消息b;

s304、通过消息a向自身所附属的区块链检索符合du请求消息内容中关键词的数据记录,得到检索结果;

s305、通过区块链所属智能合约scdc调用身份验证链所属智能合约scic发送消息b,对数据使用者du身份进行验证,得到数据使用者du的密钥sk';

s306、判断用户信息序列号uid是否正确,若是,则通过身份验证链所属智能合约scic检索到区块链中对应的用户身份信息,跳转至步骤s307,若否,则无法检索到对应的用户身份信息,跳转至步骤s301;

s307、根据文件哈希值、文件地址faddress和最终密文ct,通过区块链所属智能合约scdc将检索结果和数据使用者du的密钥sk′打包,并构造打包消息;

s308、通过路旁通信单元rsu根据打包消息中的文件地址faddress向存储平台ipfs请求加密文件ctf;

s309、通过路旁通信单元rsu得到加密文件ctf,并根据文件哈希值来检验加密文件ctf的完整性,若加密文件ctf完整,则跳转至步骤s310,若加密文件ctf不完整,则跳转至步骤s308;

s310、根据公钥pk和数据使用者du的密钥sk',通过路旁通信单元rsu运行解密算法,对最终密文ct进行解密,得到解密文件ct',并通过路旁通信单元rsu生成第二中间密文ct″;

s311、通过路旁通信单元rsu将第二中间密文ct″和加密文件ctf发送给数据使用者du;

s312、通过数据使用者du接收第二中间密文ct″,并根据用户私钥sk执行解密算法,对第二中间密文ct″进行进一步解密,得到加密内容k;

s313、根据加密内容k,通过数据使用者du对加密文件ctf进行aes解密,即可访问数据所有者do共享的数据,完成对共享数据的细粒度访问。

本发明技术方案带来的有益效果

(1)优化性。本发明结合了区块链技术和属性加密技术并作出了一定的优化,消除了区块链挖矿竞争带来的无价值消耗和属性加密对设备性能的较高要求。

(2)兼容性。本发明针对车联网数据访问场景进行了相应的优化,能够兼容不同硬件性能的车联网设备,为整个网络提供一致性服务。

(3)高效性。本发明所提出的数据共享方式,可以应对于车联网的海量并发数据场景,有效避免访问拥堵的问题,极大的提高了数据的访问效率。

(4)安全性。本发明所提出的数据访问方式,可以有效抵抗来自网络中的各种攻击行为,有效的提升了数据共享的安全性,保护了用户的数据安全。

附图说明

图1为一种基于区块链的车联网数据共享细粒度访问控制方法的流程图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

如图1所示,一种基于区块链的车联网数据共享细粒度访问控制方法,包括:

s1、构造系统主密钥msk和公钥pk,存储用户身份信息到区块链并生成用户私钥sk,完成用户注册;

步骤s1包括以下步骤:

s101、将身份验证链所属智能合约scic部署到区块链网络,通过执行cp-abe加密算法的初始化算法生成系统主密钥msk和公钥pk;

公钥pk随着区块链副本被缓存到每个路旁通信单元rsu中,保证任意节点都能够访问。系统主密钥msk被用于用户注册,公钥pk被用于数据的加解密。

s102、通过身份验证链所属智能合约scic将系统主密钥msk和公钥pk写入身份验证链ic中;

s103、通过身份验证链所属智能合约scic使用系统主密钥msk构造用户密钥sk,并将用户信息写入到身份验证链ic中;

s104、在数据所有者do或数据使用者du首次通过路旁通信单元rsu接入车联网网络,向路旁通信单元rsu发送包含自身obu的id和身份信息属性集s的注册请求;

s105、通过路旁通信单元rsu接收注册请求,并对obu的id和身份信息属性集s进行验证,若验证通过,通过路旁通信单元rsu将注册请求转发到身份验证链所属智能合约scic,并进入步骤s106,若验证失败,则丢弃该条注册请求,并跳转至步骤s104;

s106、根据系统主密钥msk和用户属性集s',通过身份验证链所属智能合约scic执行用户注册算法生成用户私钥sk;通过该算法将用户私钥sk同属性绑定,这样在用户访问数据时就可以通过sk来验证数据使用者du的属性是否满足数据所有者do的要求。

s107、通过身份验证链所属智能合约scic构造用户的身份凭据,用于构造ic交易,通过身份验证链所属智能合约scic将构造的ic交易写入身份验证链ic,得到用户在身份验证链ic中的序列号uid,通过该序列号就能够快速的检索到用户的身份信息;

s108、通过身份验证链所属智能合约scic向路旁通信单元rsu中发送用户id和用户私钥sk;

s109、通过路旁通信单元rsu接收用户id和用户私钥sk,并将用户id和用户私钥sk发送给用户,完成注册。

s2、通过利用用户注册阶段生成的公钥pk对数据进行属性加密,完成数据上传;

步骤s2描述的是数据所有者do利用路旁通信单元rsu作为代理向存储平台ipfs上传数据的过程。由于在vanet中,节点都处于高速运动状态中,网络拓扑状态时刻处于动态变化中,这使得车辆直接连接存储平台ipfs进行大规模数据上传的失败率很高。为了解决这个问题,车辆和路旁通信单元rsu之间建立短程高速连接,将加密数据包快速发送到路旁通信单元rsu,再由路旁通信单元rsu同存储平台ipfs建立稳定的网络连接进行数据上传。

步骤s2包括以下步骤:

s201、对数据文件进行aes加密,得到加密文件ctf、文件解密密钥ck和文件检索关键词集kws;

s202、通过数据所有者do构造用于数据的细粒度访问的访问结构

s203、通过数据所有者do构造数据上传请求,并将数据上传请求发送至路旁通信单元rsu;

s204、通过路旁通信单元rsu接收数据上传请求,同数据所有者do建立稳定的数据连接通道;

s205、通过数据连接通道接收加密文件ctf,根据公钥pk,对访问结构a执行加密算法,得到第一中间密文ct';这一步是为了将大部分的加密操作移动到了性能更加优秀的路旁通信单元rsu中,减轻了运行完整的cp-abe算法对数据所有者do性能的要求。

s206、通过路旁通信单元rsu将第一中间密文ct′和数据成功上传到存储平台ipfs的消息发送回数据所有者do;

s207、通过数据所有者do接收第一中间密文ct′和数据成功上传到存储平台ipfs的消息,根据公钥pk和文件解密密钥ck,对第一中间密文ct′执行加密算法,得到最终密文ct;

s208、将最终密文ct发送至路旁通信单元rsu;

s209、通过路旁通信单元rsu接收最终密文ct,并构造响应消息;

s210、将响应消息发送给身份验证链所属智能合约scic;

s211、通过身份验证链所属智能合约scic接收响应消息,并根据响应消息构建dc交易,并将dc交易写入dc区块链中,数据上传成功,即标志着数据已经成功上传,并能够被所有的数据使用者du从任意旁通信单元rsu检索到该数据。

s3、对加密的数据进行访问。

在fadb中,为了更好的保护数据安全,本发明将区块链认证同cp-abe结合起来,不仅提升了系统整体的安全性,还将大部分的解密开销,从计算性能较差的数据使用者du转移到了性能优异的路旁通信单元rsu上,这使得数据的访问速度大大提高。

步骤s3包括以下步骤:

s301、通过数据使用者du向路旁通信单元rsu进行请求;

s302、通过路旁通信单元rsu接收数据使用者du的请求,构造du请求消息,并调用区块链网络中的区块链所属智能合约scdc发送du请求消息;

s303、通过区块链所属智能合约scdc将du请求消息拆分为消息a和消息b;

s304、通过消息a向自身所附属的区块链检索符合du请求消息内容中关键词的数据记录,得到检索结果;

s305、通过区块链所属智能合约scdc调用身份验证链所属智能合约scic发送消息b,对数据使用者du身份进行验证,得到数据使用者du的密钥sk';

s306、判断用户信息序列号uid是否正确,若是,则通过身份验证链所属智能合约scic检索到区块链中对应的用户身份信息,跳转至步骤s307,若否,则无法检索到对应的用户身份信息,跳转至步骤s301;

s307、根据文件哈希值、文件地址faddress和最终密文ct,通过区块链所属智能合约scdc将检索结果和数据使用者du的密钥sk′打包,并构造打包消息;

s308、通过路旁通信单元rsu根据打包消息中的文件地址faddress向存储平台ipfs请求加密文件ctf;

s309、通过路旁通信单元rsu得到加密文件ctf,并根据文件哈希值来检验加密文件ctf的完整性,若加密文件ctf完整,则跳转至步骤s310,若加密文件ctf不完整,则跳转至步骤s308;

s310、根据公钥pk和数据使用者du的密钥sk',通过路旁通信单元rsu运行解密算法,对最终密文ct进行解密,得到解密文件ct',并通过路旁通信单元rsu生成第二中间密文ct″;

s311、通过路旁通信单元rsu将第二中间密文ct″和加密文件ctf发送给数据使用者du;

s312、通过数据使用者du接收第二中间密文ct″,并根据用户私钥sk执行解密算法,对第二中间密文ct″进行进一步解密,得到加密内容k;

s313、根据加密内容k,通过数据使用者du对加密文件ctf进行aes解密,即可访问数据所有者do共享的数据,完成对共享数据的细粒度访问。

本发明技术方案带来的有益效果

(1)优化性。本发明结合了区块链技术和属性加密技术并作出了一定的优化,消除了区块链挖矿竞争带来的无价值消耗和属性加密对设备性能的较高要求。

(2)兼容性。本发明针对车联网数据访问场景进行了相应的优化,能够兼容不同硬件性能的车联网设备,为整个网络提供一致性服务。

(3)高效性。本发明所提出的数据共享方式,可以应对于车联网的海量并发数据场景,有效避免访问拥堵的问题,极大的提高了数据的访问效率。

(4)安全性。本发明所提出的数据访问方式,可以有效抵抗来自网络中的各种攻击行为,有效的提升了数据共享的安全性,保护了用户的数据安全。


技术特征:

1.一种基于区块链的车联网数据共享细粒度访问控制方法,其特征在于,包括:

s1、构造系统主密钥msk和公钥pk,存储用户身份信息到区块链并生成用户私钥sk,完成用户注册;

s2、通过利用用户注册阶段生成的公钥pk对数据进行属性加密,完成数据上传;

s3、对加密的数据进行访问。

2.根据权利要求1所述的基于区块链的车联网数据共享细粒度访问控制方法,其特征在于,所述步骤s1包括以下步骤:

s101、将身份验证链所属智能合约scic部署到区块链网络,通过执行cp-abe加密算法的初始化算法生成系统主密钥msk和公钥pk;

s102、通过身份验证链所属智能合约scic将系统主密钥msk和公钥pk写入身份验证链ic中;

s103、通过身份验证链所属智能合约scic使用系统主密钥msk构造用户密钥sk,并将用户信息写入到身份验证链ic中;

s104、在数据所有者do或数据使用者du首次通过路旁通信单元rsu接入车联网网络,向路旁通信单元rsu发送包含自身obu的id和身份信息属性集s的注册请求;

s105、通过路旁通信单元rsu接收注册请求,并对obu的id和身份信息属性集s进行验证,若验证通过,通过路旁通信单元rsu将注册请求转发到身份验证链所属智能合约scic,并进入步骤s106,若验证失败,则丢弃该条注册请求,并跳转至步骤s104;

s106、根据系统主密钥msk和用户属性集s′,通过身份验证链所属智能合约scic执行用户注册算法生成用户私钥sk;

s107、通过身份验证链所属智能合约scic构造用户的身份凭据,用于构造ic交易,通过身份验证链所属智能合约scic将构造的ic交易写入身份验证链ic,得到用户在身份验证链ic中的序列号uid;

s108、通过身份验证链所属智能合约scic向路旁通信单元rsu中发送用户id和用户私钥sk;

s109、通过路旁通信单元rsu接收用户id和用户私钥sk,并将用户id和用户私钥sk发送给用户,完成注册。

3.根据权利要求2所述的基于区块链的车联网数据共享细粒度访问控制方法,其特征在于,所述步骤s2包括以下步骤:

s201、对数据文件进行aes加密,得到加密文件ctf、文件解密密钥ck和文件检索关键词集kws;

s202、通过数据所有者do构造用于数据的细粒度访问的访问结构

s203、通过数据所有者do构造数据上传请求,并将数据上传请求发送至路旁通信单元rsu;

s204、通过路旁通信单元rsu接收数据上传请求,同数据所有者do建立稳定的数据连接通道;

s205、通过数据连接通道接收加密文件ctf,根据公钥pk,对访问结构执行加密算法,得到第一中间密文ct';

s206、通过路旁通信单元rsu将第一中间密文ct′和数据成功上传到存储平台ipfs的消息发送回数据所有者do;

s207、通过数据所有者do接收第一中间密文ct′和数据成功上传到存储平台ipfs的消息,根据公钥pk和文件解密密钥ck,对第一中间密文ct′执行加密算法,得到最终密文ct;

s208、将最终密文ct发送至路旁通信单元rsu;

s209、通过路旁通信单元rsu接收最终密文ct,并构造响应消息;

s210、将响应消息发送给身份验证链所属智能合约scic;

s211、通过身份验证链所属智能合约scic接收响应消息,并根据响应消息构建dc交易,并将dc交易写入dc区块链中,数据上传成功。

4.根据权利要求3所述的基于区块链的车联网数据共享细粒度访问控制方法,其特征在于,所述步骤s3包括以下步骤:

s301、通过数据使用者du向路旁通信单元rsu进行请求;

s302、通过路旁通信单元rsu接收数据使用者du的请求,构造du请求消息,并调用区块链网络中的区块链所属智能合约scdc发送du请求消息;

s303、通过区块链所属智能合约scdc将du请求消息拆分为消息a和消息b;

s304、通过消息a向自身所附属的区块链检索符合du请求消息内容中关键词的数据记录,得到检索结果;

s305、通过区块链所属智能合约scdc调用身份验证链所属智能合约scic发送消息b,对数据使用者du身份进行验证,得到数据使用者du的密钥sk′;

s306、判断用户信息序列号uid是否正确,若是,则通过身份验证链所属智能合约scic检索到区块链中对应的用户身份信息,跳转至步骤s307,若否,则无法检索到对应的用户身份信息,跳转至步骤s301;

s307、根据文件哈希值、文件地址faddress和最终密文ct,通过区块链所属智能合约scdc将检索结果和数据使用者du的密钥sk′打包,并构造打包消息;

s308、通过路旁通信单元rsu根据打包消息中的文件地址faddress向存储平台ipfs请求加密文件ctf;

s309、通过路旁通信单元rsu得到加密文件ctf,并根据文件哈希值来检验加密文件ctf的完整性,若加密文件ctf完整,则跳转至步骤s310,若加密文件ctf不完整,则跳转至步骤s308;

s310、根据公钥pk和数据使用者du的密钥sk′,通过路旁通信单元rsu运行解密算法,对最终密文ct进行解密,得到解密文件ct′,并通过路旁通信单元rsu生成第二中间密文ct″;

s311、通过路旁通信单元rsu将第二中间密文ct″和加密文件ctf发送给数据使用者du;

s312、通过数据使用者du接收第二中间密文ct″,并根据用户私钥sk执行解密算法,对第二中间密文ct″进行进一步解密,得到加密内容k;

s313、根据加密内容k,通过数据使用者du对加密文件ctf进行aes解密,即可访问数据所有者do共享的数据,完成对共享数据的细粒度访问。

技术总结
本发明公开了一种基于区块链的车联网数据共享细粒度访问控制方法结合了区块链技术和属性加密技术并作出了一定的优化,消除了区块链挖矿竞争带来的无价值消耗和属性加密对设备性能的较高要求;针对车联网数据访问场景进行了相应的优化,能够兼容不同硬件性能的车联网设备,为整个网络提供一致性服务;本发明所提出的数据共享方式,可以应对于车联网的海量并发数据场景,有效避免访问拥堵的问题。

技术研发人员:廖丹;裴黎爽;李慧;张明;陈雪
受保护的技术使用者:电子科技大学;电子科技大学天府协同创新中心
技术研发日:2020.01.13
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55728.html

最新回复(0)