基于可信执行环境的时钟同步方法及系统与流程

文档序号:26847629发布日期:2021-10-09 00:55阅读:250来源:国知局
基于可信执行环境的时钟同步方法及系统与流程

1.本发明涉及工业互联网技术领域,具体地,涉及一种基于可信执行环境的时钟同步方法及系统。


背景技术:

2.可信执行环境(trusted execution environment),是一个独立于常规操作系统的执行环境,通常用于运行高安全需求操作、保护敏感数据、保护高价值数据等。富执行环境指的是rich execution environment。一般指位于可信执行环境之外的所有软件或硬件,通常认为ree内的组件不应该用于处理敏感业务。
3.同步的时间在软件业务中十分重要。现有的系统可以依赖第三方的网络时钟机制降低不同节点上的时间偏差,该机制会定期协助各节点进行时间校准。计算机系统的计时机制通常需要依赖结合多种不同的硬件时钟源实现,而硬件时钟源的选择需要综合考虑精度以及持久化的问题。
4.移动设备由于一般没有稳定的外部供能,需要一个拥有独立供能的持久化时钟源负责在设备关闭或休眠时维护时钟。因此,移动设备的计时一般由一个cpu核心内部集成的高精度时钟源与一个核外独立供能的rtc时钟(实时时钟,real

time clock)共同完成,移动设备的系统时间通常由两者的值进行综合运算后得到。当移动设备进行网络校时时,系统通过校时协议获得网络时间,并根据预定义的规则更新不同硬件时钟源的值。上述过程一般由系统中的时钟服务和操作系统内核中的多个时钟源驱动程序共同负责。
5.在该过程中,若其中任一组件的运行被干扰、攻陷,或组件运行条件无法满足(如无网络,rtc断电重置)时,系统维护的时间就是不准确或不稳定的。在某些场景中,攻击者通常可以以较低的成本实施上述攻击(如主动修改设备时间、手机的越狱或root,断网或者拆除rtc电池)。而此时,对于时间敏感的应用不应该将操作系统维护的时间作为其执行业务逻辑的根据。
6.公开号为cn109600186b的发明专利,公开了一种时钟同步方法及装置,包括:基于从端口获取与第一时钟源的第一时钟差,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差,基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差,基于所述可信时钟差对系统时钟进行同步。该发明中提供了一个精确的时钟数据,但未能提供一个具有参考意义的、单调递增的时钟数据。


技术实现要素:

7.针对现有技术中的缺陷,本发明提供一种基于可信执行环境的时钟同步方法及系统。
8.根据本发明提供的一种基于可信执行环境的时钟同步方法及系统,所述方案如下:
9.第一方面,提供了一种基于可信执行环境的时钟同步方法,所述方法包括:
10.可信设备端计时步骤:将设备端的时钟源驱动程序迁移至可信执行环境中,并在可信执行环境中实现可信时钟服务,可信时间由时钟源读数与可信时钟服务维护的可信时钟偏差值相加得到;
11.设备端时钟数据与云端同步步骤:设备定期或主动同步云端时钟源的时钟数据;
12.设备以随机化的周期持久化时钟数据步骤:以随机化的周期存储可信时钟数据,在对设备性能影响较小的情况下,减小设备断电对计时造成的影响。
13.优选的,所述可信设备端计时步骤是指使用可信执行环境外设保护技术禁用非可信执行环境对时钟源的配置,在可信执行环境中实现驱动程序管理时钟源;
14.可信执行环境向富执行环境开放时钟源数据的读取接口,用于读取时钟源的值,富执行环境改为通过调用可信执行环境开放的时钟源数据读取接口的方式来读取时钟源的值;
15.可信执行环境向富执行环境开放时钟源数据的更新接口,用于更新时钟源的值,富执行环境改为通过调用可信执行环境开放的时钟源数据更新接口的方式来更新时钟源的值;
16.维护可信时间偏移量用于表示可信时间与时钟源值的差值,在时钟源数据更新接口被调用时,同步更新;
17.根据可信时间偏移量与时钟源的值,计算当前的安全时间。
18.优选的,所述的时钟源数据的读取接口,整个执行过程中无需进行存储操作,直接返回时钟源数据的原始值,以降低富执行环境会出现的频繁读取时钟源值对系统性能操作的影响。
19.优选的,所述可信时间偏移量的维护具体包括:
20.定义相关状态:
21.定义时钟源的值为t0;
22.定义可信时间为t
s

23.定义可信时间偏移量为t
s_offset

24.可信时间偏移量的计算为可信时间与时钟源值的差,即t
s

t0,初始状态下,t
s_offset
的值为0;
25.时钟源数据更新接口被调用时,可信时间偏移量的同步更新方法如下:
26.步骤s1.1.1:读取时钟源的值t0;
27.步骤s1.1.2:设富执行环境调动更新接口试图将时钟源的值设置为t0',具体包括:
28.a:计算新的可信时间偏移量为t
s_offset
'=t0+t
s_offset

t0';
29.b:将t0的值更新为t0';
30.c:将t
s_offset
的值更新为t
s_offset
';
31.d:将t
s_offset
的值写入安全存储中,若失败,则直接退出操作;
32.e:更新安全内存中t
s_offset
的值;
33.f:将t0'的值写入计时硬件rtc内。
34.优选的,所述安全时间的计算方法如下:
35.a:读取时钟源的值t0;
36.b:读取安全内存中t
s_offset
的值;
37.c:返回可信时间t
s
=t0+t
s_offset

38.优选的,所述设备端时钟数据与云端同步步骤具体包括:
39.步骤s2.1:可信时钟服务通过特定安全通信从云端获取最新的可信时间t
n

40.步骤s2.2:读取时钟源的值t0;
41.步骤s2.3:计算新的可信时间偏移量为t
s_offset
'=t
n

t0;
42.步骤s2.4:将t
s_offset
'的值写入安全存储中,若失败,则直接退出操作;
43.步骤s2.5:更新安全内存中t
s_offset
'的值。
44.优选的,所述随机化周期的时钟数据持久化步骤具体包括:
45.系统启动后或每次完成时钟数据存储后,生成一个指定范围内的随机数,并在该随机数长度的秒数后,读取时钟源的值并将其持久化存储在安全存储中;
46.在设备启动的可信时间服务初始化阶段,根据时钟源值以及安全存储中存储的可信时间数据重新计算可信时间偏移量,以实现可信时间的单调递增。
47.优选的,所述重新计算时间偏移量具体包括:
48.设设备启动时的时钟源值为t1;
49.安全存储中上次写入时的时钟源值为t0;
50.可信时间偏移量为t
s_offset

51.如果t1<t0,则认为设备时钟源发生回退,为实现可信时间的单调递增,此时更新可信时间偏移量t
s_offset
'=(t0+t
s_offset
)

t1,并以此值更新安全存储和安全内存中的可信时间偏移量的值。
52.第二方面,提供了一种基于可信执行环境的时钟同步系统,所述系统包括:
53.可信设备端计时模块:将设备端的时钟源驱动程序迁移至可信执行环境中,并在可信执行环境中实现可信时钟服务,可信时间由时钟源读数与可信时钟服务维护的可信时钟偏差值相加得到;
54.设备端时钟数据与云端同步模块:设备定期或主动同步云端时钟源的时钟数据;
55.设备以随机化的周期持久化时钟数据模块:以随机化的周期存储可信时钟数据,在对设备性能影响较小的情况下,减小设备断电对计时造成的影响。
56.优选的,所述可信设备端计时模块是指使用可信执行环境外设保护技术禁用非可信执行环境对时钟源的配置,在可信执行环境中实现驱动程序管理时钟源;
57.可信执行环境向富执行环境开放时钟源数据的读取接口,用于读取时钟源的值,富执行环境改为通过调用可信执行环境开放的时钟源数据读取接口的方式来读取时钟源的值;
58.可信执行环境向富执行环境开放时钟源数据的更新接口,用于更新时钟源的值,富执行环境改为通过调用可信执行环境开放的时钟源数据更新接口的方式来更新时钟源的值;
59.维护可信时间偏移量用于表示可信时间与时钟源值的差值,在时钟源数据更新接口被调用时,同步更新;
60.根据可信时间偏移量与时钟源的值,计算当前的安全时间。
61.与现有技术相比,本发明具有如下的有益效果:
62.1、本发明使用可信计时方式,在操作系统和时钟服务被攻陷后仍然能准确计时,在可信执行环境中运行时钟驱动程序,能够防止可信时钟数据被非法篡改;
63.2、本发明中设备端与云端使用安全链路传输同步时间,以此能够保证通讯数据的隐私性和完整性,可以安全有效地同步云端时间;
64.3、本发明采用随机的设备时钟持久化机制,将时钟数据定期保存在安全存储中,可以避免rtc断电导致的时钟数据丢失;设备掉电后可以获取到一个比较接近当前时间的时间值,尽可能地减小设备掉电的影响。
附图说明
65.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
66.图1为更新时钟源值的流程示意图;
67.图2为读取安全时间的流程示意图;
68.图3为同步安全时间的流程示意图;
69.图4为以随机的周期储存时钟数据示意图;
70.图5为开机后更新可信时间偏移量示意图。
具体实施方式
71.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
72.本发明实施例提供了一种基于可信执行环境的时钟同步方法,参照图1所示,该方法中设备端的可信时钟的工作由可信计时步骤、云端同步步骤、随机化存储步骤共同完成。可信计时方式提供了安全、稳定的计时时钟;设备与云端同步是为了减小可信时钟的误差;随机化存储可以保证设备在关机、断电后依然能够提供一个具有参考意义的时钟数据。
73.可信计时的实现依赖于可信执行环境中的安全存储和安全内存。安全存储是在特殊存储介质的基础上搭建的存储服务,结合存储介质的硬件特性以及加解密算法,该存储服务能够保证其中的内容仅可被授权的应用读取,且无法被任意篡改;在支持相关特性的设备中,安全内存是物理内存中的一个或多个区域,通过恰当的配置可以防止区域内的数据被未授权的应用读写。
74.具体地,可信计时步骤包括:
75.可信计时机制需要实现一个可信时钟的同时,还需要保证系统原有的逻辑不受影响。本发明选择的方式是在整体系统原有时间之外,额外维持一个可信时间。系统原有时间的行为不变,可信时间与云端时间保持同步。
76.为实现上述目标,本发明将系统原有的时钟源驱动程序迁移至可信执行环境中,并在可信执行环境中实现了一个了独立的时钟服务。
77.可信执行环境为时钟服务和时钟源程序提供了一个可以稳定执行的空间,其执行所涉及的处理器状态、内存以及存储空间均无法被可信执行环境外部的软件影响。这主要
是通过tee的安全内存、安全外设的方式实现的。
78.在采取这种设计后,计时硬件与原来的操作系统工作在了相互隔离的可信执行环境中,原有操作系统软件将无法通过调用函数或者直接操作硬件的方式使用计时硬件,相应地,其需要调用可信执行环境中提供的一系列接口来实现原有功能。
79.为了实现可信计时,我们需要定义一些计时相关的状态:
80.定义时钟源的值为t0;
81.定义可信时间为t
s

82.定义可信时间偏移量为t
s_offset

83.可信时间偏移量的计算为可信时间与时钟源值的差,即t
s

t0,初始状态下,t
s_offset
的值为0;
84.时钟源驱动程序提供的接口如图1所示,实现步骤如下:
85.1、读取时钟源的值t0;
86.2、设富执行环境调动更新接口试图将时钟源的值设置为t0',具体包括:
87.a:计算新的可信时间偏移量为t
s_offset
'=t0+t
s_offset

t0';
88.b:将t0的值更新为t0';
89.c:将t
s_offset
的值更新为t
s_offset
';
90.d:将t
s_offset
的值写入安全存储中,若失败,则直接退出操作;
91.e:更新安全内存中t
s_offset
的值;
92.f:将t0'的值写入计时硬件rtc内。
93.可信时钟服务需要提供的接口即实现步骤如下:
94.(1)、获得可信时间t
s
,如图2所示:
95.a:读取时钟源的值t0;
96.b:读取安全内存中t
s_offset
的值;
97.c:返回可信时间t
s
=t0+t
s_offset

98.(2)、设置可信时间t
s
,向云端同步最新的时钟数据,并通过随机化存储将数据保存在安全存储和安全内存中。
99.设备端与云端的时间同步协议:
100.设备端与云端时间同步的流程如图3所示,具体包括:
101.一、可信时钟服务通过特定安全通信从云端获取最新的可信时间t
n

102.二、读取时钟源的值t0;
103.三、计算新的可信时间偏移量为t
s_offset
'=t
n

t0;
104.四、将t
s_offset
'的值写入安全存储中,若失败,则直接退出操作;
105.五、更新安全内存中t
s_offset
'的值。
106.设备时钟持久化机制:
107.为了防止rtc断电可能带来的时钟丢失问题,本发明方案会定期将设计中维护的状态存储在可信执行环境的安全存储中,过程如图4所示,具体包括:
108.一、系统启动后或每次完成时钟数据存储后,生成一个指定范围内的随机数,并在该随机数长度的秒数后,读取时钟源的值并将其持久化存储在安全存储中;
109.二、在设备启动的可信时间服务初始化阶段,根据时钟源值以及安全存储中存储
的可信时间数据重新计算可信时间偏移量,以实现可信时间的单调递增。
110.在设备端开机时,本发明方案会对比计时硬件rtc与安全存储的时间差异,并选取较大的值重新计算时间偏移量t
s_offset
,如图5所示,具体包括:
111.一、设设备启动时的时钟源值为t1;
112.二、安全存储中上次写入时的时钟源值为t0;
113.三、可信时间偏移量为t
s_offset

114.时钟持久化是相对耗时的操作,其时间消耗主要取决于设备安全存储介质的性能,其范围通常在500ms以内。因此,该操作通常不宜以较高的频率执行。如果过分降低执行设备时钟持久化操作的频率,则可能出现持久化时钟源断电时,时钟状态未保存的情况。因此本发明以随机化的间隔进行设备时钟的持久化操作,间隔的随机范围可以根据具体的场景指定。
115.本发明实施例提供了一种基于可信执行环境的时钟同步方法,本发明使用可信计时方式,在操作系统和时钟服务被攻陷后仍然能准确计时,在可信执行环境中运行时钟驱动程序,能够防止可信时钟数据被非法篡改;设备端与云端使用安全链路传输同步时间,以此能够保证通讯数据的隐私性和完整性,可以安全有效地同步云端时间;采用随机的设备时钟持久化机制,将时钟数据定期保存在安全存储中,可以避免rtc断电导致的时钟数据丢失;设备掉电后可以获取到一个比较接近当前时间的时间值,尽可能地减小设备掉电的影响。
116.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
117.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1