在ARM平台基于固件实现可信密码模块的方法及装置制造方法及图纸

技术编号:31695877 阅读:15 留言:0更新日期:2022-01-01 10:56
本发明专利技术提供一种在ARM平台基于固件实现可信密码模块的方法及装置,所述方法:在REE设置ftcm驱动,在TEE设置ftcm可信应用和可信库;REE加载ftcm驱动,创建ftcm设备并初始化,将ftcm TA文件加载到REE;TCM应用接收到TCM请求后,通过ftcm驱动将TCM请求传递到TEE驱动,通知SMC切换到SWS,将TCM请求发送给TEE OS;TEE OS将TCM请求发送给ftcm TA,通过可信库进行可信处理,通过SMC切换到NWS,并将处理结果返回给TEE驱动,经ftcm驱动返回给TCM应用。本发明专利技术基于ARM在TEE物理隔离中创建ftcm设备实现TCM功能,提供给REE环境使用。提供给REE环境使用。提供给REE环境使用。

【技术实现步骤摘要】
在ARM平台基于固件实现可信密码模块的方法及装置


[0001]本专利技术属于信息安全
,具体涉及一种在ARM平台基于固件实现可信密码模块的方法及装置。

技术介绍

[0002]随着信息技术的发展,ARM架构的设备在信息技术产业中占据越来越重要的地位,除了移动设备外,ARM架构在终端和服务器这种信息基础设施中也得到了较快的发展,冲击传统的x86架构的市场。但在ARM架构快速发展的过程中,信息安全的问题也越来越突出,各个厂商产品基于ARM架构的多样性,造成了信息安全问题的多样性,如开发人员在开发应用时没有针对安全进行加固保护,则可能利用这些应用本身固有的安全漏洞就可获取ARM设备上操作系统的根权限,从而轻松获取应用的敏感数据,因此急需一个可信赖的运行环境保护用户信息。
[0003]而在传统的x86架构中使用单独TCM芯片的物理芯片作为TCM模块来提高安全可信的隔离空间。根据TCM标准,由各个厂商进行生产,通过在主板中插入物理TCM芯片来提供可信密码计算功能。但采用物理TCM芯片来提供可信密码服务,由于物理特性在更新、维护方面不易维护,生产及维护成本高,且反应速度慢。
[0004]此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种在ARM平台基于固件实现可信密码模块的方法及装置,是非常有必要的。

技术实现思路

[0005]针对现有技术的上述ARM架构快速发展,急需可信赖的运行环境保护用户信息,但传统X86架构采用TCM物理芯片作为TCM模块的方式不易维护,维护成本高,且反应速度慢的缺陷,本专利技术提供一种在ARM平台基于固件实现可信密码模块的方法及装置,以解决上述技术问题。
[0006]第一方面,本专利技术提供一种在ARM平台基于固件实现可信密码模块的方法,包括如下步骤:
[0007]S1.在REE环境中设置linux ftcm驱动模块和开源TEE驱动模块,以及在TEE环境中设置开源TEE操作系统、ftcm可信应用模块和可信库模块;
[0008]S2.REE环境中加载linux ftcm驱动模块,linux ftcm驱动模块进行ftcm设备创建及初始化,并将ftcm可信应用文件加载到REE环境;
[0009]S3.REE环境中TCM应用接收到TCM请求后,通过linux ftcm驱动模块将TCM请求传递到开源TEE驱动模块,开源TEE驱动模块通知安全监控器将CPU状态切换到安全世界状态后,将TCM请求发送给开源TEE操作系统;
[0010]S4.开源TEE操作系统将TCM请求发送给ftcm可信应用模块,ftcm可信应用模块通过可信库模块进行可信处理,再通知安全监控器将CPU状态切换到正常世界状态,并将加密处理结果返回给开源TEE驱动模块,经linux ftcm驱动模块返回给REE环境中TCM应用。
[0011]进一步地,步骤S1具体步骤如下:
[0012]S11.在REE环境中设置linux ftcm驱动模块,linux ftcm驱动模块将TCM应用请求发送给开源TEE驱动,以及将开源TEE驱动返回的加密处理结果返回给TCM应用请求;
[0013]S12.在TEE环境中设置开源TEE操作系统、ftcm可信应用模块和可信库模块,ftcm可信应用模块将开源TEE操作系统的TCM应用请求发送给可信库模块处理,并将可信库模块的处理结果返回给开源TEE操作系统;
[0014]S13.开源TEE驱动与开源TEE操作系统通过安全监控器连接,执行CPU在安全世界状态与普通世界状态之间的切换。本专利技术的REE环境操作系统为Linux系统,TEE环境为开源TEE操作系统,通过在REE环境中增加linux ftcm驱动模块,可在linux系统查看到模拟的tcm设备,同时在开源TEE操作系统以ftcm可信应用模块的形式实现。
[0015]进一步地,可信库模块包括密钥管理单元、密码服务单元、密码算法单元、存储管理单元、证书管理单元以及密码协议单元。可信库模块为进行可信度量的功能模块。
[0016]进一步地,步骤S2具体步骤如下:
[0017]S21.REE环境中加载linux ftcm驱动模块;
[0018]S22.linux ftcm驱动模块在REE环境操作系统下根据路径查找ftcm可信应用文件,并对ftcm可信应用文件合法性进行验证;
[0019]S23.REE环境中加载验证通过的ftcm可信应用文件,对ftcm设备进行初始化,并在初始化成功时,完成ftcm设备创建,以及在ftcm设备创建失败时,释放linux ftcm驱动模块占用资源,并卸载ftcm可信应用文件。linux ftcm驱动模块在REE环境操作系统下根据uuid路径查找ftcm可信应用的二进制文件,通过电子签名对ftcm可信应用文件合法性进行验证。
[0020]进一步地,步骤S23具体步骤如下:
[0021]S231.linux ftcm驱动模块将验证通过的ftcm可信应用文件通过开源TEE驱动模块加载到开源TEE操作系统;
[0022]S232.开源TEE操作系统创建ftcm可信应用文件上下文;
[0023]S233.对ftcm设备的存储及ftcm设备的功能模块进行初始化,并将初始化后数据保存在ftcm设备的存储中,再将初始化结果返回给REE环境的linux ftcm驱动模块;
[0024]S234.linux ftcm驱动模块在REE环境操作系统下创建ftcm设备文件。ftcm设备的存储有一个RMPB设备或flash提供,当ftcm设备的没有初始化时,根据TCM标准进行初始化后才可使用。RPMB,是Replay Protected Memory Block的简称,重放保护内存块。ftcm设备初始化接收后,保留初始化的会话,等待下次请求使用。
[0025]进一步地,步骤S3具体步骤如下:
[0026]S31.TCM应用将接收到的TCM请求传递到linux ftcm驱动模块;
[0027]S32.linux ftcm驱动模块将TCM请求转换成开源TEE格式的会话;
[0028]S33.开源TEE驱动模块按照TEE标准对开源TEE格式的会话进行处理,生成TEE请求,并将TEE请求发送到ARM的EL3层,以及向安全监控器发送异常终端请求;
[0029]S34.安全监控器执行CPU的正常世界状态到安全世界状态的切换,将TEE请求发送给开源TEE操作系统。
[0030]进一步地,步骤S32中会话包括请求类型及请求参数。请求类型包括加密请求和密
钥生成。TCM请求可为加密请求或者密钥请求;执行安全世界状态切换时,将SCR.EL3.NS参数设置为0。
[0031]进一步地,步骤S4具体步骤如下:
[0032]S41.开源TEE操作系统通过开源调度器将TEE请求发送给ftcm可信应用模块;
[0033]S42.ftcm可信应用模块通过可信库模块对TEE请求按照TCM本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在ARM平台基于固件实现可信密码模块的方法,其特征在于,包括如下步骤:S1.在REE环境中设置linux ftcm驱动模块和开源TEE驱动模块,以及在TEE环境中设置开源TEE操作系统、ftcm可信应用模块和可信库模块;S2.REE环境中加载linux ftcm驱动模块,linux ftcm驱动模块进行ftcm设备创建及初始化,并将ftcm可信应用文件加载到REE环境;S3.REE环境中TCM应用接收到TCM请求后,通过linux ftcm驱动模块将TCM请求传递到开源TEE驱动模块,开源TEE驱动模块通知安全监控器将CPU状态切换到安全世界状态后,将TCM请求发送给开源TEE操作系统;S4.开源TEE操作系统将TCM请求发送给ftcm可信应用模块,ftcm可信应用模块通过可信库模块进行可信处理,再通知安全监控器将CPU状态切换到正常世界状态,并将加密处理结果返回给开源TEE驱动模块,经linux ftcm驱动模块返回给REE环境中TCM应用。2.如权利要求1所述的在ARM平台基于固件实现可信密码模块的方法,其特征在于,步骤S1具体步骤如下:S11.在REE环境中设置linux ftcm驱动模块,linux ftcm驱动模块将TCM应用请求发送给开源TEE驱动,以及将开源TEE驱动返回的加密处理结果返回给TCM应用请求;S12.在TEE环境中设置开源TEE操作系统、ftcm可信应用模块和可信库模块,ftcm可信应用模块将开源TEE操作系统的TCM应用请求发送给可信库模块处理,并将可信库模块的处理结果返回给开源TEE操作系统;S13.开源TEE驱动与开源TEE操作系统通过安全监控器连接,执行CPU在安全世界状态与普通世界状态之间的切换。3.如权利要求2所述的在ARM平台基于固件实现可信密码模块的方法,其特征在于,可信库模块包括密钥管理单元、密码服务单元、密码算法单元、存储管理单元、证书管理单元以及密码协议单元。4.如权利要求1所述的在ARM平台基于固件实现可信密码模块的方法,其特征在于,步骤S2具体步骤如下:S21.REE环境中加载linux ftcm驱动模块;S22.linux ftcm驱动模块在REE环境操作系统下根据路径查找ftcm可信应用文件,并对ftcm可信应用文件合法性进行验证;S23.REE环境中加载验证通过的ftcm可信应用文件,对ftcm设备进行初始化,并在初始化成功时,完成ftcm设备创建,以及在ftcm设备创建失败时,释放linux ftcm驱动模块占用资源,并卸载ftcm可信应用文件。5.如权利要求4所述的在ARM平台基于固件实现可信密码模块的方法,其特征在于,步骤S23具体步骤如下:S231.linux ftcm驱动模块将验证通过的ftcm可信应用文件通过开源TEE驱动模块加载到开源TEE操作系统;S232.开源TEE操作系统创建ftcm可信应用文件上下文;S233.对ftcm设备的存储及ftcm设备的功能模块进行初始...

【专利技术属性】
技术研发人员:韩春超
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1