CN113508380A - 用于终端实体认证的方法 - Google Patents
用于终端实体认证的方法 Download PDFInfo
- Publication number
- CN113508380A CN113508380A CN201980089088.XA CN201980089088A CN113508380A CN 113508380 A CN113508380 A CN 113508380A CN 201980089088 A CN201980089088 A CN 201980089088A CN 113508380 A CN113508380 A CN 113508380A
- Authority
- CN
- China
- Prior art keywords
- key
- random
- signature
- private key
- public 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.)
- Pending
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
-
- 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
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
-
- 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/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
- H04L9/3252—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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
一种用于认证终端实体(1)上运行的应用程序(4)的控制流完整性(Control Flow Integrity,简称CFI)的方法,其中,由密钥管理模块(Key Management Module,简称KMM)生成包含私钥(6)和公钥(7)的非对称密钥对,然后使用终端实体(1)唯一的设备密钥(3)对公钥(7)进行签名(103),从而生成(102)认证所述私钥(7)归所述终端实体(1)所有的公钥证书(8)。所述非对称密钥对基于所述应用程序(4)的执行代码(5)和所述设备密钥(3)。使用专用签名模块(20)中的私钥(6)对关于所述应用程序(4)的CFI的认证声明(9)进行签名。
Description
技术领域
本发明涉及数据安全,更具体地,涉及用于认证终端实体上运行的应用程序的控制流完整性(Control Flow Integrity,简称CFI)的方法和系统。
背景技术
终端实体认证是例如网络服务器等依赖方验证正在请求服务的实体的某些属性的过程。例如,终端实体可以是符合数字权限管理(Digital Rights Management,简称DRM)的移动设备,该移动设备足够可信以安全方式解密内容。在此DRM示例中,依赖方(例如DRM许可证服务器)可能希望验证可信供应商列表中的移动设备(例如,该设备的property.vendor.ID未被篡改)。
被认证的另一个典型属性是私钥是否归可信执行环境(Trusted ExecutionEnvironment,简称TEE)所有。
待认证的此类属性的第三个示例是设备本身的配置。这种认证的现有方案由可信计算组织(Trusted Computing Group,简称TCG)开发,其中,设备中的可信平台模块(Trusted Platform Module,简称TPM)监控启动过程并测量在设备启动期间执行的所有软件进程。这些测量被记录并累积到所谓的平台配置寄存器(Platform ConfigurationRegister,简称PCR)中。TPM提供了一种为依赖方提取TPM签名的PCR值的方法,其然后可以验证PCR是否与已知批准的配置匹配。
还需要认证应用程序的控制流完整性(Control Flow Integrity,简称CFI),换言之,向依赖方证明应用程序的运行代码未被攻击者修改。根据一种已知的解决该问题的方法,认证设备供应商能被可信地识别,然后依赖方仅相信该供应商提供了足够的对策来防止篡改CFI。这些对策可以使用针对面向返回编程(Return Oriented Programming,简称ROP)的指针验证(Pointer Authentication,简称PA)或使用TEE测量应用程序代码的某些段。根据另一种已知的方法,TEE用于对这些对策实际上已经实施的证据进行签名。
第一种方法的问题在于,例如在利用现代处理器中的关键漏洞进行的Spectre或Meltdown攻击的情况下,由于CFI起源经常与硬件相关,因此识别和修复被篡改的CFI是非常复杂的安全问题。虽然通常不允许应用程序从其它应用程序中读取数据,但是恶意程序可以利用Meltdown和Spectre获取存储在其它运行程序的存储器中的秘密,例如存储在密码管理器或浏览器中的密码、个人照片、电子邮件、即时消息甚至关键业务文档。因此,认为供应商根本没有CFI问题并且他们做了最大努力足以防止恶意攻击是不合理的。
第二种方法的问题在于,其需要设备配置有TEE。此外,TEE必须是可认证的,并且应该实现验证所涉及的应用程序的完整性的服务。
发明内容
本发明的目的在于提供一种改进的方法和装置,用于生成关于应用程序的控制流完整性(Control Flow Integrity,简称CFI)的可验证认证声明,以消除或减少上述问题。
上述及其它目的通过独立权利要求的特征来实现。进一步的实施形式在从属权利要求、具体说明和附图中显而易见。
根据第一方面,提供了一种用于认证终端实体上运行的应用程序的控制流完整性(Control Flow Integrity,简称CFI)的计算机实现的方法,所述方法包括:
基于所述应用程序的执行代码和所述终端实体唯一的设备密钥生成非对称密钥对,所述非对称密钥对包括私钥和公钥;
通过使用所述设备密钥对所述公钥进行签名来生成公钥证书,所述公钥证书认证所述私钥归所述终端实体所有;
生成关于所述应用程序的CFI的认证声明;
使用所述私钥对所述认证声明进行签名;以及
依赖方使用所述公钥证书验证所述认证声明的签名,其中
所述依赖方不是所述终端实体的一部分。
在上述方式中,通过使用所述终端实体唯一的设备密钥和所述应用程序的执行代码可以生成关于所述应用程序的控制流完整性(Control Flow Integrity,简称CFI)的可验证认证声明,而无需在终端实体上配置可信执行环境。因此,所述方法提供了一种成本低廉的方式,用于使用设备上主要现有的硬件块构建轻量级签名和认证服务。
此外,当执行上述步骤时,从不与所述应用程序本身共享,也不与所述依赖方共享所述唯一设备密钥,从而提高了所述认证方法的安全性和保密性。特别是在高复杂度的应用程序中,这是一个好处,其中公钥证书提供了私钥归特定终端实体所有的足够证据。因此,依赖方获得应用程序已测量(未被修改)并且设备身份已确定的硬件级和内核级证据。
在一实施例中,依赖方和终端实体均包含在同一物理设备中。
在另一实施例中,依赖方和终端实体是物理上不同的设备或是物理上不同的设备的一部分。
在另一实施例中,在所述终端实体的内核中提供所述私钥,然后执行所述认证声明的签名操作。
在另一实施例中,在终端实体的处理器的安全区域中配置的TEE中提供所述私钥,然后执行所述认证声明的签名操作。
在另一实施例中,将密钥管理模块(Key Management Module,简称KMM)作为终端实体的一部分提供,所述KMM用于生成所述非对称密钥对并生成所述公钥证书。在一实施例中,所述KMM还用于将所述私钥安全地注入到专用于认证声明签名的单独模块中。
在第一方面的一种可能的实现形式中,基于从所述应用程序的执行代码的文本段计算出的安全哈希生成所述非对称密钥对。
在一实施例中,通过诸如HMAC-SHA256等带密钥的哈希函数从应用程序代码的文本段(TEXT)计算所述安全哈希h为h=SHA256(TEXT)。
在另一实施例中,所述应用程序代码还包括ELF头(HEAD)和一个或多个其它段(OTHER)。
在另一实施例中,将专用密钥管理模块作为终端实体的一部分提供,所述KMM用于发起应用程序代码测量。
在第一方面的又一种可能的实现形式中,所述认证声明以应用程序认证令牌(application attestation token,简称AAT)的形式生成,所述AAT包括所述应用程序的标识(app_id)、所述终端实体的标识(device_id)、所述公钥证书(cert)和使用所述私钥生成的签名(signature)。
在一实施例中,AAT的构造如下:
app_id|device_id[|other-info]|signature|cert,其中
符号“|”是指级联,符号“[]”是指可选元素。app_id、device_id和other-info是被认证的终端实体的相关标识,signature是使用所述私钥签名的这些标识的签名。
在第一方面的又一种可能的实现形式中,所述方法还包括:
在验证所述认证声明的签名之前,所述依赖方验证所述公钥证书。
在一实施例中,所述依赖方验证所述证书,随后使用所述证书验证所述认证声明的签名。
在第一方面的又一种可能的实现形式中,所述私钥和所述公钥均生成为对序列;所述私钥以((x_1,y_1),…,(x_k,y_k))的形式生成为伪随机字节块;以及
所述公钥根据如下公式从所述私钥计算得到:
((f1(x_1),f1(y_1)),…,(f1(x_k),f1(y_k)),其中
f1是指单向函数,k是指安全级别。
在一实施例中,私钥生成为2k*n个伪随机字节块,其中n为单向函数f1的输出长度。
在第一方面的又一种可能的实现形式中,所述认证声明通过诸如Rivest–Shamir–Adleman(RSA)算法、数字签名算法(Digital Signature Algorithm,简称DSA)或椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,简称ECDSA)等非对称签名算法使用所述私钥进行签名。
在第一方面的又一种可能的实现形式中,还基于随机nonce值生成所述非对称密钥对;
所述私钥是从设备秘密衍生的,其中,使用所述执行代码、所述随机nonce值和设备密钥作为变量将所述设备秘密计算为单向函数f2,如下:
secret=f2(code,nonce,priv_dev),其中
所述单向函数f2使用QARMA密码或例如HMAC-SHA256等带密钥的哈希函数。
使用随机nonce值就无需执行RSA、ECDSA或DSA运算所需的算术运算,其将需要在软件或硬件中实现相对复杂的逻辑。随机nonce保证将始终使用新密钥完成签名。
在第一方面的又一种可能的实现形式中,所述私钥和公钥对是使用椭圆曲线密码算法(Elliptic Curve Cryptography,简称ECC)或RSA算法生成的,所述方法还包括:
生成包括随机私钥和随机公钥的额外随机非对称密钥对;以及
通过诸如RSA、DSA或ECDSA等非对称签名算法使用所述私钥对所述随机公钥进行签名来生成随机公钥证书;
所述认证声明由所述随机私钥进行签名。
在基于执行代码和设备密钥生成的非对称密钥对不适合对所述认证声明进行签名,但是所述密钥对可以生成为ECC或RSA密钥对的情况下,可以应用本实现形式。在本实施例中,不需要随机nonce,因为随机生成了额外密钥对,并且该额外密钥对有助于提供一次性签名方案。
在一实施例中,将专用密钥管理模块(Key Management Module,简称KMM)作为终端实体的一部分提供,所述KMM被配置为单独的实体,以将所述非对称密钥对和所述额外随机非对称密钥对生成为RSA或ECC密钥。
在第一方面的又一种可能的实现形式中,所述认证声明以随机应用程序认证令牌(random application attestation token,简称RAAT)的形式生成,所述随机应用程序认证令牌包括所述应用程序的标识(app_id)、所述终端实体的标识(device_id)、所述随机公钥证书(cert_pack)、所述公钥证书(cert)、所述随机公钥(pack_pub_app)和使用所述私钥生成的签名(signature)。
在一实施例中,RAAT的构造如下:
app_id|device_id[|other-info]|pack_pub_app|signature|cert_pack|cert,其中
符号“|”是指级联,符号“[]”是指可选元素。app_id、device_id和other-info是被认证的终端实体的相关标识,signature是使用所述私钥签名的这些标识的签名。
在第一方面的又一种可能的实现形式中,通过将所述私钥或所述随机私钥安全地注入到专用于认证声明签名的签名模块(signature module,简称SM)中来对所述认证声明进行签名。
在本实施例中,认证声明不直接使用私钥进行签名,从而无需额外逻辑来实现非对称签名功能。在存在硬件模块来承担此签名功能的受限环境中,这可以看作是一项重大优势。
在第一方面的又一种可能的实现形式中,所述签名模块是指针验证(PointerAuthentication,简称PA)引擎的扩展;
所述PA引擎使用QARMA密码生成指针验证码(Pointer Authentication Code,简称PAC);以及
在生成所述公钥证书之后,将所述私钥或所述随机私钥的单向函数f3设置为指针验证密钥(Pointer Authentication Key,简称PAK)。
根据该实现方式,依赖方获得数据是使用PA密钥的衍生密钥进行签名的证据。如果存在PA引擎,则该签名方案需要最少的额外逻辑,因为硬件上已经存在QARMA原语。因此,可能只需要额外的软件,而无需新的内核接口进行签名。此外,与使用传统哈希函数相比,使用QARMA密码会产生更短的密钥和签名。
在第一方面的又一种可能的实现形式中,所述认证声明按照Lamport一次性签名方案进行签名;比特串m_1...m_k的签名是z_1...z_k,其中
若m_i=0,则z_i=x_i;
若m_i=1,则z_i=y_i;
所述验证所述签名包括:检验
当m_i=0时,f4(z_i)=f4(x_i);
当m_i=1时,f4(z_i)=f4(y_i),其中
f4是指单向函数。
在一实施例中,k为以比特为单位的单向函数输出的大小(通常为256,f4=SHA256),所述私钥和所述公钥均包括k对序列。
在另一实施例中,随机nonce值用于生成非对称密钥对,其中,随机nonce保证将始终使用新密钥完成签名。
在第一方面的又一种可能的实现形式中,所述QARMA密码用作单向函数f4。
根据第二方面,提供了一种基于计算机的系统,包括:依赖方;以及
与所述依赖方连接的终端实体;
所述终端实体包括:处理器;
与所述处理器连接的存储介质;以及
分配的唯一设备密钥,其中
所述存储介质用于存储应用程序的执行代码和远程认证指令;
当所述远程认证指令由所述处理器执行时,其使得所述终端实体和所述依赖方执行如第一方面的任一种可能的实现形式所述的方法。
通过使用所述终端实体唯一的设备密钥和所述应用程序的执行代码以及处理器执行的所述远程认证指令可以生成关于所述应用程序的控制流完整性(Control FlowIntegrity,简称CFI)的可验证认证声明,而无需在终端实体上配置可信执行环境。此外,根据该设置,从不与所述应用程序本身共享,也不与所述依赖方共享所述唯一设备密钥,从而提高了所述认证方法的安全性和保密性。特别是在高复杂度的应用程序中,这是一个好处。
在一实施例中,依赖方和终端实体均包含在同一物理设备中。
在另一实施例中,依赖方和终端实体是物理上不同的设备或是物理上不同的设备的一部分。
在另一实施例中,为终端实体提供内核,用于执行认证声明的签名操作。
在另一实施例中,为终端实体提供终端实体的处理器的安全区域中配置的TEE,所述TEE用于执行认证声明的签名操作。
在第二方面的一种可能的实现形式中,所述终端实体还包括密钥管理模块(KeyManagement Module,简称KMM),用于:
基于所述执行代码、所述设备密钥和可选随机nonce值生成非对称密钥对,所述非对称密钥对包括私钥和公钥;以及
通过使用所述设备密钥对所述公钥进行签名来生成公钥证书。
使用专用模块生成非对称密钥对和公钥证书确保了终端实体的高效安全操作。使用随机nonce值就能无需执行RSA、ECDSA或DSA运算所需的算术运算,其将需要在软件或硬件中实现相对复杂的逻辑。随机nonce保证将始终使用新密钥完成签名。
在一实施例中,所述KMM还用于将所述私钥安全地注入到专用于认证声明签名的单独模块中。
在另一实施例中,所述KMM用于发起对所述应用程序代码的测量。在一实施例中,所述KMM还用于从所述应用程序代码的文本段生成安全哈希。
在第二方面的又一种可能的实现形式中,所述终端实体还包括签名模块(Signature Module,简称SM),专用于认证声明签名,并用于:
可选地以应用程序认证令牌(application attestation token,简称AAT)的形式生成关于所述应用程序的CFI的认证声明;以及
在通过安全注入从所述KMM接收到所述私钥之后,对所述认证声明进行签名。
在本实施例中,认证声明不直接使用私钥进行签名,从而无需额外逻辑来实现非对称签名功能。在存在硬件模块来承担此签名功能的受限环境中,这可以看作是一项重大优势。
在一实施例中,所述签名模块是指针验证(Pointer Authentication,简称PA)引擎的扩展。
在这种情况下,依赖方获得数据是使用PA密钥的衍生密钥进行签名的证据。如果存在PA引擎,则该签名方案需要最少的额外逻辑。可能只需要额外的软件,而无需新的内核接口进行签名。在一实施例中,QARMA密码用于生成签名,与使用传统哈希函数相比,其会产生更短的密钥和签名。
在第二方面的又一种可能的实现形式中,所述KMM还用于:
生成包括随机私钥和随机公钥的额外随机非对称密钥对;以及
通过诸如RSA、DSA或ECDSA等非对称签名算法使用所述私钥对所述随机公钥进行签名来生成随机公钥证书;
所述签名模块还用于:
在从所述密钥管理模块接收到所述随机私钥之后,对所述认证声明进行签名。
在基于执行代码和设备密钥生成的非对称密钥对不适合对所述认证声明进行签名,但是所述密钥对可以生成为ECC或RSA密钥对的情况下,可以应用本实现形式。在本实施例中,不需要随机nonce,因为随机生成了额外密钥对,并且该额外密钥对有助于提供一次性签名方案。
以下描述的实施例中将清楚地描述这些和其它方面。
附图说明
在本发明的以下详述部分中,将结合附图中所示的示例性实施例来更详细地解释这些方面、实施例和实现方式,其中:
图1示出了第一方面的一实施例提供的方法的流程图;
图2示出了第一方面的另一实施例提供的方法的流程图;
图3示出了第一方面的另一实施例提供的方法的流程图;
图4示出了第一方面的另一实施例提供的方法的一部分的流程图;
图5示出了第一方面的另一实施例提供的方法的流程图;
图6示出了第一方面的另一实施例提供的方法的流程图;
图7示出了第一方面的另一实施例提供的方法的一部分的流程图;
图8示出了第一方面的另一实施例提供的方法的一部分的流程图;
图9示出了第二方面的一实施例提供的基于计算机的系统的框图。
具体实施方式
图1示出了第一方面提供的终端实体上运行的应用程序的控制流完整性(ControlFlow Integrity,简称CFI)认证方法的核心元素和步骤。从总体上看,CFI将应用程序的控制流限制为有效的执行痕迹。CFI通过在运行时监视该程序并将其状态与一组预计算的有效状态进行比较来执行此属性。如果检测到无效状态,则会发出警报,通常会终止应用程序。因此,所述方法能够向依赖方证明应用程序的运行代码未被攻击者修改。
认证声明是终端实体为建立对服务或其它实体的访问而对自身进行的陈述,其中,终端实体可以是能够运行应用程序的任何类型的基于计算机的设备,例如智能手机等移动设备。依赖方是一个通常用于指代提供对安全软件应用程序的访问的服务器的术语,但是在这种语境下,依赖方可以是不属于终端实体的一部分并且能够接受和验证认证声明的任何实体。
所述方法使用其CFI需要认证的应用程序4的执行代码5和在其上执行应用程序的终端实体1唯一的设备密钥3在第一步骤101中生成包括私钥6和公钥7的非对称密钥对。
非对称密钥对是根据非对称加密(也称为公钥加密)的原理生成的,其中,公钥可以被广泛传播,而私钥仅为所有者所知。密钥的生成取决于基于数学问题的加密算法来产生单向函数。有效安全性只要求将私钥6保持私有即可,而公钥7可以在不损害安全性的情况下公开分发。
在下一步骤102中,生成公钥证书8。该步骤包括:使用设备密钥3对公钥7进行签名103。该公钥证书8可以认证私钥6归终端实体1所有。
所述公钥证书是一种可用于证明公钥以及关联的私钥的所有权的电子文档。所述证书包括关于密钥的信息、关于其所有者的身份的信息和已验证证书内容的实体的数字签名。如果签名有效,并且检查证书的软件信任颁发者,则可以使用该密钥与证书的主体安全地进行通信。
在下一步骤104中,生成关于应用程序4的CFI的认证声明9,随后使用私钥6对认证声明9进行签名105。在一实施例中,认证声明9通过诸如Rivest–Shamir–Adleman RSA算法、数字签名算法DSA或椭圆曲线数字签名算法ECDSA等非对称签名算法使用私钥6进行签名。
在下一步骤107中,所述认证声明9的签名由依赖方2使用公钥证书8进行验证。
在一实施例中,依赖方和终端实体均包含在同一物理设备中。
在一实施例中,依赖方和终端实体是物理上不同的设备或是物理上不同的设备的一部分。
在另一实施例中,在所述终端实体的内核中提供所述私钥,然后执行所述认证声明的签名操作。
在一实施例中,私钥6和公钥7均生成为对序列,私钥6以((x_1,y_1),…,(x_k,y_k))的形式生成为伪随机字节块。在一实施例中,私钥生成为2k*n个伪随机字节块,其中n为单向函数f1的输出长度。然后,公钥7根据如下公式从私钥6计算得到:
((f1(x_1),f1(y_1)),…,(f1(x_k),f1(y_k)),其中
f1是指单向函数,k是指安全级别。单向函数可能为QARMA密码或例如HMAC-SHA256等带密钥的哈希函数。
QARMA是高通开发的轻量级可调分组密码体系,其中,“可调”是指使用该密码在明文上计算的排列由一个秘密密钥和一个额外的用户可选调整确定。QARMA针对非常特殊的一组用例,例如通过截断生成非常短的标签。其还设计为适合于内存加密和带密钥的哈希函数的构造。其意在用于完全展开的硬件实现中。
哈希函数是可以用于将任意大小的数据映射到固定大小的数据的任意函数。哈希函数返回的值称为哈希值、哈希代码、摘要或简单地称为哈希。带密钥的(加密的)哈希函数是特殊的一类哈希函数,其具有某些特性使其适合用于密码学。它是一种将任意大小的数据映射到固定大小的比特串(哈希)中的数学算法,并且被设计为单向函数,即不可逆函数。
图2示出了所述方法的一种可能的实现方式的流程图,其中,还基于随机nonce值13生成所述非对称密钥对。在本实现方式中,与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。
该方法与先前的实现方式的不同之处还在于,私钥6是从设备秘密14衍生的,其中,使用执行代码5、随机nonce值13和设备密钥3作为变量将设备秘密14计算为单向函数f2,如下:
secret=f2(code,nonce,priv_dev),其中
所述单向函数f2使用QARMA密码或例如HMAC-SHA256等带密钥的哈希函数。
nonce为在一次加密通信中只能使用一次的任意数。其可以是随机或伪随机数,以确保旧的通信无法在回放攻击中重用。将此随机nonce作为变量包括在内保证了将始终使用新密钥完成签名。
图3示出了所述方法的一种可能的实现方式的流程图,其中,将专用密钥管理模块(Key Management Module,简称KMM)22作为终端实体1的一部分提供。在本实现方式中,与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。在第一步骤中,将应用程序的执行代码5加载到终端实体1的存储器25中执行。然后,KMM 22发起对所述应用程序代码的测量,其中,应用程序4的执行代码5的文本段(TEXT)11用于优选地通过诸如HMAC-SHA256等带密钥的哈希函数计算安全哈希(HASH)12,如下:h=SHA256(TEXT)。应用程序代码5还可以包括ELF头(HEAD)和一个或多个其它段(OTHER),但该ELF头(HEAD)和一个或多个其它段(OTHER)并不用于计算所述安全哈希。
然后,KMM 22生成私钥6(作为非对称密钥对的一部分),并将该私钥6安全地注入专用于生成和签名认证声明9的签名模块(Signature Module,简称SM)20中。KMM还(通过使用设备密钥3对公钥7进行签名)生成公钥证书8,该公钥证书8认证私钥7归终端实体1所有。
本实施例中的签名模块20是指针验证(Pointer Authentication,简称PA)引擎21的扩展。指针验证(Pointer Authentication,简称PA)是为保护应用程序的CFI而开发的一种技术,其工作原理是当应用程序代码在设备上执行时,PA引擎从指令中验证指针验证码(Pointer Authentication Code,简称PAC),因此设备本身获得了应用程序代码不会受到运行时攻击的保证。PA技术使用QARMA密码生成指针验证码(Pointer AuthenticationCode,简称PAC)。当用于指针验证时,QARMA的两个输入是指针和上下文。PAC是QARMA的截断输出。
本实施例提供的具有签名模块(Signature Module,简称SM)20的扩展PA引擎使用基于QARMA密码(或任何单向函数)的新非对称方案,从而能够计算对称认证标签。此类函数的例子是带密钥的哈希函数。
图4示出了所述方法的一种可能的实现方式的流程图,其中,所述认证声明9以应用程序认证令牌AAT 10的形式生成,AAT 10包括应用程序4的标识(app_id)、终端实体1的标识(device_id)、公钥证书(cert)8和使用私钥6生成的签名(signature)。app_id、device_id和other-info是被认证的终端实体的相关标识,signature是使用所述私钥签名的这些标识的签名。
在一实施例中,AAT的构造如下:
app_id|device_id[|other-info]|signature|cert,其中
符号“|”是指级联,符号“[]”是指可选元素。
图5示出了所述方法的一种可能的实现方式的流程图,其中,密钥管理模块(KeyManagement Module,简称KMM)22运行密钥衍生函数(Key Derivation Function,简称KDF)。在本实现方式中,与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。
KDF负责从安全哈希(hash)12和设备秘密14衍生101非对称应用程序特定密钥对(pub_app,priv_app)的任务。然后,KMM 22使用应用程序特定公钥(pub_app)7和设备密钥(priv_dev)3发起对公钥证书(cert_app)8的生成,该公钥证书(cert_app)8可以由可信第三方进一步认证。
KMM 22还确保将私钥(priv_app)6安全地注入签名模块(Signature Module,简称SM)20中,该签名模块20使用专用算法(称为pack_sign)对应用程序认证令牌AAT 10进行签名。
然后,依赖方2可以验证106公钥证书(cert_app)8,并使用该经过验证的公钥证书8来验证107AAT 10的签名。验证后,可以与终端实体1或第三方服务共享结果。
图6示出了所述方法的又一种可能的实现方式的流程图,其中,所述私钥6和公钥7对是使用椭圆曲线密码算法ECC或RSA算法生成的。在本实现方式中,与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。
所述方法与上一实现方式的区别还在于,所述方法包括:生成201包括随机私钥(pack_priv_app)15和随机公钥(pack_pub_app)16的额外随机非对称密钥对;以及通过诸如RSA、DSA或ECDSA等非对称签名算法使用私钥(priv_app)6对随机公钥(pack_pub_app)16进行签名203来生成202随机公钥证书(cert_pack)17。本实现方式中的认证声明以随机应用程序认证令牌(random application attestation token,简称RAAT)18的形式生成,并由随机私钥(pack_priv_app)15进行签名204。
然后,依赖方2可以验证106公钥证书(cert_app)8和随机公钥证书(cert_pack)17,并使用这些经过验证的证书来验证107RAAT 18的签名。验证后,可以与终端实体1或第三方服务共享结果。
在一实施例中,pack_sign函数通过以下从Lamport一次性签名方案构造实现;比特串m_1...m_k的签名是z_1...z_k,其中k为以比特为单位的单向函数输出的大小(通常为256,f=SHA256),私钥6和公钥7均包括k对序列;
若m_i=0,则z_i=x_i;
若m_i=1,则z_i=y_i;
所述验证106所述签名包括:检验
当m_i=0时,f4(z_i)=f4(x_i);
当m_i=1时,f4(z_i)=f4(y_i),其中
f4是指单向函数。
图7示出了所述方法的一种可能的实现方式的流程图,其中,认证声明9以随机应用程序认证令牌(random application attestation token,简称RAAT)18的形式生成,所述RAAT包括应用程序4的标识(app_id)、终端实体1的标识(device_id)、随机公钥证书(cert_pack)17、公钥证书(cert)8、随机公钥(pack_pub_app)16和采用私钥6生成的签名(signature)。app_id、device_id和other-info是被认证的终端实体的相关标识,signature是使用所述私钥签名的这些标识的签名。
在一实施例中,RAAT的构造如下:
app_id|device_id[|other-info]|pack_pub_app|signature|cert_pack|cert,其中
符号“|”是指级联,符号“[]”是指可选元素。
图8示出了所述方法的一种可能的实现方式的流程图,其中,签名模块(SignatureModule,简称SM)20是指针验证(Pointer Authentication,简称PA)引擎21的扩展,并且PA引擎21使用QARMA密码生成指针验证码(Pointer Authentication Code,简称PAC)。在本实现方式中,与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。
在生成公钥证书8之后,将私钥6或随机私钥15的单向函数f3设置为指针验证密钥(Pointer Authentication Key,简称PAK)。
所述认证声明以应用程序认证令牌(application attestation token,简称AAT)10或随机应用程序认证令牌(random application attestation token,简称RAAT)18的形式生成,并通过将私钥6或随机私钥15安全地注入签名模块(Signature Module,简称SM)20中来进行签名。
图9示出了第二方面提供的基于计算机的系统的硬件配置的一种示例的框图。与先前在本文中描述或示出的相应步骤和特征相同或相似的步骤和特征由与先前为简单起见所使用的相同的标号表示。
所述基于计算机的系统可以包括:依赖方2;以及连接到所述依赖方2的终端实体1,其中,两者之间的连接类型可以是直接或间接的,如下所述。也可以向终端实体分配唯一的设备密钥3。
终端实体1可以包括:处理器(CPU)23,用于进行数据处理和执行基于软件的指令;存储介质(HDD)24,用于存储待处理数据和要由CPU 23执行的基于软件的指令;以及随机存取存储器(random-access memory,简称RAM),用于临时存储应用程序4的执行代码5。终端实体1还可以包括:输入设备(input device,简称IN)26,用于接收来自用户31的输入;输出设备(output device,简称OUT)27,例如电子显示器14等,用于向用户31传送信息;以及通信接口(communications interface,简称COMM)28,用于通过计算机网络30直接或间接地与外部设备通信。
可选地,如图9所示,终端实体1还可以包括上文结合第一方面所述的密钥管理模块(Key Management Module,简称KMM)22和指针验证(Pointer Authentication,简称PA)引擎21,其中,PA引擎21还可以包括专门用于认证声明签名的签名模块(SignatureModule,简称SM)20。KMM 22和SM 20可以配置为允许直接、安全地将KMM 22生成的私钥6或随机私钥15注入SM 20以便生成签名。
所提到的终端实体1内的硬件元件可以通过内部总线29连接,以处理数据通信和处理操作。
依赖方2可以具有与终端实体1类似的配置。但是,依赖方2可以具有更多的存储和处理资源,从而能够一次或按顺序服务多个终端实体1。一些依赖方2可能不具有与终端实体1相关的图9所示的所有组件。例如,依赖方2可以仅包括处理器(CPU)23、存储介质(HDD)24、随机存取存储器(random-access memory,简称RAM)和通信接口(communicationsinterface,简称COMM)28,因此可能不需要输出设备(显示器)或用户输入设备。应注意,图9仅仅是可能的硬件配置的一种示例,并且在图示的设备中还可以提供许多其它组件。
在一实施例中,依赖方2和终端实体1均包含在同一物理设备中,通过内部总线29连接。
在另一实施例中,依赖方2和终端实体1是物理上不同的设备或是物理上不同的设备的一部分,并且直接或间接地通过计算机网络30通过通信接口(communicationsinterface,简称COMM)28连接。
在另一实施例中,为终端实体1提供内核,用于执行认证声明9的签名操作。
在另一实施例中,为终端实体1提供终端实体1的处理器23的安全区域中配置的TEE,所述TEE用于执行认证声明9的签名操作。
在此结合各种实施例描述了各种方面和实现方式。但本领域技术人员通过实践本主题,研究附图、本发明以及所附的权利要求,能够理解并获得公开实施例的其它变体。在权利要求书中,词语“包括”不排除其它元素或步骤,量词“一”或者“一个”不排除多个。单个处理器或其它单元可满足权利要求中描述的几项的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能被有效地使用。计算机程序可存储或分发到合适的介质上,例如与其它硬件一起或者作为其它硬件的部分提供的光存储介质或者固态介质,还可以以其它形式例如通过因特网或者其它有线或无线电信系统分发。
权利要求书中所用的标号不应解释为对范围进行限制。
Claims (17)
1.一种用于认证终端实体(1)上运行的应用程序(4)的控制流完整性(Control FlowIntegrity,简称CFI)的计算机实现的方法,其特征在于,所述方法包括:
基于所述应用程序(4)的执行代码(5)和所述终端实体(1)唯一的设备密钥(3)生成(101)非对称密钥对,所述非对称密钥对包括私钥(6)和公钥(7);
通过使用所述设备密钥(3)对所述公钥(7)进行签名(103)来生成(102)公钥证书(8),所述公钥证书(8)认证所述私钥(7)归所述终端实体(1)所有;
生成(104)关于所述应用程序(4)的CFI的认证声明(9);
使用所述私钥(6)对所述认证声明(9)进行签名(105);以及
依赖方(2)使用所述公钥证书(8)验证(107)所述认证声明(9)的签名,其中
所述依赖方(2)不是所述终端实体(1)的一部分。
2.根据权利要求1所述的方法,其特征在于,优选地通过HMAC-SHA256等带密钥的哈希函数,基于从所述应用程序(4)的执行代码(5)的文本段(11)计算出的安全哈希(12)生成所述非对称密钥对。
3.根据权利要求1或2中任一项所述的方法,其特征在于,所述认证声明(9)以应用程序认证令牌(application attestation token,简称AAT)(10)的形式生成,所述应用程序认证令牌包括所述应用程序(4)的标识、所述终端实体(1)的标识、所述公钥证书(8)和使用所述私钥(6)生成的签名。
4.根据权利要求1至3中任一所述的方法,其特征在于,还包括:
在验证(107)所述认证声明(9)的签名之前,所述依赖方(2)验证(106)所述公钥证书(8)。
5.根据权利要求1至4任中一项所述的方法,其特征在于,所述私钥(6)和所述公钥(7)均生成为对序列;
所述私钥(6)以((x_1,y_1),…,(x_k,y_k))的形式生成为伪随机字节块;以及
所述公钥(7)根据如下公式从所述私钥(6)计算得到:
((f1(x_1),f1(y_1)),…,(f1(x_k),f1(y_k)),其中
f1是指单向函数,k是指安全级别。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述认证声明(9)通过Rivest–Shamir–Adleman(RSA)算法、数字签名算法(Digital Signature Algorithm,简称DSA)或椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,简称ECDSA)等非对称签名算法使用所述私钥(6)进行签名。
7.根据权利要求1至5中任一项所述的方法,其特征在于,还基于随机nonce值(13)生成所述非对称密钥对;
所述私钥(6)是从设备秘密(14)衍生的,其中,使用所述执行代码(5)、所述随机nonce值(13)和所述设备密钥(3)作为变量将所述设备秘密(14)计算为单向函数f2;
所述单向函数f2使用QARMA密码或HMAC-SHA256等带密钥的哈希函数。
8.根据权利要求1至5中任一项所述的方法,其特征在于,所述私钥(6)和公钥(7)对是使用椭圆曲线密码算法(Elliptic Curve Cryptography,简称ECC)或RSA算法生成的,所述方法还包括:
生成(201)包括随机私钥(15)和随机公钥(16)的额外随机非对称密钥对;以及
通过RSA、DSA或ECDSA等非对称签名算法使用所述私钥(6)对所述随机公钥(16)进行签名(203)来生成(202)随机公钥证书(17),其中
所述认证声明(9)由所述随机私钥(15)进行签名(204)。
9.根据权利要求8所述的方法,其特征在于,所述认证声明(9)以随机应用程序认证令牌(random application attestation token,简称RAAT)(18)的形式生成,所述随机应用程序认证令牌包括所述应用程序(4)的标识、所述终端实体(1)的标识、所述随机公钥证书(17)、所述公钥证书(8)、所述随机公钥(16)和使用所述私钥(6)生成的签名。
10.根据权利要求1至9中任一项所述的方法,其特征在于,通过将所述私钥(6)或所述随机私钥(15)安全地注入到专用于认证声明签名的签名模块(20)中来对所述认证声明(9)进行签名。
11.根据权利要求10所述的方法,其特征在于,所述签名模块(20)是指针验证(PointerAuthentication,简称PA)引擎(21)的扩展;
所述PA引擎(21)使用QARMA密码生成指针验证码(Pointer Authentication Code,简称PAC);以及
在生成所述公钥证书(8)之后,将所述私钥(6)或所述随机私钥(15)的单向函数f3设置为指针验证密钥(Pointer Authentication Key,简称PAK)。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述认证声明(9)按照Lamport一次性签名方案进行签名;
比特串m_1...m_k的签名是z_1...z_k,其中,若m_i=0,则z_i=x_i;若m_i=1,则z_i=y_i;
所述验证所述签名包括:检验当m_i=0时,f4(z_i)=f4(x_i);当m_i=1时,f4(z_i)=f4(y_i),其中
f4是指单向函数。
13.根据权利要求12所述的方法,其特征在于,所述QARMA密码用作单向函数f4。
14.一种基于计算机的系统,其特征在于,包括:依赖方(2);以及
与所述依赖方(2)连接的终端实体(1);
所述终端实体(1)包括:处理器(23);
与所述处理器(23)连接的存储介质(24);以及
分配的唯一设备密钥(3),其中
所述存储介质(24)用于存储应用程序(4)的执行代码(5)和远程认证指令;
当所述远程认证指令(19)由所述处理器(23)执行时,其使得所述终端实体(1)和所述依赖方(2)执行根据权利要求1至13中任一项所述的方法。
15.根据权利要求14所述的基于计算机的系统,其特征在于,
所述终端实体(1)还包括密钥管理模块(22),用于:
基于所述执行代码(5)、所述设备密钥(3)和可选随机nonce值(13)生成非对称密钥对,所述非对称密钥对包括私钥(6)和公钥(7);以及
通过使用所述设备密钥(3)对所述公钥(7)进行签名来生成公钥证书(8)。
16.根据权利要求15所述的基于计算机的系统,其特征在于,
所述终端实体(1)还包括签名模块(20),专用于认证声明签名,并用于:
可选地以应用程序认证令牌(application attestation token,简称AAT)(10)的形式生成关于所述应用程序(4)的CFI的认证声明(9);以及
在通过安全注入从所述密钥管理模块(22)接收到所述私钥(6)之后,对所述认证声明(9)进行签名。
17.根据权利要求16所述的基于计算机的系统,其特征在于,
所述密钥管理模块(22)还用于:
生成包括随机私钥(15)和随机公钥(16)的额外随机非对称密钥对;以及
通过诸如RSA、DSA或ECDSA等非对称签名算法使用所述私钥(6)对所述随机公钥(16)进行签名来生成随机公钥证书(17);
所述签名模块(20)还用于:
在通过安全注入从所述密钥管理模块(22)接收到所述随机私钥(15)之后,对所述认证声明(9)进行签名。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/051817 WO2020151831A1 (en) | 2019-01-25 | 2019-01-25 | Method for end entity attestation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113508380A true CN113508380A (zh) | 2021-10-15 |
Family
ID=65228570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980089088.XA Pending CN113508380A (zh) | 2019-01-25 | 2019-01-25 | 用于终端实体认证的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11777717B2 (zh) |
EP (1) | EP3891630B1 (zh) |
CN (1) | CN113508380A (zh) |
WO (1) | WO2020151831A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116961925B (zh) * | 2023-09-18 | 2023-12-19 | 北京信安世纪科技股份有限公司 | 签名方法、系统、电子设备及存储介质 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373515B2 (en) * | 2001-10-09 | 2008-05-13 | Wireless Key Identification Systems, Inc. | Multi-factor authentication system |
GB0411777D0 (en) * | 2004-05-26 | 2004-06-30 | Crypomathic Ltd | Computationally asymmetric cryptographic systems |
US7987356B2 (en) * | 2004-11-29 | 2011-07-26 | Broadcom Corporation | Programmable security platform |
US8995653B2 (en) * | 2005-07-12 | 2015-03-31 | International Business Machines Corporation | Generating a secret key from an asymmetric private key |
US8561178B2 (en) * | 2007-11-30 | 2013-10-15 | Intel Corporation | Chipset based cheat detection platform for online applications |
US8010804B2 (en) * | 2008-08-08 | 2011-08-30 | International Business Machines Corporation | Method to protect secrets against encrypted section attack |
WO2011119985A2 (en) | 2010-03-26 | 2011-09-29 | Maxlinear, Inc. | Firmware authentication and deciphering for secure tv receiver |
US20120151223A1 (en) | 2010-09-20 | 2012-06-14 | Conde Marques Ricardo Nuno De Pinho Coelho | Method for securing a computing device with a trusted platform module-tpm |
US8850199B2 (en) | 2012-04-27 | 2014-09-30 | Certicom Corp. | Hashing prefix-free values in a signature scheme |
US9285981B1 (en) * | 2012-07-16 | 2016-03-15 | Wickr Inc. | Discouraging screen capture |
US9152793B2 (en) | 2012-09-28 | 2015-10-06 | Intel Corporation | Methods, systems and apparatus to self authorize platform code |
CN105579955A (zh) * | 2013-09-27 | 2016-05-11 | 慧与发展有限责任合伙企业 | 应用控制流模型 |
US9805188B2 (en) * | 2013-11-12 | 2017-10-31 | RunSafe Security, Inc. | Control flow integrity system and method |
US9514305B2 (en) | 2014-10-17 | 2016-12-06 | Qualcomm Incorporated | Code pointer authentication for hardware flow control |
CA2980002A1 (en) | 2015-03-20 | 2016-09-29 | Rivetz Corp. | Automated attestation of device integrity using the block chain |
US10079677B2 (en) * | 2015-06-05 | 2018-09-18 | Apple Inc. | Secure circuit for encryption key generation |
US10182040B2 (en) * | 2015-06-10 | 2019-01-15 | Massachusetts Institute Of Technology | Systems and methods for single device authentication |
US10178164B2 (en) * | 2015-08-31 | 2019-01-08 | Visa International Service Association | Secure binding of software application to communication device |
CN105681032B (zh) * | 2016-01-08 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 密钥存储方法、密钥管理方法及装置 |
US10057276B2 (en) * | 2016-09-19 | 2018-08-21 | International Business Machines Corporation | Global attestation procedure |
US10164778B2 (en) * | 2016-12-15 | 2018-12-25 | Alibaba Group Holding Limited | Method and system for distributing attestation key and certificate in trusted computing |
GB201700367D0 (en) * | 2017-01-10 | 2017-02-22 | Trustonic Ltd | A system for recording and attesting device lifecycle |
US10691793B2 (en) * | 2017-02-20 | 2020-06-23 | AlphaPoint | Performance of distributed system functions using a trusted execution environment |
US10819696B2 (en) * | 2017-07-13 | 2020-10-27 | Microsoft Technology Licensing, Llc | Key attestation statement generation providing device anonymity |
US11153076B2 (en) * | 2017-07-17 | 2021-10-19 | Thirdwayv, Inc. | Secure communication for medical devices |
US11374766B2 (en) * | 2017-08-11 | 2022-06-28 | Huawei Technologies Co., Ltd. | Devices and methods for key attestation with multiple device certificates |
US11443023B2 (en) * | 2017-08-24 | 2022-09-13 | Vmware, Inc. | Distributed profile and key management |
US10516541B2 (en) * | 2017-09-13 | 2019-12-24 | Nxp B.V. | Nonce to message binding in digital signature generation |
CN108399329B (zh) * | 2018-01-23 | 2022-01-21 | 晶晨半导体(上海)股份有限公司 | 一种提高可信应用程序安全的方法 |
US11108556B2 (en) * | 2018-06-08 | 2021-08-31 | Vmware, Inc. | Unmanaged secure inter-application data communications |
US10263787B1 (en) * | 2018-11-12 | 2019-04-16 | Cyberark Software Ltd. | Scalable authentication for decentralized applications |
DE102019100334A1 (de) * | 2019-01-08 | 2020-07-09 | Bundesdruckerei Gmbh | Verfahren zum sicheren Bereitstellen einer personalisierten elektronischen Identität auf einem Endgerät |
WO2020143906A1 (en) * | 2019-01-08 | 2020-07-16 | Huawei Technologies Co., Ltd. | Method and apparatus for trust verification |
-
2019
- 2019-01-25 US US17/425,896 patent/US11777717B2/en active Active
- 2019-01-25 EP EP19701654.6A patent/EP3891630B1/en active Active
- 2019-01-25 CN CN201980089088.XA patent/CN113508380A/zh active Pending
- 2019-01-25 WO PCT/EP2019/051817 patent/WO2020151831A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2020151831A1 (en) | 2020-07-30 |
EP3891630A1 (en) | 2021-10-13 |
US20220166608A1 (en) | 2022-05-26 |
US11777717B2 (en) | 2023-10-03 |
EP3891630B1 (en) | 2022-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10484185B2 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
Stumpf et al. | A robust integrity reporting protocol for remote attestation | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
CN106416124A (zh) | 半确定性数字签名生成 | |
US20050283826A1 (en) | Systems and methods for performing secure communications between an authorized computing platform and a hardware component | |
AU2016287728A1 (en) | Confidential authentication and provisioning | |
TWI813894B (zh) | 資料的加解密方法、裝置、系統及存儲介質 | |
CN112801663B (zh) | 区块链存证方法、装置、系统、设备和介质 | |
JP2016520265A (ja) | セキュリティパラメータに基づくワーキングセキュリティキーの生成 | |
CN101241528A (zh) | 终端接入可信pda的方法和接入系统 | |
KR101739203B1 (ko) | 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법 | |
WO2018112482A1 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
Hernandez-Ardieta et al. | A taxonomy and survey of attacks on digital signatures | |
CN112311718A (zh) | 检测硬件的方法、装置、设备及存储介质 | |
JP2018117185A (ja) | 情報処理装置、情報処理方法 | |
CN114499859A (zh) | 密码验证方法、装置、设备及存储介质 | |
KR20070059891A (ko) | 어플리케이션 인증 보안 시스템 및 그 인증 보안 방법 | |
CN105873043B (zh) | 一种用于移动终端的网络私匙的生成及应用方法及其系统 | |
CN115549930B (zh) | 登录操作系统的验证方法 | |
EP3891630B1 (en) | Method for end entity attestation | |
CN114553566B (zh) | 数据加密方法、装置、设备及存储介质 | |
Hao et al. | Trusted block as a service: Towards sensitive applications on the cloud | |
CN117063174A (zh) | 用于通过基于app的身份的app间相互信任的安全模块及方法 | |
CN114024702A (zh) | 信息安全保护的方法以及计算设备 | |
CN114124366A (zh) | 一种可信芯片的密钥生成方法及相关设备 |
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 |