基于安全单元和可信执行环境的数字钱包安全框架系统的制作方法

文档序号:29957314发布日期:2022-05-11 08:17阅读:162来源:国知局
基于安全单元和可信执行环境的数字钱包安全框架系统的制作方法

1.本发明涉及数字货币离线交易领域,尤其涉及一种基于安全单元和可信执行环境的数字钱包安全框架系统。


背景技术:

2.当今世界正从信息化时代向数字化时代发展过渡,金融领域中加密货币发展迅速特别是全球性稳定币发展迅速,同时国际社会高度关注中央银行数字货币发展情况。对于各国政府,顺应当前建设数字经济适应时代要求,作为数字经济血液的数字货币已成为必要的金融基础设施。随着各国中央银行对数字货币相关研究工作的不断深入,中央银行数字货币目标定位、适用场景、技术架构以及对金融系统带来的积极变化都越加清晰。
3.根据零售型中央银行数据货币使用场景和当前国内移动支付发展现状,移动终端设备是公众使用此类型数字货币最合适的媒介。移动支付技术为终端用户带来的便捷消费体验的同时,也引入了复杂的个人隐私数据泄露问题。
4.此外,中央银行数字货币的类现金功能之一双离线支付也与现有移动支付技术不相兼容,可能潜藏一定的安全隐患。因此,若在现有移动支付技术基础设施上实施此类型数字货币钱包,会出现数据保护不足的情况,从而导致数据泄露的风险。可能出现数据泄露等问题造成安全风险并向整个金融系统蔓延。所以如何能够提供一种能够使得移动端双离线支付能够安全进行的交易环境,成为亟待解决的问题。


技术实现要素:

5.本发明提供一种基于安全单元和可信执行环境的数字货币钱包安全框架系统,用以解决现有技术中移动端双离线支付环境具有安全风险的问题。
6.为了实现上述目的,本发明技术方案提供了一种基于安全单元和可信执行环境的数字货币钱包安全框架系统,包括富执行环境、硬件平台、可信执行环境,富执行环境具有数字货币钱包应用及富执行环境操作系统;可信执行环境中具有多个数字货币钱包可信应用、可信执行环境操作系统;硬件平台中包括仅能被所述可信执行环境访问的安全单元,所述硬件平台中的资源无法同时被所述富执行环境和所述可信执行环境同时占用;富执行环境操作系统中的富执行环境消息代理用于接收富执行环境中的数字货币钱包应用的可信服务请求,并向可信执行环境中的可信应用转发可信服务请求;可信执行环境中的多个数字货币钱包可信应用接收所述逻辑引擎转发的指令与参数后执行相应的安全敏感程序;可信执行环境中的数字货币钱包基础服务为所述多个数字货币钱包可信应用提供统一服务接口;终端初次上电时所述安全单元用于生成终端主密钥,利用终端主密钥派生存储根密钥,在需要时基于存储根密钥派生存储密钥并将所述存储密钥传输至所述可信执行环境中,存储密钥使用后立即清除;其中,所述数字货币钱包应用向用户提供基本功能,所述数字货币钱包可信应用用于确保安全敏感程序执行流程正确和敏感信息不被未经授权的泄露;其中安全敏感程序包括数字货币双离线交易和/或数字货币兑入兑回和/或数字证书导
入等程序,敏感信息包括数字证书和/或密钥和/或私钥和/或支付口令和/或交易记录和/或用户个人隐私信息等。
7.作为上述技术方案的优选,较佳的,可信执行环境操作系统还包括可信执行环境消息代理,用于处理所述富执行环境消息代理转发的可信服务请求命令包,解析命令包中的数据,验证所述数据的合法性,然后重新封装指令包并发送至所述可信执行环境操作系统中的逻辑引擎中。
8.作为上述技术方案的优选,较佳的,可信执行环境操作系统包括密码算法库、密钥管理器,所述密码算法库中至少包括对称密码学算法和非对称密码学算法以及多种哈希算法;所述密钥管理器为所述可信执行环境中唯一有所述安全单元访问权限的模组,所述密钥管理器用于周期监控数字货币交易过程中涉及的所有密钥并保证所述密钥的机密性、完整性。
9.作为上述技术方案的优选,较佳的,可信执行环境操作系统包括可信ui,当所述可信ui被调起时从富执行环境接管显示屏和触摸屏权限,以保证人机交互时相关数据的真实性和完整性。
10.作为上述技术方案的优选,较佳的,可信执行环境操作系统包括逻辑引擎,所述逻辑引擎通过所述可信执行环境操作系统中的可信设备驱动管理可用的软件和硬件资源、执行可信应用的可信启动和/或路由可信服务请求。
11.作为上述技术方案的优选,较佳的,终端初次上电时所述安全单元用于生成终端主密钥,利用终端主密钥派生存储根密钥,包括:所述安全单元内部真随机数发生器读取一个固定长度的随机数作为终端主主密钥tmk;在所述终端的安全单元中有密钥派生函数,其中,是密钥种子空间,是派生密钥空间,使用和tmk生成仅用于派生其他密钥的存储根密钥。
12.作为上述技术方案的优选,较佳的,所述数字货币钱包可信应用用于保护敏感信息不被未经授权的泄露,包括:使用从所述存储根密钥派生的存储密钥封装终端内数字货币钱包可信应用中敏感信息的数字证书和/或密钥和/或私钥和/或支付口令和/或交易记录和/或用户个人隐私信息的数据,所述存储密钥派生后从安全单元se安全传输到可信执行环境tee,使得敏感信息的封装过程在可信执行环境中实现,封装后得到的数据块存储在安全单元和可信执行环境之外。
13.作为上述技术方案的优选,较佳的,使用从所述存储根密钥派生的存储密钥封装终端内数字货币钱包可信应用中的敏感信息,包括:使用密钥派生函数和存储根密钥srk生成用于保护所述敏感信息的数据data完整性的密钥:,其中字符串标识被派生的密钥是用于安全存储的存储密钥,字符串表示被派生的密钥用于计算消息验证码,为一字符串,其与当前所要保护的所述敏感
信息中的数据对应;在密钥被安全传输到可信执行环境后使用函数计算用于安全加固的数据块:,具体计算方式如下:,表示使用函数和密钥为数据明文数据计算消息验证码,表示使用函数和密钥为数据计算消息验证码。
14.作为上述技术方案的优选,较佳的,使用从所述存储根密钥派生的存储密钥封装终端内数字货币钱包可信应用中的敏感信息,包括:使用密钥派生函数和存储根密钥srk生成保护所述敏感信息的数据data机密性和完整性的密钥:,其中,字符串标识被派生的密钥是用于安全存储的存储密钥,字符串表示被派生的第一个密钥用于加密数据而第二个密钥用于计算消息验证码,为一字符串,其与当前所要保护的所述敏感信息中的数据对应;在密钥被安全传输到可信执行环境后使用函数计算用于安全加固的数据块:,具体计算方式如下:,表示使用函数和密钥加密明文数据,表示使用函数和密钥为数据进行加密。
15.本发明技术方案提供了一种基于安全单元和可信执行环境的数字货币钱包安全框架系统,包括富执行环境、硬件平台、可信执行环境,富执行环境具有数字货币钱包应用及富执行环境操作系统;可信执行环境中具有多个数字货币钱包可信应用、可信执行环境操作系统;硬件平台中包括仅能被所述可信执行环境访问的安全单元,所述硬件平台中的资源无法同时被所述富执行环境和所述可信执行环境同时占用;富执行环境操作系统中的富执行环境消息代理用于与富执行环境中的数字货币钱包应用直接通讯,向可信执行环境中的可信应用发送可信服务请求;可信执行环境中的多个数字货币钱包可信应用接收所述
逻辑引擎转发的指令与参数后执行相应的安全敏感程序;终端初次上电时所述安全单元用于生成终端主密钥,利用终端主密钥派生存储根密钥,在需要时基于存储根密钥派生存储密钥并将所述存储密钥传输至所述可信执行环境中,存储密钥使用后立即清除;其中,所述数字货币钱包应用向用户提供基本功能,所述数字货币钱包可信应用用于确保安全敏感程序执行流程正确和敏感信息不被未经授权的泄露;其中安全敏感程序包括数字货币双离线交易、数字货币兑入兑回、数字证书导入等程序,敏感信息包括数字证书、密钥、私钥、支付口令、交易记录、用户个人隐私信息等。
16.本发明为数字货币钱包涉及的数字证书、私钥、密钥、支付口令等敏感信息提供安全的处理和存储环境,全面加固数字货币钱包双离线交易、数字货币兑入兑回、证书导入等安全敏感程序执行过程,为数字货币用户的数字资产提供全面保护。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明提供的基于安全单元和可信执行环境的数字货币钱包安全框架系统的结构示意图。
19.图2为本发明中涉及的安全单元数字货币钱包密钥体系的结构示意图。
具体实施方式
20.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
22.图1为本发明实施例提供的结构示意图,如图1所示,本发明提供的基于安全单元和可信执行环境的数字货币钱包安全框架系统包括:富执行环境、硬件平台、可信执行环境。其中,富执行环境包括移动端的若干执行应用(app)、数字货币钱包应用、包含富执行环境消息代理的富执行环境操作系统。硬件平台包括支持armtrustzone技术的移动终端中央处理器和安全单元。可信执行环境包括若干可信应用、数字货币钱包可信应用、可信执行环境操作系统。可信执行环境操作系统包括:数字货币钱包基础服务、密码算法库、可信ui、逻辑引擎、密钥管理器、可信执行环境消息代理、可信设备驱动等。
23.具体的,富执行环境消息代理为 ree(rich execution environment,移动设备通用环境)侧操作系统内核中的守护进程部分,富执行环境中的应用只能通过该消息代理向可信执行环境中的请求服务。富执行环境中的应用将可信服务请求命令包发送给富执行环
境消息代理,由该消息代理向可信执行环境tee(trusted execution environment,可信执行环境)中的可信应用转发可信服务请求。在传递可信服务请求时,该代理根据请求类型组装调用 tee 中可信服务的命令包。同时负责接收可信服务请求的响应数据包,并将响应数据包返回给请求发起方。
24.可信执行环境消息代理用于处理富执行环境消息代理转发的可信服务请求命令包,解析命令包中的指令和参数数据,验证指令和参数的合法性,然后重新封装指令包并路由到逻辑引擎。
25.数字货币钱包基础服务依赖于密码算法库、密钥管理器、可信 ui 等,为各数字货币钱包可信应用提供统一标准的安全存储、身份认证、密钥操作、双离线交易等服务接口;同时负责为各数字货币钱包可信应用分配相互隔离的软件和硬件资源。
26.密码算法库:为数字货币钱包基础服务、密钥管理器、逻辑引擎以及其他可信应用提供密码学算法支持,包括对称密码学算法和非对称密码学算法以及多种哈希算法,例如国密算法sm2、sm3和sm4。
27.密钥管理器:依赖于se(secure element,安全单元)金融级安全特性,管理可信执行环境中使用到的所有密钥,从生成、派生、导入、使用、存储、销毁等方面对密钥开展全生命周期管控。同时负责保护密钥的机密性与完整性,是 tee 中唯一具有 se 访问权限的模块。提供密钥绑定功能,确保每个数字货币钱包可信应用只能访问和使用与其绑定的密钥。
28.利用 tee安全特性的数字货币钱包应用程序分成两部分实现,分别是富环境中的数字货币钱包应用和可信执行环境中的数字货币钱包可信应用。数字货币钱包应用向用户提供基本功能(非安全敏感功能):包括图形用户界面(gui)和数据处理、远程访问等功能。数字货币钱包可信应用用于执行安全敏感程序和处理敏感信息。
29.硬件平台中的资源无法同时被所述富执行环境和所述可信执行环境同时占用。移动终端中央处理器支持 arm trustzone扩展技术并受到其保护,位于硬件中的 se 组件仅能被 tee 访问。se 能够抵御实验室级攻击技术,保护设备主密钥不被外界非授权访问。
30.当可信人机交互(可信 ui)使用时,其从 ree 接管终端的显示屏和触摸屏,保证人机交互时相关数据的真实性和完整性,当显示屏和/或触摸屏显示交易金额、输入交易金额或支付口令时,可信ui防止相关敏感信息被敌手窃取或篡改。
31.逻辑引擎为 tee 操作系统的核心,通过可信执行环境操作系统中的可信设备驱动管理可用的软件和硬件资源、执行可信应用的可信启动、路由可信服务请求到对应的可信应用。在执行可信启动时为每一个启动的可信应用赋予一个固定的唯一身份标识,使数字货币钱包基础服务能够根据该标识控制每个数字货币钱包可信应用可访问的软硬件资源。
32.终端初次上电时所述安全单元用于生成终端主密钥,利用终端主密钥派生存储根密钥,在需要时基于存储根密钥派生存储密钥并将存储密钥传输至可信执行环境中,存储密钥使用后立即清除;其中,所述数字货币钱包应用向用户提供基本功能,所述数字货币钱包可信应用用于确保安全敏感程序执行流程正确和敏感信息不被未经授权的泄露;其中安全敏感程序包括数字货币双离线交易、数字货币兑入兑回、数字证书导入等程序,敏感信息包括数字证书、密钥、私钥、支付口令、交易记录、用户个人隐私信息等。
33.密钥的生成方式参考图2所示:
终端初次上电时安全单元用于生成终端主密钥和派生存储根密钥,并将终端主密钥和派生的存储根密钥安全的保存在安全单元内:安全单元内部真随机数发生器读取一个固定长度的随机数random作为终端主密钥tmk。得到终端主密钥tmk后,安全单元进行密钥派生,在终端的安全单元中有密钥派生函数,其中,是密钥种子空间,是派生密钥空间,使用和tmk生成仅用于派生其他密钥的存储根密钥。
34.安全单元se与可信执行环境tee传输密钥之前建立安全传输通道,可信执行环境tee中的密钥管理器使用密码算法库内根据国密标准实现的sm2密钥交换协议,与se协商用于传输密钥的会话密钥。基于所述会话密钥,安全单元se与可信执行环境tee可以安全的传输密钥。
35.基于trustzone实现的可信执行环境用于敏感信息管理,包括:使用从存储根密钥派生的存储密钥至少封装终端内数字货币钱包涉及的相关数字证书、密码学密钥和支付口令,所述存储密钥派生后从se安全传输到tee,敏感信息封装过程在可信执行环境中实现,封装后得到的数据块存储在安全单元和可信执行环境之外。
36.本发明通过以下举例方式对如何保护敏感信息不被未经授权的泄露进行说明,但并不对敏感信息的种类进行限制。为一字符串,其与当前所要保护的敏感信息中的数据对应,例如:当前被保护的敏感信息的类型为密钥,密钥中包括密钥1(数据)和密钥2(数据),密钥1和密钥2分别对应两个不同的。
37.现以对敏感信息中的数字证书和私钥进行保护为例进行说明,以下流程中得到的密钥、密钥用于保护的当前敏感信息中的数据。
38.进一步的,当采用以下方式对敏感信息中的数字证书和/或密钥和/或支付口令和/或交易记录和/或用户个人隐私信息进行保护时,下述得到的密钥、密钥的具体数据随着当前被保护的敏感信息的类型改变,剩余步骤相同。
39.现具体说明:1、使用从存储根密钥派生的存储密钥封装终端内数字货币钱包涉及的数字证书,保护数字证书完整性。此时,与数字证书中数据对应,为了方便理解本实施例将直接替换为字符串。
40.使用密钥派生函数和存储根密钥生成用于保护数字证书的数据完整性的密钥:,其中字符串标识被派生的密钥用于安全存储,字符串表示被派生的密钥用于计算消息验证码。
41.在密钥被安全传输到tee后使用函数计算安全加固的数据块
:,上式的具体计算方式为:,表示使用函数和密钥为数据明文数据计算消息验证码,表示使用函数和密钥为数据计算消息验证码。
42.拥有数据所有权的数字货币钱包可信应用可以使用函数验证并恢复中的数字证书,首先从se获取密钥,然后执行验证后恢复数据:,具体计算方式如下:数据块分为数据区和消息验证码区,数据区存放数据,可表示为;消息验证码区存放,可表示为,验证数据完整性时计算后与进行比较,若数据相同则返回明文数据,若数据不相同则返回异常信息。
43.2、保护私钥机密性和完整性。此时,与私钥中数据对应,为了方便理解本实施例将直接替换为字符串。
44.使用和srk生成用于保护私钥数据机密性和完整性的密钥:,其中字符串标识被派生的密钥用于安全存储,字符串表示被派生的第一个密钥用于加密数据而第二个密钥用于计算消息验证码。
45.在密钥被安全传输到tee后使用函数计算安全加固的数据块:,上式的计算方式为:,表示使用函数和密钥加密明文数据。拥有数据所有权的数字货币钱包可信应用可以使用函数从中验证并恢复私钥数据,首先从se获取密钥,然后执行验证后恢复数据:
,具体计算方式如下:数据块可以分为数据区和消息验证码区:数据区存放密文数据,可表示为;消息验证码区存放,可表示为,验证数据完整性时计算后与进行比较,若数据相同则恢复密文数据,表示使用函数和密钥解密数据。若验证数据失败则返回异常数据。
46.现用一具体实施例描述本发明技术方案:当双离线交易发起时:收付款双方操作移动终端富执行环境中的数字货币钱包应用触发双离线交易指令,经富执行环境消息代理经硬件平台向可信执行环境tee中的可信应用发送可信服务请求,数字货钱包可信应用执行双离线交易函数,可信应用根据收付款角色选择执行不同的子函数。发送过程中可信执行环境消息代理在进行命令和参数合法性检查后转发可信服务请求命令包至tee中的逻辑引擎。
47.tee中的逻辑引擎接收到可信服务请求命令包后,解析出命令包中的目标数字钱包可信应用,从存储区加载目标数字钱包代码到tee控制的安全内存中,验证代码真实性、完整性后运行目标数字钱包程序并向其传递可信服务请求命令包,若真实性、完整性验证失败则终止加载流程后返回异常信息。
48.目标数字货币钱包可信应用运行后开始处理接收到的可信服务请求命令包,解析出指令和参数,根据指令执行不同的程序。例如双离线交易程序和/或数字货币兑入程序和/或数字货币兑回程序和/或证书更新程序或其他独有的定制化程序。数字钱包可信应用通过标准化的数字货币钱包基础服务使用tee的可信计算资源和/或可信存储资源等。
49.数字货币钱包基础服务实现有data_seal和data_unseal函数并为各个数字钱包可信应用分配数据安全存储空间,通过密钥管理器为各个数字钱包可信应用分配密钥安全存储空间,保证各个数字钱包可信应用存储的敏感信息相互隔离。基于可信ui数字货币钱包基础服务为各个钱包可信应用定制统一的信息输入与输出界面,增强数字货币钱包的互操作性。结合密码算法库以及一定的安全策略数字货币钱包基础服务为各个钱包可信应用选择足够安全的加密算法和加密模式。通过组合安全存储、可信ui、密钥以及密码算法能力,数字货币钱包基础服务为各个钱包可信应用提供标准化的双离线交易、数字货币兑入、数字货币兑回、证书更新或其他独有的定制化功能。例如双离线交易功能被调用时,数字货币钱包基础服务通过密码管理器从se获取相关敏感信息的存储密钥,然后调用data_unseal函数验证并恢复相关交易密钥和证书。根据收付款角色执行不同的子流程,其中收款终端在获取密钥后等待交易继续执行,付款终端在统一定制的信息输入与输出界面的提示下输入用户支付口令,tee对用户支付口令计算哈希运算消息认证码,与tee中安全存储的用户支付口令哈希运算消息认证码进行对比,若比对错误则终止交易返回异常信息,若比对正确通过信息输入与输出界面提示用户进行下一步操作后等待交易继续执行。随后收
款终端与付款终端利用近场通讯技术交换交易数据,共同完成交易流程。交易结束时,数字货币钱包基础服务通过统一定制的信息输入与输出界面告知用户交易结果。
50.当流程中涉及签名计算或验证时,数字货币钱包基础服务使用密码算法库中的sm2、sm3算法进行计算或验证;当涉及钱包数据更新或交易记录数据存储时数字货币钱包基础服务调用data_seal函数封装相关数据,保护数据机密性、完整性。钱包数据指一组长期存储的可更新的数据,包括属于用户的数字货币、身份数字证书及其他信息;交易记录数据指交易后产生的可证明交易真实性和资金转移关系的信息,包括交易金额、时间错、付款方证书、收款方证书、付款方签名等。
51.当流程中涉及tee软硬件资源使用时,逻辑引擎、数字货币钱包基础服务、密钥管理器等组件通过可信设备驱动使用tee中的软硬件资源,可信设备驱动包含显示器驱动、触摸屏驱动、安全单元驱动、近场通讯模块驱动等。
52.当流程中涉及从se获取相关数据的存储密钥时,数字货币钱包基础服务使用密钥管理器的密钥提取接口向se发送指令与参数。se收到指令后根据参数和存储根密钥调用函数派生相应的存储密钥,存储密钥经会话密钥加密后返回给tee的密钥管理器,密钥管理器使用会话密钥解密后将明文存储密钥返回给数字货币钱包基础服务。上述存储密钥在执行加密或解密操作后立即清除。
53.本发明提供的技术方案的特点在于充分发挥se和trustzone的技术优势,由se保护设备多级密钥体系,为每个数字钱包可信应用使用的敏感信息分配不同的存储密钥,增加密钥与数据存储的安全性;由tee确保数字货币钱包关键流程执行安全,通过数字货币钱包基础服务整合se与tee软硬件资源,为上层各个数字货币钱包可信应用提供统一标准的功能接口。基于数字货币钱包基础服务实现的类现金功能双离线交易,可以让各个数字货币钱包能够执行安全的、统一标准的双离线交易,使不同的钱包之间可以相互交易、互联互通。
54.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1