CN114556344A - 在加密协同处理器中执行针对实体特定的加密代码 - Google Patents
在加密协同处理器中执行针对实体特定的加密代码 Download PDFInfo
- Publication number
- CN114556344A CN114556344A CN202080071365.7A CN202080071365A CN114556344A CN 114556344 A CN114556344 A CN 114556344A CN 202080071365 A CN202080071365 A CN 202080071365A CN 114556344 A CN114556344 A CN 114556344A
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- encrypted code
- encryption
- code
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
Abstract
公开了用于在加密协同处理器中执行针对实体特定的加密代码的各种实施例。在一个实施例中,经由网络从服务接收加密后的代码,该加密后的代码实施加密算法。加密协同处理器对加密后的代码进行解密。加密协同处理器执行解密后的代码,以生成密码,该密码包括使用加密算法加密后的信息。经由网络将该密码发送给服务。
Description
相关申请
本申请要求于2019年10月30日提交的、申请号为16/668,973的题为《在加密协同处理器中执行针对实体特定的加密代码(EXECUTING ENTITY-SPECIFIC CRYPTOGRAPHICCODE IN A CRYPTOGRAPHIC COPROCESSOR)》的共同未决的美国专利申请的优先权及其权益,该美国专利申请要求于2019年10月11日提交的、申请号为62/914,275的题为《在加密协同处理器中执行针对实体特定的加密代码(EXECUTING ENTITY-SPECIFIC CRYPTOGRAPHICCODE IN A CRYPTOGRAPHIC COPROCESSOR)》的共同未决的美国临时专利申请的优先权及其权益,通过引用将这些专利申请全部并入本文。
本申请还要求于2019年10月30日提交的、申请号为16/669,002的题为《在受信执行环境中执行针对实体特定的加密代码(EXECUTING ENTITY-SPECIFIC CRYPTOGRAPHICCODE IN A TRUSTED EXECUTION ENVIRONMENT)》的共同未决的美国临时专利申请的优先权及其权益,该美国临时专利申请要求于2019年10月11日提交的、申请号为62/914,272的题为《在受信执行环境中执行针对实体特定的加密代码(EXECUTING ENTITY-SPECIFICCRYPTOGRAPHIC CODE IN A TRUSTED EXECUTION ENVIRONMENT)》的共同未决的美国临时专利申请的优先权及其权益,通过引用将这些专利申请全部并入本文。
背景技术
各种各样的加密算法是可用的。一些加密算法是对称的,这意味着相同的密钥既用于对明文进行加密又用于对密文进行解密。其他加密算法是非对称的,这意味着不同的相关联的密钥用于对明文进行加密(例如,公钥),以及对密文进行解密(例如,私钥)。随着计算能力的进步,一些曾经被认为是安全的加密算法现在被认为是不安全的。例如,密钥长度为56位的数据加密标准(Data Encryption Standard,DES)曾经被认为是安全的。然而,它现在很容易被蛮力攻击(brute-force attack)破解。此外,可能会在加密算法中发现后门和/或其他弱点,这使得无需完全蛮力破解所有的密钥组合就能使加密算法变得不安全。
处理高价值数据的金融机构、支付发行方和其他组织可能各自决定首选地使用哪种加密算法。此外,鉴于新公开的漏洞,这些组织各自首选的加密算法可能会随着时间的推移而改变。此外,不公开所使用的加密算法可能具有安全价值。
发明内容
公开了一种系统的各种实施方案,所述系统包括:计算设备,所述计算设备包括处理器、存储器和加密协同处理器;以及机器可读指令,所述机器可读指令被存储在所述存储器中,当由所述处理器执行时,所述机器可读指令使所述计算设备至少:经由网络从服务接收加密后的代码,所述加密后的代码实施加密算法;由所述加密协同处理器对所述加密后的代码进行解密;由所述加密协同处理器执行所述解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及经由所述网络向所述服务发送所述密码。在所述系统的一些实施方案中,所述加密协同处理器符合受信平台模块(TPM)标准的版本。在所述系统的一些实施方案中,所述加密协同处理器被配置为在对所述加密后的代码进行解密之前,验证所述计算设备的状态。在所述系统的一些实施方案中,所述服务由实体操作,并且所述加密算法是所述实体的首选加密算法。在所述系统的一些实施方案中,所述加密协同处理器被配置为在执行所述解密后的代码之前,验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。在所述系统的一些实施方案中,使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与生成所述加密后的代码的实体相关联。在所述系统的一些实施方案中,所述服务包括与实体相关联的第一服务和第二服务,所述加密后的代码从所述第一服务接收,所述密码被发送到所述第二服务。在所述系统的一些实施方案中,所述加密协同处理器在所述计算设备中的固件中实施,并且数据经由接口从所述计算设备的安全元件传输到所述加密协同处理器,以使所述加密协同处理器能够对所述加密后的代码进行解密。在所述系统的一些实施方案中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。在所述系统的一些实施方案中,所述加密协同处理器被配置为在将所述加密算法传输到所述计算设备的安全元件之前,充当可信根以对所述加密算法进行验证。
公开了一种方法的各种实施方案,所述方法包括:由加密协同处理器从客户端应用程序接收加密后的代码,所述加密后的代码实施加密算法;由所述加密协同处理器对所述加密后的代码进行解密;以及由所述加密协同处理器执行所述解密后的代码,以使用所述加密算法对加密后的数据进行解密;或者,由所述加密协同处理器执行所述解密后的代码,以使用所述加密算法生成密码。在所述方法的一些实施方案中,所述方法还包括在执行解密后的代码之前,由所述加密协同处理器验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。在所述方法的一些实施方案中,所述加密后的代码由所述客户端应用程序从由实体操作的服务接收,并且所述客户端应用程序与所述实体相关联。在所述方法的一些实施方案中,对所述加密后的代码进行解密还包括使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与所述实体相关联。在所述方法的一些实施方案中,所述加密后的数据和所述加密后的代码不包括所述加密算法的标识符。在所述方法的一些实施方案中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。在所述方法的一些实施方案中,所述加密协同处理器被配置为在将所述加密算法传输到所述计算设备的安全元件之前,充当可信根以对所述加密算法进行验证。
公开了一种计算机程序的各种实施方案,所述计算机程序包括指令,当由第一计算设备执行时,所述指令使所述第一计算设备至少:对加密算法进行加密以创建加密后的代码;将所述加密后的代码发送到第二计算设备;从所述第二计算设备接收密码,所述密码由所述加密算法从所述加密后的代码生成;以及,使用所述加密算法对所述密码进行解密。在所述计算机程序的一些实施方案中,所述加密后的代码与加密密钥的标识符一起被发送到所述第二计算设备,以对所述加密后的代码进行解密。在所述计算机程序的一些实施方案中,所述加密后的代码不包括所述加密算法的标识符。在所述计算机程序的一些实施方案中,使用由加密协同处理器的标准支持的预定义的多个加密算法中的一个对所述加密后的代码进行加密。
公开了一种系统的各种实施方案,所述系统包括:计算设备,所述计算设备包括处理器和存储器;以及机器可读指令,所述机器可读指令被存储在所述存储器中,当由所述处理器执行时,所述机器可读指令使所述计算设备至少:经由网络从服务接收加密后的代码,所述加密后的代码实施加密算法;向在所述计算设备的受信执行环境中执行的应用程序提供所述加密后的代码;以及从所述应用程序获得密码,所述密码包括使用所述加密算法加密后的信息。在所述系统的一些实施方案中,所述密码通过在所述计算设备的不受信执行环境中执行的另一应用程序来获得。在所述系统的一些实施方案中,所述机器可读指令还使所述计算设备至少通过其它应用程序经由所述网络向所述服务发送所述密码。在所述系统的一些实施方案中,所述加密后的代码经由所述计算设备的受信执行环境和所述计算设备的不受信执行环境之间的接口被提供给所述应用程序。在所述系统的一些实施方案中,所述受信执行环境包括加密协同处理器,并且所述机器可读指令还使所述计算设备在对所述加密后的代码进行解密之前,至少通过所述加密协同处理器来对所述加密后的代码的签名和所述计算设备的状态进行验证。在所述系统的一些实施方案中,所述受信执行环境包括加密协同处理器,并且所述机器可读指令还使所述计算设备至少通过所述加密协同处理器来对所述应用程序的签名进行验证。在所述系统的一些实施方案中,所述受信执行环境包括加密协同处理器,并且所述加密算法不被包括在由所述加密协同处理器支持的预定义的多个加密算法中。在所述系统的一些实施方案中,所述受信执行环境包括在所述处理器的安全虚拟处理器上执行的安全操作系统。在所述系统的一些实施方案中,所述密码对应于支付交易,并且所述密码包括有限使用支付凭证。在所述系统的一些实施方案中,所述受信执行环境存储用于对所述加密后的代码进行解密的密钥,所述密钥与操作所述服务的实体相关联。
公开了一种方法的各种实施方案,所述方法包括:通过在不受信执行环境中执行的第一应用程序经由网络接收加密后的数据和加密后的代码,所述加密后的代码实施加密算法;由所述第一应用程序将所述加密后的数据和所述加密后的代码传输到在受信执行环境中执行的第二应用程序;由所述第二应用程序对所述加密后的代码进行解密;由所述第二应用程序执行所述解密后的代码,以使用所述加密算法对所述加密后的数据进行解密;以及由所述第一应用程序从所述第二应用程序接收信息,所述信息是从所述加密后的数据进行解密的。在所述方法的一些实施方案中,所述方法还包括:使用接口将所述加密后的代码从所述第二应用程序传输到加密协同处理器;以及使用所述加密协同处理器对所述加密后的代码的签名进行验证。在所述方法的一些实施方案中,所述解密后的代码的执行不是由所述加密协同处理器执行的。在所述方法的一些实施方案中,对所述加密后的代码的解密是由所述加密协同处理器执行的。在所述方法的一些实施方案中,所述加密协同处理器包括代码,所述代码实施预定义的多个加密算法,并且所述加密算法被排除在所述预定义的多个加密算法之外。在所述方法的一些实施方案中,所述加密后的代码从由实体操作的服务接收,并且所述第一应用程序和所述第二应用程序与所述实体相关联。
公开了一种计算机程序的各种实施方案,所述计算机程序包括指令,当在计算设备的受信执行环境中执行时,所述指令使所述计算设备至少:经由与所述处理器的不受信执行环境的接口来接收加密后的代码,所述加密后的代码实施加密算法;对所述加密后的代码进行解密;执行解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及,经由所述接口返回所述密码。在所述计算机程序的一些实施方案中,所述计算设备还包括加密协同处理器,并且所述指令还使所述计算设备至少:使用所述加密协同处理器对所述加密后的代码的签名进行验证;或者在将所述加密算法传输到所述受信执行环境之前,验证所述加密算法是否为可信根。在所述计算机程序的一些实施方案中,所述受信执行环境包括在所述处理器的安全虚拟处理器上执行的安全操作系统。在所述计算机程序的一些实施方案中,所述密码对应于支付交易,并且所述密码包括有限使用支付凭证。
附图说明
通过参考以下附图,可以更好地理解本公开的许多方面。附图中的组件不一定是按比例绘制的,而是将重点放在清楚地说明本公开的原理上。此外,在附图中,相同的附图标记指示多个视图中的对应部件。
图1是根据本公开的各种实施例的网络环境的图。
图2A是根据各种实施例的图1中的网络环境的客户端设备的图。
图2B是根据各种实施例的图1中的网络环境的客户端设备的图。
图3是示出了根据本公开的各种实施例、在图1的网络环境中使用图2A的客户端设备所实现的功能的一个示例的顺序图。
图4是示出了根据本公开的各种实施例、在图1的网络环境中使用图2A的客户端设备所实现的功能的一个示例的顺序图。
图5是示出了根据本公开的各种实施例、在图1的网络环境中使用图2B的客户端设备所实现的功能的一个示例的顺序图。
图6是示出了根据本公开的各种实施例、在图1的网络环境中使用图2B的客户端设备所实现的功能的一个示例的顺序图。
具体实施方式
本公开涉及在客户端设备上使用由实体选择的加密算法与和实体相关联的服务进行通信。例如,诸如金融机构、支付处理器、商户网关、支付发行方或其他实体等实体可能期望发送给它们的具体信息是使用特定的加密算法进行加密的。此外,实体可以在向客户端设备传送信息时使用特定的加密算法。实体可能期望对特定加密算法的身份进行保密,以提高安全性。此外,实体可以自行决定时常地更新或更改特定加密算法。
在第一组实施例中,客户端设备上的加密协同处理器(诸如受信平台模块(TPM))可以被配置为支持加密灵活性,或支持使用不同加密算法的功能。例如,加密协同处理器可以支持一组预定义的加密算法,其中,包括在该组中的算法由设备硬件的制造商、标准机构、操作系统开发者进行选择。加密算法可以永久地包括在硬件加密协同处理器中,或者能够在固件加密协同处理器或软件加密协同处理器中进行更新。
实体可能首选地使用不同的加密算法,而不是使用预定义组中的加密算法。例如,在加密协同处理器被创建之后,可以发布实体首选的算法。因此,加密协同处理器将不会嵌入对该算法的支持,并且将必须为该算法的使用提供加密灵活性。
如将要描述的那样,在各种实施例中,实体可以将实施加密算法的代码发送到具有加密协同处理器的客户端设备,该加密协同处理器具有加密灵活性。实施该加密算法的代码本身可以被加密,从而屏蔽算法的身份和/或其内部运作。随后,实施该加密算法的代码可以使用与实体相关联的密钥在加密协同处理器内进行解密。随后,加密协同处理器可以执行加密协同处理器内的代码,以对待发送到实体的信息进行加密或者对从实体发送的信息进行解密。通过这种方式,在客户端设备上执行的应用程序无法对加密算法进行访问,并且实施该加密算法的代码以安全的方式执行。
在第二组实施例中,除了加密协同处理器之外,客户端设备还具有单独的受信执行环境。例如,基于ARM的设备可以包括支持信任区(TRUSTZONE)功能的安全扩展,基于INTEL的设备可以具有受信执行技术(TRUSTED EXECUTION TECHNOLOGY)和SGX软件保护扩展(SGX SOFTWARE GUARD EXTENSIONS),基于AMD的设备可以具有平台安全处理器(PLATFORM SECURITY PROCESSOR)和AMD安全执行环境(AMD SECURE EXECUTIONENVIRONMENT)。这提供了单独的虚拟处理器,该处理器执行具有基于硬件的访问控制的安全操作系统。经签名的第三方应用程序可以在受信执行环境中执行。如将要描述的那样,在各种实施例中,实体可以创建用于在受信执行环境中执行的受信应用程序,该受信执行应用程序被配置为接收实施加密算法的代码,其中,该代码本身被加密。加密协同处理器可以用于对代码的真实性和完整性进行验证,在这之后,受信应用程序然后可以对实施该加密算法的代码进行解密,并执行该代码以对待发送到实体的信息进行加密或者对从实体发送的信息进行解密。
在以下讨论中,提供了系统及其组件的整体概述,随后讨论了该系统及其组件的操作。
参考图1,其示出了根据各种实施例的网络环境100。网络环境100包括计算环境103和客户端设备106,它们经由网络109彼此进行数据通信。网络109可以包括广域网(WAN)、局域网(LAN)、个域网(PAN)或它们的组合。这些网络可以包括有线组件或无线组件或它们的组合。有线网络可以包括以太网(Ethernet 网络)、电缆网络、光纤网络和电话网络,诸如拨号、数字用户线路(DSL)和综合业务数字网络(ISDN)网络。无线网络可以包括蜂窝网络、卫星网络、电气和电子工程师协会(IEEE)802.11无线网络(即,)、(蓝牙)网络、微波传输网络以及依赖无线电广播的其他网络。网络109还可以包括两个或更多个网络109的组合。网络109的示例可以包括因特网、内联网、外联网、虚拟专用网络(VPN)和类似网络。
计算环境103可以为或代表诸如金融机构、支付处理器、支付网关、支付发行方或另一实体等实体进行操作。计算环境103可以包括一个或多个计算设备,该计算设备包括处理器、存储器和/或网络接口。例如,计算设备可以被配置为代表其他计算设备或应用程序执行计算。作为另一示例,此类计算设备可以响应于对内容的请求而托管内容和/或向其他计算设备提供内容。
此外,计算环境103可以采用多个计算设备,该多个计算设备可以被布置在一个或多个服务器库或计算机库或其他布置中。此类计算设备可以位于单个设施中或者可以分布在许多不同的地理位置之间。例如,计算环境103可以包括多个计算设备,该多个计算设备一起可以包括受托管的计算资源、网格计算资源或任何其他分布式计算布置。在一些情况下,计算环境103可以对应于弹性计算资源,在该弹性计算资源中,处理、网络、存储或其他计算相关的资源的所分配能力可以随时间变化。
各种应用程序或其他功能可以在计算环境103中执行。在计算环境103上执行的组件包括实体服务113以及在本文中未详细讨论的其他应用程序、服务、过程、系统、引擎或功能。实体服务113可以由实体或代表实体进行操作,以执行诸如认证、支付授权、支付处理等功能或其他功能。尽管出于讨论的目的描述了一个实体服务113,但是可以理解的是,可以实现多个服务以执行这些功能的部分。
此外,各种数据被存储在数据存储116中,计算环境103能够访问数据存储116。数据存储116可以表示多个数据存储116,该多个数据存储116可以包括关系数据库、非关系数据库、面向对象的数据库、层次数据库、散列表或类似的键值数据存储、以及其他数据存储应用程序或数据结构。被存储在数据存储116中的数据与由计算环境103托管的各种应用程序的操作相关联。
客户端设备106表示可以联接到网络109的一个或多个客户端设备106。客户端设备106可以包括基于处理器的系统,诸如计算机系统。此类计算机系统可以以下形式实现:个人计算机(例如,台式计算机、膝上型计算机或类似设备)、移动计算设备(例如,个人数字助理、蜂窝电话、智能手机、上网本、平板计算机系统、音乐播放器、便携式游戏机、电子书阅读器和类似设备)、媒体播放设备(例如,媒体流设备、播放器、数字视频光盘(DVD)播放器、机顶盒和类似设备)、视频游戏机或具有类似功能的其他设备。客户端设备106可以包括一个或多个显示器,诸如液晶显示器(LCD)、基于气体等离子体的平板显示器、有机发光二极管(OLED)显示器、电泳墨水(“E-ink”)显示器、投影仪或其他类型的显示设备。在一些情况下,显示器可以是客户端设备106的组件,或者可以通过有线连接或无线连接而连接到客户端设备106。
接下来,提供了网络环境100的各种组件的操作的整体概述。尽管以下描述提供了网络环境100的各种组件的操作以及它们之间的交互的一个示例,但其他操作或交互也可能发生,如在后面附图的随附描述中所讨论的那样。
首先,实体服务113经由网络109向客户端设备106发送加密后的代码118。加密后的代码118包括加密算法121和签名124。加密算法121可以对应于对称算法、非对称算法或作为这两者的组合的混合算法。加密算法121的非限制性示例可以包括三重数据加密算法(Triple DES)、高级加密标准(AES)、ChaCha、Salsa 20、Twofish等。
在一些情况下,加密算法121可以包括与加密算法121一起使用的密钥,以便使用加密算法121对数据进行解密和/或加密。可替代地,此类密钥可以以其他方式对客户端设备106可用。加密后的代码118包括签名124,签名124可以用于对加密后的代码118的真实性或完整性进行验证。
在接收到加密后的代码118之后,通过使用对客户端设备106可用的一个或多个密钥,客户端设备106对加密后的代码118的签名124进行验证,随后对加密后的代码118进行解密。随后,客户端设备106可以使用加密算法121以及密钥来执行加密操作,诸如生成一密码127(cryptogram)。密码127可以对应于支付交易,并且可以包括数据,诸如设备主账号、交易量、有限使用支付凭证或有限使用密钥、不可预测的数字、时间戳、交易计数器和/或其他可用于授权支付交易的信息。随后通过网络109将密码127发送到实体服务113。
现在转向图2A,其示出了根据各种实施例的客户端设备106的示例。客户端设备106可以执行客户端应用程序203和其他应用程序。客户端设备106可以包括加密协同处理器206、客户端数据存储209和其他组件。
客户端应用程序203可以与实体相关联,并且可以用于执行与该实体有关的功能。例如,可以执行客户端应用程序203,以使用支付工具通过实体服务113(图1)来发起或管理支付交易。在这方面,客户端应用程序203可以从实体服务113接收加密后的代码118(图1),经由加密协同处理器206生成密码127(图1),然后将包括加密后的信息的密码127发送给实体服务113。此外,客户端应用程序203可以从实体服务113接收加密后的数据,使用加密后的代码118经由加密协同处理器206来对加密后的数据进行解密,然后处理解密后的数据。
加密协同处理器206可以表示物理的或模拟的专用微控制器,该微控制器使用集成加密密钥来保护硬件,并提供各种加密操作。加密协同处理器206可以实现受信计算组(Trusted Computing Group,TCG)的TPM标准的版本。尽管加密协同处理器206可以在硬件中实现以防止篡改或规避加密协同处理器206,但加密协同处理器206的功能可以在缺乏基于硬件的加密协同处理器206的那些客户端设备106上的固件或软件中实现。
加密协同处理器206可以代表客户端设备106或由客户端设备106执行的应用程序来执行各种加密功能或操作。例如,加密协同处理器206可以使用加密协同处理器206中所包括的伪随机数生成器(PRNG)或随机数生成器(RNG)来生成随机数。作为另一示例,加密协同处理器206可以安全地生成加密密钥或密钥对,包括对称加密密钥和非对称加密密钥对。加密协同处理器206还可以使用由加密协同处理器206生成的加密密钥或被导入到加密协同处理器206中的加密密钥来对数据进行加密或解密。作为另一示例,加密协同处理器206还可以生成客户端设备106的硬件配置和软件配置的当前状态的散列,这可以允许远程地对客户端设备106的身份或客户端设备106的用户的身份进行认证。
为了执行这些操作,各种加密密钥可以被存储在加密协同处理器206内。这些加密密钥可以包括背书密钥对212和一个或多个根密钥对215(诸如存储根密钥)。背书密钥对212和一个或多个根密钥对215可以被存储在加密协同处理器206本身内,以保护密钥不被泄露。
背书密钥对212是非对称加密密钥对,其包括对于加密协同处理器206而言唯一的公共加密密钥和私有加密密钥。背书密钥对212可以由加密协同处理器206使用,以向其他方或设备验证或声称其身份,并从而验证或声称客户端设备106的身份或客户端设备106的用户的身份。如果背书密钥对212被披露给第三方,则第三方可能潜在地伪造加密协同处理器206的身份。因此,背书密钥对212通常用于对其他加密密钥进行签名,这些其他加密密钥随后可以用于声称或验证加密协同处理器206的身份。为了保持背书密钥对212的完整性,并确保该背书密钥对212相对于被安装在其他加密协同处理器206上的其他背书密钥对212而言是唯一的,可以在工厂将该背书密钥对212供应并存储在加密协同处理器206上。
一个或多个根密钥对215可以是非对称加密密钥对,其可以由加密协同处理器206使用来对数据进行加密和/或签名。在需要的情况下,可以替换根密钥对215,尽管如果用新的根密钥对215替换该根密钥对215,则任何使用该根密钥对215进行加密的数据将不可恢复。在一些实施方案中,加密协同处理器206可以支持使用多个独立的根密钥对215。例如,客户端设备106的多个用户可以各自具有他或她的根密钥对215,他或她的根密钥对215仅可由相应的用户访问。作为另一示例,在客户端设备106上执行的多个客户端应用程序可以具有它们自身的根密钥对215,以用于对存储在客户端设备106上的针对应用程序特定的数据进行加密和解密。具体地,与实体服务115和客户端应用程序203相关联的实体可以具有其自身的根密钥对215。此外,实体可以针对对该根密钥对215的访问来定义其自身的授权策略。通过这种方式,实体可以保持对根密钥对215的密钥层次的排它控制。
加密协同处理器206还可以包括多个预定义的加密算法218。预定义的加密算法218可以由加密协同处理器206执行,以使用根密钥对215中的特定密钥对来对数据进行加密、解密或验证。预定义的加密算法218的组可以由标准、由加密协同处理器206或客户端设备106的制造商、或者由客户端设备106的开发者限定。因此,预定义的加密算法218的组可以在实施加密协同处理器206的硬件、固件或软件内硬编码,并且不能够由客户端应用程序203进行配置。标志(flag)可以被发送到加密协同处理器206,该标志指示了将选择哪个预定义的加密算法218用于加密操作。应注意的是,预定义的加密算法218可以不在加密后的代码118中包括加密算法121(图1)。然而,加密后的代码118可以使用预定义的加密算法218中的一个进行加密。
经批准的实体221可以对应于实体的列表,这些实体被批准在加密协同处理器206内执行代码,诸如加密算法121。经批准的实体221可以被允许在加密协同处理器206中存储根密钥对215。在一些实施例中,可能不存在经批准的实体221的列表,但经批准的实体221将具有对应的根密钥对215,该根密钥对215使得经批准的实体221能够有权执行加密协同处理器206内的任意加密算法121。
此外,各种数据可以被存储在客户端数据存储209中,客户端设备106能够访问该客户端数据存储209。客户端数据存储209可以表示多个客户端数据存储209,其可以包括关系数据库、面向对象的数据库、层次数据库、散列表或类似的键值数据存储、以及其他数据存储应用程序或数据结构。被存储在客户端数据存储209中的数据与由客户端设备106执行的各种应用程序的操作相关联。该数据可以包括一个或多个应用程序密钥对224、加密后的认证令牌163、身份密钥对233以及可能的其他数据。
应用程序密钥对224是非对称加密密钥对,其可以由加密协同处理器206生成或被导入到加密协同处理器206中,并被用于各种数据加密功能。每个应用程序密钥对224可以是相应的根密钥对215的子密钥、孙密钥或后代密钥。此外,每个根密钥对215可以具有与其相关联的一个或多个应用程序密钥对224。例如,用户可以创建多个应用程序密钥对224以用于各种用途,并且这些应用程序密钥对224可以被存储为用户的根密钥对215的从属密钥或子密钥。类似地,已提供其自身的根密钥对215的客户端应用程序203可以使用多个应用程序密钥对224以用于各种目的,并且这些应用程序密钥对224中的一个或多个可以被存储为根密钥对215的从属密钥,而根密钥对215被提供用于客户端应用程序203。每个应用程序密钥对224可以包括应用程序公钥227和加密后的私钥230。
身份密钥对233表示本地存储的非对称加密密钥对,该非对称加密密钥对可以由加密协同处理器206生成并使用,以验证其身份。例如,由于被安装在客户端设备106上的加密协同处理器206的唯一身份,使用身份密钥对233的私钥进行签名的消息可以通过使用源自特定客户端设备106的身份公钥进行验证。因此,身份密钥对233可以被用作背书密钥对212的别名。为了证明身份密钥对233是有效的,可以通过使用背书密钥对212的私钥由加密协同处理器206对其进行签名。
有限使用支付凭证236可以对应于有限使用密钥。有限使用支付凭证236是由服务器侧主密钥生成的动态密钥。一个或多个有限使用支付凭证236的预定义数量可以在最初被提供给客户端设备106。从有限使用密钥导出的会话密钥或有限使用支付凭证236可以用于验证密码127是否由客户端设备106生成。有限使用支付凭证236可以被发送到客户端设备106,并且有限使用支付凭证236中的每个单独的凭证可以被使用一次或预定义次数,以便授权支付交易。
转向图2B,其示出了根据各种实施例的客户端设备106的示例。客户端设备106可以包括不受信执行环境250、受信执行环境253以及不受信执行环境250和受信执行环境253之间的接口254。客户端应用程序203可以在用户控制下与许多应用程序一起在不受信执行环境250中执行。受信执行环境253是安全环境,其自身的安全操作系统在安全虚拟处理器或安全物理处理器上执行。不受信执行环境250可以在与受信执行环境253的安全虚拟处理器或安全物理处理器不同的虚拟处理器或物理处理器上执行。
客户端设备106的硬件处理器可以执行监控程序,或者包括对于对受信执行环境253的访问进行调解或限制的硬件扩展。接口254可以是由处理器的监控程序或硬件扩展支持的应用程序编程接口(API),以允许以安全的方式在受信执行环境253和不受信执行环境250之间传输数据。例如,接口254可以包括通过共享存储器来传递的系统调用或消息。
与实体相关联的受信应用程序256在受信执行环境253中执行。在受信执行环境253中执行之前,受信应用程序256可以由实体进行签名并由加密协同处理器206进行验证。执行受信应用程序256,以经由接口254从客户端应用程序203接收加密后的代码118(图1),使用签名124(图1)经由加密协同处理器206对加密后的代码118的真实性和/或完整性进行验证,并使用加密协同处理器206对加密后的代码118进行解密。
在已经对加密后的代码118进行验证和解密之后,受信应用程序256随后能够使用加密算法121(图1)来加密、解密、签名或执行其他加密操作。具体地,受信应用程序256可以通过执行加密算法121对各种信息进行加密来生成密码127。例如,该信息可以与支付交易有关,并且可以包括有限使用支付凭证236或有限使用密钥。
尽管图2B示出了单个客户端数据存储209,但可以理解的是,客户端数据存储209可以被分割为多个数据存储,其中,一个或多个数据存储只能通过受信执行环境253进行访问。
接下来参考图3,图3示出了顺序图,该顺序图提供了网络环境100的各种组件(包括图2A的客户端设备106)之间的交互的示例。图3的顺序图提供的只是可以在网络环境100中采用的许多不同类型的功能布置的示例。作为替代方案,图3的顺序图可以被视为描绘了在网络环境100中所实现的方法的元素的示例。
从框303开始,实体服务113将加密后的代码118(图1)发送到在客户端设备106(图2A)上执行的客户端应用程序203。加密后的代码118可以与签名124(图1)一起发送。签名124的标头可以用于识别用于对加密后的代码118进行解密的特定根密钥对215(图2A)。可替代地,实体服务113可以发送不同类型的密钥标识符。在一个实施例中,客户端设备106可以具有本地存储(例如,存储在非易失性随机存取存储器中)的查找表或映射,该查找表或映射将实体服务113链接到特定根密钥对215,以用于对签名124进行验证并对加密后的代码118进行解密。
接下来,在框306中,客户端应用程序203将加密后的代码118提供给客户端设备106的加密协同处理器206。例如,客户端应用程序203可以将加密后的代码118存储在客户端数据存储209或其他存储器中,并向加密协同处理器206发送命令,以加载加密后的代码118并对其进行验证和解密。在固件中实施加密协同处理器206的情况下,被存储在安全元件(例如,安全数据存储)中的数据(例如,根密钥)可以经由接口从安全元件传输到固件加密协同处理器206,该接口对安全元件的访问进行调解。数据(例如,根密钥)可以使固件加密协同处理器206能够执行诸如验证和解密等功能。
在框309中,加密协同处理器206使用与加密后的代码118一起发送的签名124来对加密后的代码118进行验证。为此,加密协同处理器206可以获得与实体相关联的根密钥对215,以便使用签名124执行验证。因此,该验证过程对加密后的代码118的真实性和完整性进行验证。在一些情况下,加密协同处理器206可以验证客户端设备106的状态,并基于客户端设备106的状态允许或不允许对加密后的代码118的解密。例如,如果客户端设备106是有根的,则加密协同处理器206可以不允许对加密后的代码118的解密。如果验证未成功,则加密算法121的解密和执行将不继续。
在框312中,加密协同处理器206对加密后的代码118进行解密。例如,加密协同处理器206可以利用预定义的加密算法218(图2A)中的特定一个加密算法以及与实体相关联的根密钥对215来执行解密。在对加密后的代码118进行解密时,加密协同处理器206获得呈未加密形式的加密算法121(图1)。在一些示例中,加密算法121可以不同于预定义的加密算法218。在其他示例中,加密算法121可以是预定义的加密算法218中的一个,尽管加密算法121的身份可能不会从加密后的代码118本身显而易见。在一个示例中,加密协同处理器206充当可信根,以在将某个专有加密算法121交给安全元件之前对其进行验证。
在框315中,客户端应用程序203向加密协同处理器206提供信息,以供加密协同处理器206进行后续加密。例如,该信息可以与特定支付交易有关,并且可以包括诸如有限使用支付凭证236(图2A)或有限使用密钥、不可预测的数字、序列号、单调计数器值、时间戳、交易量和/或其他信息等数据。在其他示例中,客户端应用程序203可以将信息与加密后的代码118一起提供给加密协同处理器206,或者在将加密后的代码118提供给加密协同处理器206之前将信息提供给加密协同处理器206。在一些示例中,该信息中的一项或多项(例如,不可预测的数字)可以由加密协同处理器206本身生成。
在框318中,加密协同处理器206使用加密算法121对信息进行加密,该加密算法121在框312处从加密后的代码118进行解密。为此,加密协同处理器206执行实施该加密算法121(其由实体服务113提供)的代码,并且可以使用来自与实体相关联的根密钥对215的密钥或对称密钥。通过这种方式,加密协同处理器206生成密码127(图1)。在框321中,加密协同处理器206将密码127返回给客户端应用程序203。
在框324中,客户端应用程序203经由网络109将密码127发送给实体服务113。在框327中,实体服务113对密码127进行处理。例如,实体服务113可以对密码127的签名进行验证。实体服务113随后使用用于对密码127进行加密的对称密钥或用于对密码127进行加密的密钥对的私钥,来对密码127进行解密。实体服务113随后可以对密码127的内容进行验证。例如,实体服务113可以验证有限使用支付凭证236或有限使用密钥是否有效。在对内容进行验证之后,实体服务113随后可以授权和/或处理相应的支付交易。
继续参考图4,图4为顺序图,该顺序图提供了网络环境100的各个组件(包括图2A的客户端设备106)之间的交互的另一个示例。图4的顺序图提供的只是可以在网络环境100中采用的许多不同类型的功能布置的示例。作为替代方案,图4的顺序图可以被视为描绘了在网络环境100中所实现的方法的元素的示例。
从框403开始,实体服务113将加密后的代码118(图1)发送到在客户端设备106(图2A)上执行的客户端应用程序203。实体服务113还可以将加密后的数据与加密后的代码118一起发送,或在发送加密后的代码118之前或之后发送加密后的数据,其中,该加密后的数据是使用被加密在加密后的代码118中的加密算法121(图1)进行加密的。加密后的代码118和加密后的数据可以与签名124(图1)一起发送。签名124的标头可以用于识别用于对加密后的代码118和加密后的数据进行解密的特定根密钥对215(图2A)。可替代地,实体服务113可以发送不同类型的密钥标识符。在一个实施例中,客户端设备106可以具有本地存储(例如,存储在非易失性随机存取存储器中)的查找表或映射,该查找表或映射将实体服务113链接到特定根密钥对215,以用于对签名124进行验证并对加密后的代码118和加密后的数据进行解密。
接下来,在框406中,客户端应用程序203将加密后的代码118提供给客户端设备106的加密协同处理器206。例如,客户端应用程序203可以将加密后的代码118存储在客户端数据存储209或其他存储器中,并向加密协同处理器206发送命令,以加载加密后的代码118并对其进行验证和解密。在固件中实施加密协同处理器206的情况下,被存储在安全元件(例如,安全数据存储)中的数据(例如,根密钥)可以经由接口从安全元件传输到固件加密协同处理器206,该接口对安全元件的访问进行调解。数据(例如,根密钥)可以使固件加密协同处理器206能够执行诸如验证和解密等功能。
在框409中,加密协同处理器206使用与加密后的代码118一起发送的签名124来对加密后的代码118进行验证。为此,加密协同处理器206可以获得与实体相关联的根密钥对215(图2A),以便使用签名124执行验证。因此,验证过程对加密后的代码118的真实性和完整性进行验证。在一些情况下,加密协同处理器206可以验证客户端设备106的状态,并基于客户端设备106的状态允许或不允许对加密后的代码118的解密。例如,如果客户端设备106是有根的,则加密协同处理器206可以不允许对加密后的代码118的解密。如果验证未成功,则加密算法121的解密和执行将不继续。
在框412中,加密协同处理器206对加密后的代码118进行解密。例如,加密协同处理器206可以利用预定义的加密算法218(图2A)中的特定一个加密算法以及与实体相关联的根密钥对215来执行解密。在对加密后的代码118进行解密时,加密协同处理器206获得呈未加密形式的加密算法121。在一些示例中,加密算法121可以不同于预定义的加密算法218。在其他示例中,加密算法121可以是预定义的加密算法218中的一个,尽管加密算法121的身份可能不会从加密后的代码118本身显而易见。在一个示例中,加密协同处理器206充当可信根,以在将某个专有加密算法121交给安全元件之前对其进行验证。
在框415中,客户端应用程序203向加密协同处理器206提供加密后的数据。加密后的数据可以是任意数据。加密后的数据可以包括一个或多个有限使用支付凭证236(图2A)或者包括有限使用密钥,或者包括与支付交易相关的其他信息。例如,客户端应用程序203可以将加密后的数据存储在客户端数据存储209或其他存储器中,并向加密协同处理器206发送命令,以加载加密后的数据并对其进行验证和解密。
在框418中,加密协同处理器206使用加密算法121对加密后的数据中的信息进行解密。为此,加密协同处理器206执行实施该加密算法121的、由实体所提供的代码,并且可以使用来自与该实体相关联的根密钥对215的密钥。在框421中,加密协同处理器206将解密后的信息返回给客户端应用程序203。在框424中,客户端应用程序203可以处理解密后的数据,这可以包括对数据进行重新加密、将数据存储在客户端数据存储209中和/或执行其他动作。
继续参考图5,图5为顺序图,该顺序图提供了网络环境100的各种组件(包括图2B的客户端设备106)之间的交互的示例。图5的顺序图提供的只是可以在网络环境100中采用的许多不同类型的功能布置的示例。作为替代方案,图5的顺序图可以被视为描绘了在网络环境100中所实现的方法的元素的示例。
从框503开始,实体服务113将加密后的代码118(图1)发送到客户端应用程序203,该客户端应用程序203在不受信执行环境250(图2B)中的客户端设备106(图2B)上执行。加密后的代码118可以与签名124(图1)一起发送。签名124的标头可以用于识别用于对加密后的代码118进行解密的特定根密钥对215(图2B)。可替代地,实体服务113可以发送不同类型的密钥标识符。在一个实施例中,客户端设备106可以具有本地存储(例如,存储在非易失性随机存取存储器中)的查找表或映射,该查找表或映射将实体服务113链接到特定根密钥对215,以用于对签名124进行验证并对加密后的代码118进行解密。
接下来,在框506中,客户端应用程序203经由接口254(图2B)向在受信执行环境253中执行的受信应用程序256提供加密后的代码118。例如,客户端应用程序203可以将加密后的代码118存储在客户端数据存储209或其他存储器中,并向加密协同处理器206发送命令,以加载加密后的代码118并对其进行验证和解密。
在框509中,受信应用程序256将加密后的代码118提供给客户端设备106的加密协同处理器206。例如,受信应用程序256可以将加密后的代码118存储在客户端数据存储209的安全部分或其他安全存储器中,并向加密协同处理器206发送命令,以加载加密后的代码118并对其进行验证和解密。加密后的代码256可以经由受信执行环境253和加密协同处理器206之间的接口提供给加密协同处理器206。
在框512中,加密协同处理器206使用与加密后的代码118一起发送的签名124(图1)来对加密后的代码118进行验证。为此,加密协同处理器206可以获得与实体相关联的根密钥对215(图2B),以便使用签名124执行验证。因此,验证过程对加密后的代码118的真实性和完整性进行验证。在一些情况下,加密协同处理器206可以验证客户端设备106的状态,并基于客户端设备106的状态允许或不允许对加密后的代码118的解密。例如,如果客户端设备106是有根的,则加密协同处理器206可以不允许对加密后的代码118的解密。如果验证未成功,则加密算法121的解密和执行将不继续。
在框515中,加密协同处理器206对加密后的代码118进行解密。例如,加密协同处理器206可以利用预定义的加密算法218(图2B)中的特定一个加密算法以及与实体相关联的根密钥对215来执行解密。在对加密后的代码118进行解密时,加密协同处理器206产生呈未加密形式的加密算法121(图1)。在一些示例中,加密算法121可以不同于预定义的加密算法218。在其他示例中,加密算法121可以是预定义的加密算法218中的一个,尽管加密算法121的身份可能不会从加密后的代码118本身显而易见。在框518中,加密协同处理器206经由加密协同处理器206和受信执行环境253之间的接口将加密算法121的解密后的代码返回给受信应用程序256。在一个示例中,加密协同处理器206充当可信根,以在将某个专有加密算法121交给受信执行环境253之前对其进行验证。
在框521中,客户端应用程序203向受信应用程序256提供信息,以用于由受信应用程序256进行后续加密。例如,该信息可以与特定支付交易有关,并且可以包括诸如有限使用支付凭证236(图2A)或有限使用密钥、不可预测的数字、序列号、单调计数器值、时间戳、交易量和/或其他信息等数据。在其他示例中,客户端应用程序203可以将该信息与加密后的代码118一起提供给受信应用程序256,或者在将加密后的代码118提供给受信应用程序256之前将该信息提供给受信应用程序256。在一些示例中,该信息中的一项或多项(例如,不可预测的数字)可以由加密协同处理器206或受信应用程序256生成。
在框524中,受信应用程序256使用加密算法121对信息进行加密。为此,受信应用程序256执行实施该加密算法121的、由实体所提供的代码,并且可以使用来自与该实体相关联的应用程序密钥对224的密钥或对称密钥。通过这种方式,受信应用程序256生成密码127(图1)。在框527中,受信应用程序256经由接口254将密码127返回给客户端应用程序203。
在框530中,客户端应用程序203经由网络109将密码127发送给实体服务113。在框533中,实体服务113对密码127进行处理。例如,实体服务113可以对密码127的签名进行验证。实体服务113随后使用用于对密码127进行加密的对称密钥或用于对密码127进行加密的密钥对的私钥,来对密码127进行解密。实体服务113随后可以对密码127的内容进行验证。例如,实体服务113可以验证有限使用支付凭证236或有限使用密钥是否有效。在对内容进行验证之后,实体服务113随后可以授权和/或处理相应的支付交易。
现在转向图6,图6为顺序图,该顺序图提供了网络环境100的各种组件(包括图2B的客户端设备106)之间的交互的另一示例。图6的顺序图提供的只是可以在网络环境100中采用的许多不同类型的功能布置的示例。作为替代方案,图6的顺序图可以被视为描绘了在网络环境100中所实现的方法的元素的示例。
从框603开始,实体服务113将加密后的代码118(图1)发送到客户端应用程序203,该客户端应用程序203在不受信执行环境250(图2B)中的客户端设备106(图2B)上执行。实体服务113还可以将加密后的数据与加密后的代码118一起发送,或者在发送加密后的代码118之前或之后发送加密后的数据,其中,加密后的数据是使用被加密在加密后的代码118中的加密算法121(图1)进行加密的。加密后的代码118和加密后的数据可以与签名124一起发送(图1)。签名124的标头可以用于识别用于对加密后的代码118进行解密的特定根密钥对215(图2B)。可替代地,实体服务113可以发送不同类型的密钥标识符。在一个实施例中,客户端设备106可以具有本地存储(例如,存储在非易失性随机存取存储器中)的查找表或映射,该查找表或映射将实体服务113链接到特定的根密钥对215,以用于对签名124进行验证并对加密后的代码118和加密后的数据进行解密。
接下来,在框606中,客户端应用程序203经由接口254(图2B)向在受信执行环境253(图2B)中执行的受信应用程序256提供加密后的代码118。
在框609中,受信应用程序256将加密后的代码118提供给客户端设备106的加密协同处理器206。例如,受信应用程序256可以将加密后的代码118存储在客户端数据存储209的安全部分或其他安全存储器中,并向加密协同处理器206发送命令,以加载加密后的代码118并对其进行验证和解密。加密后的代码256可以经由受信执行环境253和加密协同处理器206之间的接口提供给加密协同处理器206。在框612中,加密协同处理器206使用与加密后的代码118一起发送的签名124来对加密后的代码118进行验证。为此,加密协同处理器206可以获得与实体相关联的根密钥对215,以便使用签名124执行验证。因此,该验证过程对加密后的代码118的真实性和完整性进行验证。在一些情况下,加密协同处理器206可以验证客户端设备106的状态,并基于客户端设备106的状态允许或不允许对加密后的代码118的解密。例如,如果客户端设备106是有根的,则加密协同处理器206可以不允许对加密后的代码118的解密。如果验证未成功,则加密算法121的解密和执行将不继续。
在框615中,加密协同处理器206对加密后的代码118进行解密。例如,加密协同处理器206可以利用预定义的加密算法218(图2B)中的特定一个加密算法以及与实体相关联的根密钥对215来执行解密。在对加密后的代码118进行解密时,加密协同处理器206产生呈未加密形式的加密算法121。在一些示例中,加密算法121可以不同于预定义的加密算法218。在其他示例中,加密算法121可以是预定义的加密算法218中的一个,尽管加密算法121的身份可能不会从加密后的代码118本身显而易见。在一个示例中,加密协同处理器206充当可信根,以在将某个专有加密算法121交给受信执行环境253之前对其进行验证。
在框618中,加密协同处理器206经由受信执行环境253和加密协同处理器206之间的接口将加密算法121的解密后的代码返回给受信应用程序256。在其他示例中,在加密协同处理器206对加密后的代码118进行验证之后,受信应用程序256随后可以对加密后的代码118进行解密。
在框621中,客户端应用程序203经由接口254向受信应用程序256提供加密后的数据。加密后的数据可以是任意数据。加密后的数据可以包括一个或多个有限使用支付凭证236(图2A)或者包括有限使用密钥,或者包括与支付交易相关的其他信息。
在框624中,受信应用程序256使用加密算法121对加密后的数据中的信息进行解密。为此,受信应用程序256执行实施该加密算法121的、由实体所提供的代码,并且可以使用来自与该实体相关联的应用程序密钥对224(图2B)的密钥。在框627中,受信应用程序256经由接口254将解密后的信息返回给客户端应用程序203。在框630中,客户端应用程序203可以对解密后的数据进行处理,这可以包括对数据进行重新加密、将数据存储在客户端数据存储209中和/或执行其他动作。
前面讨论的许多软件组件被存储在相应计算设备的存储器中,并且由相应计算设备的处理器可执行。在这方面,术语“可执行”是指以最终可以由处理器运行的形式存在的程序文件。可执行程序的示例可以是:编译后的程序,其可以被转换为机器代码,该机器代码呈现可以被加载到存储器的随机存取部分并由处理器运行的格式;可以以适当的格式表示的源代码,诸如能够被加载到存储器的随机存取部分并由处理器执行的目标代码;或者可以由另一可执行程序进行解译以在存储器的随机存取部分中生成要由处理器执行的指令的源代码。可执行程序可以被存储在存储器的任何部分或组件中,包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、通用串行总线(USB)闪存驱动器、存储卡、光盘(诸如紧凑光盘(CD)或数字多功能光盘(DVD))、软盘、磁带或其他存储器组件。
存储器包括易失性存储器和非易失性存储器以及数据存储组件。易失性组件是指断电时不保留数据值的组件。非易失性组件是指断电时保留数据的组件。因此,存储器可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、经由存储卡读卡器访问的存储卡、经由相关联的软盘驱动器访问的软盘、经由光盘驱动器访问的光盘、经由适当的磁带驱动器访问的磁带、非易失性随机存取存储器(NVRAM)、或其他存储组件、或这些存储组件中任意两个或多个的组合。此外,RAM可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或磁性随机存取存储器(MRAM)和其他此类设备。ROM可以包括可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电气可擦除可编程只读存储器(EEPROM)或其他类似的存储器设备。
尽管如上文所讨论,本文所述的应用程序和系统可以在由通用硬件执行的软件或代码中实现,但作为替代方案,本文所述的应用程序和系统也可以在专用硬件中或者软件/通用硬件和专用硬件的组合中实现。如果在专用硬件中实现,则各个应用程序和系统可以被实施为电路或状态机,该电路或状态机采用多种技术中的任何一种或多种技术的组合。这些技术可以包括但不限于:离散逻辑电路,其具有用于在施加一个或多个数据信号时实现各种逻辑功能的逻辑门;专用集成电路(ASIC),其具有适合的逻辑门;现场可编程门阵列(FPGA)或其他组件等。此类技术通常对本领域技术人员来说是已知,因此在本文中不详细描述。
顺序图示出了本公开各个实施例的部分的实施方案中的功能和操作。如果在软件中实现,则每个块可以表示代码的模块、段或部分,其包括用于实现一个或多个指定逻辑功能的程序指令。程序指令可以以源代码的形式实现,源代码包括以编程语言编写的人类可读语句或者机器代码,该机器代码包括能够由适当的执行系统(诸如计算机系统中的处理器)识别的数字指令。机器代码可以通过各种过程从源代码转换而来。例如,在执行对应的应用程序之前,机器代码可以使用编译器从源代码生成。作为另一示例,机器代码可以从源代码生成,同时使用解释器来执行。也可以使用其他方法。如果在硬件中实现,则每个块可以表示用于实现一个或多个指定逻辑功能的一个电路或多个互连电路。
尽管顺序图示出了特定的执行顺序,但可以理解的是,执行顺序可以不同于所描述的顺序。例如,两个或多个块的执行顺序可以相对于所示的顺序而打乱。此外,连续示出的两个或多个块可以同时执行或部分地同时执行。此外,在一些实施例中,顺序图中所示的一个或多个块可以被跳过或省略。此外,出于增强实用性、计费、性能测量或提供故障排除辅助等目的,可以将任意数量的计数器、状态变量、警告信号或消息添加到本文所述的逻辑流中。可以理解的是,所有这些变型都在本公开的范围内。
此外,本文所述的包括软件或代码的任何逻辑或应用程序可以在任何非暂时性计算机可读介质中实现,以供指令执行系统使用或与指令执行系统结合使用,该指令执行系统诸如计算机系统或其他系统中的处理器。在这个意义上,逻辑可以包括包含指令和声明的语句,这些指令和声明可以从计算机可读介质中提取并由指令执行系统执行。在本公开的上下文中,“计算机可读介质”可以是可以包含、存储或维护本文所述的逻辑或应用程序以供指令执行系统使用或与指令执行系统结合使用的任何介质。此外,位于多个计算设备(例如,存储区域网络、或分布式文件系统或数据库、或集群式文件系统或数据库)上的分布式计算机可读介质的集合也可被集体地视为单个非暂时性计算机可读介质。
计算机可读介质可以包括许多物理介质(诸如磁性介质、光学介质或半导体介质)中的任何一个。适合的计算机可读介质的更具体示例将包括但不限于磁带、磁性软盘、磁性硬盘驱动器、存储卡、固态驱动器、USB闪存驱动器或光盘。此外,计算机可读介质可以是随机存取存储器(RAM)或者磁性随机存取存储器(MRAM),随机存取存储器(RAM)包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。此外,计算机可读介质可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电气可擦除可编程只读存储器(EEPROM)或其他类型的存储器设备。
此外,本文所述的任何逻辑或应用程序可以以多种方式实现和构造。例如,所描述的一个或多个应用程序可以被实现为单个应用程序的模块或组件。此外,本文描述的一个或多个应用程序可以在共享计算设备或独立计算设备或它们的组合中执行。例如,本文所述的多个应用程序可以在同一计算设备中执行,或者在同一计算环境103中的多个计算设备中执行。
除非另有明确说明,否则诸如短语“X、Y或Z中的至少一个”等的析取语言通过通常用于表示项目、术语等的上下文进行理解,其可以是X、Y或Z,或者是它们的任何组合(例如,X、Y或Z)。因此,此类析取语言通常不旨在并且也不应意指某些实施例要求至少一个X、至少一个Y或至少一个Z中的每个都存在。
本公开实施例的示例可以描述如下。
实施例1、一种系统,包括:计算设备,所述计算设备包括处理器、存储器和加密协同处理器;以及机器可读指令,所述机器可读指令存储在所述存储器中,当由所述处理器执行时,所述机器可读指令使所述计算设备至少:经由网络从服务接收加密后的代码,所述加密后的代码实施加密算法;由所述加密协同处理器对所述加密后的代码进行解密;由所述加密协同处理器执行解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及经由所述网络向所述服务发送所述密码。
实施例2、根据实施例1的系统,其中,所述加密协同处理器符合受信平台模块(TPM)标准的版本。
实施例3、根据实施例1的系统,其中,所述加密协同处理器被配置为在对所述加密后的代码进行解密之前验证所述计算设备的状态。
实施例4、根据实施例1的系统,其中,所述服务由实体操作,并且所述加密算法是所述实体的首选加密算法。
实施例5、根据实施例1的系统,其中,所述加密协同处理器被配置为在执行所述解密后的代码之前,验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。
实施例6、根据实施例1的系统,其中,使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与生成所述加密后的代码的实体相关联。
实施例7、根据实施例1的系统,其中,所述服务包括与实体相关联的第一服务和第二服务,所述加密后的代码从所述第一服务接收,所述密码被发送到所述第二服务。
实施例8、根据实施例1的系统,其中,所述加密协同处理器在所述计算设备的固件中实施,数据经由接口从所述计算设备的安全元件传输到所述加密协同处理器,以使所述加密协同处理器能够对所述加密后的代码进行解密。
实施例9、根据实施例1的系统,其中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。
实施例10、根据实施例1的系统,其中,所述加密协同处理器被配置为在将所述加密算法传输到所述计算设备的安全元件之前,充当可信根以对所述加密算法进行验证。
实施例11、一种方法,包括:由加密协同处理器从客户端应用程序接收加密后的代码,所述加密后的代码实施加密算法;由所述加密协同处理器对所述加密后的代码进行解密;以及由所述加密协同处理器执行解密后的代码,以使用所述加密算法对所述加密后的数据进行解密;或者,由所述加密协同处理器执行解密后的代码,以使用所述加密算法生成密码。
实施例12、根据实施例11的方法,还包括:在执行所述解密后的代码之前,由所述加密协同处理器验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。
实施例13、根据实施例11的方法,其中,所述加密后的代码由所述客户端应用程序从由实体操作的服务接收,并且所述客户端应用程序与所述实体相关联。
实施例14、根据实施例13的方法,其中,对所述加密后的代码进行解密还包括:使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与所述实体相关联。
实施例15、根据实施例13的方法,其中,所述加密后的数据和所述加密后的代码不包括所述加密算法的标识符。
实施例16、根据实施例13的方法,其中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。
实施例17、一种非暂时性计算机可读介质,其包括机器可读指令,当由第一计算设备的处理器执行时,所述机器可读指令使所述第一计算设备至少:对加密算法进行加密以创建加密后的代码;将所述加密后的代码发送到第二计算设备;从所述第二计算设备接收密码,所述密码由所述加密算法从所述加密后的代码生成;以及,使用所述加密算法对所述密码进行解密。
实施例18、根据实施例17的非暂时性计算机可读介质,其中,所述加密后的代码与加密密钥的标识符一起被发送到所述第二计算设备,以对所述加密后的代码进行解密。
实施例19、根据实施例17的非暂时性计算机可读介质,其中,所述加密后的代码不包括所述加密算法的标识符。
实施例20、根据实施例17的非暂时性计算机可读介质,其中,使用由加密协同处理器的标准支持的预定义的多个加密算法中的一个对所述加密后的代码进行加密。
实施例21、一种系统,包括:计算设备,所述计算设备包括处理器和存储器;以及机器可读指令,所述机器可读指令存储在所述存储器中,当由所述处理器执行时,所述机器可读指令使所述计算设备至少:经由网络从服务接收加密后的代码,所述加密后的代码实施加密算法;向在所述计算设备的受信执行环境中执行的应用程序提供所述加密后的代码;以及,从所述应用程序获得密码,所述密码包括使用所述加密算法加密后的信息。
实施例22、根据实施例21的系统,其中,所述密码通过在所述计算设备的不受信执行环境中执行的另一应用程序来获得。
实施例23、根据实施例22的系统,其中,所述机器可读指令还使所述计算设备至少通过其它应用程序经由所述网络向所述服务发送所述密码。
实施例24、根据实施例21的系统,其中,经由所述计算设备的受信执行环境和所述计算设备的不受信执行环境之间的接口将所述加密后的代码提供给所述应用程序。
实施例25、根据实施例21的系统,其中,所述受信执行环境包括加密协同处理器,并且所述机器可读指令还使所述计算设备至少:在对所述加密后的代码进行解密之前,通过所述加密协同处理器对所述加密后的代码的签名和所述计算设备的状态进行验证。
实施例26、根据实施例21的系统,其中,所述受信执行环境包括加密协同处理器,并且所述机器可读指令还使所述计算设备至少:通过所述加密协同处理器对所述应用程序的签名进行验证。
实施例27、根据实施例21的系统,其中,所述受信执行环境包括加密协同处理器,并且所述加密算法不被包括在由所述加密协同处理器支持的预定义的多个加密算法中。
实施例28、根据实施例21的系统,其中,所述受信执行环境包括在所述处理器的安全虚拟处理器上执行的安全操作系统。
实施例29、根据实施例21的系统,其中,所述密码对应于支付交易,并且所述密码包括有限使用支付凭证。
实施例30、根据实施例21的系统,其中,所述受信执行环境存储用于对所述加密后的代码进行解密的密钥,所述密钥与操作所述服务的实体相关联。
实施例31、一种方法,包括:通过在不受信执行环境中执行的第一应用程序经由网络接收加密后的数据和加密后的代码,所述加密后的代码实施加密算法;通过所述第一应用程序将所述加密后的数据和所述加密后的代码传输到在受信执行环境中执行的第二应用程序;通过所述第二应用程序对所述加密后的代码进行解密;通过所述第二应用程序执行解密后的代码,以使用所述加密算法对所述加密后的数据进行解密;以及通过所述第一应用程序从所述第二应用程序接收信息,所述信息是从所述加密后的数据解密得来的。
实施例32、根据实施例31的方法,还包括:使用接口将所述加密后的代码从所述第二应用程序传输到加密协同处理器;以及使用所述加密协同处理器对所述加密后的代码的签名进行验证。
实施例33、根据实施例32的方法,其中,所述解密后的代码的执行不是由所述加密协同处理器执行的。
实施例34、根据实施例32的方法,其中,对所述加密后的代码的解密是由所述加密协同处理器执行的。
实施例35、根据实施例32的方法,其中,所述加密协同处理器包括代码,所述代码实施预定义的多个加密算法,并且所述加密算法被排除在所述预定义的多个加密算法之外。
实施例36、根据实施例31的方法,其中,所述加密后的代码从由实体操作的服务接收,并且所述第一应用程序和所述第二应用程序与所述实体相关联。
实施例37、一种非暂时性计算机可读介质,包括机器可读指令,当在计算设备的处理器的受信执行环境中执行时,所述机器可读指令使所述计算设备至少:经由与所述处理器的不受信执行环境的接口来接收加密后的代码,所述加密后的代码实施加密算法;对所述加密后的代码进行解密;执行解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及,经由所述接口返回所述密码。
实施例38、根据实施例37的非暂时性计算机可读介质,其中,所述计算设备还包括加密协同处理器,并且所述机器可读指令还使所述计算设备至少:使用所述加密协同处理器对所述加密后的代码的签名进行验证;或者在将所述加密算法传输到所述受信执行环境之前,验证所述加密算法是否为可信根。
实施例39、根据实施例37的非暂时性计算机可读介质,其中,所述受信执行环境包括在所述处理器的安全虚拟处理器上执行的安全操作系统。
实施例40、根据实施例37的非暂时性计算机可读介质,其中,所述密码对应于支付交易,并且所述密码包括有限使用支付凭证。
应强调的是,本公开的上述实施例仅是实施方式的可能示例,它们出于清楚理解本公开的原理的目的而进行阐述。在基本上不偏离本公开的精神和原理的情况下,可以对上述实施例进行许多变型和修改。所有此类修改和变型旨在被包括在本公开的范围内,并受以下权利要求的保护。
Claims (20)
1.一种系统,包括:
计算设备,所述计算设备包括处理器、存储器和加密协同处理器;以及
机器可读指令,所述机器可读指令存储在所述存储器中,所述机器可读指令在由所述处理器执行时,使所述计算设备至少执行:
经由网络从服务接收加密后的代码,所述加密后的代码实施加密算法;
由所述加密协同处理器对所述加密后的代码进行解密;
由所述加密协同处理器执行解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及
经由所述网络向所述服务发送所述密码。
2.根据权利要求1所述的系统,其中,所述加密协同处理器符合受信平台模块(TPM)标准的版本。
3.根据权利要求1或2所述的系统,其中,所述加密协同处理器被配置为在对所述加密后的代码进行解密之前,验证所述计算设备的状态。
4.根据权利要求1至3所述的系统,其中,所述服务由实体操作,并且所述加密算法是所述实体的首选加密算法。
5.根据权利要求1至4所述的系统,其中,所述加密协同处理器被配置为在执行所述解密后的代码之前,验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。
6.根据权利要求1至5所述的系统,其中,使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与生成所述加密后的代码的实体相关联。
7.根据权利要求1至6所述的系统,其中,所述服务包括与实体相关联的第一服务和第二服务,所述加密后的代码从所述第一服务接收,并且所述密码被发送到所述第二服务。
8.根据权利要求1至7所述的系统,其中,所述加密协同处理器在所述计算设备中的固件中实施,并且数据经由接口从所述计算设备的安全元件传输到所述加密协同处理器,以使所述加密协同处理器能够对所述加密后的代码进行解密。
9.根据权利要求1至8所述的系统,其中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。
10.根据权利要求1至9所述的系统,其中,所述加密协同处理器被配置为在将所述加密算法传输到所述计算设备的安全元件之前,充当可信根以对所述加密算法进行验证。
11.一种方法,包括:
由加密协同处理器从客户端应用程序接收加密后的代码,所述加密后的代码实施加密算法;
由所述加密协同处理器对所述加密后的代码进行解密;以及
由所述加密协同处理器执行解密后的代码,以使用所述加密算法生成密码。
12.根据权利要求11所述的方法,还包括:在执行所述解密后的代码之前,由所述加密协同处理器验证所述加密后的代码是否由预定义的多个受信实体中的实体进行签名。
13.根据权利要求11或12所述的方法,其中,所述加密后的代码由所述客户端应用程序从由实体操作的服务接收,并且所述客户端应用程序与所述实体相关联。
14.根据权利要求13所述的方法,其中,对所述加密后的代码进行解密还包括:使用所述加密协同处理器的根密钥对所述加密后的代码进行解密,所述加密协同处理器的根密钥与所述实体相关联。
15.根据权利要求13或14所述的方法,其中,所述加密后的数据和所述加密后的代码不包括所述加密算法的标识符。
16.根据权利要求13至15所述的方法,其中,所述加密协同处理器被配置为支持从预定义的多个加密算法中进行选择以执行加密操作,并且所述加密算法被排除在所述预定义的多个加密算法之外。
17.一种计算机程序,包括指令,所述指令在计算设备中的受信执行环境中执行时,使所述计算设备至少执行:
经由与处理器的不受信执行环境的接口来接收加密后的代码,所述加密后的代码实施加密算法;
对所述加密后的代码进行解密;
执行解密后的代码以生成密码,所述密码包括使用所述加密算法加密后的信息;以及
经由所述接口返回所述密码。
18.根据权利要求17所述的计算机程序,其中,所述计算设备还包括加密协同处理器,并且所述指令还使所述计算设备至少使用所述加密协同处理器对所述加密后的代码的签名进行验证。
19.根据权利要求17至18所述的计算机程序,其中,所述受信执行环境包括在所述处理器的安全虚拟处理器上执行的安全操作系统。
20.根据权利要求17至19所述的计算机程序,其中,所述密码对应于支付交易,并且所述密码包括有限使用支付凭证。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962914272P | 2019-10-11 | 2019-10-11 | |
US201962914275P | 2019-10-11 | 2019-10-11 | |
US62/914,272 | 2019-10-11 | ||
US62/914,275 | 2019-10-11 | ||
US16/668,973 US11341280B2 (en) | 2019-10-11 | 2019-10-30 | Executing entity-specific cryptographic code in a cryptographic coprocessor |
US16/668,973 | 2019-10-30 | ||
US16/669,002 | 2019-10-30 | ||
US16/669,002 US20210111901A1 (en) | 2019-10-11 | 2019-10-30 | Executing entity-specific cryptographic code in a trusted execution environment |
PCT/US2020/053520 WO2021071719A1 (en) | 2019-10-11 | 2020-09-30 | Executing entity-specific cryptographic code in a cryptographic coprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114556344A true CN114556344A (zh) | 2022-05-27 |
Family
ID=75437590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080071365.7A Pending CN114556344A (zh) | 2019-10-11 | 2020-09-30 | 在加密协同处理器中执行针对实体特定的加密代码 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP4042630A4 (zh) |
JP (1) | JP7385025B2 (zh) |
KR (1) | KR20220069042A (zh) |
CN (1) | CN114556344A (zh) |
WO (1) | WO2021071719A1 (zh) |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001125481A (ja) | 1999-10-25 | 2001-05-11 | Toshiba Corp | 暗号通信端末、暗号通信センター装置及び暗号通信システム並びに記録媒体 |
JP2001338271A (ja) | 2000-03-23 | 2001-12-07 | Matsushita Electric Ind Co Ltd | Icカード及びicカード利用システム |
DE10107373A1 (de) | 2001-02-16 | 2002-08-29 | Infineon Technologies Ag | Sicherheitsmodul mit flüchtigem Speicher zur Speicherung eines Algorithmuscodes |
US7657033B2 (en) * | 2004-12-10 | 2010-02-02 | Fiske Software Llc | Cryptography related to keys |
KR20090059602A (ko) * | 2007-12-07 | 2009-06-11 | 한국전자통신연구원 | 세션 메모리 버스를 구비한 암호화 장치 |
US9026803B2 (en) | 2009-11-30 | 2015-05-05 | Hewlett-Packard Development Company, L.P. | Computing entities, platforms and methods operable to perform operations selectively using different cryptographic algorithms |
CN102546562A (zh) | 2010-12-22 | 2012-07-04 | 腾讯科技(深圳)有限公司 | 在web中传输数据时进行加解密的方法及系统 |
CN103297958B (zh) * | 2012-02-22 | 2017-04-12 | 华为技术有限公司 | 建立安全上下文的方法、装置及系统 |
US10243727B2 (en) * | 2013-10-31 | 2019-03-26 | Ati Technologies Ulc | Method and system for constant time cryptography using a co-processor |
-
2020
- 2020-09-30 JP JP2022520312A patent/JP7385025B2/ja active Active
- 2020-09-30 KR KR1020227013092A patent/KR20220069042A/ko not_active Application Discontinuation
- 2020-09-30 WO PCT/US2020/053520 patent/WO2021071719A1/en unknown
- 2020-09-30 EP EP20874322.9A patent/EP4042630A4/en active Pending
- 2020-09-30 CN CN202080071365.7A patent/CN114556344A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7385025B2 (ja) | 2023-11-21 |
WO2021071719A1 (en) | 2021-04-15 |
JP2022551586A (ja) | 2022-12-12 |
KR20220069042A (ko) | 2022-05-26 |
EP4042630A1 (en) | 2022-08-17 |
EP4042630A4 (en) | 2023-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181720B (zh) | 基于可信执行环境的业务处理方法及装置 | |
US8495383B2 (en) | Method for the secure storing of program state data in an electronic device | |
US7571329B2 (en) | Method of storing unique constant values | |
US20140096213A1 (en) | Method and system for distributed credential usage for android based and other restricted environment devices | |
US11783091B2 (en) | Executing entity-specific cryptographic code in a cryptographic coprocessor | |
EP3555786B1 (en) | Secure provisioning of unique time-limited certificates to virtual application instances in dynamic and elastic systems | |
US10826694B2 (en) | Method for leakage-resilient distributed function evaluation with CPU-enclaves | |
CN107453880B (zh) | 一种云数据安全存储方法和系统 | |
CN110889696A (zh) | 一种基于sgx技术的联盟区块链秘钥存储方法、装置、设备及介质 | |
CN102571329A (zh) | 密码密钥管理 | |
US20140140504A1 (en) | System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction | |
WO2024198933A1 (zh) | 私钥保护和服务端访问方法、系统、设备及存储介质 | |
EP3739489B1 (en) | Devices and methods of managing data | |
US11483136B2 (en) | Wrapped keys with access control predicates | |
US20210111901A1 (en) | Executing entity-specific cryptographic code in a trusted execution environment | |
EP3836478A1 (en) | Method and system of data encryption using cryptographic keys | |
KR20140071775A (ko) | 암호키 관리 시스템 및 방법 | |
JP7385025B2 (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
WO2022199796A1 (en) | Method and computer-based system for key management | |
CN115081000B (zh) | 保护远程目标程序源码的方法、系统、设备和存储介质 | |
JP6830635B1 (ja) | データ管理方法 | |
JP2018026651A (ja) | プログラムを保護する方法 | |
KR20070032073A (ko) | 온라인 서비스를 사용하여 직접 증명 비밀키를 디바이스에전달하는 방법 | |
Pozdena | The History of Information Security | |
Nepal et al. | Portable Key Management Service for Cloud Storage |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40066643 Country of ref document: HK |