适用于终端资源访问的动态远程证明方案

文档序号:30078976发布日期:2022-05-18 03:57阅读:95来源:国知局
适用于终端资源访问的动态远程证明方案

1.本发明属于资源访问系统远程证明领域,具体涉及一种适用于终端资源访问的远程证明方案。


背景技术:

2.物联网技术和无线通信技术的快速发展,促使了移动终端的剧增。如今,各种各样的移动终端设备可以连接到人或不同类型的机器上。海量的终端设备对数据资源请求的响应时间和安全性提出了更高的要求。作为数据资源请求中重要的一环,资源访问具有不可小觑的地位。资源访问是物联网环境下各终端设备之间互相交流的桥梁,是设备交互的基础。在复杂的网络环境下,如何安全、高效地进行资源访问是一项严峻的挑战。
3.终端资源访问系统的远程证明是指,在终端进行资源访问的同时,保证传感器终端的可信性,保证其设备可信,其生成的数据可信,即保证传感器数据的来源未被恶意第三方篡改。目前针对终端资源访问系统的远程证明方案研究相对较少。其中,针对终端资源访问过程中的研究主要侧重于在数据传输过程中保护数据的完整性和隐私,而不是保护产生和收集数据的设备的完整性。
4.现有工作的重点是数据本身的完整性。在许多情况下,出处仅限于使用来自基于公钥的有效密钥对数据进行签名和加密的设备,然后再将数据发送到云端进行处理。在一些注重隐私的方案中,这些数据可以进一步加密。然而,很少有人关心设备上运行的硬件和软件堆栈的完整性。taha等人为云或数据中心环境引入可信的篡改数据源检测方案。它们保证了对虚拟机日志的验证,以便对虚拟机故障进行取证。与此工作类似,他们通过使用可信平台模块(tpm)利用可信计算技术。但是,他们使用旧的1.2标准的tpm,已被非向后兼容的版本2所取代。此方案仅为生成日志的虚拟机的状态提供完整性保证,并不能为嵌入式设备提供数据完整性保证。现有的工作很少针对数据生成设备进行完整性证明,同时,现存的针对设备完整性证明的方案并不适用于传感器设备。在我们的工作中,我们将数据来源保证扩展到包括云环境之外的设备。对于设备生成的每一条数据,我们都包括生成数据的设备和在将数据发送到云应用程序进行分析之前处理数据的节点的可信度信息。
5.本发明的目的是提供一种适用于终端资源访问的动态远程证明方案,该方案的整体架构如图1所示,包括:
6.设备初始化步骤:主要是将收集数据所用的传感器组以及汇聚设备注册到验证端,将传感器(sensor node,sn)、汇聚设备(convergence equipment,ce)引入验证端(verification end,ve),使验证端可以监控汇聚设备和传感器的可信度,为后续验证可信数据来源做准备。
7.可信数据包生成步骤:主要是通过汇聚设备,将传感器组收集到的数据进行汇聚整合,形成验证端所需要的数据。同时对自身进行度量,形成自身度量值。将两部分数据整合,并利用tcm进行签名,最终生成可信数据包。
8.验证可信数据包步骤:主要是利用验证端来验证收到的可信数据包是否可信,其
数据来源是否可信。
9.在上述的适用于终端资源访问的动态远程证明方案中,所述设备初始化步骤具体包括:
10.步骤1:将汇聚设备中的详细信息引入验证端。
11.步骤2:对于分配给汇聚设备的每个传感器:
12.步骤2.1:传感器信息和密钥将被发送到汇聚设备,汇聚设备将其转发到验证端。
13.步骤2.2:汇聚设备存储传感器的设备信息。
14.步骤2.3:传感器存储与汇聚设备通信所需的信息。
15.步骤2.4:传感器被添加到验证端中汇聚设备与传感器之间的映射列表中。
16.步骤3:启动汇聚设备以及传感器节点,现在,验证端可以监控汇聚设备及对应的传感器组的可信度,以确保它们没有被篡改。
17.在上述的适用于终端资源访问的动态远程证明方案中,所述可信数据包生成步骤:
18.步骤1:验证端ve从汇聚设备ce请求传感器节点sn数据。
19.步骤2:对于ce管理的每个sni:
20.步骤2.1:ce从sni请求其所收集到的数据datai。
21.步骤2.2:sni感知并收集数据datai。
22.步骤2.3:sni利用tcm对自身进行度量(系统软件和配置),生成度量值quotei,同时针对度量值附加时间戳ti。
23.步骤2.4:sni将传感器收集到的数据datai和自身度量值quotei捆绑成一个传感器可信数据data_trustedi。
24.步骤2.5:sni使用传感器特有的priv_keyi对传感器可信数据data_trustedi进行签名。
25.步骤2.6:sni向ce返回数据对(data_trustedi,sigi)。
26.步骤3:ce从每个传感器sni收集传感器可信数据data_trustedi和签名sigi,对每个传感器的时间戳ti进行验证,验证其是否合法。如果出现不合法传感器,则直接向验证端ve报告。
27.步骤4:ce将从每个传感器sni收集传感器可信数据data_trustedi和签名sigi聚合生成汇聚设备的数据块data
ce

28.步骤5:ce对自身进行度量并生成度量值quote
ce
,同时针对度量值附加时间戳t
ce

29.步骤6:ce利用步骤4和步骤5生成的数据块data
ce
与自身的度量值quote
ce
生成可信数据包data_trusted
ce

30.步骤7:ce利用唯一的私钥priv_key
ce
对可信数据包进行签名sig
ce

31.步骤8:ce根据步骤6与步骤7中可信数据包data_trusted
ce
和签名sig
ce
聚合成最终的汇聚设备可信数据包trusted_data_ce,其结构如图2所示。
32.步骤9:ce将步骤8生成的汇聚设备可信数据包trusted_data_ce发验证端ve。
33.在上述的适用于终端资源访问的动态远程证明方案中,所述验证可信数据包步骤:
34.步骤1:验证端ve从汇聚设备ce接收可信数据包trusted_data_ce。
35.步骤2:验证端ve验证来自ce的签名sig
ce
与时间戳t
ce

36.步骤2.1:验证端ve通过ce数据包中的时间戳t
ce
来验证其合法性。
37.步骤2.2:验证端ve利用pub_key
ce
来验证data_trusted
ce
的sig
ce
的有效性。
38.步骤2.3:验证端ve会根据其记录的quote
ce
。如果ve验证通过,即可以认为汇聚设备ce是可信的。这保证了在收集data
ce
时ce处于受信任状态。
39.步骤3:验证端ve继续验证data
ce
中的每个(data_trustedi,sigi)数据对:
40.步骤3.1:验证端ve验证每个传感器sni是否在当前汇聚设备ce的映射列表中。如果不在当前映射列表中,则不需要进行后续验证,直接可以判断为恶意传感器节点。
41.步骤3.2:验证端ve利用每个sni的pub_key可信数据data_trusted的签名sigi的有效性。
42.步骤3.3:验证端ve会根据其记录的每个传感器sni的quotei来验证该传感器是否是可信的。如果ve验证通过,即可以认为当前传感器sni是可信的,其获取的数据是可信的。这保证了在收集datai时传感器sni于受信任状态。
43.步骤3.4:如果根据步骤3.1、3.2、3.3的验证结果均为成功,则验证端ve可以信任该传感器的数据,验证端ve可以使用该传感器节点报告的数据。本发明具有如下优点:通过在验证端和传感器设备之间引入可信平台模块,保证了数据本身的完整性和隐私性,同时,进一步保证了传感设备的完整性。该方案能够保证从传感设备获取的数据可用且可靠,验证了生成和聚合数据的设备是否正确且未被篡改。此外,该方案还在设备报告数据时检测了设备被篡改的情况,从而避免使用潜在的恶意数据污染真实的传感器数据。本方案利用可信平台模块对传感器设备进行完整性度量,通过从传感器设备的内存中进行度量标准提取,完成了一种动态的可信度量因素的提取,另外,本方案针对传感器设备的多因素同时度量,并在每次数据交互的过程中进行完整性验证,这种动态证明方式解决了传统远程证明的静态认证所带来的可信度随时间下降的问题。
附图说明
44.图1是本发明的总体架构图。
45.图2是本发明的汇聚设备可信数据包结构图。
具体实施方式
46.本发明的目的是提供一种适用于终端资源访问的动态远程证明方案,该方案的整体架构如图1所示,包括设备初始化阶段、可信数据包生成阶段、验证可信数据包阶段。接下来将会对以上三个阶段进行详细介绍:
47.一、设备初始化阶段
48.该阶段主要是将收集数据所用的传感器组以及汇聚设备注册到验证端,将传感器(sensor node,sn)、汇聚设备(convergence equipment,ce)引入验证端 (verification end,ve),使验证端可以监控汇聚设备和传感器的可信度,为后续验证可信数据来源做准备。主要实施步骤如下:
49.步骤1:将汇聚设备中的详细信息引入验证端。
50.步骤1.1:汇聚设备ce通过使用内核符号表来获取系统0号进程逻辑地址并转为物
理地址。之后,汇聚设备利用内存中的双链表结构,通过0号进程的物理地址,以0号进程为出发点,获取自身的代码段cs
ce
、中断向量表ivt
ce
、系统调用表sct
ce

51.步骤1.2:利用tcm将汇聚设备的代码段cs
ce
、中断向量表ivt
ce
、系统调用表 sct
ce
、传感器设备的标识di
ce
,、网络标识dni
ce
、网络协议np
ce
进行度量,将所得到的值形成汇聚设备的基准库,存储到验证端中。基准值计算方式如下,measure 表示度量函数:quote
ce
=measure(cs
ce
,ivt
ce
,sct
ce
,di
ce
,dni
ce
,np
ce
)
ꢀꢀꢀꢀꢀ
(1)
52.步骤1.3:将汇聚设备的设备标识、公钥以及传感器映射列表引入验证端。
53.步骤2:对于分配给汇聚设备的每个传感器:
54.步骤2.1:将传感器度量值和密钥将被发送到汇聚设备,汇聚设备将其转发到验证端。
55.步骤2.1.1:传感器设备通过使用内核符号表来获取系统0号进程逻辑地址并转为物理地址,并利用内存中的双链表结构,通过0号进程的物理地址,获取自身的代码段csi、中断向量表ivti、系统调用表scti、传感器设备的标识dii,、网络标识dnii、网络协议npi。
56.步骤2.1.2:利用tcm将传感器设备的代码段csi、中断向量表ivti、系统调用表scti、传感器设备的标识dii,、网络标识dnii、网络协议npi,每次传感器收集数据的所用时间ati进行度量,将所得到的值形成传感器设备的基准值,形成传感器设备的基准库存储到验证端中。公式如下所示:quotei=measure(csi,ivti,scti,dii,dnii,npi,ati)
ꢀꢀꢀꢀꢀ
(2)
57.步骤2.1.3:将每个传感器的设备标识、公钥发送给汇聚设备,汇聚设备储存并将其转发到验证端。
58.步骤2.2:汇聚设备存储有关传感器的信息。
59.步骤2.3:传感器存储与汇聚设备通信所需的信息。
60.步骤2.4:传感器被添加到验证端中汇聚设备与传感器之间的映射列表中。
61.步骤3:启动汇聚设备以及传感器节点,现在,验证端可以监控汇聚设备及对应的传感器组的可信度,以确保它们没有被篡改。
62.二、可信数据包生成阶段
63.该阶段主要是通过汇聚设备,将传感器组收集到的数据进行汇聚整合,形成验证端所需要的数据。同时对自身进行度量,形成自身度量值。将两部分数据整合,并利用tcm进行签名,最终生成可信数据包。主要实施步骤如下:
64.步骤1:验证端ve从汇聚设备ce请求传感器节点sn数据。
65.步骤2:对于ce管理的每个sni:
66.步骤2.1:ce从sni请求其所收集到的数据datai。
67.步骤2.2:sni感知并收集数据datai。
68.步骤2.3:sni利用tcm对自身进行度量(系统软件和配置),生成度量值quotei,同时针对度量值附加时间戳ti。
69.步骤2.3.1:sni利用tcm对自身进行的代码段csi、中断向量表ivti、系统调用表scti进行度量、传感器设备的标识dii,、网络标识dnii、网络协议npi、每次传感器收集数据的所用时间ati,如下公式所示,同时针对度量值附加时间戳ti。quotei=measure(csi,ivti,scti,dii,dnii,npi,ati)
ꢀꢀꢀꢀꢀꢀ
(3)
70.步骤2.4:sni将传感器收集到的数据datai和自身度量值quotei捆绑成一个传感器可信数据data_trustedi。具体计算方式如下:data_trustedi=datai+quotei+tiꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
71.步骤2.5:sni使用传感器特有的priv_keyi对传感器可信数据data_trustedi进行签名。具体签名方式如下,sign表示度量函数:sigi=sign(data_trustedi,priv_keyi)
ꢀꢀꢀꢀꢀꢀ
(5)
72.步骤2.6:sni向ce返回数据对(data_trustedi,sigi)。
73.步骤3:ce从每个传感器sni收集传感器可信数据data_trustedi和签名sigi,对每个传感器的时间戳ti进行验证,验证其是否合法。如果出现不合法传感器,则直接向验证端ve报告。
74.步骤4:ce将从每个传感器sni收集传感器可信数据data_trustedi和签名sigi聚合生成汇聚设备的数据块data
ce
。具体如下公式所示:data
ce
=[(data_trusted0,sig0),(data_trusted1,sig1),

(data_trustedn,sign)]
ꢀꢀꢀ
(6)
[0075]
步骤5:ce利用tcm将汇聚设备的代码段cs
ce
、中断向量表ivt
ce
、系统调用表sct
ce
、传感器设备的标识di
ce
,、网络标识dni
ce
、网络协议np
ce
进行度量生成度量值quote
ce
,同时针对度量值附加时间戳t
ce
。公式如下:quote
ce
=measure(cs
ce
,ivt
ce
,sct
ce
,di
ce
,dni
ce
,np
ce
)
ꢀꢀꢀꢀꢀꢀ
(7)
[0076]
步骤6:ce利用步骤4和步骤5生成的数据块data
ce
与自身的度量值quote
ce
生成可信数据包data_trusted
ce
。其计算方式如下公式所示:data_trusted
ce
=data
ce
+quote
ce
+t
ce
ꢀꢀꢀꢀꢀꢀꢀ
(8)
[0077]
步骤7:ce利用唯一的私钥priv_key
ce
对可信数据包进行签名sig
ce
。其计算方式如下公式所示:sig
ce
=sign(data_trusted
ce
,priv_key
ce
)
ꢀꢀꢀꢀꢀꢀ
(9)
[0078]
步骤8:ce根据步骤6与步骤7中可信数据包data_trusted
ce
和签名sig
ce
聚合成最终的汇聚设备可信数据包trusted_data_ce,其结构如图2所示。其数据结构如下公式:trusted_data_ce=(data_trusted
ce
,sig
ce
)
ꢀꢀꢀꢀꢀꢀ
(10)
[0079]
步骤9:ce将步骤8生成的汇聚设备可信数据包trusted_data_ce发验证端ve。
[0080]
三、验证可信数据包阶段
[0081]
该阶段主要是利用验证端来验证收到的可信数据包是否可信,其数据来源是否可信。主要实施步骤如下:
[0082]
步骤1:验证端ve从汇聚设备ce接收可信数据包trusted_data_ce。
[0083]
步骤2:验证端ve验证来自ce的签名sig
ce
与时间戳t
ce

[0084]
步骤2.1:验证端ve通过ce数据包中的时间戳t
ce
来验证其合法性。
[0085]
步骤2.2:验证端ve利用pub_key
ce
来验证data_trusted
ce
的sig
ce
的有效性。
[0086]
步骤2.3:验证端ve根据其存储的汇聚设备基准库验证汇聚设备发来的quote
ce
。如果ve验证通过,即可以认为汇聚设备ce是可信的。这保证了在收集 data
ce
时ce处于受信任状态。
[0087]
步骤3:验证端ve继续验证data
ce
中的每个(data_trustedi,sigi)数据对:
[0088]
步骤3.1:验证端ve验证每个传感器sni是否在当前汇聚设备ce的映射列表中。如果不在当前映射列表中,则不需要进行后续验证,直接可以判断为恶意传感器节点。
[0089]
步骤3.2:验证端ve利用每个sni的pub_key可信数据data_trusted的签名sigi的有效性。
[0090]
步骤3.3:验证端ve根据其存储的传感器设备基准库验证每个传感器sni的 quotei是否可信。如果ve验证通过,即可以认为当前传感器sni是可信的,其获取的数据是可信的。这保证了在收集datai时传感器sni于受信任状态。
[0091]
步骤3.4:如果根据步骤3.1、3.2、3.3的验证结果均为成功,则验证端ve可以信任该传感器的数据,验证端ve可以使用该传感器节点报告的数据。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1