一种基于区块链技术的物联网可信数据管理方法

文档序号:27113782发布日期:2021-10-27 18:57阅读:298来源:国知局
一种基于区块链技术的物联网可信数据管理方法

1.本发明属于物联网及网络安全技术领域,具体涉及一种基于区块链技术的物联网可信数据管理方法。


背景技术:

2.随着无线通信技术和智能设备制造技术的进步,物联网技术蓬勃发展,通过万物互联的新型交互模式给人们的生活带来了巨大便利。物联网通过智能终端采集实时数据以辅助应用高性能决策的模式创造了一批新型应用场景,包括智慧医疗、智慧家居和智能交通等等,但是由于物联网需要众多异构设备进行分布式协作,因此在数据管理层面存在许多信任问题:首先,由于不诚实的数据源可能向上层应用提供不精确、有偏差的数据,导致物联网服务质量受损;此外,恶意用户可以安插虚假物联网设备对应用进行扰乱,影响物联网系统正常运行,这些问题是由于缺乏设备认证身份机制造成的,物联网数据在传输过程中容易受到安全攻击造成隐私泄漏和恶意篡改等等;并且,目前的物联网数据存储方案依托于第三方云服务提供商,因此引入了中心化的风险,一旦第三方机构受到单点攻击或者内部攻击,会造成严重的隐私泄露和数据安全问题;另外,由于目前物联网数据缺乏访问控制机制,用户通过贿赂数据存储商或者窃听等手段未经授权就能获取所需数据。
3.公开号为cn113032814a的中国专利提供了一种物联网数据管理方法和系统,由物联网网关根据数据私钥对物联网设备发送的物联网数据进行加密,得到目标加密数据,物联网设备为数据认证服务器关联认证的信任设备;物联网网关获取目标加密数据的目标数据指纹;物联网网关将目标数据指纹和目标加密数据的权限信息发送到数据认证服务器进行存储;数据存储服务器根据目标数据指纹对接收的目标加密数据进行完整性验证,若目标加密数据验证成功时,将目标加密数据存储到目标区域。
4.公开号为cn113066552a的中国专利公开了一种基于区块链技术的监护数据管理系统,包括设备采集客户端、数据交互管理客户端和消费客户端和区块链节点,设备采集客户端、数据交互管理客户端、消费客户端通过区块链节点实现数据交互。该专利技术采用了raft共识机制,将区块链技术结合到硬件设备数据采集和数据共享等方面,实现了基于物联网设备和数据交互平台的联盟链设计和多角色访问控制。
5.综上分析可见,目前有许多研究技术能够解决部分数据管理问题,大多数集中于物联网数据存储和可信数据共享,但是只解决了可信数据管理的一环,尚未有人为设备认证、数据传输、数据存储和访问控制同时提出一套可信解决方案。随着区块链技术的繁荣发展,其去中心化、防篡改、可追溯、安全透明的特性被广泛应用于分布式协作领域,区块链与密码学技术的融合为物联网可信数据管理提供了出色的解决方案。此外,通过使用区块链的智能合约技术可以将可信数据管理的解决方案自动化编码,脱离对第三方机构的需求,提高安全性并降低运营成本。


技术实现要素:

6.鉴于上述,本发明提供了一种基于区块链技术的物联网可信数据管理方法,分为设备身份认证、数据安全传输、可信数据存储以及可信数据共享四个部分,为网关和边缘服务器构建了一个分布式、防篡改的通信网络,保障合法用户的授权访问,抵御非法用户对数据的恶意读取,保障物联网数据的可信共享。
7.一种基于区块链技术的物联网可信数据管理方法,包括如下步骤:
8.(1)使用非对称加密算法和签名算法完成物联网终端设备与网关之间的身份安全认证,使用diffie

hellman密钥交换技术完成终端设备与网关之间的会话密钥协商;
9.(2)终端设备利用其与网关协商得到的会话密钥对原始物联网数据加密并传输给网关,进而由网关将加密数据发送给边缘服务器,边缘服务器使用kademlia算法在边缘服务器网络中实现针对物联网数据的分布式安全存储;
10.(3)使用属性基加密方案实现用户对物联网数据的访问控制机制。
11.进一步地,所述步骤(1)的具体实现过程如下:
12.1.1由物联网终端设备生成一个随机数n
a
,使用自己的签名私钥sk
sd
对n
a
和当前时间戳ts1进行签名,并使用需要认证的网关的加密公钥pk
eg
对签名结果进行加密,形成消息m1,并将其发送给网关;
13.1.2网关使用自身的加密私钥sk
eg
对m1解密,得到签名结果,然后使用终端设备的签名公钥pk
sd
验证签名并获取n
a
,验证成功即说明该终端设备为合法设备;然后网关随机生成一个随机数n
b
,使用自己的签名私钥sk
sg
对n
a
、n
b
以及当前时间戳ts2进行签名,并使用该终端设备的加密公钥pk
ed
对签名结果进行加密,形成消息m2,并将其发送给终端设备;
14.1.3终端设备使用自身的加密私钥sk
ed
对m2解密,得到签名结果,然后使用网关的签名公钥pk
sg
验证签名并获取n
a
和n
b
,如果验证成功则说明网关身份合法;同时终端设备验证获取的n
a
是否一致,如果一致,终端设备使用签名私钥sk
sd
对n
b
和当前时间戳ts3进行签名,并使用网关的加密公钥pk
eg
对签名结果进行加密,形成消息m3,并将其发送给网关;
15.1.4网关使用自身的加密私钥sk
eg
对m3解密,得到签名结果,然后使用终端设备的签名公钥pk
sd
验证签名并获取n
b
,进而验证获取的n
b
是否一致,如果一致则说明发送方为正确的交互对象,至此完成物联网终端设备与网关之间的相互认证;
16.1.5终端设备生成一个随机数m
d
作为私钥,然后计算出公钥pk1=m
d
*g,g表示群,进而使用网关的加密公钥pk
eg
对pk1和当前时间戳ts4进行加密,形成消息m4,并将其发送给网关;
17.1.6网关生成一个随机数m
g
作为私钥,然后计算出公钥pk2=m
g
*g,进而使用终端设备的加密公钥pk
ed
对pk2和当前时间戳ts5进行加密,形成消息m5,并将其发送给终端设备;
18.1.7网关使用自身的加密私钥sk
eg
对m4解密,得到pk1后计算出其与终端设备之间的安全会话密钥skey=m
g
*pk1=m
g
*m
d
*g;终端设备使用自身的加密私钥sk
ed
对m5解密,得到pk2后计算出其与网关之间的安全会话密钥skey=m
d
*pk2=m
d
*m
g
*g,至此完成物联网终端设备与网关之间的会话密钥协商。
19.进一步地,所述步骤(2)的具体实现过程如下:
20.2.1物联网终端设备使用其与网关之间的安全会话密钥skey对原始物联网数据进行加密并传输给网关,进而由网关将加密数据转发给距离最近的边缘服务器s1;
21.2.2边缘服务器s1将用于计算加密数据的160位哈希作为key,将加密数据作为value,并根据系统设定的k值找出id号与key最接近的k台边缘服务器,进而将key

value传输给这k台边缘服务器进行存储,至此完成一次物联网数据在边缘服务器网络中的分布式存储。
22.进一步地,所述步骤(3)的具体实现过程如下:
23.3.1数据所有者将访问策略p存储到网关上,网关执行setup(1
λ
)

(pk,msk),即根据安全参数λ计算出系统公钥pk和系统主密钥msk,然后将pk嵌入到交易中并发送到区块链网络上,同时把msk存储在本地;
24.3.2用户向边缘服务器发送数据请求,边缘服务器首先验证用户的身份,然后使用智能合约与网关交互,如果用户身份合法,网关将会为其生成对应的属性集s,用户的公钥pk
user
将作为授权用户标识符被存到智能合约中,网关则将为该用户生成私钥;
25.3.3网关执行keygen(pk,msk,s)

sk,即输入系统公钥pk、系统主密钥msk以及用户的属性集s,计算输出用户访问私钥sk;网关使用用户公钥pk
user
加密sk并将加密结果嵌入交易中,同时把交易id和智能合约地址通过区块链发送给边缘服务器;
26.3.4边缘服务器收取加密结果并将其传输给用户,用户使用自身私钥sk
user
对其解密后得到用户访问私钥sk;
27.3.5网关执行encrypt(pk,p,skey)

ct,即输入系统公钥pk、访问策略p以及物联网终端设备与网关之间的会话密钥skey,生成密文ct,完成对会话密钥skey的加密,进而网关将密文ct通过区块链网络发送给边缘服务器存储;
28.3.6用户使用kademlia算法从边缘服务器中下载加密数据和密文ct,并运行decrypt(pk,sk,ct)

skey,即输入系统公钥pk、用户访问私钥sk和密文ct,解密得到会话密钥skey;如果用户的属性集s满足数据所有者设置的访问策略p,则可成功解密出skey,否则解密失败;
29.3.7用户执行decrypt(skey,加密数据)

原始数据,使用会话密钥skey对加密数据进行解密,得到原始物联网数据。
30.进一步地,所述步骤3.6中用户使用kademlia算法从边缘服务器中下载加密数据和密文ct的具体过程如下:
31.3.6.1用户根据请求数据的key向边缘服务器发起查找请求,边缘服务器查找自己是否存储了数据对(key,value),如果存在则直接向用户返回加密数据,否则找到k个距离key值最近的节点id,并向这k个节点(即网络中的边缘服务器)发送find_value请求;
32.3.6.2收到find_value请求的节点首先检查本地是否存储了数据对(key,value),如果存在则向发送方边缘服务器返回加密数据,否则由节点找到k个距离key值最近的节点id,并向这k个节点发送find_value请求;依此不断扩散寻找,直至获取到加密数据或者无法获取比当前已知节点id更接近key值的边缘服务器为止(这就表示用户所查找的数据不存在)。
33.本发明设计的终端设备与网关之间的身份认证方案有效遏制了恶意设备接入网络的安全风险,保障了物联网数据源的合法性;通过设计终端设备与网关之间的会话密钥协商机制保护了传输过程中数据的机密性,避免了遭受窃听和篡改攻击;此外,本发明基于kademlia算法在边缘网络中构建了可靠的分布式数据存储方案,大大降低了中心化存储的
安全隐私风险,解决了带宽瓶颈,并且大幅提高了数据存储的可扩展性。最后,由于本发明基于属性基加密设计了一套主动式的访问控制机制,只有属性集合与数据所有者制定的访问策略相匹配的用户才能获得访问授权,保障了授权用户的数据可获得性,有效阻止了恶意用户采取非法手段获取原始数据,提高了消费层用户访问数据的安全性,保护了物联网数据的原生价值,实现了面向用户的权限管理。
附图说明
34.图1为本发明物联网终端设备和网关之间的认证流程示意图。
35.图2为本发明会话密钥协商流程示意图。
36.图3为本发明可信数据管理流程示意图。
具体实施方式
37.为了更具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
38.本发明基于区块链技术使用diffie

hellman密钥交换技术、非对称加密、签名算法、kademlia算法、属性基加密技术实现了一个物联网可信数据管理方案,网关设备和边缘服务器作为区块链节点维护一个区块链网络,通过调用智能节约进行逻辑交互,其整体流程如图3所示。
39.如图1所示,物联网终端与网关进行双向认证,已验证加入网络的设备的身份合法性,具体步骤如下:
40.步骤1:物联网终端设备随机生成一个随机数n
a
,使用自己的签名私钥sk
sd
对n
a
和实时的时间戳ts1进行签名,签完名使用需要认证的网关的加密公钥pk
eg
对签名结果进行加密,形成消息m1,将其发送给对应网关。
41.步骤2:网关使用自身加密私钥sk
eg
对m1解密,然后使用物联网设备的签名公钥pk
sd
验证签名并获取n
a
,验证成功即说明物联网设备为合法设备,随后网关随机生成一个随机数n
b
,然后使用签名私钥sk
sg
对n
a
、n
b
和实时的时间戳ts2进行签名,签完名使用需要认证的物联网设备的加密公钥pk
ed
对签名结果进行加密,形成消息m2,然后反馈给物联网设备。
42.步骤3:物联网设备使用自身加密私钥sk
ed
对m2解密,得到签名结果,使用网关的签名公钥pk
sg
验证签名,如果验证成功则说明网关身份合法,同时设备验证获取的n
a
是否正确;如果正确,物联网设备使用签名私钥sk
sd
对n
b
和实时的时间戳ts3进行签名,并使用网关的加密公钥pk
eg
对签名结果进行加密,形成消息m3,随后发送给网关。
43.步骤4:网关使用加密私钥sk
eg
对m3解密,然后使用物联网设备的签名公钥pk
sd
验证签名并获取n
b
,验证n
b
是否一致,如果一致则说明发送方为正确的交互对象,到此完成物联网设备与网关之间的相互认证。
44.如图2所示,物联网设备与网关进行会话密钥协商,以保护通信过程中传输数据的安全性,具体步骤如下:
45.步骤1:物联网设备随机生成一个数m
d
作为私钥,然后计算出公钥pk1=m
d
*g,然后物联网设备使用网关的加密公钥pk
eg
对pk1和实时时间戳ts4进行加密,形成消息m4,将其发送给网关。
46.步骤2:网关接受m4,并随机生成一个数m
g
作为私钥,然后计算出公钥pk2=m
g
*g,然后网关使用物联网设备的加密公钥pk
ed
对pk2和实时时间戳ts5进行加密,形成消息m5,然后反馈给物联网设备。
47.步骤3:物联网设备计算出和网关的安全会话密钥skey=m
d
*pk2=m
d
*m
g
*g。
48.步骤4:网关计算出和物联网设备的安全会话密钥:skey=m
g
*pk1=m
d
*m
g
*g,至此完成网关于物联网设备之间的会话密钥协商。
49.物联网设备在完成与网关的相互身份认证以及会话密钥协商之后,由数据所有者将物联网数据的访问策略p上传给网关,然后网关执行encrypt(pk,p,skey)

ct,即输入系统公钥pk、数据访问策略p以及会话密钥skey,输出密文ct,完成对会话密钥skey的加密。与此同时物联网设备使用skey加密原始数据,并把加密数据发送给网关,网关将(ct、加密数据、时间戳)通过区块链网络发送给边缘服务器存储。
50.本发明使用kademlia算法提出了一种分布式安全存储方案,具体过程为:边缘服务器计算出加密数据的160位哈希值作为key,加密数据作为value,根据系统设定的k值将找出id号(每台边缘服务器都有一个160位的id号)与key最接近的k个边缘服务器,将key

value以及ct和时间戳通过区块链网络传输给这k个边缘服务器进行存储,至此完成一次物联网数据在边缘服务器网络中的分布式存储。
51.本发明提出的这种分布式冗余存储方案具有两个显著优点:首先,由于加密数据存储了多个副本,即使其中一台边缘服务器被攻击也不会对数据查找造成影响,确保了服务的可获得性,提高了系统的鲁棒性;此外,kademlia算法提供了高效的数据查询方法,可以在log
2n
时间内定位到目标边缘服务器,使得用户可以快速获得服务。
52.为了预防物联网数据的非法访问,本发明使用属性基加密技术设计了一个针对物联网数据用户的访问控制机制,具体步骤如下:
53.步骤1:当用户需要使用物联网数据时,向距离最近的边缘服务器发送数据请求,提供其公钥信息和身份信息。
54.步骤2:边缘服务器将用户信息通过区块链传输给网关。
55.步骤3:网关首先判断用户身份是否合法,如果合法则为其生成对应的属性基s,用户的公钥pk
user
将作为授权用户标识符被存到智能合约中;然后网关运行keygen(pk,msk,s)

sk,输入系统公钥pk、系统主密钥msk和用户的属性集s,输出用户访问私钥sk;网关使用用户的公钥pk
user
加密sk并将加密结果嵌入区块链交易,把交易id和智能合约地址通过区块链发送给边缘服务器。
56.步骤4:用户首先从边缘服务器网络中下载系统公钥pk和加密后的自身私钥sk,使用自身私钥sk
user
解密出sk,然后使用kademlia查询算法从边缘服务器网络中找到加密数据块和ct,具体过程如下:
57.步骤4

1:数据用户根据请求数据的key向边缘服务器发起查找请求,边缘服务器查找自己是否存储了(key,value)数据对,如果存在则直接向用户返回加密数据,否则找到k个距离key值最近的节点,并向这k个节点id发送find_value请求。
58.步骤4

2:收到find_value请求的节点首先检查自己是否存储了(key,value)数据对,如果存在则向发送方边缘服务器返回加密数据,否则再次找到k个距离key值最近的节点,并向这k个节点id发送find_value请求。
59.步骤4

3:上述步骤不断重复,直到获取到value或者无法获取比当前已知服务器id更接近key值的边缘服务器为止,这就表示用户所查找的数据不存在。
60.步骤5:用户运行decrypt(pk,sk,ct)

skey,输入系统公钥pk、用户私钥sk和加密的会话密钥ct,输出会话密钥skey;如果用户的属性集s满足数据所有者设置的访问策略p,则可以成功解密出skey,否则解密失败。
61.步骤6:用户运行decrypt(skey,加密数据)

原始数据,使用会话密钥skey对加密数据进行解密,得到原始数据。
62.本发明通过这种访问控制机制保障了合法用户的授权访问,抵御了非法用户对数据的恶意读取,实现了物联网数据的可信共享。
63.上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明,熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1