CN111149106B - 使用多个设备证书进行密钥认证的设备和方法 - Google Patents
使用多个设备证书进行密钥认证的设备和方法 Download PDFInfo
- Publication number
- CN111149106B CN111149106B CN201780093013.XA CN201780093013A CN111149106B CN 111149106 B CN111149106 B CN 111149106B CN 201780093013 A CN201780093013 A CN 201780093013A CN 111149106 B CN111149106 B CN 111149106B
- Authority
- CN
- China
- Prior art keywords
- certificate
- key pair
- authentication
- application
- operating system
- 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
Links
Images
Classifications
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3242—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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- 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/3271—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 using challenge-response
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
一个方面,提供一种具有密钥认证特征的设备。所述设备包括存储在所述设备的存储器中的操作系统,其中所述操作系统包括安全环境,所述安全环境包括可信应用;以及两个或两个以上存储在所述设备的存储器中的设备证书,其中每个设备证书与设备密钥对相关联。所述可信应用用于处理密钥对生成请求和密钥对认证请求,以读取优选设备证书指示。然后,基于优选设备证书指示,使用所述两个或两个以上的设备证书中的一个设备证书及其关联的设备密钥对签署响应于该密钥对认证请求生成的认证证书。
Description
技术领域
本申请涉及加密和密钥生成领域,尤其涉及密钥认证。
背景技术
现代电子设备常常可能对已经在设备上生成的密钥进行密钥认证。密钥可以由可信硬件保护,例如在可信执行环境(Trusted Execution Environment,TEE)中。密钥认证可以采用认证证书的形式,其中主体公钥信息是所生成的密钥对的公钥部分,并且该认证证书中存在描述该密钥对属性的扩展。该认证证书还可以由在制造期间注册到该设备的设备证书签署。
目前,在生成密钥对且需要进行密钥认证时,认证证书的签署机制是将挑战设置为密钥对生成的参数之一。挑战参数通常由请求使用认证证书生成密钥的一方生成。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下文的详细说明中做进一步描述。本发明内容不旨在识别请求保护的主题的关键特征或必要特征,也不旨在用于限制请求保护的主题的范围。
发明人认为给设备配置一个以上的设备证书是有好处的。在这种情况下,指出应该使用哪个设备证书来签署认证证书在先进技术方案中是具有挑战性的。
因此,本发明的一个目的是提供一种具有改进的密钥对认证功能的设备。
本发明的另一个目的是提供密钥对认证方法和选择用于密钥对认证的设备证书的方法。
上述及其它目的可通过独立权利要求的特征来实现。其它的实现形式在从属权利要求、具体说明和附图中显而易见。
第一方面,提出一种设备。所述设备可以为移动设备,例如为具有密钥认证功能的移动设备。所述设备包括:处理器和存储器;存储在所述存储器中的操作系统,其中,所述操作系统包括安全环境,所述安全环境包括可信应用;以及存储在所述存储器中的两个或两个以上的设备证书,其中每个设备证书与设备密钥对相关联。当所述操作系统在所述处理器上运行时,所述可信应用用于:接收密钥对生成请求;生成密钥对以响应所述密钥对生成请求;接收带有优选设备证书指示的密钥对认证请求;生成认证证书以响应所述密钥对认证请求;根据所述优选设备证书指示,使用所述两个或两个以上的设备证书中的一个设备证书及其关联的设备密钥对签署所述认证证书。
设备证书及其关联的密钥对可以在制成后存储于所述设备中。组装所述设备时,所述设备密钥对可以在硬件安全模块(Hardware Security Module,HSM)或可信执行环境(Trusted Execution Environment,TEE)等安全环境中生成,所述与设备密钥对相关联的设备证书可以在证书授权机构(certification authority,CA)进行注册,并且能够在设备制造期间安全地注入所述设备。
所述操作系统可以包括在所述设备的正常操作中使用的其它应用和应用程序编程接口,并且所述可信应用可以为用于签署密钥认证证书的Keymaster可信应用。
第一方面及其实现方式的设备提供了一种具有多个(两个或两个以上)用于签署密钥认证的设备证书的设备。本发明的各方面还提供了一种用于指示应该使用哪个设备证书来签署认证的机制。
在第一方面的设备的一种实现方式中,所述设备还包括存储在所述存储器中的应用。所述应用用于将所述密钥对生成请求和所述带有优选设备证书指示的密钥对认证请求发送至所述操作系统。所述可信应用用于从所述应用接收所述密钥对生成请求和所述带有优选设备证书指示的认证请求。
所述应用可以包括用于生成所述密钥对生成请求和认证请求的应用逻辑。所述优选设备证书指示可以为特定证书或通用证书类,比如“供应商证书”。所述指示也可以包括一个以上的优选设备证书。
这就使得应用能够请求使用诸如预先选择的设备证书生成密钥。
结合上述实现方式,在另一种实现形式中,所述应用发送的所述密钥对认证请求包括挑战消息,所述挑战消息包括指示优选设备证书的前缀。
所述挑战消息可以包括字符串,所述字符串将品牌名称命名为表示特定品牌颁发的设备证书的前缀,或者简单地将“供应商”命名为表示供应商颁发的设备证书的前缀。
除第一方面的上述实现方式外,在另一种可能的实现形式中,所述应用发送的所述密钥对认证请求包括挑战消息,所述操作系统包括用于将指示优选设备证书的前缀添加到所述挑战消息中的应用。
所述操作系统中的应用可以为用于将前缀添加到传入的挑战消息中的服务应用。在另一个示例中,如果所述设备证书已经包含带有这种指示的前缀,那么根据本实现方式将前缀添加到所述挑战消息中可覆盖先前分配的优选设备证书。
在本实现方式中,设备证书的选择将转移到操作系统的偏好,而非在设备上单独运行的应用的偏好。所述操作系统中包括的应用可以将一个以上的优选设备证书添加到所述挑战消息中。然后所述挑战消息被送往所述安全环境中的可信应用。
在第一方面的另一种实现形式中,所述挑战消息还包括密码哈希函数或消息鉴权码,所述密码哈希函数或所述消息鉴权码用于确认所述挑战消息中有指示优选设备证书的前缀。当所述操作系统在所述处理器上运行时,所述可信应用用于:验证所述密码哈希函数或所述消息鉴权码;如果验证成功,则根据指示优选设备证书的所述挑战消息前缀,使用所述两个或两个以上的设备证书中的一个设备证书及其关联的设备密钥对签署所述认证证书。
所述哈希函数或消息鉴权能够降低错误选择设备证书的概率。
在替代性的实现方式中,可以通过外部应用(例如通过网络)将所述密钥对生成请求和所述密钥对认证请求发送至所述可信应用。
在上述实现方式中,可以单独地将所述认证证书发回所述应用。当所述应用在所述密钥对成功生成后请求所述认证证书时,可以执行这一操作。
在第一方面的另一种实现形式中,所述设备包括应用程序编程接口(API)的堆栈,所述应用程序编程接口用于生成优选设备证书指示,并在所述可信应用接收到所述密钥对认证请求之前将所述优选设备证书指示添加到所述密钥对认证请求中。
在本实现方式中,API调用被添加到指示优选设备证书的所有安全层中。本实现方式不需要向所述可信应用发送单独的挑战消息,因为可以通过API调用来要求密钥的生成和认证。
在第一方面的另一种实现形式中,所述设备密钥对包括与所述关联设备证书绑定的公钥,以及仅对所述可信应用可用的私钥。
所述设备密钥对的私钥可在制造期间注入设备后存储于安全环境中。
在第一方面的另一种实现形式中,所述存储器包括仅可由所述可信应用访问的安全段。所述设备密钥对的私钥存储在所述存储器的安全段中。
在第一方面的另一种实现形式中,所述处理器可在安全模式下运行。当所述操作系统在所述处理器上运行时,所述操作系统用于启动所述处理器的安全模式并执行所述可信应用,以生成和签署所述认证证书。
在另一种可能的实现方式中,所述处理器只能在安全模式下访问所述存储器的安全段。
在第一方面的另一种实现形式中,所述两个或两个以上的设备证书包括从下组中选择的证书:供应商特定证书、操作系统特定证书、默认证书和通用供应商证书。
供应商特定证书可以包括与设备制造商相关联的证书。通用供应商证书可以由通用标记,例如“供应商”一词,来进行标识。操作系统特定证书可引用操作系统的名称。默认证书是指在没有优选设备证书指示的情况下或优选设备证书不可用的情况下使用的证书。
在第一方面的另一种实现形式中,所述操作系统是基于Linux内核的移动操作系统。
安卓(安卓是谷歌公司的商标)是基于Linux内核的操作系统的一个示例。在安卓7及更高版本中,密钥认证机制可用于提供相应密钥对确实受到硬件保护的认证。从而,在现有安卓API不变的情况下能够进行设备证书的选择。
第二方面,提出一种由存储在操作系统的安全环境中的可信应用进行密钥对认证的方法。所述方法包括:接收密钥对生成请求;生成密钥对以响应所述密钥对生成请求;接收带有优选设备证书指示的密钥对认证请求;生成认证证书以响应所述密钥对认证请求,并检查所述优选设备证书的可用性。如果所述优选设备证书可用,则所述方法还包括使用所述优选设备证书及其关联的设备密钥对签署所述认证证书。如果所述优选设备证书不可用,则所述方法包括使用默认设备证书及其关联的设备密钥对签署所述认证证书。
第二方面的方法可由存储在安卓操作系统的可信执行环境(Trusted ExecutionEnvironment,TEE)中的可信应用执行。
在第二方面的方法的一种可能的实现方式中,所述方法包括接收作为所述密钥对认证请求一部分的挑战消息,所述挑战消息包括指示优选设备证书的前缀。
在第二方面的另一种可能的实现形式中,所述挑战消息还包括密码哈希函数或消息鉴权码,所述密码哈希函数或所述消息鉴权码用于确认所述挑战消息中有指示优选设备证书的前缀。所述方法还包括验证所述密码哈希函数或所述消息鉴权码。如果验证成功,则所述方法还包括检查所述前缀中指示的所述优选设备证书的可用性。如果验证不成功,则所述方法包括使用默认设备证书及其关联的设备密钥对签署所述认证证书。
在第二方面的另一种实现形式中,所述方法包括在生成所述认证证书之前启动安全操作模式。
可以激活所述处理器的安全操作模式,以便能够访问生成和/或签署密钥对认证所需的安全内存段。
第三方面,提供一种由应用指示优选设备证书的方法。所述方法包括:创建密钥对生成请求;创建包括挑战消息的密钥对认证请求;将前缀添加到所述挑战消息,其中所述前缀包括优选设备证书指示;将所述密钥对生成请求与所述密钥对认证请求一起发送至存储在操作系统的安全环境中的可信应用。
第三方面的方法可以由例如第一方面及其实现方式中的设备所包含的应用来执行。所述方法使得TEE等安全环境中存储的可信应用可以接收和识别的请求能够得到创建,其中所述可信应用包括两个或两个以上的设备证书用于签署所述认证。
在第三方面的方法的一种可能的实现方式中,所述方法包括将密码哈希函数或消息鉴权码添加到所述挑战消息中,所述密码哈希函数或所述消息鉴权码用于确认所述挑战消息中有包括优选设备证书指示的前缀。
第四方面,提出一种计算机程序。所述计算机程序包括程序代码,当在计算机上执行所述计算机程序时,所述程序代码用于执行第二和第三方面的实现方式中的任一种所述的方法。
结合下文的详细说明和附图能够更好的理解本发明的许多特征,从而更易领会这些特征。
附图说明
结合下文的详细说明和附图能够更好地理解本说明书,其中:
图1为根据一实施例的一种设备的方框图;
图2a为根据一实施例的一种包含应用的设备的方框图;
图2b为根据另一实施例的一种包含应用的设备的方框图;
图3为一种设备硬件的方框图;
图4为根据一实施例的一种方法的流程图;
图5为根据一实施例的另一种方法的流程图。
相同的标记用于指示附图中的相同部分。
具体实施方式
下面结合附图提供的详细说明旨在对实施例进行说明,实施例的构造或利用形式不仅限于此。然而,相同或等同的功能和结构可通过不同的实施例实现。
在下文描述中,公开了用于密钥认证的设备和方法的实施例。
本公开的基本概念为:操作系统的安全可信应用可以有两个或两个以上的可用于签署密钥对认证的设备证书。当该两个或两个以上的不同设备证书签署密钥对认证时,这些设备证书可指示不同的安全级别。不同的安全级别的指示可以是针对设备密钥对和证书注入的不同安全级别,或者针对设备本身的设备密钥对的不同保护级别。前一种安全级别可能因制造商及其注入过程而异,而后一种安全级别可能会因保护类型而异,例如仅由TEE保护,还由安全元件保护,等等。这些安全级别可以在信息的设备证书链或认证实践声明文档中指示。因此,将密钥对认证请求发送至该可信应用时,该密钥对认证请求中可携带应该使用哪个设备证书的指示。该指示可以为该请求中挑战参数的一部分。可通过多种方式提供指示,包括但不限于:提供支持来自该应用的指示的应用程序编程接口(API)堆栈,或在各个阶段将该指示嵌入到该挑战参数中,以指示应该使用哪个设备证书。
图1示意性地示出了设备100的实施例。该设备100可以为移动设备,比如具有密钥认证功能的移动设备,或者密钥认证可用的任何其它设备。图1为该设备100的操作系统(operating system,OS)101的软件特征的图示。该设备100包括处理器和存储器,并且该OS101存储在该存储器中。OS 101包括安全环境102,该安全环境102包括可信应用(trustedapplication,TA)112。该存储器还存储有两个或两个以上的设备证书122,其中每个设备证书与设备密钥对相关联。在图1中的TA框112内示意性地示出了这些设备证书,这意味着TA112可以访问设备证书122。该存储器可存储两个以上的设备证书122。与该关联设备证书122绑定的设备密钥对可包括公钥以及仅可对TA 112可用的私钥。该设备密钥对的私钥可在被注入该设备之后或在制造期间被生成于该安全环境102中之后存储在该安全环境102中。
当该OS 101在该处理器上运行时,该TA 112用于:接收密钥对生成请求;生成密钥对以响应密钥对生成请求;接收带有优选设备证书122指示的密钥对认证请求;生成认证证书以响应密钥对认证请求;根据该优选设备证书指示,使用该两个或两个以上的设备证书122中的一个设备证书及其关联的设备密钥对签署该认证证书。TA 112可同时或单独接收该密钥对生成请求和认证请求。
该操作系统可包括在设备的正常操作中使用的其它应用和应用程序编程接口(application programming interface,API)104。可通过API 104将该密钥对生成请求和该密钥对认证请求下发至该TA 112。在实施例中,可通过该API 104使用优选设备证书122指示对该密钥对认证请求进行补充。可通过配置API 104的堆栈来生成优选设备证书122指示,在该TA 112接收到该指示之前将指示添加到该密钥对认证请求中来实现补充。
图2a示出了根据一个实施例的设备200。该设备200包括处理器和存储器。该设备200也包括类似于图1的OS 101的OS,还包括含有可信应用(trusted application,TA)112的安全环境102。该存储器还存储有两个或两个以上的设备证书,其中,每个设备证书与设备密钥对相关联。该设备200还包括存储在该存储器中的应用210。该应用210可以为在该处理器上运行的可以请求密钥对认证的任何应用。该应用210用于将该密钥对生成请求和该带有优选设备证书指示的密钥对认证请求发送至该OS 101。该TA 112从该应用210接收该密钥对生成请求和该带有优选设备证书指示的认证请求。在图2a所示的示例中,该认证请求还包括挑战消息211,该挑战消息带有前缀212,该前缀212指示用于认证的优选设备证书的选择。
带有该前缀212的挑战消息211可通过该应用(图中未示出)和该OS 101中的API104流向该TA 112。如果该OS 101为安卓操作系统,那么该TA 112就可以为Keymaster TA。当该TA 112接收该密钥对生成请求时,它可以检查该请求是否带有挑战消息211中的挑战参数。如果带有该挑战参数,那么该TA 112用于发起认证证书的生成。在认证证书的生成期间,TA112也可以扫描该挑战消息211以获取前缀。如果找到识别的前缀212,则该TA 112可以使用该信息来选择正确的设备证书以签署该认证证书。
图2a和2b也示意性地示出了在该设备200制造期间设备证书和密钥对221的注入。虚线框220示意性地示出了设备制造商。设备密钥对可在制造商220的安全环境例如硬件安全模块中生成,并且可在制造期间,从制造商220运营的特定证书授权机构(CA)为该密钥对注册设备证书。然后在设备装配线中,将该设备证书和该密钥对221安全地注入设备200。为了注入的安全性,可以存在几个保护层以确保该密钥对的私钥仅在该安全环境102中可用。
除上述示例实施例外,在该设备200的制造过程中,可在该安全环境102中生成相应的密钥对,同时该设备200到该CA存在安全连接。然后,该设备200可以使用安全连接直接从CA注册设备证书。在本替代方案中,该私钥仍然只在该安全环境102中可用。元件220和221(仍将该证书和该密钥对注入该设备)与制成后的设备200的正常操作无关。
图2b示出了根据另一实施例的设备200。该设备200包括处理器和存储器。图2b中的设备200类似于图2a中的设备200。区别在于,该应用210用于将密钥对生成请求和没有优选设备证书指示的密钥对认证请求发送至该OS 101。图2b所示的认证请求也包括挑战消息211,但是该OS 101中的应用204将前缀212’添加到该挑战消息中,该前缀212’指示用于认证的优选设备证书的选择。
用于添加该前缀212’的应用204可由该设备200上的供应商特定应用服务来建立。该服务可以向请求生成密钥的该应用210提供API,以指示该设备证书。例如,本实施例的设备可以提供构件用于设置设备证书别名:setDeviceCertificateAlias(字符串别名)。此处的别名与图2a所示的实施例中的前缀212相同,并且供应商特定服务将该别名添加到该挑战参数中。当该TA 112检查该挑战消息时,该TA 112可以在该前缀212’被包括在进一步扩展中之前将该前缀212’从该挑战消息中移除。在本实施例中,该前缀212’的使用可对外部应用可见。
如图2a和2b所示的挑战消息211还可以包括用于确认该挑战消息211中有前缀212或212’的密码哈希函数或消息鉴权码(message authentication code,MAC),该前缀212或212’用于指示优选设备证书。前缀指示的格式可以为“供应商”之类的简单字符串,也可以为类型长度值(Type Length Value,TLV)参数这样更复杂的字符串,其中该值可以为简单字符串,也可以为更复杂的值。为了检测前缀是否有意存在于该挑战消息211中,该挑战消息211可在其尾端包含一个MAC或哈希函数。这样就可以启用“误报”检测。在这种情况下,用于将前缀212或212’添加到该挑战消息211中的实体还可以用于添加包含MAC或哈希函数的后缀。例如,基于哈希的挑战可通过如下方式计算:
challenge_new=前缀|挑战|哈希(前缀|挑战)
当该TA 112检查该challenge_new参数并检测到该前缀212或212’存在时,该TA112还将检查挑战消息211中是否存在哈希或MAC以验证前缀212或212’是否是有意的,然后继续进行设备证书的选择。如果该哈希或MAC不存在,则该TA 112可以使用默认设备证书来签署该认证证书。在一个实施例中,该前缀212’和该哈希或MAC由该设备上的供应商特定服务添加,该TA 112则可以删除该前缀212’和该哈希或MAC,从而提取出原始挑战消息211。
其时该前缀212或212’与该设备证书相关联。例如,在导入供应商特定设备证书时,该前缀可以是“供应商”或供应商的名称。该前缀也可以为任意八位位组数据,包括TLV参数。该TA 112可用于将该前缀视作被验证为该挑战消息一部分的任意八位位组数据。还可以存在指示一个设备证书的多个前缀。例如,供应商特定设备证书可以同时用“供应商”前缀和供应商本身的名称(例如“华为”)指示。
图3从硬件角度示出了根据一个实施例的设备300。该设备300可以为根据上述任一实施例的设备,比如图1、图2a、图2b其中一个所示的设备。该设备300包括处理器301和存储器302。该存储器302包括仅可由该可信应用访问的安全段322。在一个实施例中,该设备密钥对的私钥存储在该存储器302的安全段322中。
本实施例中的处理器301可在安全模式下运行。当该操作系统在该处理器上运行时,该操作系统用于启动该处理器的安全模式并执行该可信应用,以生成并签署该认证证书。该处理器301还包括安全区域311,如可信执行环境(trusted execution environment,TEE),该安全区域311用于隔离和保护加载到其中的数据。当该处理器301在该可信应用启动的安全模式下运行时,可以激活该安全区域311。
图4为一种由存储在操作系统的安全环境中的可信应用进行密钥对认证的方法的流程图。可在设备(如图1至3中描述的设备)上运行包括该可信应用的操作系统。
该方法包括:401:接收密钥对生成请求;以及402:生成密钥对以响应该密钥对生成请求。该可信应用可从外部应用或该操作系统中的应用接收该密钥对生成请求。该方法还包括:403:接收带有优选设备证书指示的密钥对认证请求;以及404:生成认证证书以响应该密钥对认证请求。该方法可包括接收作为该密钥对认证请求一部分的挑战消息,其中,该挑战消息包括指示优选设备证书的前缀。
需要使用设备证书签署该认证证书。因此该方法还包括405:检查该优选设备证书的可用性。如果该优选设备证书可用,则在步骤415中使用该优选设备证书及其关联的设备密钥对签署该认证证书。如果该优选设备证书不可用,则该方法还包括425:使用默认设备证书及其关联的设备密钥对签署该认证证书。
在示例实施例中,该挑战消息还包括密码哈希函数或消息鉴权码,该密码哈希函数或该消息鉴权码用于确认该挑战消息中有指示优选设备证书的前缀。因此,该方法可包括可选步骤413:验证该密码哈希函数或该消息鉴权码。如果验证失败,则该方法可包括使用默认设备证书及其关联的设备密钥对直接签署该认证证书。
在一个实施例中,该方法还可以包括在生成认证证书之前启动安全操作模式。该安全操作模式可以为中央处理器的安全模式。
在一个示例实施例中,该方法还可以包括将已签署的认证证书和设备证书发回提出请求的应用。这些证书可以单独或同时以证书链的形式发回该应用。
图5示出了一种由应用指示优选设备证书的方法。例如,执行该选择相关方法的应用可以为图2a所示的实施例的应用210。
该方法包括:501:创建密钥对生成请求;502:创建包括挑战消息的密钥对认证请求;以及503:将前缀添加到该挑战消息中。该前缀包括优选设备证书指示。在一种替代方法中,该前缀可稍后由在该操作系统中运行的应用添加。
该方法还包括504:将该密钥对生成请求与该密钥对认证请求一起发送至存储在操作系统的安全环境中的可信应用。该方法包括将密码哈希函数或消息鉴权码添加到该挑战消息中的可选步骤,其中该密码哈希函数或消息鉴权码用于确认该挑战消息中有包括优选设备证书指示的前缀。在发送请求(即步骤504)之前执行该可选步骤。
此外,公开了一种用于执行图5中所示的方法的装置。
本文描述的功能至少部分地可由一个或多个计算机程序产品组件如例如软件组件执行。根据一实施例,该系统100包括处理器,该处理器由程序代码配置用于执行上述操作和功能的实施例。可替代地或附加地,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件执行。作为示例而非限制,可使用的硬件逻辑组件的示例性类型包括现场可编程门阵列(Field-programmable Gate Array,FPGA)、程序特定集成电路(Program-specific Integrated Circuits,ASIC)、程序特定标准产品(Program-specific StandardProduct,ASSP)、系统芯片系统(System-on-a-chip system,SOC)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)和图形处理单元(Graphics ProcessingUnit,GPU)。
可以在不失去所寻求的效果的情况下扩展或改变本文给出的任何范围或设备值。除非明确禁止,否则任何实施例都可以与另一实施例相结合。
虽然已经以特定于结构特征和/或动作的语言描述了主题,但是应该理解的是,所附权利要求书定义的主题不必局限于上文描述的具体特征或动作。更准确地说,上述具体特征和动作是作为实现权利要求的示例公开的,其它等效的特征和动作旨在包含于权利要求的范围内。
应当理解,上述的有益效果和优势可能涉及一个实施例,也可能涉及多个实施例。实施例不仅限于解决任一或所有所提出的问题的实施例,也不仅限于有任一或所有所声明的有益效果和优势的实施例。还应当理解,所提到的“一个”项目可能涉及这些项目中的一个或多个项目。
本文描述的方法步骤可以按任何合适的顺序执行,也可以在适当的情况下同时执行。此外,在不脱离本文描述的主题的精神和范围的情况下,可以从任一方法中删除各个块。上述任一实施例的各方面可以与上述任一其它实施例的各方面相结合,以形成不失去所寻求的效果的另一实施例。
本文使用的术语“包括”表示包括方法、块或被识别的元件,但是此类块或元件不包括排它列表,方法或装置可包含另外的块或元件。
应当理解,上述说明仅作为示例给出,并且本领域技术人员可以进行各种修改。上述说明书、示例和数据提供了示例性实施例的结构和用法的完整说明。尽管上文已经以一定程度的特定性或者结合一个或多个单独的实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的精神或范围的情况下对所公开的实施例进行多种更改。
Claims (15)
1.一种设备,其特征在于,包括:
处理器和存储器;
存储在所述存储器中的操作系统,其中,所述操作系统包括安全环境,所述安全环境包括可信应用;以及
存储在所述存储器中的两个或两个以上的设备证书,其中每个设备证书与设备密钥对相关联;
其中,当所述操作系统在所述处理器上运行时,所述操作系统用于:
接收应用发起的密钥对生成请求,所述应用存储在所述存储器中;
生成密钥对以响应所述密钥对生成请求;
接收所述应用发起的带有优选设备证书指示的密钥对认证请求;
生成认证证书以响应所述密钥对认证请求;
根据所述优选设备证书指示,使用所述两个或两个以上的设备证书中的一个设备证书及其关联的设备密钥对签署所述认证证书。
2.根据权利要求1所述的设备,其特征在于,
所述可信应用用于从所述应用接收所述密钥对生成请求和所述带有优选设备证书指示的认证请求。
3.根据权利要求1所述的设备,其特征在于,所述应用发送的所述密钥对认证请求包括挑战消息,所述挑战消息包括指示优选设备证书的前缀。
4.根据权利要求1所述的设备,其特征在于,所述应用发送的所述密钥对认证请求包括挑战消息,并且所述操作系统包括用于将指示优选设备证书的前缀添加到所述挑战消息中的应用。
5.根据权利要求3或4任一项所述的设备,其特征在于,
所述挑战消息还包括密码哈希函数或消息鉴权码,其中,所述密码哈希函数或所述消息鉴权码用于确认所述挑战消息中有指示优选设备证书的前缀,并且当所述操作系统在所述处理器上运行时,所述可信应用用于:
验证所述密码哈希函数或所述消息鉴权码,如果验证成功,则
根据指示所述优选设备证书的所述挑战消息前缀,使用所述两个或两个以上的设备证书中的一个设备证书及其关联的设备密钥对签署所述认证证书。
6.根据权利要求1所述的设备,其特征在于,包括应用程序编程接口API的堆栈,所述应用程序编程接口用于生成优选设备证书指示,并且在所述可信应用接收所述密钥对认证请求之前将所述优选设备证书指示添加到所述密钥对认证请求中。
7.根据权利要求1至6中任一项所述的设备,其特征在于,所述设备密钥对包括与所述关联的设备证书绑定的公钥,和仅对所述可信应用可用的私钥。
8.根据权利要求7所述的设备,其特征在于,所述存储器包括仅可由所述可信应用访问的安全段,并且所述设备密钥对中的私钥存储在所述存储器的安全段中。
9.根据权利要求1至8中任一项所述的设备,其特征在于,所述处理器可在安全模式下运行,并且当所述操作系统在所述处理器上运行时,所述操作系统用于启动所述处理器的安全模式并执行所述可信应用,以生成和签署所述认证证书。
10.根据权利要求1至9中任一项所述的设备,其特征在于,所述两个或两个以上的设备证书包括从下组中选择的证书:供应商特定证书、操作系统特定证书、默认证书和通用供应商证书。
11.根据权利要求1至10中任一项所述的设备,其特征在于,所述操作系统是基于Linux内核的移动操作系统。
12.一种由存储在操作系统的安全环境中的可信应用进行密钥对认证的方法,其特征在于,该方法包括:
接收应用发起的密钥对生成请求;
生成密钥对以响应所述密钥对生成请求;
接收所述应用发起的带有优选设备证书指示的密钥对认证请求;
生成认证证书以响应所述密钥对认证请求;
检查所述优选设备证书的可用性;
如果所述优选设备证书可用,则使用所述优选设备证书及其关联的设备密钥对签署所述认证证书;
如果所述优选设备证书不可用,则使用默认设备证书及其关联的设备密钥对签署所述认证证书。
13.根据权利要求12所述的方法,其特征在于,包括接收作为所述密钥对认证请求一部分的挑战消息,其中所述挑战消息包括指示优选设备证书的前缀。
14.根据权利要求13所述的方法,其特征在于,所述挑战消息还包括密码哈希函数或消息鉴权码,所述密码哈希函数或消息鉴权码用于确认所述挑战消息中有指示优选设备证书的前缀,所述方法还包括:
验证所述密码哈希函数或所述消息鉴权码;
如果验证成功,则检查所述前缀中指示的所述优选设备证书的可用性,
如果验证失败,则使用默认设备证书及其关联的设备密钥对签署所述认证证书。
15.根据权利要求12所述的方法,其特征在于,包括在生成所述认证证书之前启动安全操作模式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/070407 WO2019029817A1 (en) | 2017-08-11 | 2017-08-11 | DEVICES AND METHODS FOR KEY CERTIFICATE WITH MULTIPLE DEVICE CERTIFICATES |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111149106A CN111149106A (zh) | 2020-05-12 |
CN111149106B true CN111149106B (zh) | 2022-09-02 |
Family
ID=59702681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780093013.XA Active CN111149106B (zh) | 2017-08-11 | 2017-08-11 | 使用多个设备证书进行密钥认证的设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11374766B2 (zh) |
EP (1) | EP3659058B1 (zh) |
CN (1) | CN111149106B (zh) |
WO (1) | WO2019029817A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3659058B1 (en) * | 2017-08-11 | 2023-07-26 | Huawei Technologies Co., Ltd. | Devices and methods for key attestation with multiple device certificates |
WO2020151831A1 (en) * | 2019-01-25 | 2020-07-30 | Huawei Technologies Co., Ltd. | Method for end entity attestation |
KR20210017083A (ko) | 2019-08-06 | 2021-02-17 | 삼성전자주식회사 | 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법 |
DE102019216527A1 (de) * | 2019-10-28 | 2021-04-29 | Robert Bosch Gmbh | Gerät, system und verfahren zum nachweis eines integritätszustands eines geräts |
US11822664B2 (en) * | 2020-06-22 | 2023-11-21 | Apple Inc. | Securely signing configuration settings |
WO2022171263A1 (en) * | 2021-02-09 | 2022-08-18 | Huawei Technologies Co., Ltd. | Key attestation methods, computing devices having key attestation abilities, and their provisioning |
US20230344817A1 (en) * | 2022-04-20 | 2023-10-26 | Dell Products L.P. | User attestation in distributed control plane |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762887B (zh) | 2013-03-06 | 2022-03-11 | 英特尔公司 | 用于虚拟机的测量的信任根 |
US9704160B2 (en) * | 2014-09-22 | 2017-07-11 | Mastercard International Incorporated | Trusted execution environment for transport layer security key pair associated with electronic commerce and card not present transactions |
US10193700B2 (en) * | 2015-02-27 | 2019-01-29 | Samsung Electronics Co., Ltd. | Trust-zone-based end-to-end security |
EP3497878B1 (en) * | 2016-09-06 | 2020-05-20 | Huawei Technologies Co., Ltd. | Apparatus and methods for distributed certificate enrollment |
US10749690B2 (en) * | 2017-03-10 | 2020-08-18 | Samsung Electronics Co., Ltd. | System and method for certificate authority for certifying accessors |
EP3659058B1 (en) * | 2017-08-11 | 2023-07-26 | Huawei Technologies Co., Ltd. | Devices and methods for key attestation with multiple device certificates |
-
2017
- 2017-08-11 EP EP17757706.1A patent/EP3659058B1/en active Active
- 2017-08-11 CN CN201780093013.XA patent/CN111149106B/zh active Active
- 2017-08-11 US US16/638,291 patent/US11374766B2/en active Active
- 2017-08-11 WO PCT/EP2017/070407 patent/WO2019029817A1/en unknown
Non-Patent Citations (3)
Title |
---|
Key Attestation;匿名;《https://web.archive.org/web/20170716112628/https://developer.android.com/training/articles/security-key-attestation.html》;20170716;第1-13页 * |
KeyGenParameterSpec.Builder;匿名;《http://web.archive.org/web/20170714024741/https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.Builder.html》;20170714;第1-10页 * |
Web Authentication:An API for accessing Public Key Credentials;匿名;《https://www.w3.org./TR/2017/WD-webauthn-20170505/#android-key》;20170505;引言、第3节、第5节、第7.4节 * |
Also Published As
Publication number | Publication date |
---|---|
US20200186357A1 (en) | 2020-06-11 |
US11374766B2 (en) | 2022-06-28 |
WO2019029817A1 (en) | 2019-02-14 |
EP3659058C0 (en) | 2023-07-26 |
EP3659058B1 (en) | 2023-07-26 |
EP3659058A1 (en) | 2020-06-03 |
CN111149106A (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111149106B (zh) | 使用多个设备证书进行密钥认证的设备和方法 | |
AU2019101613A4 (en) | Method and apparatus for processing transaction requests | |
US20220207130A1 (en) | Unlock and recovery for encrypted devices | |
US10148643B2 (en) | Authenticating or controlling software application on end user device | |
EP3061027B1 (en) | Verifying the security of a remote server | |
US9633210B2 (en) | Keying infrastructure | |
JP6371919B2 (ja) | セキュアなソフトウェアの認証と検証 | |
EP3800909A1 (en) | Remote management method, and device | |
CN110245518B (zh) | 一种数据存储方法、装置及设备 | |
CN106293691A (zh) | 安全引导证书的自动发现和安装 | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
CN105592011A (zh) | 一种账号登录方法及装置 | |
US10158990B2 (en) | SMS message reading control method and terminal | |
CN104751049A (zh) | 一种应用程序安装方法及移动终端 | |
US10713381B2 (en) | Method and apparatus for securely calling fingerprint information, and mobile terminal | |
CN112235321A (zh) | 短信验证码防刷方法及装置 | |
CN108777691B (zh) | 网络安全防护方法及装置 | |
WO2014200531A1 (en) | Roaming internet-accessible application state across trusted and untrusted platforms | |
US10080139B2 (en) | Information sending method and apparatus, terminal device, and system | |
CN112632573A (zh) | 智能合约执行方法、装置、系统、存储介质及电子设备 | |
CN103559430A (zh) | 基于安卓系统的应用账号管理方法和装置 | |
CN111046440B (zh) | 一种安全区域内容的篡改验证方法及系统 | |
CN109271758B (zh) | 防止So文件被盗用的方法、设备、装置及服务器 |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Peka Letinin Inventor after: Li Qiming Inventor after: Sampur Soviet Inventor after: Lian Gang Inventor after: Shan Zhihua Inventor before: Peka Letinin Inventor before: Li Qiming Inventor before: Sampur Soviet Inventor before: Lian Gang Inventor before: Shan Zhihua |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |