基于TEE扩展的计算机通用安全加密转换层方法及系统技术方案

技术编号:24945617 阅读:35 留言:0更新日期:2020-07-17 22:46
本发明专利技术公开了一种基于TEE扩展的计算机通用安全加密转换层方法及系统,本发明专利技术方法包括TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求并转发给TEE驱动程序;提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,将用户秘钥、加解密程序的特征值生成引子秘钥替代原始用户秘钥,然后发送给TEE安全隔离环境中的监控器。本发明专利技术通过建立操作系统中的通用密码转换层接口机制以提升TEE的密码服务的方便性,避免增加开发人员的额外接口负担,同时将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,能够避免恶意代码通过盗用引子秘钥攻击TEE的加解密保护。

【技术实现步骤摘要】
基于TEE扩展的计算机通用安全加密转换层方法及系统
本专利技术涉及计算机安全领域,具体涉及一种基于TEE扩展的计算机通用安全加密转换层方法及系统。
技术介绍
数据加密是保护计算机中信息安全的重要手段。现代加密技术已经使暴力破解变得极为困难,因此秘钥以及加解密过程的保护成为加密机制安全性的关键所在。通常的加解密软件运行和其它软件运行在同一个环境中,难以保证秘钥或加解密计算的中间信息不被非法获取。例如,Openssl系统假设每个用户都有一个私钥文件存储在磁盘上,作为生成其它秘钥的基础,一旦用户计算机因丢失或者系统漏洞等原因被非法访问,就容易造成私钥的泄露,从而威胁所有的数据安全。加解密的计算过程也包含了很多敏感信息,一旦被恶意软件获取,也容易盗取秘钥或者大大降低破解难度。TEE(TrustedExecutionEnvironment)又称为可信执行环境,是同主机系统相隔离的安全区域。TEE技术通过对现有的CPU添加硬件扩展能力,基于软硬件结合的方式获得一个同主机环境相隔离的执行环境,并确保隔离环境中所加载的代码和数据的机密性和完整性,主机环境将作为REE(RichExecutionEnvironment)环境同TEE并发运行,并能利用安全通信机制获得TEE的服务。而硬件隔离机制保证TEE中的组件不受REE中所运行软件的影响。目前常见的TEE技术有TrustZone和SGX等。TEE技术非常适合用来对加解密机制的秘钥和密码计算过程进行保护,从而提升加解密的安全性。TEE环境与REE并发运行,且有能力访问REE的资源。运行在TEE里的应用称为可信应用(即TA,TrustedApplication),硬件隔离技术保护其不受安装在主操作系统环境中的用户程序影响。而TEE内部机制可以保证TA之间不相互影响,这样可以为多个不同服务同时使用,而不影响安全性。将加解密算法和秘钥封装在TEE的TA中,REE中的代码要调用加解密服务,只需将明文和一个引子秘钥发送到TA,TA基于该引子秘钥生成真正的秘钥,执行加密操作,再讲密文返回给REE。REE中的代码无法获取真正的秘钥信息和中间计算数据,真正保护了秘钥和加密过程。通用密码转换层是指有标准规范并获得广泛使用的密码接口,这样可以使开发人员高效的完成所需的加解密任务。目前常见的通用密码转换层有用户层软件使用的SSL(SecureSocketsLayer)、TLS(TransportLayerSecurity)和Linux内核层Crypto子系统。Openssl(OpenSecureSocketsLayer)是SSL的一个开源实现。Openssl包含了SSL协议库libssl、应用程序命令工具以及密码算法库libcrypto,同时还提供了Engine机制,使Openssl能够透明的使用第三方提供的加解密算法,方便Openssl同其它机制和设备的对接。虽然TEE加密服务的原理简单清晰,在实际应用中,尤其是同通用密码转换层结合时会遇到一系列问题,给用户和开发者造成了障碍。首先,REE调用TEE服务有一套独立的编程接口和开发规范,这同操作系统中的通用接口库有很大区别,用户需要了解TEE的专门知识,提高了应用或开发的门槛。其次,用户虽然不掌握直接的加解密秘钥,但其所掌握的引子秘钥仍然是成功加解密的关键,如何保证该引子秘钥不被恶意利用也是一个难题。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种基于TEE扩展的计算机通用安全加密转换层方法及系统,本专利技术通过建立操作系统中的通用密码转换层接口机制以提升TEE的密码服务的方便性,避免增加开发人员的额外接口负担,同时将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,能够避免恶意代码通过盗用引子秘钥攻击TEE的加解密保护。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于TEE扩展的计算机通用安全加密方法,实施步骤包括:1)REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给REE主机操作系统中内核态下的TEE驱动程序;2)提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,然后通过TEE驱动程序发送给TEE安全隔离环境中的TEEOS;3)所述TEEOS将加解密请求转发给加解密服务TA;4)所述加解密服务TA根据引子秘钥、TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。可选地,步骤1)中的通用密码转换层接口为采用OpensslEngine技术封装的通用密码转换层接口,所述通用密码转换层接口将TEE标准用户接口封装进OpensslEngine提供的数据结构中。可选地,步骤1)之前包括采用OpensslEngine技术封装通用密码转换层接口的步骤,详细步骤包括:针对TEE标准用户接口提供的加解密算法建立对应的OpensslEngine提供的数据结构;加解密算法的接口函数分别填入该数据结构的结构体中对应的函数指针以用于打开REE主机操作系统与TEE安全隔离环境之间的通讯并初始化加解密的密钥及向量;将数据结构注册到REE主机操作系统中以便加解密程序进行调用。可选地,步骤2)中提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥具体是指通过REE内核驱动中的钩子函数实现的。可选地,步骤2)中的加解密程序的特征值具体是指加解密程序的散列值或者能区分该程序同其它程序的不同的数字特征值。可选地,步骤2)中将用户秘钥、加解密程序的特征值生成引子秘钥的详细步骤包括:首先将用户秘钥、加解密程序的特征值求和,然后计算求和结果的散列值,并将求和结果的散列值作为最终生成的引子秘钥。可选地,所述加解密请求为加密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的明文数据进行加密操作得到密文。可选地,所述加解密请求为解密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的密文数据进行解密操作得到明文。此外,本专利技术还提供一种基于TEE扩展的计算机通用安全加密系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的计算机程序。此外,本专利技术还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的计算机程序。和现有技术相比,本专利技术具有下述优点:1、本专利技术REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解本文档来自技高网
...

【技术保护点】
1.一种基于TEE扩展的计算机通用安全加密方法,其特征在于实施步骤包括:/n1)REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给REE主机操作系统中内核态下的TEE驱动程序;/n2)提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,然后通过TEE驱动程序发送给TEE安全隔离环境中的TEE OS;/n3)所述TEE OS将加解密请求转发给加解密服务TA;/n4)所述加解密服务TA根据引子秘钥、TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。/n

【技术特征摘要】
1.一种基于TEE扩展的计算机通用安全加密方法,其特征在于实施步骤包括:
1)REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给REE主机操作系统中内核态下的TEE驱动程序;
2)提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,然后通过TEE驱动程序发送给TEE安全隔离环境中的TEEOS;
3)所述TEEOS将加解密请求转发给加解密服务TA;
4)所述加解密服务TA根据引子秘钥、TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。


2.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤1)中的通用密码转换层接口为采用OpensslEngine技术封装的通用密码转换层接口,所述通用密码转换层接口将TEE标准用户接口封装进OpensslEngine提供的数据结构中。


3.根据权利要求2所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤1)之前包括采用OpensslEngine技术封装通用密码转换层接口的步骤,详细步骤包括:针对TEE标准用户接口提供的加解密算法建立对应的OpensslEngine提供的数据结构;加解密算法的接口函数分别填入该数据结构的结构体中对应的函数指针以用于打开REE主机操作系统与TEE安全隔离环境之间的通讯并初始化加解密的密钥及向量;将数据结构注册到REE主机操作系统中以便加解密程序进行调用。


4.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤2)中提取TEE驱动程序收到的加解密请求中...

【专利技术属性】
技术研发人员:谭郁松董攀李小玲秦莹杨增朱浩高珑黄辰林丁滟马俊廖湘科吴庆波
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

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

1