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

可信执行环境中可信真随机数的获取方法及装置与流程

2022-10-13 04:42:04 来源:中国专利 TAG:


1.本发明涉及计算机系统安全处理技术领域,尤其涉及一种可信执行环境中可信真随机数的获取方法及装置。


背景技术:

2.可信执行环境(tee,trusted execution environment)是一个在软硬件基础上建立的隔离执行环境。enclave是tee软件栈,即tee中的信任组件,用途是保护目标的安全,例如可信应用软件运行在enclave中。但由于enclave在某些情况下(如芯片生产厂商没提供)不具备生成真随机数的环境,因而需要从外界获取真随机数。这里的外界可以是富执行环境(ree,rich execution environment),该富执行环境具有真随机数生成器。如果enclave从外部获取真随机数,可能出现以下情况:a)存在已被enclave外的恶意程序知晓的可能性;b)获取到的可能是伪随机、一直相同的数据。


技术实现要素:

3.针对现有技术存在的问题,本发明提供一种可信执行环境中可信真随机数的获取方法、装置、电子设备及存储介质。
4.第一方面,本发明提供一种可信执行环境中可信真随机数的获取方法,包括:从富执行环境中获取不可信随机数;从信任根中派生出秘钥;配置一个变量;根据所述秘钥、所述变量和所述不可信随机数生成消息认证码;所述消息认证码作为可信真随机数。
5.在一个实施例中,所述变量为不重复变量。
6.在一个实施例中,所述消息认证码为基于hmac算法计算生成。
7.第二方面,本发明提供一种可信执行环境中可信真随机数的获取装置,包括:第一获取模块,用于从富执行环境中获取不可信随机数;第二获取模块,用于从信任根中派生出秘钥;配置模块,用于配置一个变量;生成模块,用于根据所述秘钥、所述变量和所述不可信随机数生成消息认证码,所述消息认证码作为可信真随机数。
8.第三方面,本发明提供一种电子设备,包括存储器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述可信执行环境中可信真随机数的获取方法的步骤。
9.第四方面,本发明提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行第一方面所述可信执行环境中可信真随机数的获取方法的步骤。
10.本发明提供的可信执行环境中可信真随机数的获取方法、装置、电子设备及存储介质,在使用外界不可信的随机数urn的情况下,根据派生的秘钥、存储的变量和不可信的随机数生成enclave内的可信真随机数,增加可信真随机数的随机性,进一步增强计算系统的安全性。
附图说明
11.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
12.图1是本发明提供的可信执行环境中可信真随机数的获取方法的流程示意图;图2是本发明提供的可信执行环境中可信真随机数的获取装置的结构示意图;图3是本发明提供的电子设备的结构示意图。
具体实施方式
13.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
14.图1示出了本发明提供的一种安全可靠的可信执行环境中可信真随机数的获取方法的流程示意图,参见图1,该方法包括:11、从富执行环境中获取不可信随机数;12、从信任根中派生出秘钥;13、配置一个变量;14、根据秘钥、变量和不可信随机数生成消息认证码;消息认证码作为可信真随机数。
15.针对步骤11~步骤14,需要说明的是,在本发明中,可信执行环境中的enclave(tee软件栈),用途是保护目标的安全,例如可信应用软件运行在enclave中。但由于enclave在某些情况下(如芯片生产厂商没提供)不具备生成真随机数的环境,因而需要从外界获取真随机数。这里的外界可以是富执行环境(ree,rich execution environment),该富执行环境具有真随机数生成器。但如果enclave从外部获取真随机数,可能出现以下情况:a)存在已被enclave外的恶意程序知晓的可能性;b)获取到的可能是伪随机、一直相同的数据。
16.为此,本发明的设计方向为:从富执行环境中获取用于生成真随机数的信息,该信息为不可信随机数。考虑到芯片制造流程中,信任根可能发生外流(比如在生产厂商处有备份)。如果其泄漏了信任根,那么random_key存在被破解的可能。另外如果salt的规律被知晓,则生成的trng是可预测的。在这种情况下,引入不可信随机数(untrusted random num ,urn)可以进一步增加trng的随机性。
17.在本发明中,可信执行环境中的enclave从自身的信任根中派生出用于生成真随机数的秘钥random_key。
18.enclave还保存一个变量salt,也就是“加盐值”。该变量可为不重复变量,可采用自增或自减方式,进一步的,变量的数值为整数。
19.从富执行环境中获取不可信随机数。该不可信随机数可能是真随机数,可能是伪随机数。另外随机数可能被泄露,故是不可信的。
20.然后基于trng=hmac(random_key,salt||urn),即enclave基于hmac算法根据秘钥、变量salt和不可信随机数生成消息认证码,该消息认证码作为enclave中生成的可信真随机数trng。
21.本发明在使用外界不可信的随机数urn的情况下,根据派生的秘钥、存储的变量和不可信的随机数生成enclave内的可信真随机数,增加可信真随机数的随机性,进一步增强计算系统的安全性。
22.另外,本发明还存在另一设计方向,可信执行环境中的enclave不从外界获取真随机数。对此,需要说明的是,在可信执行环境中获取可信真随机数可以不引入外部(如富执行环境)的不可信随机数。此时,可信执行环境中的enclave从自身的信任根中派生出用于生成真随机数的秘钥random_key。
23.enclave还保存一个变量salt,也就是“加盐值”。该变量可为不重复变量,可采用自增或自减方式,进一步的,变量的数值为整数。
24.然后基于trng = hmac(random_key,salt),即enclave基于hmac算法根据秘钥和变量salt生成消息认证码,该消息认证码作为enclave中生成的可信真随机数trng。
25.本发明通过根据派生的秘钥和存储的变量,在没有真随机数生成器的tee中,生成enclave内的可信真随机数,提升了计算系统的安全性和随机性。
26.本发明具有广泛的应用场景,以下举例说明。
27.1、在tee环境中,为了传输机密数据,一般需要建立tls信道。在建立tls信道的过程中,通信双方都需要获得一个随机数,来进行密钥交换。比如diffie-hellman算法中,当双方随机数序列超过100位,且素数p超过300位时,以现有的计算能力,就可以确保双方计算出来的共享密钥是不可能被攻破的。这要求攻击者能够求解离散对数问题,这已经被证明是非常困难的。
28.2、在tee环境中,在某些可信应用的业务场景中为了保证公平或者随机的特性,需要使用随机数。比如:在竞猜应用中,使用随机数就可以避免人为干预,影响结果的公平性;又如,在为用户生成唯一标识符时,一般使用随机数作为盐,结合一些用户信息计算hash来作为用户的唯一标识。
29.下面对本发明提供的可信执行环境中可信真随机数的获取装置进行描述,下文描述的可信执行环境中可信真随机数的获取装置与上文描述的可信执行环境中可信真随机数的获取方法可相互对应参照。
30.图2示出了本发明提供的一种可信执行环境中可信真随机数的获取装置的流程示意图,参见图2,该装置包括第一获取模块21、第二获取模块22、配置模块23和生成模块24,其中:第一获取模块,用于从富执行环境中获取不可信随机数;第二获取模块,用于从信任根中派生出秘钥;配置模块,用于配置一个变量;
生成模块,用于根据秘钥、变量和不可信随机数生成消息认证码,消息认证码作为可信真随机数。
31.在上述装置的进一步装置中,变量为不重复变量。
32.在上述装置的进一步装置中,消息认证码为基于hmac算法计算生成。
33.由于本发明实施例所述装置与上述实施例所述方法的原理相同,对于更加详细的解释内容在此不再赘述。
34.需要说明的是,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模。
35.本发明提供的可信执行环境中可信真随机数的获取装置,在使用外界不可信的随机数urn的情况下,根据派生的秘钥、存储的变量和不可信的随机数生成enclave内的可信真随机数,增加可信真随机数的随机性,进一步增强计算系统的安全性。
36.图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)31、通信接口(communication interface)32、存储器(memory)33和通信总线34,其中,处理器31,通信接口32,存储器33通过通信总线34完成相互间的通信。处理器31可以调用存储器33中的计算机程序,以执行可信执行环境中可信真随机数的获取方法的步骤,例如包括:从富执行环境中获取不可信随机数;从信任根中派生出秘钥;配置一个变量;根据秘钥、变量和不可信随机数生成消息认证码;消息认证码作为可信真随机数。
37.此外,上述的存储器33中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
38.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行可信执行环境中可信真随机数的获取方法的步骤,例如包括:从富执行环境中获取不可信随机数;从信任根中派生出秘钥;配置一个变量;根据秘钥、变量和不可信随机数生成消息认证码;消息认证码作为可信真随机数。
39.另一方面,本发明实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使所述处理器执行可信执行环境中可信真随机数的获取方法的步骤,例如包括:从富执行环境中获取不可信随机数;从信任根中派生出秘钥;配置一个变量;根据秘钥、变量和不可信随机数生成消息认证码;消息认证码作为可信真随机数。
40.所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
41.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
42.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
43.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献