CN106104557B - 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法 - Google Patents

用于从绑定到设备上的应用的主密钥获取秘密的系统与方法 Download PDF

Info

Publication number
CN106104557B
CN106104557B CN201480077267.9A CN201480077267A CN106104557B CN 106104557 B CN106104557 B CN 106104557B CN 201480077267 A CN201480077267 A CN 201480077267A CN 106104557 B CN106104557 B CN 106104557B
Authority
CN
China
Prior art keywords
trust
trusted application
hash algorithm
performing environment
key
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
CN201480077267.9A
Other languages
English (en)
Other versions
CN106104557A (zh
Inventor
N·蓬森尼
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN106104557A publication Critical patent/CN106104557A/zh
Application granted granted Critical
Publication of CN106104557B publication Critical patent/CN106104557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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]
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

系统和方法能够支持设备管理。受信任应用能够部署在设备上的受信任执行环境中,其中受信任执行环境包括受信任操作系统(OS)并且受信任应用与标识符关联。然后,系统能够基于标识符和由受信任OS维护的主密钥来获取绑定到所述受信任应用的一个或更多个秘密。此外,秘密获取能够将用于受信任应用的二进制代码/数据考虑在内。因此,系统能够防止受信任执行环境中的另一个受信任应用使用相同标识符取回所述一个或更多个秘密。

Description

用于从绑定到设备上的应用的主密钥获取秘密的系统与方法
版权声明
本专利文档的公开的部分包含受到版权保护的素材。版权所有人不反对任何人对本专利文档或者本专利公开按照其在专利商标局的专利文件或记录中所表现的那样进行复制,但是在其它情况下无论如何都保留所有的版权。
技术领域
本发明一般而言涉及计算机系统,并且具体地涉及设备管理和安全性。
背景技术
在后个人计算机(PC)时代,企业经常允许员工携带各种移动设备(诸如智能电话、平板电脑和膝上型计算机)到他们的工作场所。员工能够使用这些个人拥有的设备来存取特许的公司信息和应用。信息技术产业一直在演进,以使用安全芯片技术(例如,基于GlobalPlatform)来促进软件应用的安全且可互操作的部署和管理。这是发明的实施例旨在应对的一般领域。
发明内容
本文描述的是能够支持设备管理的系统和方法。受信任应用能够部署在设备上的受信任执行环境(TEE)中,其中,受信任执行环境包括受信任操作系统(OS)和与标识符关联的受信任应用。于是,系统能够基于标识符和由受信任OS维护的主密钥来获取绑定到所述受信任应用的一个或更多个秘密。此外,秘密获取能够将用于受信任应用的二进制代码/数据考虑在内。因此,系统能够防止受信任执行环境中的另一个受信任应用使用相同的标识符取回所述一个或更多个秘密。
根据本发明的实施例,提供了一种用于支持设备管理的系统,包括:受信任应用部署单元,被配置成在设备上的受信任执行环境中部署受信任应用,受信任应用与标识符关联;和受信任操作系统(OS),被配置成基于标识符获取绑定到所述受信任应用的一个或更多个秘密,以及防止受信任执行环境中的另一个受信任应用使用相同的标识符取回所述一个或更多个秘密。
根据本发明的实施例,受信任OS可以与多个受信任应用关联,其中每一个受信任应用可以与唯一标识符关联。
根据本发明的实施例,所述一个或更多个秘密可以是绑定到设备的一个或更多个密钥。
根据本发明的实施例,系统还可以包括密钥获取单元,其中受信任OS可以操作为使用密钥获取单元获取所述一个或更多个秘密。
根据本发明的实施例,密钥获取单元可以基于与受信任应用关联的二进制代码/数据而操作。
根据本发明的实施例,受信任OS可以操作为使用用于二进制代码/数据的摘要作为密钥获取单元的参数。
根据本发明的实施例,密钥获取单元可以基于由受信任OS维护的主密钥而操作。
根据本发明的实施例,所述受信任应用可以被储存在由受信任执行环境管理的安全文件系统中。
根据本发明的实施例,可以在设备中提供片上系统,其中片上系统可以支持受信任执行环境,并且提供保证受信任OS是能够获取片上系统上的秘密的唯一部件的信任根。
根据本发明的实施例,提供了一种受信任执行环境,包括受信任应用和受信任操作系统(OS)。受信任应用可以与标识符关联。受信任OS可以操作为基于标识符获取绑定到所述受信任应用的一个或更多个秘密以及防止受信任执行环境中的另一个受信任应用使用相同的标识符取回所述一个或更多个秘密。
根据本发明的实施例,受信任OS可以与多个受信任应用关联,其中,每一个受信任应用可以与唯一标识符关联。
根据本发明的实施例,所述一个或更多个秘密可以是绑定到设备的一个或更多个密码密钥。
根据本发明的实施例,受信任OS可以操作为使用密钥获取函数获取所述一个或更多个秘密。
根据本发明的实施例,密钥获取函数可以基于与受信任应用关联的二进制代码/数据。
根据本发明的实施例,受信任OS可以操作为使用用于二进制代码/数据的摘要作为密钥获取函数的参数。
根据本发明的实施例,密钥获取函数可以基于由受信任OS维护的主密钥。
根据本发明的实施例,所述受信任应用可以被储存在由受信任执行环境管理的安全文件系统中。
根据本发明的实施例,提供了一种支持上述受信任执行环境的片上系统。
根据本发明的实施例,片上系统可以提供信任根,该信任根保证受信任OS是能够获取片上系统上的秘密的唯一部件。
附图说明
图1示出设备上的示例性片上系统(SoC)架构的图示。
图2示出在片上系统(SoC)架构中支持受信任执行环境(TEE)的图示。
图3示出根据本发明的实施例在受信任执行环境(TEE)中支持秘密获取的图示。
图4示出根据本发明的实施例在受信任执行环境(TEE)中获取绑定到受信任应用(TA)的秘密的图示。
图5图示出根据本发明的实施例在受信任执行环境(TEE)中获取绑定到受信任应用(TA)的秘密的示例性流程图。
图6示出根据本发明的实施例在受信任执行环境(TEE)中支持受信任应用(TA)更新机制的图示。
图7示出根据本发明的实施例在受信任执行环境(TEE)中提供安全TA更新的图示。
图8示出根据本发明的实施例在受信任执行环境(TEE)中更新受信任应用的图示。
图9示出根据本发明的实施例在受信任执行环境(TEE)中进一步更新受信任应用的图示。
图10图示出根据本发明的实施例在受信任执行环境(TEE)中支持TA更新的示例性流程图。
图11图示出根据本发明的实施例的用于支持设备管理的示例性系统的简化框图。
具体实施方式
本发明以示例的方式而不是以限制的方式在附图的图中被图示出,其中类似的引用指示相似的元件。应当注意的是,本公开中对“一”或者“一个”或者“一些”实施例的引用不一定是针对相同实施例,并且这样的引用意指至少一个。
本文所描述的是能够支持设备管理的系统和方法。
示例性设备架构
根据实施例,本文所述的系统和方法能够被实现为设备或者与设备一起使用,该设备诸如是移动设备(例如,智能电话)或者其他设备。
根据各种实施例,设备可以基于片上系统(SoC)架构。本文提供的对本发明的实施例的描述通常使用ARM SoC架构作为SoC架构的一个示例。对本领域技术人员显然的是,根据各种实施例,能够使用其他类型的SoC架构,而没有限制。
根据实施例,包括硬件和软件部件两者的SoC架构能够提供各种类型的功能硬件的片上集成,以便执行不同任务,诸如,电源管理、计算、音频/视频、图形、全球定位系统(GPS)和无线电。
SoC架构中的硬件部件可以包括各种模拟、数字和储存部件。例如,根据实施例,模拟部件可以包括模拟到数字转换器(ADC)与数控放大器(DCA)部件、锁相环(PLL)部件、发射(Tx)/接收(Rx)部件和射频(RF)部件。数字部件可以包括各种处理器、接口和加速器。储存部件可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和非易失储存部件,诸如闪存和只读存储器(ROM)。此外,SoC可以包含可编程硬件,诸如现场可编程门阵列(FPGA)、混合信号块和传感器。
根据实施例,SoC架构可以包括片上和片外软件部件两者。例如,SoC架构中的软件部件可以包括实时操作系统(RTOS)、设备驱动和软件应用。
此外,根据实施例,SoC架构能够利用各种可移植/可重用部件和/或电路设计、嵌入式CPU、嵌入式存储器和真实世界接口,诸如,通用串行总线(USB)、外围部件互连(PCI)和以太网。
图1示出了根据实施例的设备上的示例性片上系统(SoC)架构的图示。如图1所示,用于设备100的SoC 101可以包括高性能片上总线100,其互连一个或更多个处理器102、片上随机存取存储器(RAM)103、直接存储器存取(DMA)控制器104和一个或更多个外部存储器接口105。
根据实施例,SoC 101中的处理器102可以包括单核或多核中央处理单元(CPU)、高速缓存部件、图形处理单元(GPU)、视频编解码器和液晶显示器(LCD)视频接口。
而且,根据实施例,SoC 101可以包括将高性能片上总线110连接到外围总线120的桥接器106,其中外围总线120能够以较低带宽运行,使用较低功率、锁存的地址和控制以及简单的接口。例如,如图1所示,外围总线120能够提供对通用异步收发器(UART)111、定时器112、键盘接口113和编程输入/输出(PIO)接口114的访问。
根据实施例,用于设备100的SoC 101能够使用不同技术,诸如蓝牙、Wi-Fi、蜂窝(3G/4G/LTE/LTE-A)调制解调器和/或GPS,来建立移动连接性。
图1所示的示例性SoC架构出于图示的目的而提供。根据各种实施例,可以使用其他类型的SoC结构。
受信任执行环境(TEE)
图2示出了在片上系统(SoC)架构中支持受信任执行环境(TEE)的图示。如图2所示,SoC 200架构使得设备能够在分别的执行环境,例如受信任执行环境(TEE)201和富执行环境(REE)202,中执行代码和操纵数据。
REE 202可以包括基于富OS 221(或者诸如Android或iOS的主OS)的正常运行时环境,而与REE 202隔离的安全区域TEE 201可以包括基于安全OS(例如,受信任OS 211)的安全运行时环境。
如图2所示,TEE 201和REE 202两者都能够在硬件平台210的顶上运行。例如,ARMSoC能够基于TrustZone技术及其相关的监督码来提供硬件机构。此外,硬件机构210能够实施TEE 201(即,“安全世界”)中的安全运行时环境与REE 202(即,“正常世界”)中的正常运行时环境之间的隔离。而且,硬件机构210使能这两个世界之间的通信。
可替代地,TEE 201和REE 202两者都能够在超级管理程序(hypervisor)的顶上运行,而不是直接在硬件机构210的顶上运行。例如,超级管理程序能够托管两个虚拟机(VM),一个VM专用于托管REE 202并且另一个VM专用于托管TEE 201。这里,为了支持隔离的安全执行,托管TEE 201的VM能够比托管REE 202的VM被分配更高的特权。
此外,SoC 200能够提供绑定到安全根机构(例如,基于启动ROM)的信任根。SoC200上的信任根保证TEE 201中的代码是真实的并且只有授权的代码能够在TEE 201中执行。
如图2所示,TEE 201环境允许一个或更多个受信任应用(TA)213至214例如经由TEE内部应用编程接口(API)212在受信任OS 211的顶上运行。受信任OS 211能够利用SoC200上存在的安全性特征并且能够以安全方式在TEE 201中执行TA 213至214。
在被安装到TEE 201内之前,TA 213至214可能需要由授权方(诸如,安装授权方)签名。依赖于商业类型和商业协定,安装授权方可以是托管SoC 200的设备的拥有者、OEM或者第三方。
一旦TA 213至214被安装在TEE 201内,TA 213-214就能够储存在由TEE 201管理的安全文件系统(SFS)中。此外,每一次TA 213至214被需要时,TA 213至214能够从SFS被访问。因此,TEE 201能够提供用于TA 213至214的安全储存,因为SFS保证储存在其中的数据的机密性和完整性。
还如图2所示,TEE 201可以在REE 202中暴露一组接口,诸如TEE客户端API 222和TEE功能API 233,以便向REE 202中的各种客户端应用224至225提供安全性服务。此外,TEE201允许REE 202中的客户端应用224至225和受信任应用213至214使用共享存储器以用于快速和高效地传送大量数据。
获取绑定到受信任应用(TA)的秘密
图3示出了根据本发明的实施例在受信任执行环境(TEE)中支持秘密获取的图示。如图3所示,可以由不同服务提供商303至304开发的受信任应用(TA)311至312能够部署在由设备上的SoC 300提供的TEE 301中。
此外,TEE 301环境可以包括受信任OS 305,其能够基于绑定到SoC 300的主密钥310获取秘密(例如,绑定到设备的各种密码密钥)。由SoC 300提供的信任根能够保证受信任OS 305是SoC 300上能够获取秘密的唯一部件。
根据本发明的实施例,受信任OS 305允许TA 311至312可以使用秘密获取功能性使得从主密钥310获取的秘密也能够绑定到TA 311到312。
如图3所示,在TEE 301内,在受信任OS 310顶上运行的每一个TA 311至312能够与唯一标识符321至322关联。而且,受信任OS 305能够使用密钥获取函数(KDF)来获取绑定到不同TA 311至312的秘密。
例如,下面的示例性KDF能够将主密钥310和TA标识符321至322作为内部参数。
KDF(X)=SHA_256(主密钥|受信任应用标识符|X)
于是,KDF 306能够生成绑定到设备和不同个体TA 311至312的秘密。
此外,开发TA 311至312的服务提供商303至304可以依靠安装授权方302以唯一标识符321至322影响每一个个体TA 311至312并且签署每一个个体TA 311至312。
在安全性产业中,服务提供商303至304可能不情愿让他们的(包含关键业务秘密的)应用在处于他们的控制之外的环境中执行,因为服务提供商303至304可能需要信任安装授权方302以用于确保没有其他TA会被相同的标识符影响和会被签署。
例如,恶意的TA(例如,TA 312)会错误地被标识符311影响是有可能的。于是,如果TEE 301使用上面的示例性KDF用于获取秘密,那么恶意的TA 312可以能够存取用于TA 311的服务提供商300的秘密。
图4示出了根据本发明的实施例在受信任执行环境(TEE)中获取绑定到受信任应用(TA)的秘密的图示。如图4所示,基于由受信任OS 401维护的主密钥411和与TA 402关联的唯一标识符412两者,TEE 400中的受信任OS 401能够使用密钥获取函数(KDF)403获取绑定到受信任应用(TA)402的秘密410。
此外,受信任OS 401能够将TA的二进制(代码和/或数据)考虑在内。例如,下面的示例性KDF能够将用于TA 402的二进制413的简要(resume)(例如,哈希值)作为内部参数。
KDF(X)=SHA_256(主密钥|受信任的应用标识符|SHA_256(TA二进制)|X)
如上所示,KDF 403能够获取仅绑定到TA 402的秘密。换言之,KDF 403不可以获取绑定到不同TA的相同秘密,即便不同TA可以利用相同标识符412。
于是,系统能够确保服务提供商能够让他们的秘密处于控制下并且保护他们的业务。
图5图示出根据本发明的实施例用于在受信任执行环境(TEE)中获取绑定到受信任应用(TA)的一个或更多个秘密的示例性流程图。如图4所示,在步骤501,系统能够在设备上的受信任执行环境中部署受信任应用,其中受信任执行环境包括受信任操作系统(OS)和与标识符关联的受信任应用。随后,在步骤502,系统能够基于标识符获取绑定到的所述受信任应用的一个或更多个秘密。此外,在步骤503,例如,通过将不同受信任应用的二进制(代码和/或数据)考虑在内,系统能够防止受信任执行环境中的另一个受信任应用使用该相同的标识符来取回所述一个或更多个秘密。
受信任应用(TA)更新机制
根据本发明的实施例,系统能够保证秘密获取中的一致性,用于支持受信任应用(TA)更新。
图6示出了根据本发明的实施例在受信任执行环境(TEE)中支持受信任应用(TA)更新机制的图示。如图6所示,受信任应用(TA)602能够部署在受信任执行环境(TEE)610中。
TEE 610可以包括受信任OS 601,该受信任OS能够基于在受信任OS 601中维护的主密钥611和与TA 602关联的唯一标识符612两者,使用密钥获取函数(KDF)603来获取绑定到TA 602的秘密。
此外,受信任OS 610允许KDF 603在秘密获取中将TA 602的二进制(代码/数据)613考虑在内。例如,KDF 603能够将用于TA 602的二进制(代码/数据)613的摘要(digest)614作为参数。这里,摘要614可以是根据密码哈希函数产生的固定大小比特串,该密码哈希函数将TA 602的二进制(代码/数据)613作为输入。
此外,受信任OS 601能够支持和管理用于TA 602的更新605。如图6所示,TA 602可以由更新授权方606签名,以便在TEE 610内被更新。如果KDF 603绑定到TA 602的二进制613,那么当TA 602被更新并且它的二进制613被改变时,根据KDF 603产生的秘密可以改变。
根据本发明的实施例,系统能够保证KDF 603跨多个TA更新一致。
如图6所示,当(待更新的)TA 602的服务提供商604信任更新授权方606时,系统能够在SFS中储存指示TA 602是否已经被更新的状态信息620。
例如,当TA 602从TA v1.0更新到TA v1.1时,受信任OS 601能够在SFS内储存用于初始安装的TA v1.0的二进制613的摘要614。然后,当在更新后由TA v1.1调用KDF 603时,KDF能够稍后重用这个储存的摘要614值。
图7示出了根据本发明的实施例在受信任执行环境(TEE)中提供安全TA更新的图示。如图7所示,受信任应用(TA)702能够部署在受信任执行环境(TEE)710中。
TEE 710可以包括受信任OS 701,该受信任OS能够基于在受信任OS 701中维护的主密钥711和与TA 702相关的唯一标识符712两者,使用密钥获取函数(KDF)703来获取绑定到TA 702的秘密。
此外,受信任OS 710允许KDF 703在秘密获取中将TA 702的二进制(代码/数据)713考虑在内。例如,KDF 703能够将TA 702的二进制(代码/数据)713的摘要714作为参数。
例如,当TA 702被初始安装时(例如,使用TA v1.0),TA 702可以在它的数据713中包含公钥A 715(例如,pubKey1)。
如图7所示,当TA 702的服务提供商704不信任更新授权方706时,系统能够支持和管理TA 702的更新(例如,使用更新I705)。
根据本发明的实施例,服务提供商704能够提供为TA 702(例如,TA v1.1)提供更新I 705。更新I 705可以(例如,在它的数据中)包含用于TA v1.1的二进制(代码和数据)的签名721,签名721使用私钥A(例如,与pubKey1有关的privKey1)签署。而且,服务提供商704能够确保更新I 705(例如,在它的数据中)包含不同公钥B 722(例如,pubKey2)。
此外,受信任OS 701还能够在SFS中储存指示给定TA 702是否已经被更新的状态信息720。
图8示出了根据本发明的实施例在受信任执行环境(TEE)中更新受信任应用的图示。如图8所示,受信任应用(TA)802能够在受信任执行环境(TEE)810中被更新。
例如,更新I 805包括使用私钥A(即,privKey1)签署的签名812,以及公钥B 822(即,pubKey2)。
当TA 802的服务提供商804不信任更新授权方806时,仅在更新I 805中的签名821对照先前安装的公钥A 815(即,pubKey1)被成功验证后,受信任OS 801才允许TA 802被更新,例如,从TA v1.0更新到TA v1.1。
然后,TEE 810中的受信任OS 801能够基于在受信任OS 801中维护的主密钥811和与TA 802关联的唯一标识符812,使用密钥获取函数(KDF)803来获取绑定到TA 802的秘密。
此外,受信任OS 801先前已经在SFS中储存了用于初始安装的TA 802(即TA v1.0)的二进制的摘要814。然后,基于储存的用于TA v1.0的摘要814而不是用于TA的更新的二进制(代码/数据)813的摘要(即与TA v1.1关联的摘要),受信任OS 801允许KDF 803获取绑定到TA 802的秘密。
对应地,受信任OS 801还能够在SFS中储存指示给定TA 802是否已经被更新的状态信息820。
因此,作为公钥/私钥对(privKey1和pubKey1)的拥有者的服务提供商804能够保证仅TA 802能够在调用KDF 803时可以利用秘密,即使在用不同版本更新TA 802之后。
图9示出了根据本发明的实施例在受信任执行环境(TEE)中进一步更新受信任应用的图示。如图9所示,受信任应用(TA)902能够在受信任执行环境(TEE)910中被更新。
例如,服务提供商904能够确保更新II 905(例如,在它的数据中)包括使用私钥B(例如,privKey2)签署的签名921,以及公钥C 922(例如,pubKey3)。
当TA 902的服务提供商904不信任更新授权方906时,仅在更新II 905中的签名921对照先前安装的公钥B 915(即,pubKey2)被成功验证后,受信任OS 901允许TA 902从TAv1.1更新到TA v1.2。
TEE 910可以包括受信任OS 901,该受信任OS能够基于在受信任OS 901中维护的主密钥911和与TA 902关联的唯一标识符912,使用密钥获取函数(KDF)903来获取绑定到TA902的秘密。
此外,TEE910中的受信任OS 901先前已经在SFS中储存了用于初始安装的TA 902(即,TA v1.0)的二进制的摘要914。然后,基于储存的用于TA v1.0的摘要914而不是用于的TA的更新的二进制(代码/数据)913的摘要(即,与TA v1.2关联的摘要),受信任OS 901允许KDF 903获取绑定到TA 902的秘密。
对应地,受信任OS 801还能够在SFS中储存指示给定TA 802是否已经被更新的状态信息820。
因此,作为公钥/私钥对(privKey2和pubKey2)的拥有者的服务提供商904能够保证仅TA 902能够在调用KDF 903时可以利用秘密,即使在用多个不同版本更新TA 802之后。
根据本发明的实施例,系统能够为TA 902的所有版本使用相同的密钥对,而不是针对TA 902的每一个不同版本具有新的密钥对。
图10图示出了根据本发明的实施例的用于在受信任执行环境(TEE)中支持TA更新的示例性流程图。如图10所示,在步骤1001,受信任执行环境中的受信任系统(OS)能够储存用于一个或更多个二进制文件的摘要,所述二进制文件与部署在受信任执行环境中的受信任应用关联。随后,在步骤1002,系统能够基于从服务提供商接收的一个或更多个更新来更新受信任应用。此外,在步骤1003,受信任OS能够使用由受信任执行环境中的受信任OS储存的摘要获取绑定到更新的受信任应用的至少一个秘密。
图11图示出了用于支持设备管理的示例性系统1100的简化框图,其中可以在该系统1100中实现本发明的各种实施例。
系统1100的块可以由硬件、软件或者硬件与软件的组合实现以实践本发明的原理。本领域技术人员应当理解的是,图11所述的块可以组合或分离成子块以实现上述的本发明的原理。因此,本文的描述可以支持对本文所述的功能块的任何可能的组合或者分离或者进一步的限定。
如图11所示,系统1100可以包括受信任应用部署单元1101和受信任操作系统(OS)1103。受信任应用部署单元1101可以在设备上的受信任执行环境中部署受信任应用(诸如图3所示的受信任应用311),其中受信任应用与标识符关联。受信任执行环境可以是受信任执行环境201、301、610、710、810和910,如先前所述的。受信任操作系统(OS)1103可以基于标识符获取绑定到所述受信任应用的一个或更多个秘密;并且防止受信任执行环境中的另一个受信任应用(诸如图3示出的受信任应用312)使用相同标识符取回所述一个或更多个秘密。
根据本发明的实施例,受信任OS 1103可以与多个受信任应用关联,其中每一个受信任应用可以与唯一标识符关联。
根据本发明的实施例,所述一个或更多个秘密可以是绑定到设备的一个或更多个密码密钥。
根据本发明的实施例,系统1100可以进一步包括密钥获取单元1105,其中受信任OS 1103可以操作为使用密钥获取单元1105以获取所述一个或更多个秘密。密钥获取单元1105可以是密钥获取函数306、403、603、703、803和903的示例性实现方式。
根据本发明的实施例,密钥获取单元1105可以基于与受信任应用关联的二进制代码/数据而操作。根据本发明的实施例,受信任OS 1103可以操作为使用用于二进制代码/数据的摘要作为密钥获取单元的参数。例如,如先前参考图6所述的,受信任OS 610允许KDF603在秘密获取中将TA 602的二进制(代码/数据)613考虑在内。例如,KDF 603能够将用于TA 602的二进制(代码/数据)613的摘要614作为参数。
根据本发明的实施例,密钥获取单元1105可以基于由受信任OS 1103维护的主密钥而操作。例如,如先前参考图3所述的,主密钥310和TA标识符321至322可以被用作内部参数。
根据本发明的实施例,所述受信任应用可以储存在由受信任执行环境维护的安全文件系统中。
根据本发明的实施例,片上系统可以提供在设备中,其中片上系统可以支持受信任执行环境并且提供保证受信任OS是能够获取片上系统上的秘密的唯一部件的信任根。
本领域技术人员能够理解的是,系统1100可以是用于在先前的示例性实施例中描述的设备上的受信任执行环境中支持设备管理的示例性实现方式。本领域技术人员还能够理解的是,系统1100可以按照需要修改以执行根据本发明的原理的任何操作或者操作的组合。
能够在硬件、软件或者它们的组合中,使用硬件、软件或者它们的组合或者利用硬件、软件或者它们的组合的辅助而执行本发明的许多特征。因此,可以使用处理系统(例如,包括一个或更多个处理器)实现本发明的特征。
能够在计算机程序产品中,使用计算机程序产品或者利用计算机程序产品的辅助来执行本发明的许多特征,该计算机程序产品是其上/其中储存有指令的(一个或者多个)储存介质或者计算机可读介质,所述指令用来对处理系统编程以执行任意本文所示特征。储存介质可以包括但不限制于任意类型的盘(包括软盘、光盘、DVD、CD-ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储IC))或者适合储存指令和/或数据的任意类型的介质或设备。
储存在(一个或多个)机器可读介质的任意一个上,本发明的特征能够被合并到软件和/或固件中,以用于控制处理系统的硬件以及用于使得处理系统能够利用本发明的结果与其他机制互动。这样的软件或者固件可以包括但不限于应用代码、设备驱动、操作系统和执行环境/容器。
本发明的特征还可以例如使用诸如专用集成电路(ASIC)之类的硬件部件而实现在硬件中。实现硬件状态机以便执行本文所述的功能对于本领域技术人员将是显然的。
此外,使用一个或更多个常见的通用或专用数字计算机、计算设备、机器或者微处理器(包括根据本公开的教导编程的一个或更多个处理器、存储器和/或计算机可读储存介质)可以方便地实现本发明。对于软件领域技术人员来说将显然的是,熟练的程序员基于本公开的教导能够容易地准备恰当的软件代码。
虽然已经在上面描述了本发明的各种实施例,应当理解的是,他们是以示例的方式呈现的,而不是限制。对于相关领域技术人员来说显然的是,在不偏离本发明精神和范围的情况下,能够在此做出形式和细节上的各种改变。
以上已经借助功能建立块通过图示其指定功能的执行以及关系描述了本发明。为了描述的方便,这些功能建立块的边界在本文中经常被任意地限定。只要其指定的功能和关系被恰当地执行,可以定义替代的边界。因此任意这样的替代的边界在发明的范围和精神内。
已经出于图示和说明的目的提供了对本发明的以上描述。其不旨在是穷尽的或者将发明限制到公开的精确形式。本发明的广度和范围不应该由任意上述示例性实施例所限制。许多修改和变型对于本领域从业者将是显然的。修改和变型包括公开特征的任意相关组合。选择和描述这些实施例是为了最好地解释发明的原理和实际应用,从而使得本领域其他技术人员能够理解本发明具有各种实施例并且具有适合于构想到的具体使用的各种修改。旨在由随附的权利要求书和其等同物来限定本发明的范围。

Claims (19)

1.一种用于支持设备的管理的方法,包括:
提供在所述设备上运行的受信任执行环境,其中在所述设备上运行的受信任执行环境与主密钥关联;
在所述受信任执行环境中部署服务提供商的受信任应用,其中,所述受信任应用与标识符关联,并且其中所述受信任应用包括二进制代码/数据;
在所述受信任执行环境中提供密钥获取函数;
利用所述密钥获取函数获取用于保护所述服务提供商的业务信息的绑定到所述受信任应用的秘密,其中所述密钥获取函数利用第一密码函数获取所述秘密,其中第一密码函数利用将以下各项作为输入的第一哈希算法:
与所述设备关联的所述主密钥,其中所述主密钥由所述受信任执行环境维护,以及
从所述受信任应用的所述二进制代码/数据获取的摘要,其中所述摘要包括从第二密码函数获取的比特串,其中第二密码函数利用将所述受信任应用的所述二进制代码/数据作为输入的第二哈希算法;
由此,如果部署在所述受信任执行环境中的另一受信任应用具有与所述受信任应用的所述标识符相同的另一标识符,则所述另一受信任应用被阻止取得绑定到所述受信任应用的所述秘密。
2.如权利要求1所述的方法,其中
除与所述设备关联的所述主密钥以及从所述受信任应用的所述二进制代码/数据获取的所述摘要之外,所述第一哈希算法还将与所述受信任应用关联的所述标识符作为输入。
3.如权利要求1或2所述的方法,其中,所述第一哈希算法和所述第二哈希算法都包括安全哈希算法SHA。
4.如权利要求1或2所述的方法,其中所述比特串是固定大小比特串。
5.如权利要求1或2所述的方法,其中,
所述第一哈希算法包括安全哈希算法SHA;并且
所述密钥获取函数利用所述SHA获取所述秘密,所述SHA将与所述设备关联的所述主密钥、从所述受信任应用的所述二进制代码/数据获取的所述摘要、以及与所述受信任应用关联的所述标识符作为输入。
6.如权利要求1或2所述的方法,其中
所述第一哈希算法和所述第二哈希算法相同。
7.如权利要求1或2所述的方法,还包括:
在所述设备中提供片上系统,其中,所述片上系统支持所述受信任执行环境。
8.如权利要求7所述的方法,还包括:
提供信任根,所述信任根保证所述受信任执行环境中的受信任操作系统OS是能够获取所述片上系统上的秘密的唯一部件。
9.一种用于支持设备的管理的系统,包括:
包括一个或更多个微处理器的所述设备;
部署在所述设备上的受信任执行环境,其中,所述受信任执行环境包括受信任操作系统OS并且与主密钥关联;
部署在所述受信任执行环境中的服务提供商的受信任应用,其中,所述受信任应用与标识符关联,并且其中所述受信任应用包括二进制代码/数据;
运行在所述受信任执行环境中的密钥获取函数;
其中,所述密钥获取函数被配置为获取用于保护所述服务提供商的业务信息的绑定到所述受信任应用的秘密,其中所述密钥获取函数利用第一密码函数获取所述秘密,其中第一密码函数利用将以下各项作为输入的第一哈希算法:
与所述设备关联的所述主密钥,其中所述主密钥由所述受信任执行环境维护,以及
从所述受信任应用的所述二进制代码/数据获取的摘要,其中所述摘要包括从第二密码函数获取的比特串,其中第二密码函数利用将所述受信任应用的所述二进制代码/数据作为输入的第二哈希算法;
由此,如果部署在所述受信任执行环境中的另一受信任应用具有与所述受信任应用的所述标识符相同的另一标识符,则所述另一受信任应用不能取得绑定到所述受信任应用的所述秘密。
10.如权利要求9所述的系统,其中所述第一哈希算法将以下各项作为输入:
所述标识符,
与所述设备关联的所述主密钥,以及
从所述受信任应用的所述二进制代码/数据获取的所述摘要。
11.如权利要求9或10所述的系统,其中:
所述第一哈希算法和所述第二哈希算法都包括安全哈希算法SHA。
12.如权利要求9或10所述的系统,其中:
所述比特串是固定大小比特串。
13.如权利要求9或10所述的系统,其中:
所述第一哈希算法包括安全哈希算法SHA;并且
所述密钥获取函数利用所述SHA获取所述秘密,所述SHA将与所述设备关联的所述主密钥、从所述受信任应用的所述二进制代码/数据获取的所述摘要、以及与所述受信任应用关联的所述标识符作为输入。
14.如权利要求9或10所述的系统,其中:
所述第一哈希算法和所述第二哈希算法相同。
15.如权利要求14所述的系统,其中:
所述第二哈希算法包括安全哈希算法SHA。
16.如权利要求9或10所述的系统,还包括:
片上系统,其中所述片上系统支持所述受信任执行环境。
17.如权利要求16所述的系统,还包括:
信任根,所述信任根保证所述受信任OS是能够获取所述片上系统上的秘密的唯一部件。
18.如权利要求9或10所述的系统,还包括:
在所述受信执行环境中的安全文件系统,其中,所述受信任OS被配置为将从所述受信任应用的所述二进制代码/数据获取的所述摘要储存在所述安全文件系统中。
19.一种非瞬态机器可读储存介质,具有储存在其上的指令,所述指令当被执行时使得处理器执行权利要求1至8中任一项所述的方法。
CN201480077267.9A 2014-03-20 2014-12-30 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法 Active CN106104557B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/220,988 2014-03-20
US14/220,988 US9520994B2 (en) 2014-03-20 2014-03-20 System and method for deriving secrets from a master key bound to an application on a device
PCT/US2014/072843 WO2015142403A1 (en) 2014-03-20 2014-12-30 System and method for deriving secrets from a master key bound to an application on a device

Publications (2)

Publication Number Publication Date
CN106104557A CN106104557A (zh) 2016-11-09
CN106104557B true CN106104557B (zh) 2019-06-14

Family

ID=52450563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480077267.9A Active CN106104557B (zh) 2014-03-20 2014-12-30 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法

Country Status (4)

Country Link
US (1) US9520994B2 (zh)
EP (1) EP3120287B1 (zh)
CN (1) CN106104557B (zh)
WO (1) WO2015142403A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9444627B2 (en) * 2014-12-24 2016-09-13 Intel Corporation System and method for providing global platform compliant trusted execution environment
US10083306B2 (en) * 2015-06-26 2018-09-25 Intel Corporation Establishing hardware roots of trust for internet-of-things devices
CN105592071A (zh) * 2015-11-16 2016-05-18 中国银联股份有限公司 一种在设备之间进行授权的方法和装置
US10402281B2 (en) * 2016-03-31 2019-09-03 Intel Corporation Dynamic capsule generation and recovery in computing environments
CN107995230B (zh) * 2016-10-26 2019-10-18 中国移动通信有限公司研究院 一种下载方法及终端
CN108429719B (zh) * 2017-02-14 2020-12-01 华为技术有限公司 密钥保护方法及装置
US10749690B2 (en) * 2017-03-10 2020-08-18 Samsung Electronics Co., Ltd. System and method for certificate authority for certifying accessors
CN108768655B (zh) * 2018-04-13 2022-01-18 北京握奇智能科技有限公司 动态口令生成方法和系统
US10740084B2 (en) * 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US11831786B1 (en) 2018-11-13 2023-11-28 Northrop Grumman Systems Corporation Chain of trust
US11232217B2 (en) 2018-12-06 2022-01-25 Oracle International Corporation Managing a security policy for a device
US20220129542A1 (en) * 2019-03-05 2022-04-28 Intel Corporation Deterministic trusted execution container through managed runtime language metadata
US11157626B1 (en) 2019-05-29 2021-10-26 Northrop Grumman Systems Corporation Bi-directional chain of trust network
CN111431718B (zh) * 2020-04-01 2022-12-27 中国人民解放军国防科技大学 基于tee扩展的计算机通用安全加密转换层方法及系统
CN112286562B (zh) * 2020-10-28 2021-09-10 飞腾信息技术有限公司 一种可信操作系统调试更新方法及系统
CN113645014B (zh) * 2021-10-13 2022-01-04 北京创米智汇物联科技有限公司 基于智能安防设备的数据处理方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369889A (zh) * 2007-08-13 2009-02-18 深圳兆日技术有限公司 一种对文档进行电子签名的系统和方法
CN101802833A (zh) * 2007-09-27 2010-08-11 奥多比公司 向在应用执行环境中运行的应用提供本地存储服务
CN102355351A (zh) * 2011-07-21 2012-02-15 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
CN103514414A (zh) * 2012-06-26 2014-01-15 上海盛轩网络科技有限公司 一种基于ARM TrustZone的加密方法及加密系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7545931B2 (en) 2002-04-12 2009-06-09 Microsoft Corporation Protection of application secrets
US20050144468A1 (en) 2003-01-13 2005-06-30 Northcutt J. D. Method and apparatus for content protection in a personal digital network environment
US8010810B1 (en) 2007-12-27 2011-08-30 Emc Corporation Techniques for protecting data using an electronic encryption endpoint device
US9215066B2 (en) 2008-06-25 2015-12-15 Oracle America, Inc. Method and system for making information in a data set of a copy-on-write file system inaccessible
EP2350910B1 (en) 2008-11-24 2018-07-25 Certicom Corp. System and method for hardware based security
US8266433B1 (en) 2009-04-30 2012-09-11 Netapp, Inc. Method and system for automatically migrating encryption keys between key managers in a network storage system
US8725122B2 (en) 2009-05-13 2014-05-13 First Data Corporation Systems and methods for providing trusted service management services
US9158924B2 (en) 2011-05-25 2015-10-13 Panasonic Intellectual Property Management Co., Ltd. Information processing apparatus and information processing method
MY158770A (en) 2011-11-04 2016-11-15 Sk Planet Co Ltd Method for interworking with trustzone between normal domain and secure domain, and management method of trusted application download, management server, device and system using it
US8925055B2 (en) 2011-12-07 2014-12-30 Telefonaktiebolaget Lm Ericsson (Publ) Device using secure processing zone to establish trust for digital rights management
US8572410B1 (en) 2012-07-18 2013-10-29 Freescale Semiconductor, Inc. Virtualized protected storage
US9152793B2 (en) 2012-09-28 2015-10-06 Intel Corporation Methods, systems and apparatus to self authorize platform code
US9258331B2 (en) 2013-12-27 2016-02-09 Trapezoid, Inc. System and method for hardware-based trust control management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369889A (zh) * 2007-08-13 2009-02-18 深圳兆日技术有限公司 一种对文档进行电子签名的系统和方法
CN101802833A (zh) * 2007-09-27 2010-08-11 奥多比公司 向在应用执行环境中运行的应用提供本地存储服务
CN102355351A (zh) * 2011-07-21 2012-02-15 华为技术有限公司 一种基于可信计算的密钥生成、备份和迁移方法及系统
CN103514414A (zh) * 2012-06-26 2014-01-15 上海盛轩网络科技有限公司 一种基于ARM TrustZone的加密方法及加密系统

Also Published As

Publication number Publication date
WO2015142403A1 (en) 2015-09-24
EP3120287B1 (en) 2021-09-08
EP3120287A1 (en) 2017-01-25
US20150270960A1 (en) 2015-09-24
CN106104557A (zh) 2016-11-09
US9520994B2 (en) 2016-12-13

Similar Documents

Publication Publication Date Title
CN106104557B (zh) 用于从绑定到设备上的应用的主密钥获取秘密的系统与方法
JP7086908B2 (ja) 対象のコンピューティング装置で実施される動作を認証する方法
US10474454B2 (en) System and method for updating a trusted application (TA) on a device
Shepherd et al. Secure and trusted execution: Past, present, and future-a critical review in the context of the internet of things and cyber-physical systems
JP6392879B2 (ja) モバイル通信装置およびその動作方法
CN105308612B (zh) 用于安全代码启动的动态加载测量环境
CN104982005B (zh) 实施虚拟化环境中的特权加密服务的计算装置及方法
US8694795B1 (en) Method and apparatus for secure application execution
KR101717263B1 (ko) 가상 머신들의 측정용 신뢰 루트
CN108351937A (zh) 计算设备
JP2019169952A (ja) モバイル通信装置およびその動作方法
CN107533608A (zh) 可信更新
US10536274B2 (en) Cryptographic protection for trusted operating systems
CN108781210A (zh) 具有可信执行环境的移动设备
CN110383240B (zh) 用于容器化的安全计算资源的方法和装置
CN105723375B (zh) 用于管理授权设备上操作的令牌的系统和方法
CN104008342A (zh) 一种通过bios和内核实现安全可信认证的方法
US9331988B2 (en) System and method for provisioning secrets to an application (TA) on a device
CN109587106A (zh) 密码分区的云中的跨域安全性
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
US9916453B2 (en) Derived keys for execution environments in a boot chain
Liebergeld et al. Android security, pitfalls and lessons learned
CN110390201A (zh) 计算机系统以及初始化计算机系统的方法
Cooijmans et al. Secure key storage and secure computation in Android
Anwar et al. Redesigning secure element access control for NFC enabled Android smartphones using mobile trusted computing

Legal Events

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