CN111431718B - 基于tee扩展的计算机通用安全加密转换层方法及系统 - Google Patents

基于tee扩展的计算机通用安全加密转换层方法及系统 Download PDF

Info

Publication number
CN111431718B
CN111431718B CN202010251269.2A CN202010251269A CN111431718B CN 111431718 B CN111431718 B CN 111431718B CN 202010251269 A CN202010251269 A CN 202010251269A CN 111431718 B CN111431718 B CN 111431718B
Authority
CN
China
Prior art keywords
encryption
decryption
tee
key
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010251269.2A
Other languages
English (en)
Other versions
CN111431718A (zh
Inventor
谭郁松
董攀
李小玲
秦莹
杨增
朱浩
高珑
黄辰林
丁滟
马俊
廖湘科
吴庆波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010251269.2A priority Critical patent/CN111431718B/zh
Publication of CN111431718A publication Critical patent/CN111431718A/zh
Application granted granted Critical
Publication of CN111431718B publication Critical patent/CN111431718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

基于TEE扩展的计算机通用安全加密转换层方法及系统
技术领域
本发明涉及计算机安全领域,具体涉及一种基于TEE扩展的计算机通用安全加密转换层方法及系统。
背景技术
数据加密是保护计算机中信息安全的重要手段。现代加密技术已经使暴力破解变得极为困难,因此秘钥以及加解密过程的保护成为加密机制安全性的关键所在。通常的加解密软件运行和其它软件运行在同一个环境中,难以保证秘钥或加解密计算的中间信息不被非法获取。例如,Openssl系统假设每个用户都有一个私钥文件存储在磁盘上,作为生成其它秘钥的基础,一旦用户计算机因丢失或者系统漏洞等原因被非法访问,就容易造成私钥的泄露,从而威胁所有的数据安全。加解密的计算过程也包含了很多敏感信息,一旦被恶意软件获取,也容易盗取秘钥或者大大降低破解难度。
TEE(Trusted Execution Environment)又称为可信执行环境,是同主机系统相隔离的安全区域。TEE技术通过对现有的CPU添加硬件扩展能力,基于软硬件结合的方式获得一个同主机环境相隔离的执行环境,并确保隔离环境中所加载的代码和数据的机密性和完整性,主机环境将作为REE(Rich Execution Environment)环境同TEE并发运行,并能利用安全通信机制获得TEE的服务。而硬件隔离机制保证TEE中的组件不受REE中所运行软件的影响。目前常见的TEE技术有TrustZone和SGX等。TEE技术非常适合用来对加解密机制的秘钥和密码计算过程进行保护,从而提升加解密的安全性。
TEE环境与REE并发运行,且有能力访问REE的资源。运行在TEE里的应用称为可信应用(即TA,Trusted Application),硬件隔离技术保护其不受安装在主操作系统环境中的用户程序影响。而TEE内部机制可以保证TA之间不相互影响,这样可以为多个不同服务同时使用,而不影响安全性。将加解密算法和秘钥封装在TEE的TA中,REE中的代码要调用加解密服务,只需将明文和一个引子秘钥发送到TA,TA基于该引子秘钥生成真正的秘钥,执行加密操作,再讲密文返回给REE。REE中的代码无法获取真正的秘钥信息和中间计算数据,真正保护了秘钥和加密过程。
通用密码转换层是指有标准规范并获得广泛使用的密码接口,这样可以使开发人员高效的完成所需的加解密任务。目前常见的通用密码转换层有用户层软件使用的SSL(Secure Sockets Layer)、TLS(Transport Layer Security)和Linux内核层Crypto子系统。Openssl(Open Secure Sockets Layer)是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安全隔离环境中的TEE OS;
3)所述TEE OS将加解密请求转发给加解密服务TA;
4)所述加解密服务TA根据引子秘钥、TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。
可选地,步骤1)中的通用密码转换层接口为采用Openssl Engine技术封装的通用密码转换层接口,所述通用密码转换层接口将TEE标准用户接口封装进Openssl Engine提供的数据结构中。
可选地,步骤1)之前包括采用Openssl Engine技术封装通用密码转换层接口的步骤,详细步骤包括:针对TEE标准用户接口提供的加解密算法建立对应的Openssl Engine提供的数据结构;加解密算法的接口函数分别填入该数据结构的结构体中对应的函数指针以用于打开REE主机操作系统与TEE安全隔离环境之间的通讯并初始化加解密的密钥及向量;将数据结构注册到REE主机操作系统中以便加解密程序进行调用。
可选地,步骤2)中提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥具体是指通过REE内核驱动中的钩子函数实现的。
可选地,步骤2)中的加解密程序的特征值具体是指加解密程序的散列值或者能区分该程序同其它程序的不同的数字特征值。
可选地,步骤2)中将用户秘钥、加解密程序的特征值生成引子秘钥的详细步骤包括:首先将用户秘钥、加解密程序的特征值求和,然后计算求和结果的散列值,并将求和结果的散列值作为最终生成的引子秘钥。
可选地,所述加解密请求为加密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的明文数据进行加密操作得到密文。
可选地,所述加解密请求为解密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的密文数据进行解密操作得到明文。
此外,本发明还提供一种基于TEE扩展的计算机通用安全加密系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于TEE扩展的计算机通用安全加密方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给REE主机操作系统中内核态下的TEE驱动程序,本发明向用户屏蔽了TEE密码服务的底层细节,使用户能通过传统标准接口高效地调用TEE的加解密服务,通过建立操作系统中的通用密码转换层接口机制以提升TEE的密码服务的方便性,避免增加开发人员的额外接口负担。
2、本发明将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,利用TEE保护加解密秘钥以及加解密的过程信息,提高了安全性,能够避免恶意代码通过盗用引子秘钥攻击TEE的加解密保护,解决了用户秘钥泄露导致的安全问题。
附图说明
图1为原始基于TEE的加解密流程图。
图2为本发明实施例方法的加解密流程图。
具体实施方式
下文将以在支持TrustZone的ARM平台作为本发明基于TEE扩展的计算机通用安全加密方法、系统及介质的实施示例进行进一步的详细说明。毫无疑问,本发明基于TEE扩展的计算机通用安全加密方法、系统及介质并不局限于支持TrustZone的ARM平台。图1为现有支持TrustZone的ARM平台基于TEE的加解密流程图。在REE环境中运行Linux操作系统,TEE环境中运行OPTEE开源系统。在TEE中实现了AES,RSA,SHA1等加解密服务TA,为REE提供加解密服务。基于OPTEE的标准TEE服务实现如图1所示。使用TEE加解密服务的Linux应用程序要被编写为一个CA应用,并执行这样的流程:打开TEE与REE间的通讯、在TEE和REE间进行数据传递、关闭TEE与REE间的通讯。REE侧通过TEEC_InitializeContext和TEEC_OpenSession接口建立与TEE侧的通讯;通过TEEC_InvokeCommand接口来实现REE与TEE之间的数据传递;最后通过TEEC_CloseSession与TEEC_FinalizeContext关闭REE与TEE之间的通讯。应用在发送加解密服务请求时,会将数据和所持有的用户秘钥一并发送给TEE,TA会使用一个特殊的TEE秘钥同用户秘钥进行密码学上的复合计算,得到真正使用的加解密秘钥,对数据进行密码计算,最后返回计算结果。这个过程不会暴露实际秘钥,更不会暴露计算过程,但无法防止其他程序从Linux用户控件盗取用户秘钥,威胁数据安全。
如图2所示,本实施例基于TEE扩展的计算机通用安全加密方法的实施步骤包括:
1)REE主机操作系统中用户态下的TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给REE主机操作系统中内核态下的TEE驱动程序;
2)提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,然后通过TEE驱动程序发送给TEE安全隔离环境中的TEE OS;
3)所述TEE OS将加解密请求转发给加解密服务TA;
4)所述加解密服务TA根据引子秘钥、TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。
参见步骤1)~4)可知,本实施例采用通用密码转换层接口封装TEE安全环境的密码服务,在此基础上开发者直接调用通用密码接口即可实现数据的安全加解密过程,从而能够提升TEE的密码服务的方便性,避免增加开发人员的额外接口负担;在向TEE传送信息的过程中,用户所提供的用户秘钥并不作为唯一的输入秘钥信息,而是提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,能够避免恶意代码通过盗用引子秘钥攻击TEE的加解密保护。本实施例不但可以为应用开发者提供同传统加解密计算所兼容的密码服务接口,还能够对秘钥和加解密的过程信息提供严格的保护。即使有其它应用程序获得了用户秘钥,也会因为最终生成的引子秘钥错误而无法获取有效信息。
参见图2,本实施例步骤1)中的通用密码转换层接口为采用Openssl Engine技术封装的通用密码转换层接口,所述通用密码转换层接口将TEE标准用户接口封装进OpensslEngine提供的数据结构中。
本实施例中,步骤1)之前包括采用Openssl Engine技术封装通用密码转换层接口的步骤,详细步骤包括:针对TEE标准用户接口提供的加解密算法建立对应的OpensslEngine提供的数据结构;加解密算法的接口函数分别填入该数据结构的结构体中对应的函数指针以用于打开REE主机操作系统与TEE安全隔离环境之间的通讯并初始化加解密的密钥及向量;将数据结构注册到REE主机操作系统中以便加解密程序进行调用。
以AES加解密算法为例,针对TEE标准用户接口提供的加解密算法建立对应的Openssl Engine提供的数据结构如下:
static const EVP_CIPHER test_aes_cipher = {
NID_aes_128_cbc,
16,
16,
16,
EVP_CIPH_VARIABLE_LENGTH,
test_aes_init_key,
test_aes_cipher,
test_aes_cleanup,
0,
NULL,
NULL,
NULL,
NULL
};
上式中,EVP_CIPHER为Openssl Engine提供的AES结构体,test_aes_cipher 为结构体名称,NID_aes_128_cbc为对称加密算法的nid(名称编号),EVP_CIPH_VARIABLE_LENGTH为设置密码是否可变长,test_aes_init_key为打开加解密服务TA并初始化密钥的函数指针,test_aes_cipher 为使用加解密服务TA的加解密函数指针,test_aes_cleanup为关闭加解密服务TA的函数指针。然后接口函数分别填入结构体对应的函数指针test_aes_init_key用于打开REE与TEE之间的通讯并初始化加解密的密钥及向量;test_aes_cipher 用于在REE与TEE之间进行数据的传输及加解密;test_aes_cleanup用于关闭REE与TEE之间的通讯,再将基于TEE的加解密程序编为库的形式。最后,将数据结构使用ENGINE_set xxxx进行注册,最后使用ENGINE_load xxxx即可完成加载,其中“xxxx”为加解密算法的接口名称。图2中,EVP_CIPHER_CTX new为创建EVP结构体,EVP_CipherInitex为初始化EVP结构体,EVP_CipherUpdate为使用EVP中的函数进行加解密,EVP_CIPHER_CTX_cleanup为释放EVP结构体。OpenSSL项目是一个开放源代码安全项目,它的目标是开发一个健壮的、商业级的、完整的开放源代码的工具包,用强大的加密算法来实现安全的Socket层(SecureSockets Layer,SSL v2/v3)和传输层的安全性(Transport Layer Security,TLS v1)。它包含了完整的加密算法,数字签名算法及证书算法等。Openssl Engine(Openssl的引擎机制)开始出现是在OpenSSL的0.9.6版,开始的时候是将普通版本跟支持Engine的版本分开的,到了OpenSSL的0.9.7版,Engine机制集成到了OpenSSL的内核中,成为了OpenSSL不可缺少的一部分。Engine机制目的是为了使OpenSSL能够透明地使用第三方提供的软件加密库或者硬件加密设备进行加密。OpenSSL的Engine机制成功地达到了这个目的,这使得OpenSSL已经不仅仅使一个加密库,而是提供了一个通用地加密接口,能够与绝大部分加密库或者加密设备协调工作。
本实施例中,步骤2)中提取TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥具体是指通过REE内核驱动中的钩子函数实现的。本实施例对操作系统内核的TEE驱动部分进行了修改,加入一个钩子模块。当应用程序同TEE内核驱动通信时,钩子模块会首先提取应用程序的不可变部分进行编码,并将编码结果同应用传入的用户秘钥进行混合运算,得到“引子秘钥。之后钩子模块使用引子秘钥替换用户秘钥,经TEE内核驱动将包含引子秘钥和明文/密文的请求传送给TEE。TEE中的加解密TA会使用引子秘钥和TEE秘钥进行复合运算,得到最终的加解密秘钥,完成密码计算,并将结果数据返回给REE中的请求者。
本实施例中,步骤2)中的加解密程序的特征值具体是指加解密程序的散列值或者能区分该程序同其它程序的不同的数字特征值。
本实施例中,步骤2)中将用户秘钥、加解密程序的特征值生成引子秘钥的详细步骤包括:首先将用户秘钥、加解密程序的特征值求和,然后计算求和结果的散列值,并将求和结果的散列值作为最终生成的引子秘钥。
本实施例中采用对称密码AES算法的TEE服务调用过程包括在Linux内核的TEE驱动中加入钩子函数,当用户应用通过Openssl的标准接口调用TEE AES密码服务后,经过Openssl Engine的转换和CA标准接口,用户的调用会调入Linux 内核TEE驱动,此时钩子函数将从调用的数据中取出用户秘钥;使用用户程序代码段的散列值作为用户程序特征值,钩子函数工作在内核层,可以获取用户程序特征值,并将该特征值与用户秘钥求和后的结果再求散列值,钩子函数将该散列值作为引子秘钥替换掉TEE驱动程序从应用获得的用户秘钥。此后TEE驱动程序按照原有TEE服务调用流程继续执行后续操作;TEE驱动程序最终通过调用SMC指令将系统切换到TEE状态执行,经过服务分发,最终由OPTEE内核将服务请求转发给AES TA。该TA从所获参数中取出引子秘钥,同自己所持有的私钥求和,再将结果求散列值,将该散列值作为AES加解密实际使用的加解密秘钥对数据进行加解密操作,再将最终结果按照既有的OPTEE服务调用流程返回给REE侧的加解密应用程序。本实施例实现了对用户加解密数据的进一步保护,即使非法应用代码获得了用户秘钥,也会由于其代码段和合法应用的区别而无法生成正确的引子秘钥,从而导致其对无法获得正确的加解密数据。以上实施例只是本实施例可能实施例的一种,诸如内核采用其它的特征值和计算方法生成引子秘钥,以及对于其它加解密算法的实现都在本实施例保护范围之列。
作为一种可选的实施方式,加解密请求为加密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的明文数据进行加密操作得到密文。
作为另一种可选的实施方式,加解密请求为解密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的密文数据进行解密操作得到明文。
此外,本发明还提供一种基于TEE扩展的计算机通用安全加密系统,包括计算机设备,该计算机设备被编程或配置以执行前述基于TEE扩展的计算机通用安全加密方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行前述基于TEE扩展的计算机通用安全加密方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述基于TEE扩展的计算机通用安全加密方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于TEE扩展的计算机通用安全加密方法,其特征在于实施步骤包括:
1)丰富执行环境REE主机操作系统中用户态下的可信执行环境TEE标准用户接口通过通用密码转换层接口收到加解密程序的加解密请求,并将加解密请求转发给丰富执行环境REE主机操作系统中内核态下的可信执行环境TEE驱动程序;
2)提取可信执行环境TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥,然后通过可信执行环境TEE驱动程序发送给可信执行环境TEE安全隔离环境中的可信执行环境操作系统TEE OS;
3)所述可信执行环境操作系统TEE OS将加解密请求转发给加解密服务可信应用TA;
4)所述加解密服务可信应用TA根据引子秘钥、可信执行环境TEE密钥生成实际使用的加解密密钥,并采用实际加解密密钥对加解密请求中的数据进行加解密操作并将结果返回给加解密程序。
2.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤1)中的通用密码转换层接口为采用Openssl的引擎Engine技术封装的通用密码转换层接口,所述通用密码转换层接口将可信执行环境TEE标准用户接口封装进Openssl的引擎Engine提供的数据结构中。
3.根据权利要求2所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤1)之前包括采用Openssl的引擎Engine技术封装通用密码转换层接口的步骤,详细步骤包括:针对TEE标准用户接口提供的加解密算法建立对应的Openssl的引擎Engine提供的数据结构;加解密算法的接口函数分别填入该数据结构的结构体中对应的函数指针以用于打开丰富执行环境REE主机操作系统与可信执行环境TEE安全隔离环境之间的通讯并初始化加解密的密钥及向量;将数据结构注册到丰富执行环境REE主机操作系统中以便加解密程序进行调用。
4.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤2)中提取可信执行环境TEE驱动程序收到的加解密请求中的用户秘钥、加解密程序的特征值,并将用户秘钥、加解密程序的特征值生成引子秘钥并替代加解密请求中的原始用户秘钥具体是指通过丰富执行环境REE内核驱动中的钩子函数实现的。
5.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤2)中的加解密程序的特征值具体是指加解密程序的散列值或者能区分该程序同其它程序的不同的数字特征值。
6.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,步骤2)中将用户秘钥、加解密程序的特征值生成引子秘钥的详细步骤包括:首先将用户秘钥、加解密程序的特征值求和,然后计算求和结果的散列值,并将求和结果的散列值作为最终生成的引子秘钥。
7.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,所述加解密请求为加密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的明文数据进行加密操作得到密文。
8.根据权利要求1所述的基于TEE扩展的计算机通用安全加密方法,其特征在于,所述加解密请求为解密请求,步骤4)中的对加解密请求中的数据进行加解密操作具体是指对加解密请求中的密文数据进行解密操作得到明文。
9.一种基于TEE扩展的计算机通用安全加密系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的计算机通用安全加密方法的步骤,或者该计算机设备的存储器上存储有被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的计算机通用安全加密方法的计算机程序。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~8中任意一项所述基于TEE扩展的计算机通用安全加密方法的计算机程序。
CN202010251269.2A 2020-04-01 2020-04-01 基于tee扩展的计算机通用安全加密转换层方法及系统 Active CN111431718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010251269.2A CN111431718B (zh) 2020-04-01 2020-04-01 基于tee扩展的计算机通用安全加密转换层方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010251269.2A CN111431718B (zh) 2020-04-01 2020-04-01 基于tee扩展的计算机通用安全加密转换层方法及系统

Publications (2)

Publication Number Publication Date
CN111431718A CN111431718A (zh) 2020-07-17
CN111431718B true CN111431718B (zh) 2022-12-27

Family

ID=71557505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010251269.2A Active CN111431718B (zh) 2020-04-01 2020-04-01 基于tee扩展的计算机通用安全加密转换层方法及系统

Country Status (1)

Country Link
CN (1) CN111431718B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901105B (zh) * 2020-07-20 2022-11-01 上海龙旗科技股份有限公司 一种基于UEFI架构EDK2支持Openssl算法的方法与设备
CN111859395B (zh) * 2020-07-21 2024-03-26 中国人民解放军国防科技大学 具备tee扩展的计算平台上的通信优化方法及系统
CN112134777B (zh) * 2020-09-09 2022-02-01 中国科学院信息工程研究所 一种可信IPSec模组与VPN隧道构建方法
CN112583894A (zh) * 2020-11-24 2021-03-30 福建联迪商用设备有限公司 一种Android终端安全连接的方法及终端
CN113542303B (zh) * 2021-08-03 2023-05-09 上海瓶钵信息科技有限公司 秘钥在非可信环境的软件导入系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104557A (zh) * 2014-03-20 2016-11-09 甲骨文国际公司 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法
CN109150811A (zh) * 2017-06-27 2019-01-04 深圳市中兴微电子技术有限公司 一种实现可信会话的方法及装置、计算设备
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统
CN109960903A (zh) * 2017-12-26 2019-07-02 中移(杭州)信息技术有限公司 一种应用加固的方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170337390A1 (en) * 2016-05-18 2017-11-23 Qualcomm Incorporated Data protection at factory reset
US10922441B2 (en) * 2018-05-04 2021-02-16 Huawei Technologies Co., Ltd. Device and method for data security with a trusted execution environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106104557A (zh) * 2014-03-20 2016-11-09 甲骨文国际公司 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法
CN109150811A (zh) * 2017-06-27 2019-01-04 深圳市中兴微电子技术有限公司 一种实现可信会话的方法及装置、计算设备
CN109960903A (zh) * 2017-12-26 2019-07-02 中移(杭州)信息技术有限公司 一种应用加固的方法、装置、电子设备及存储介质
CN109522736A (zh) * 2018-12-13 2019-03-26 中国科学院信息工程研究所 一种在操作系统中进行密码运算的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
智能终端可信执行环境安全性分析;焦四辈等;《互联网天地》;20160815(第08期);全文 *

Also Published As

Publication number Publication date
CN111431718A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN111431718B (zh) 基于tee扩展的计算机通用安全加密转换层方法及系统
EP3387813B1 (en) Mobile device having trusted execution environment
EP3574622B1 (en) Addressing a trusted execution environment
CA3048894C (en) Addressing a trusted execution environment using encryption key
CN107506659B (zh) 一种基于sgx的通用数据库的数据保护系统及方法
KR100737628B1 (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
AU2017396531B2 (en) Addressing a trusted execution environment using signing key
US7802111B1 (en) System and method for limiting exposure of cryptographic keys protected by a trusted platform module
CN102271124B (zh) 数据处理设备和数据处理方法
US9674153B2 (en) Secure data processing
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
CN1509546A (zh) 一种用于安全发送授权数据的平台和方法
CN111310213A (zh) 一种业务数据保护方法、装置、设备及可读存储介质
CN112035860A (zh) 文件加密方法、终端、装置、设备及介质
WO2018140171A1 (en) Addressing a trusted execution environment using clean room provisioning
US11748521B2 (en) Privacy-enhanced computation via sequestered encryption
CN113591098B (zh) 一种基于sgx的远程安全异构计算方法和系统
US20230058046A1 (en) Apparatus and Method for Protecting Shared Objects
EP2827276B1 (en) Secure data processing
CN118101201A (zh) 一种基于DICE和pKVM的隐私数据保护系统和方法
CN113225336A (zh) 信息加密传输方法、加解密装置、可读介质以及电子设备
Cilardo et al. Verification of FPGA-augmented trusted computing mechanisms based on Applied Pi Calculus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant