CN111406382B - 向客户端设备安全调配数据 - Google Patents

向客户端设备安全调配数据 Download PDF

Info

Publication number
CN111406382B
CN111406382B CN201780097258.XA CN201780097258A CN111406382B CN 111406382 B CN111406382 B CN 111406382B CN 201780097258 A CN201780097258 A CN 201780097258A CN 111406382 B CN111406382 B CN 111406382B
Authority
CN
China
Prior art keywords
key
provisioned
client device
symmetric
asymmetric cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201780097258.XA
Other languages
English (en)
Other versions
CN111406382A (zh
Inventor
桑泊·索维欧
李启明
佩卡·莱蒂宁
连刚
谢美伦
方习文
单志华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111406382A publication Critical patent/CN111406382A/zh
Application granted granted Critical
Publication of CN111406382B publication Critical patent/CN111406382B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0442Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

公开了用于向客户端设备安全调配数据的设备和方法。非受信制造设施配备安全服务器设备以在所述安全服务器设备到客户端设备的受信硬件之间建立安全数据调配信道,而不需要所述安全服务器设备和所述客户端设备具有共有秘密。

Description

向客户端设备安全调配数据
技术领域
本申请涉及加密领域,更具体地,涉及向客户端设备安全调配数据,以及相关的设备、方法和计算机程序。
背景技术
在设备制造过程中,可能需要将数据调配到移动和可穿戴设备。此类数据可包括各种资产数据,包括但不限于:设备密钥对、其它加密密钥材料、数字证书、安全策略、设备标识符和凭证。例如,通常需要设备密钥对启用所述移动/可穿戴设备提供的各种安全服务。附加地/可选地,此类数据可包括可执行代码,例如受信应用(Trusted Application,简称TA)。所述调配的数据通常以某种方式受到所述移动/可穿戴设备的安全硬件的保护。
例如,在设备在工厂制造过程中,可以生成设备密钥对,并通过注册设备证书对其进行公钥认证。所述设备密钥对和所述设备证书都可以放置在所述设备中的安全位置,使得对所述私钥的使用能够被严密控制。通常,所述设备密钥对只能用于所述设备与最终用户一起使用时的预定义使用情形。这些使用案例包括设备认证,其中所述设备可以在认证中签名,以证明某些参数对设备有效。另一个示例是密钥验证,其中密钥对由所述设备中的安全环境生成,然后使用所述设备密钥对验证所涉及的密钥对在所述设备的安全环境中已真实生成并受其保护。
但是,在所述设备制造过程中,在客户端设备中调配数据(例如设备密钥或设备密钥对等)可能会遇到安全问题,例如如何加密所述待调配的数据,使得仅目标客户端设备能够解密所述数据。
发明内容
提供本发明内容是为了以简化的形式引入概念的选择,这些概念将在以下具体实现方式中进行进一步的描述。本发明内容的目的不在于识别权利要求书保护的主题的键特征或必要特征,也不在于限制权利要求书保护的主题的范围。
本发明的目的在于提供改进的向客户端设备安全调配数据。上述及其它目的通过独立权利要求的特征来实现。进一步的实施形式在从属权利要求、具体说明和附图中显而易见。
根据第一方面,提供了一种安全服务器设备。所述安全服务器设备包括接口,所述接口用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述安全服务器设备还包括处理器,用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥,并在加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据时使用所述生成的第二对称密钥。所述接口还用于将所述待调配的加密数据发送到与所述类别标识符关联的所述客户端设备中的一个或多个。所述实施例允许非受信制造设施配备所述安全服务器设备以在所述安全服务器设备到客户端设备的受信硬件之间建立安全数据调配信道,从而避免在设备制造期间调配所述客户端设备中的数据相关的安全问题。
在所述第一方面的另一种实现方式中,所述处理器还用于生成临时非对称加密密钥对,并基于所述获得的所述调配非对称加密密钥对的公钥和使用预定密钥协议生成的所述临时非对称加密密钥对的私钥生成所述第二对称密钥,所述接口还用于将所述生成的临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的所述一个或多个。将所述临时非对称加密密钥对的所述私钥与所述调配非对称加密密钥对的所述公钥一起使用,可以安全地在所述安全服务器设备和所述客户端设备之间建立共有秘密(即所述第二对称密钥)。
在所述第一方面的另一种实现方式中,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种。
在所述第一方面的另一种实现方式中,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。使用所述椭圆曲线密钥对或所述Rivest-Shamir-Adleman密钥对作为所述调配非对称加密密钥对,可以进一步提供所述生成所述第二对称密钥的安全性。
在所述第一方面的另一种实现方式中,所述预定密钥协议包括Diffie-Hellman密钥协商协议。使用密钥协商协议(例如所述Diffie-Hellman密钥协商协议),可以进一步提高所述生成所述第二对称密钥的安全性。
在所述第一方面的另一种实现方式中,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。使用所述椭圆曲线Diffie-Hellman密钥协商协议,可以进一步提高所述生成所述第二对称密钥的安全性。
在所述第一方面的另一种实现方式中,所述安全服务器设备还包括硬件安全模块。使用所述安全服务器设备中的硬件安全模块,可以提供抵御物理和逻辑攻击的安全认证环境。
根据第二方面,提供了一种安全服务器设备。所述安全服务器设备包括接口,所述接口用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述安全服务器设备还包括处理器,所述处理器用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥,随机生成第三对称密钥,使用所述随机生成的第三对称密钥加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据,以及在对所述第三对称密钥进行加密时使用所述生成的第二对称密钥。所述接口还用于将所述待调配的加密数据和所述加密的第三对称加密密钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。所述实施例允许非受信制造设施配备所述安全服务器设备以在所述安全服务器设备到客户端设备的受信硬件之间建立安全数据调配信道,从而避免在设备制造期间调配所述客户端设备中的数据相关的安全问题。
在所述第二方面的另一种实现方式中,所述处理器还用于生成临时非对称加密密钥对,并基于所述获得的所述调配非对称加密密钥对的公钥和使用预定密钥协议生成的所述临时非对称加密密钥对的私钥生成所述第二对称密钥,所述接口还用于将所述生成的临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的所述一个或多个。将所述临时非对称加密密钥对的所述私钥与所述调配非对称加密密钥对的所述公钥一起使用,可以安全地在所述安全服务器设备和所述客户端设备之间建立共有秘密(即所述第二对称密钥)。
在所述第二方面的另一种实现方式中,所述处理器还用于在所述加密所述生成的第三对称密钥时使用白盒加密。换句话说,所述实施例可与现有的保护方法(例如白盒加密)一起应用。
在所述第二方面的另一种实现方式中,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种。
在所述第二方面的另一种实现方式中,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。使用所述椭圆曲线密钥对或所述Rivest-Shamir-Adleman密钥对作为所述调配非对称加密密钥对,可以进一步提供所述生成所述第二对称密钥的安全性。
在所述第二方面的另一种实现方式中,所述预定密钥协议包括Diffie-Hellman密钥协商协议。使用密钥协商协议(例如所述Diffie-Hellman密钥协商协议),可以进一步提高所述生成所述第二对称密钥的安全性。
在所述第二方面的另一种实现方式中,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。使用所述椭圆曲线Diffie-Hellman密钥协商协议,可以进一步提高所述生成所述第二对称密钥的安全性。
在所述第二方面的另一种实现方式中,所述安全服务器设备还包括硬件安全模块。使用所述安全服务器设备中的硬件安全模块,可以提供抵御物理和逻辑攻击的安全认证环境。
根据第三方面,提供了一种客户端设备。所述客户端设备包括安全存储器,所述安全存储器用于存储与所述客户端设备关联的客户端设备类别标识符的第一对称密钥。所述客户端设备还包括收发器,所述收发器用于从安全服务器设备接收待调配给所述客户端设备的加密数据。所述客户端设备还包括处理器,所述处理器用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于所述存储的第一对称密钥在所述客户端设备处生成,在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥,并且在解密所述待调配的加密数据时使用所述生成的第二对称密钥。所述实施例允许在所述客户端设备中的受信硬件和配备所述安全服务器设备的非受信制造设施之间建立安全数据调配信道,从而避免在所述客户端设备制造期间调配所述客户端设备中的数据相关的安全问题。
在所述第三方面的另一种实现方式中,所述收发器还用于从所述安全服务器设备接收临时非对称加密密钥对的公钥,所述处理器还用于使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成所述第二对称密钥。将所述临时非对称加密密钥对的所述公钥和所述调配非对称加密密钥对的所述私钥一起使用,可以安全地在所述客户端设备和所述安全服务器设备之间建立共有秘密(即所述第二对称密钥)。
在所述第三方面的另一种实现方式中,所述客户端设备还包括用于执行加密操作的受信执行环境。使用受信执行环境可以在所述客户端设备中保护类别秘密和调配密钥派生。
根据第四个方面,提供了一种客户端设备。所述客户端设备包括安全存储器,所述安全存储器用于存储与所述客户端设备关联的客户端设备类别标识符的第一对称密钥。所述客户端设备还包括收发器,所述收发器用于从安全服务器设备接收待调配给所述客户端设备的加密数据。所述客户端设备还包括处理器,所述处理器用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于所述存储的第一对称密钥在所述客户端设备处生成,在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥,在解密加密的第三对称密钥时使用所述生成的第二对称密钥,并且在所述解密所述待调配的数据时使用所述解密的第三对称密钥,所述加密的第三对称密钥已经由所述收发器从所述安全服务器设备接收。所述实施例允许在所述客户端设备中的受信硬件和配备所述安全服务器设备的非受信制造设施之间建立安全数据调配信道,从而避免在所述客户端设备制造期间调配所述客户端设备中的数据相关的安全问题。
在所述第四方面的另一种实现方式中,所述收发器还用于从所述安全服务器设备接收临时非对称加密密钥对的公钥,所述处理器还用于使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成所述第二对称密钥。将所述临时非对称加密密钥对的所述公钥和所述调配非对称加密密钥对的所述私钥一起使用,可以安全地在所述客户端设备和所述安全服务器设备之间建立共有秘密(即所述第二对称密钥)。
在所述第四方面的另一种实现方式中,所述处理器还用于在所述解密所述接收的加密第三对称密钥时使用白盒加密。换句话说,所述实施例可与现有的保护方法(例如白盒加密)一起应用。
在所述第四方面的另一种实现方式中,所述客户端设备还包括用于执行加密操作的受信执行环境。使用受信执行环境可以在所述客户端设备中保护类别秘密和调配密钥派生。
根据第五方面,提供了一种用于安全服务器设备的处理器,所述安全服务器设备包括耦合到所述处理器的接口。所述处理器用于使所述接口用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述处理器还用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥,并在加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据时使用所述生成的第二对称密钥。所述处理器还用于使所述接口将所述待调配的加密数据发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
根据第六方面,提供了一种用于安全服务器设备的处理器,所述安全服务器设备包括耦合到所述处理器的接口。所述处理器用于使所述接口用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述处理器还用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥,随机生成第三对称密钥,使用所述随机生成的第三对称密钥加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据,以及在对所述第三对称密钥进行加密时使用所述生成的第二对称密钥。所述处理器还用于使所述接口将所述待调配的加密数据和所述加密的第三对称加密密钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
根据第七方面,提供了一种用于客户端设备的处理器,所述客户端设备包括耦合到所述处理器的收发器。所述处理器用于使所述收发器从安全服务器设备接收待调配给所述客户端设备的加密数据。所述处理器还用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中。所述处理器还用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥。所述处理器还用于在解密所述待调配的加密数据时使用所述生成的第二对称密钥。
根据第八方面,提供了一种用于客户端设备的处理器,所述客户端设备包括耦合到所述处理器的收发器。所述处理器用于使所述收发器从安全服务器设备接收待调配给所述客户端设备的加密数据。所述处理器还用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中。所述处理器还用于在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥。所述处理器还用于在解码加密第三对称密钥时使用所述生成的第二对称密钥,并且在所述解密所述待调配的数据时使用所述解密第三对称密钥,所述加密第三对称密钥已经由所述收发器从所述安全服务器设备接收。
根据第九方面,提供了一种方法。所述方法包括:安全服务器设备获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述方法还包括:所述安全服务器设备在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥。所述方法还包括:所述安全服务器设备利用在加密待调配给与所述类标识符相关联的一个或多个客户端设备的数据时使用所述生成的第二对称密钥。所述方法还包括:将所述待调配的加密数据从所述安全服务器设备发送到与所述类标识符相关联的所述客户端设备中的一个或多个。
在所述第九方面的另一种实现方式中,所述方法还包括:所述安全服务器设备生成临时非对称加密密钥对。所述第二对称密钥使用预定密钥协议基于所述获得的所述调配非对称加密密钥对的公钥和所述生成的临时非对称加密密钥对的私钥生成。所述方法还包括:所述安全服务器设备将所述生成的临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的所述一个或多个。
在所述第九方面的另一种实现方式中,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种。
在所述第九方面的另一种实现方式中,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。
在所述第九方面的另一种实现方式中,所述预定密钥协议包括Diffie-Hellman密钥协商协议。
在所述第九方面的另一种实现方式中,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。
在所述第九方面的另一种实现方式中,所述安全服务器设备还包括硬件安全模块。
根据第十方面,提供了一种计算机程序。所述计算机程序包括程序代码,所述程序代码用于在计算设备上执行所述计算机程序时执行根据第九方面的方法。
根据第十一方面,提供了一种方法。所述方法包括:安全服务器设备获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符的第一对称密钥生成。所述方法还包括:所述安全服务器设备在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥。所述方法还包括:所述安全服务器设备随机生成第三对称加密密钥。所述方法还包括:所述安全服务器设备使用所述随机生成的第三对称加密密钥加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据。所述方法还包括:所述安全服务器设备在加密所述第三对称密钥时使用所述生成的第二对称密钥对。所述方法还包括:将所述待调配的加密数据和所述加密的第三对称加密密钥从所述安全服务器设备发送到与所述类别标识符相关联的所述客户端设备中的一个或多个。
在所述第十一方面的另一种实现方式中,所述方法还包括:所述安全服务器设备生成临时非对称加密密钥对。所述第二对称密钥使用预定密钥协议基于所述获得的所述调配非对称加密密钥对的公钥和所述生成的临时非对称加密密钥对的私钥生成。所述方法还包括:所述安全服务器设备将所述生成的临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的所述一个或多个。
在所述第十一方面的另一种实现方式中,所述方法还包括:所述安全服务器设备在所述加密所述第三对称密码密钥时使用白盒加密。
在所述第十一方面的另一种实现方式中,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种。
在所述第十一方面的另一种实现方式中,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。
在所述第十一方面的另一种实现方式中,所述预定密钥协议包括Diffie-Hellman密钥协商协议。
在所述第十一方面的另一种实现方式中,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。
在所述第十一方面的另一种实现方式中,所述安全服务器设备还包括硬件安全模块。
根据第十二方面,提供了一种计算机程序。所述计算机程序包括程序代码,所述程序代码用于在计算设备上执行所述计算机程序时执行根据第十一方面的方法。
根据第十三方面,提供了一种方法。所述方法包括:在客户端设备处从安全服务器设备接收待调配给所述客户端设备的加密数据。所述方法还包括:所述客户端设备获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中。所述方法还包括:所述客户端设备在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥。所述方法还包括:所述客户端设备在解密所述待调配的加密数据时使用所述生成的第二对称密钥。
在所述第十三方面的另一种实现方式中,所述方法还包括:在所述客户端设备上从所述安全服务器设备接收临时非对称加密密钥对的公钥。所述方法还包括:所述客户端设备使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成所述第二对称密钥。
在所述第十三方面的另一种实现方式中,所述客户端设备还包括用于执行加密操作的受信执行环境。
根据第十四方面,提供了一种计算机程序。所述计算机程序包括程序代码,所述程序代码用于在计算设备上执行所述计算机程序时执行根据第十三方面的方法。
根据第十五方面,提供了一种方法。所述方法包括:在客户端设备处从安全服务器设备接收待调配给所述客户端设备的加密数据。所述方法还包括:所述客户端设备获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中。所述方法还包括:所述客户端设备在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥。所述方法还包括:所述客户端设备在解密加密的第三对称加密密钥时使用所述生成的第二对称密钥,所述加密的第三对称加密密钥已经在所述客户端设备上从所述安全服务器设备接收。所述方法还包括:在所述解密所述待调配的数据时使用所述解密的第三对称加密密钥。
在所述第十五方面的另一种实现方式中,所述方法还包括:在所述客户端设备上从所述安全服务器设备接收临时非对称加密密钥对的公钥。所述方法还包括:所述客户端设备使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成所述第二对称密钥。
在所述第十五方面的另一种实现形式中,所述方法还包括:所述客户端设备在所述解密所述接收的加密第三对称密钥时使用白盒加密。
在所述第十五方面的另一种实现方式中,所述客户端设备还包括用于执行加密操作的受信执行环境。
根据第十六方面,提供了一种计算机程序。所述计算机程序包括程序代码,所述程序代码用于在计算设备上执行所述计算机程序时执行根据第十五方面的方法。
参考下文结合附图进行的详细描述,许多伴随特性将变得更加清晰,因此更易理解。
附图说明
在下文中,将参考附图更详细地描述示例实施例,其中:
图1A是示出了根据一实施例的安全服务器设备的框图;
图1B是示出了根据另一实施例的安全服务器设备的框图;
图1C是示出了根据一实施例的客户端设备的框图;
图1D是示出了根据另一实施例的客户端设备的框图;
图2是示出了根据一实施例的***的图;
图3A是示出了根据一实施例的方法的图;
图3B是示出了根据另一实施例的方法的图;
图3C是示出了根据又一实施例的另一种方法的流程图。
在下文中,相同的附图标记指相同或至少功能上等同的功能。
具体实施方式
以下结合附图进行描述,所述附图是本发明的一部分,并通过图解说明的方式示出可以实施本发明的具体方面。可以理解的是,在不脱离本发明范围的情况下,可以利用其它方面,并可以做出结构上或逻辑上的改变。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。
可以理解的是,与所描述的方法有关的内容对于与用于执行方法对应的设备或***也同样适用,反之亦然。例如,如果描述了一个具体的方法步骤,对应的设备可以包括用于执行所描述的方法步骤的单元,即使此类单元未在图中详细阐述或说明。另一方面,例如,如果基于功能单元描述特定设备,则相应的方法可以包括执行所述功能的步骤,即使图中未明确描述或说明此步骤。此外,应理解,本文所描述的各种示例性方面的特性可以相互组合,除非另外明确说明。
非对称加密(也称为公钥加密)是指涉及彼此链接的一对密钥(即公钥和私钥)的加密技术。所述公钥可以广泛分发,而所述私钥仅供其所有者知道。任何人都可以使用所述所有者(即,消息的接收方)的公钥对消息进行加密,但此类加密邮件只能使用所述接收方的私钥进行解密。此外,所述公钥可用于身份验证,即由任何人验证相应私钥的所有者是否发送了消息。
对称加密是指一种加密技术,其涉及使用相同的加密密钥对明文进行加密和对密文进行解密。换句话说,所述对称加密的加密密钥表示两方或多方之间的共有秘密。
如下所述,在设备制造期间,所述安全服务器设备100a、100b将用于向所述客户端设备110a、110b调配数据。此类数据可包括各种资产数据,包括但不限于:设备密钥或设备密钥对、其它加密密钥材料、数字证书、安全策略、设备标识符和凭证。通常,需要这些设备密钥/密钥对启用所述移动/可穿戴设备提供的各种安全服务。附加地/可选地,待调配的数据可包括可执行代码,例如受信应用(Trusted Application,简称TA)。这些设备密钥/密钥对(或待调配的其它数据)可以使用例如加密编程接口(例如硬件安全模块103a、103b提供的接口)生成。
在下文中,基于图1A、1B、1C和1D来描述安全服务器设备100a和100b以及客户端设备110a和110b的示例性实施例。
图1A示出了安全服务器设备100a,其包括接口101a、处理器102a和可选的硬件安全模块(hardware security module,简称HSM)103a。
所述安全服务器设备100a可以包括例如制造服务器,所述制造服务器用于制造客户端设备,例如移动设备和/或可穿戴设备。换句话说,所述安全服务器设备100a可以部署在客户端设备的生产线上。这里,术语“安全”是指受信服务器设备,其包括允许对敏感或私有数据进行安全处理的元件或单元。所述安全服务器设备100a可以例如通过包含硬件安全模块103a来实现。通常,术语“硬件安全模块”是指保护和管理数字密钥并提供加密处理的物理计算设备。这种模块可以提供抵抗物理和逻辑攻击的安全认证环境,并且可以包括例如直接附接到所述安全服务器设备100a的插件卡或外部设备。
这里,每个客户端设备都属于一类客户端设备。例如,具有相同硬件规格的客户端设备可以共有相同的类别。但是,在一些实施例中,具有不同规格的硬件也可以具有相同的类别标识符。客户端设备类别由关联的客户端设备类别标识符唯一标识。此外,还为每个客户端设备类别标识符分配了自己的类别密钥(K)。所述类别密钥K是对称加密密钥,对于具有相同类别标识符的所有硬件,该密钥相同。换句话说,所述类别密钥是所有硬件共用的秘密密码密钥,所述硬件具有所述硬件供应商制造的相同类别。通常,将所述类别密钥K写入所述客户端设备的安全存储器区域(例如图1C和图1D的安全存储器113a、113b),其可由所述客户端设备的安全硬件(例如图1C和图1D的受信执行环境114a、114b)访问。正常的应用程序代码无法访问所述类别密钥K。所述类别密钥K的生成及其编程可以在所述客户端设备110a、110b中执行,例如,由图2的服务器120执行。
所述接口101a用于获得(例如,检索或接收)调配非对称加密密钥对(provisioning asymmetric cryptographic key pair,简称PKP)的公钥。所述调配非对称加密密钥对PKP包括私钥(dp)和所述公钥(Qp)。
所述调配非对称加密密钥对PKP可以是使用合适的方法从所述类别密钥K派生的。例如,在一个实施例中,所述类别密钥K可用于导出椭圆曲线(elliptic curve,简称EC)密钥对。在另一个实施例中,所述类别密钥K可用于导出Rivest-Shamir-Adleman(RSA)密钥对。换句话说,所述调配非对称加密密钥对可以包括例如椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。
所述调配非对称加密密钥对PKP的派生可以由例如所述芯片制造商(例如所述服务器120)或所述客户端设备制造商(例如所述安全服务器设备100a)执行。将结合图2更详细地描述所述调配非对称加密密钥对的派生或生成。换句话说,所述调配非对称加密密钥对基于所述客户端设备类别标识符的所述第一对称密钥生成。
所述处理器102a可以选择性地用于生成临时非对称加密密钥对。所述临时非对称加密密钥对包括私钥(de)和公钥(Qe)。所述处理器102a可以包括例如各种处理设备中的一个或多个,例如,协处理器、微处理器、控制器、数字信号处理器(digital signalprocessor,简称DSP)、伴有或不伴有DSP的处理电路,或者包括集成电路的各种其它处理设备,例如,专用集成电路(application specific integrated circuit,简称ASIC)、现场可编程门阵列(field programmable gate array,简称FPGA)、微控制器单元(microcontroller unit,简称MCU)、硬件加速器、专用计算机芯片等。
所述处理器102a还用于建立共有秘密,即所述安全服务器设备100a和所述客户端设备110a之间的调配会话密钥(provisioning session key,简称PSK)。换句话说,所述处理器102a还用于在生成第二对称密钥(即,调配会话密钥PSK)时使用所述获得的调配非对称加密密钥对的公钥Qp
例如,生成所述临时非对称加密密钥对后可以实施此操作,以使所述处理器102a例如使用预定密钥协议基于所述获得的调配非对称加密密钥对的公钥Qp和所述生成的临时非对称加密密钥对的所述私钥de生成所述第二对称密钥PSK。所述密钥协议可以包括Diffie-Hellman密钥协商协议,例如椭圆曲线Diffie-Hellman(elliptic curve Diffie-Hellman,简称ECDiffie-Hellman)密钥协商协议。换句话说,可以将所述临时密钥对与所述调配密钥对PKP一起使用,以使用例如Diffie-Hellman密钥协商协议(例如,所述ECDiffie-Hellman)商定共有秘密PSK。
所述处理器102a还用于在加密所述待调配给所述客户端设备110a的数据时使用所述生成的第二对称密钥PSK。例如,所述处理器102a可以使用所述生成的第二对称密钥PSK安全地封装所述待调配的数据。所述加密后,所述接口101a还用于将所述待调配的加密数据发送到所述客户端设备110a。生成所述临时非对称加密密钥对后,所述接口101a可以选择性地用于也将所述生成的临时非对称加密密钥对的公钥Qe发送到所述客户端设备110a。
图1B示出了安全服务器设备100b,其包括接口101b、处理器102b和可选的硬件安全模块(hardware security module,简称HSM)103b。
与图1A的实施例类似,所述处理器102b用于在生成所述第二对称密钥(调配会话密钥(provisioning session key,简称PSK))时使用所述获得的所述调配非对称加密密钥对(PKP)的公钥Qp,可选地使用所述临时非对称加密密钥对和如图1A实施例中的适当密钥协商协议。
但是,与图1A的实施例不同,所述处理器102b用于随机生成第三对称加密密钥(或者换句话说,共有秘密加密密钥(key encryption key,简称KEK))。
与图1A的实施例相比,所述处理器102b用于使用所述随机生成的第三对称加密密钥KEK对所述待调配给所述客户端设备110b的数据进行加密。如上所述,在图1A的实施例中,所述待调配的数据相反使用所述第二对称密钥PSK进行加密或封装。
与图1A的实施例相比,所述处理器102b用于使用所述第二对称密钥PSK在所述第三对称加密密钥KEK用于加密所述待调配的数据后对其进行加密。这样加密的第三对称加密密钥KEK(或者换句话说,加密的调配密钥,PEK)仍可由所述处理器102b使用白盒加密进一步加密。
与图1A的实施例相比,所述接口101b还用于将所述加密的第三对称加密密钥PEK发送到所述客户端设备110b。
否则,所述安全服务器设备100a和所述安全服务器设备100b的元素、功能和参数(例如所述待调配的各种加密密钥、标识符和数据)是相同的或至少在功能上是等同的,因此在此不再详细赘述。
图1C示出了客户端设备110a,其包括收发器111a、处理器112a、安全存储器113a和可选的安全硬件,例如受信执行环境(trusted execution environment,简称TEE)114a。
所述客户端设备110a可以是终端用户实体直接使用并能够在无线网络中通信的各种类型的移动和/或可穿戴设备,例如用户设备(user equipment,简称UE)。此类设备包括但不限于智能手机、平板电脑、智能手表、膝上型计算机、物联网(Internet-of-Thing,简称IoT)设备等。
此外,所述客户端设备110a可以包括安全硬件,例如用于执行加密操作(例如加密和/或解密相关操作)的受信执行环境(trusted execution environment,简称TEE)114a。通常,所述受信执行环境是指在安全模式下执行的处理器(例如处理器112a)或处理器(例如处理器112a)等中的安全区域。它可用于,例如,保证内部加载的代码和数据与其它应用隔离,并在保密性和完整性方面受到保护。所述受信执行环境114a可与所述安全存储器113a集成,即仅允许所述TEE访问包含设备秘密的所述安全存储器113a。
所述安全存储器113a用于所述存储与所述客户端设备110a关联的所述客户端设备类别标识符的所述第一对称密钥(即,上文详细描述的类别密钥K)。
值得注意的是,所述客户端设备110a使用的各种加密密钥、标识符和数据与所述安全服务器设备100a使用的密钥、标识符和数据相同或至少在功能上相同,因此在此不再详细赘述。
所述收发器111a用于从所述安全服务器设备100a接收所述待调配给所述客户端设备110a的加密数据。
所述处理器112a用于获得所述调配非对称加密密钥对PKP的所述私钥dp。所述调配非对称加密密钥对PKP基于存储在所述安全存储113a中的所述第一对称密钥K在所述客户端设备110a上生成或之前已生成。如果之前已为所述客户端设备110a完成了所述数据调配,则在首次调配期间生成了所述调配非对称加密密钥对PKP。在一个示例中,所述客户端设备110a可以存储所述生成的调配非对称加密密钥对PKP,例如,在所述第一次数据调配时将其存储到所述安全存储器113a,并且在所述以下数据调配期间,可以从所述安全存储器113a获得所述生成的调配非对称加密密钥对PKP。换句话说,可以对每个客户机设备110a只执行一次对所述调配非对称加密密钥对PKP的生成。
所述处理器112a还用于在生成第二对称密钥PSK时使用所述获得的所述调配非对称加密密钥对PKP的私钥dp。例如,这可以实现为所述收发器111a从所述安全服务器设备100a接收所述临时非对称加密密钥对的所述公钥Qe,并且所述处理器112a使用预定密钥协议基于所述生成的调配非对称加密密钥对PKP的所述私钥dp和所述接收的所述临时非对称加密密钥对的公钥Qe生成所述第二对称密钥PSK。如前所述,所述密钥协议可以包括所述Diffie-Hellman密钥协商协议,例如所述椭圆曲线Diffie-Hellman(elliptic curveDiffie-Hellman,简称ECDiffie-Hellman)密钥协商协议。
所述处理器112a还用于在解密从所述安全服务器设备100a接收的所述待调配的加密数据时使用所述生成的第二对称密钥PSK。
图1D示出了客户端设备110b,其包括收发器111b、处理器112b、安全存储器113b和可选的安全硬件,例如受信执行环境(trusted execution environment,简称TEE)114b。
与图1C的实施例不同,所述收发器111b还用于从所述安全服务器设备100b接收所述加密的第三对称加密密钥PEK。与图1C的实施例相比,所述处理器112b用于在解密所述加密的第三对称加密密钥(PEK)时使用所述生成的第二对称密钥PSK,从而获得所述解密的第三对称加密密钥(key encryption key,简称KEK),而在图1C的实施例中,所述PSK用于解密所述待调配的加密数据。
与图1C的实施例相比,所述处理器112b用于在解密所述待调配的数据时使用所述解密的第三对称加密密钥KEK。
否则,所述客户端设备110a和所述客户端设备110b的元素、特征和参数(例如所述待调配的各种加密密钥、标识符和数据)是相同的或至少在功能上等同的,因此在此不再详细赘述。
图2示出了根据实施例的***200的示意图。所述***200包括服务器120(例如芯片制造商服务器)、安全服务器设备100、客户端device 1100和客户端设备1101-110n
在一个实施例中,所述安全服务器设备100的元素、特征和参数(例如所述待调配的各种加密密钥、标识符和数据)与所述安全服务器设备100a的元素、特征和参数相同或至少在功能上等效,并且所述客户端设备1101-110n的元素、特征和参数与所述客户端设备110a的元素、特征和参数相同或至少在功能上等效。在另一实施例中,所述安全服务器设备100的元素、特征和参数与所述安全服务器设备100b的元素、特征和参数相同或至少在功能上等效,并且所述客户端设备1101-110n的元素、特征和参数与客户端设备110b的元素、特征和参数相同或至少在功能上等效。因此,此处不再详细赘述。
如图2所示,安全制造阶段210涉及在操作2111至211n中将所述类别密钥K安全编程到所述客户端设备1101-110n。每个客户端设备类需要完成一次所述安全制造阶段210。如上所述,所述类别密钥K通常写入客户端设备1101-110n(例如所述安全存储1131-113n)的安全存储区,所述客户端设备1101-110n的安全硬件(例如所述受信执行环境)可以访问该区域。正常应用代码无法访问所述类别密钥K。
阶段220和230涉及将待从所述安全服务器设备100调配的资产/数据安全地传输到所述客户端设备1101-110n。每个客户端设备需要完成一次步骤220和230。
所述PKP的派生可以由例如芯片制造商或客户端设备制造商使用属于所述特定类别的单个客户端设备1130来执行。在前一种情况下,所述芯片制造商在所述类别密钥K可用的安全环境(例如服务器120)中导出所述PKP。在后一种情况下,所述客户端设备制造商可以将特殊的受信任PKP生成应用加载到单个客户端设备1130。此受信任应用具有对所述类别密钥K的访问权限,并派生此客户端设备1130中的PKP。在这两种情况下,每个设备类别只需执行一次所述密钥派生。将所述PKP的公钥部分安全地传输(操作212或221)到受信服务器(即,安全服务器设备100),以便所述受信服务器相应地使用所述公钥部分。
然后,所述PKP用于对所述安全服务器设备100中的资产进行封装/加密(操作222),所述封装/加密的资产传输(操作2311至231n)到所述客户端设备1101-110n,以及所述客户端设备1101-110n使用所述PKP对所述资产进行封装/解密。除了传输所述封装/加密资产之外,还可能需要传输其它安全参数,包括所述临时密钥对的公钥Qe、封装/加密所述资产期间使用的潜在初始化向量(initialization vector,简称IV)和/或普通数据(例如设备证书链)。
图3A示出了根据一实施例的示例方法的300a。
所述方法300a包括安全服务器设备获得调配非对称加密密钥对PKP的公钥,所述调配非对称加密密钥对PKP已经基于客户端设备类别标识符的第一对称密钥K生成(步骤301a)。
所述方法300a还包括所述安全服务器设备生成临时非对称加密密钥对(步骤302a)。
所述方法300a还包括使用预定密钥协议基于所述获得的所述调配非对称加密密钥对的公钥Qp和所述生成的临时非对称加密密钥对的私钥de生成第二对称密钥PSK(步骤303a)。
所述方法300a还包括所述安全服务器设备利用在加密待调配给与所述类标识符相关联的一个或多个客户端设备的数据时使用所述生成的第二对称密钥(步骤304a)。
所述方法300a还包括将所述待调配的加密数据和所述生成的临时非对称加密密钥对的公钥Qe从所述安全服务器设备发送到与所述类别标识符关联的所述客户端设备中的一个或多个(步骤305a)。
所述方法300a可以由所述安全服务器设备100a执行。所述方法300a的进一步功能直接来自所述安全服务器设备100a的功能。所述方法300a可由计算机程序执行。
图3A还示出了根据相同实施例的另一示例方法的310a。
所述方法310a包括在所述客户端设备上从所述安全服务器设备接收所述临时非对称加密密钥对的所述公钥Qe和所述待调配给客户端设备的加密数据(步骤311a)。
所述方法310a还包括所述客户端设备获得所述调配非对称加密密钥对的所述私钥dp(步骤312a)。所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的所述客户端设备类别标识符的所述第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的所述安全存储器中。
所述方法310a还包括所述客户端设备使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥dp和所述接收的所述临时非对称加密密钥对的公钥Qe生成所述第二对称密钥PSK(步骤313a)。
所述方法310a还包括所述客户端设备在解密所述待调配的加密数据时使用所述生成的第二对称密钥PSK(步骤314a)。
所述方法310a可以由所述客户端设备110a执行。所述方法310a的进一步功能直接来自所述客户端设备110a的功能。所述方法310a可由计算机程序执行。
图3B示出了根据另一实施例的示例方法300b的图。
所述方法300b包括安全服务器设备获得调配非对称加密密钥对PKP的公钥,所述调配非对称加密密钥对PKP已经基于客户端设备类别标识符的第一对称密钥K生成(步骤301b)。
所述方法300b还包括所述安全服务器设备生成临时非对称加密密钥对(步骤302b)。
所述方法300b还包括使用预定密钥协议基于所述获得的所述调配非对称加密密钥对的公钥Qp和所述生成的临时非对称加密密钥对的私钥de生成第二对称密钥PSK(步骤303b)。
所述方法300b还包括获得(生成或检索)待调配(私有设备密钥Kpriv)给与所述类别标识符关联的一个或多个客户端设备(步骤304b)。
所述方法300b还包括所述安全服务器设备随机生成第三对称加密密钥KEK(步骤305b)。
所述方法300b还包括所述安全服务器设备使用所述随机生成的第三对称加密密钥KEK加密所述待调配的数据(步骤306b)。
所述方法300b还包括所述安全服务器设备在加密所述第三对称密钥(KEK)时使用所述生成的第二对称密钥PSK,从而获得所述加密的第三对称密钥(PEK)(307b1)。
可选地,所述方法300b还包括所述安全服务器设备在所述加密所述第三对称密码密钥时使用白盒加密(步骤307b2)。
可选地,所述方法300b还包括创建证书签名请求(certificate signingrequest,简称CSR)(步骤308b)。
所述方法300b还包括将所述待调配的加密数据和所述加密的第三对称加密密钥从所述安全服务器设备发送到与所述类别标识符相关联的所述客户端设备中的一个或多个(步骤309b)。
所述方法300b可由所述安全服务器设备100b执行。所述方法300b的进一步功能直接来自所述安全服务器设备100b的功能。所述方法300b可由计算机程序执行。
图3C示出了根据又一实施例的示例方法的流程图310b。
所述方法310b包括在所述客户端设备上从所述安全服务器设备接收所述临时非对称加密密钥对的所述公钥Qe、所述加密的第三对称密钥(PEK)和所述待调配给客户端设备的加密数据(步骤311b)。
所述方法310b还包括所述客户端设备获得所述调配非对称加密密钥对的所述私钥dp(步骤312b)。所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的所述客户端设备类别标识符的所述第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的所述安全存储器中。
所述方法310b还包括所述客户端设备使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥dp和所述接收的所述临时非对称加密密钥对的公钥Qe生成所述第二对称密钥PSK(步骤313b)。
所述方法310b还包括所述客户端设备在解密加密的第三对称密钥(PEK)时使用所述生成的第二对称密钥PSK(和可选的白盒加密),从而获得所述解密的第三对称密钥(KEK)(314b)。
所述方法310b还包括在所述解密所述待调配的数据时使用所述解密的第三对称加密密钥(KEK)(步骤315b)。
所述方法310b可以由所述客户端设备110b执行。所述方法310b的进一步功能直接来自所述客户端设备110b的功能。所述方法310b可由计算机程序执行。
换句话说,图3B和图3C的过程可以开始于生成(或检索)所述设备密钥对、生成所述共享密钥加密密钥(key encryption key,简称KEK)以及生成与ECHD一起使用的所述暂时密钥对(ephemeral key pair,简称EKP)。首先,所述设备密钥对可用于生成证书签名请求(certificate signing request,简称CSR),例如,可以采用PKCS#10格式。所述CSR可用于注册来自公钥基础设施(public key infrastructure,简称PKI)***(即来自认证机构)的设备证书。然后,使用所述KEK封装/加密所述私有设备密钥。然后,所述临时密钥对的私钥Qe与PKP的公钥dp一起使用,以导出所述PSK(例如,通过使用所述ECDiffie-Hellman密钥协议)。然后,所述PSK用于封装/加密所述KEK,从而生成所述加密调配密钥(PEK)。为此(即OneTimePad、OTP)可以使用异或(exclusive or,简称XOR),但也可以使用其它加密方案。最后,使用白盒加密对所述PEK进行加密。所述设备证书(具有整个证书链)、加密私钥和加密KEK(包括PSK和白盒加密)构成数据组,用于将所述设备密钥对与所述设备证书链一起调配到所述客户端设备。所述数据blob(即输出)还可包含其它数据字段,例如在不同的封装/加密步骤中使用的初始化向量(initialization vector,简称IV)以及所述临时EPK的所述公钥Qe
解密所述待调配的数据(例如,所述私有设备密钥)后,所述客户端设备可以将所述待调配的数据存储到所述安全位置,或者将所述设备证书(链)存储到安全位置,并适当地对其进行限制。
本发明允许非受信任制造设施配备安全服务器设备以在所述安全服务器设备到所述客户端设备的受信任硬件之间建立安全数据调配信道,从而避免在设备制造期间与调配所述客户端设备中的数据相关的安全问题,例如如何对所述待调配的数据进行加密,以便只有所述目标客户端设备能够解密所述数据,以及如何对所述目标客户端设备进行身份验证。
在本发明中,所述类别密钥K用于生成调配密钥对(provisioning key pair,简称PKP),其中所述私钥部分仅被所述客户端设备获知,并且将所述公钥部分传输到所述安全服务器设备。然后,所述PKP例如与椭圆曲线Diffie-Hellman(Elliptic Curve Diffie-Hellman,简称ECDiffie-Hellman)方法一起使用,以导出调配共有秘密(provisioningshared secret,简称PSK),该密钥可用于确保将所述待调配的数据从所述安全服务器设备传输到所述客户端设备。由于只有客户端设备能够访问所述PKP的所述私钥部分,因此只有所述客户端设备能够以纯文本形式获取所述资产。此过程还隐式地验证所述客户端设备,因为所述安全服务器设备知道所述相应的私钥仅在经过身份验证的客户端设备中可用。
此外,需要导出和/或获得每个设备类的单个公钥,该公钥将导入到所述安全服务器设备。此外,由于芯片制造商通常会在其芯片中对类别秘密进行预编程,因此本发明易于部署。此外,密钥派生可以多样化,以便为多个使用案例提供多个调配密钥。此外,即使一个调配会话密钥被入侵,它也不允许访问任何其它设备密钥。
此处描述的功能至少部分可以由一个或多个计算机程序产品组件(例如软件组件)执行。根据一个实施例,所述客户端设备110a、110b和/或安全服务器设备100a、100b包括执行所述程序代码时配置处理器执行所描述的操作和功能的实施例。替代或附加地,本文描述的功能至少部分地可以由一个或多个硬件逻辑组件执行。例如,在不限于此情况下,可以使用的说明性硬件逻辑组件类型包括现场可编程门阵列(Field-programmable GateArray,简称FPGA)、特定程序集成电路(Program-specific Integrated Circuit,简称ASIC)、特定程序标准产品(Program-specific Standard Product,简称ASSP)、片上***(System-on-a-chip,简称SOC)、复杂可编程逻辑设备(Complex Programmable LogicDevice,简称CPLD)和图形处理单元(Graphics Processing Unit,简称GPU)。
此处给出的任何范围或设备值均可扩展或更改,但不会丢失所寻求的效果。此外,除非明确禁止,否则任何实施例均可与另一实施例组合。
虽然已经以特定于结构特征和/或动作的语言描述了主题,但是应该理解的是,权利要求书定义的主题不必局限于上面描述的具体特征或动作。相反,上面描述的具体特征和动作作为实现所述权利要求的示例而公开,并且其它等效特征和动作旨在属于所述权利要求的范围。
应理解,上述优点和优点可涉及一个实施例,也可涉及几个实施例。这些实施例不限于解决任何或所有所述问题的实施例,或那些具有任何或所有所述优点和优势的实施例。可进一步理解的是,“一个”项目的引用可以指这些项目中的一个或多个。
此处描述的方法的步骤可以按照任何适当的顺序执行,或者在适当的情况下同时执行。此外,可以在不脱离本文所述主题的精神和范围的情况下从任何方法中删除单独的框。上述任一实施例的各个方面可与所描述的任何其它实施例的各个方面相结合,以形成进一步的实施例,而不会失去所寻求的效果。
此处使用的术语“包括”是指包括所标识的方法、框图或元素,但此类框图或元素不包含排他性列表,且方法或设备可包含其它框图或元素。
应当理解,以上描述仅通过示例给出,并且本领域技术人员可以进行各种修改。上述规格、示例和数据提供了对示例性实施例的结构和使用的完整说明。尽管以上已经以某种程度的特殊性或者参考一个或多个单独的实施例描述了各种实施例,但是本领域技术人员可以在不脱离本说明书的精神或范围的情况下对所公开的实施例进行多种改变。

Claims (28)

1.一种安全服务器设备(100a),其特征在于,包括:
接口(101a),用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
处理器(102a),用于生成临时非对称加密密钥对,并使用预定密钥协议基于所述调配非对称加密密钥对的公钥和所述临时非对称加密密钥对的私钥生成第二对称密钥,并在加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据时使用所述第二对称密钥,
其中,所述接口(101a)还用于将所述待调配的加密数据和所述临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
2.根据权利要求1所述的安全服务器设备(100a),其特征在于,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种,所述加密密钥材料至少包括设备密钥、设备密钥对。
3.根据权利要求1所述的安全服务器设备(100a),其特征在于,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。
4.根据权利要求1至3中任一项所述的安全服务器设备(100a),其特征在于,所述预定密钥协议包括Diffie-Hellman密钥协商协议。
5.根据权利要求4所述的安全服务器设备(100a),其特征在于,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。
6.根据权利要求1至3中任一项所述的安全服务器设备(100a),其特征在于,还包括硬件安全模块(103a)。
7.一种安全服务器设备(100b),其特征在于,包括:
接口(101b),用于获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
处理器(102b),用于在生成第二对称密钥时使用所述调配非对称加密密钥对的公钥,随机生成第三对称密钥,使用所述第三对称密钥加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据,以及在对所述第三对称密钥进行加密时使用所述第二对称密钥,
其中,所述接口(101b)还用于将待调配的加密数据和所述加密的第三对称加密密钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
8.根据权利要求7所述的安全服务器设备(100b),其特征在于,所述处理器(102b)还用于生成临时非对称加密密钥对,并使用预定密钥协议基于所述调配非对称加密密钥对的公钥和所述临时非对称加密密钥对的私钥生成所述第二对称密钥,所述接口(101b)还用于将所述临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的所述一个或多个。
9.根据权利要求7所述的安全服务器设备(100b),其特征在于,所述处理器(102b)还用于在所述加密所述生成的第三对称密钥时使用白盒加密。
10.根据权利要求7至9中任一项所述的安全服务器设备(100b),其特征在于,所述待调配的数据包括加密密钥材料或可执行代码中的至少一种,所述加密密钥材料至少包括设备密钥、设备密钥对。
11.根据权利要求7至9中任一项所述的安全服务器设备(100b),其特征在于,所述调配非对称加密密钥对包括椭圆曲线密钥对或Rivest-Shamir-Adleman密钥对。
12.根据权利要求8所述的安全服务器设备(100b),其特征在于,所述预定密钥协议包括Diffie-Hellman密钥协商协议。
13.根据权利要求12所述的安全服务器设备(100b),其特征在于,所述Diffie-Hellman密钥协商协议包括椭圆曲线Diffie-Hellman密钥协商协议。
14.根据权利要求7至9中任一项所述的安全服务器设备(100b),其特征在于,还包括硬件安全模块(103b)。
15.一种客户端设备(110a),其特征在于,包括:
安全存储器(113a),用于存储与所述客户端设备(110a)关联的客户端设备类别标识符对应的第一对称密钥;
收发器(111a),用于从安全服务器设备接收待调配给所述客户端设备(110a)的加密数据,以及接收临时非对称加密密钥对的公钥;
处理器(112a),用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于所述存储的第一对称密钥在所述客户端设备(110a)处生成,使用预定密钥协议基于所述调配非对称加密密钥对的私钥和所述临时非对称加密密钥对的公钥生成第二对称密钥,并且在解密所述待调配的加密数据时使用所述第二对称密钥。
16.根据权利要求15所述的客户端设备(110a),其特征在于,还包括用于执行加密操作的受信执行环境(114a)。
17.一种客户端设备(110b),其特征在于,包括:
安全存储器(113b),用于存储与所述客户端设备(110b)关联的客户端设备类别标识符对应的第一对称密钥;
收发器(111b),用于从安全服务器设备接收待调配给所述客户端设备(110b)的加密数据;
处理器(112b),用于获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于所述存储的第一对称密钥在所述客户端设备(110b)处生成,在生成第二对称密钥时使用所述调配非对称加密密钥对的私钥,在解密加密的第三对称密钥时使用所述生成的第二对称密钥,并且在所述解密所述待调配的数据时使用所述解密的第三对称密钥,所述加密的第三对称密钥已经由所述收发器(111b)从所述安全服务器设备接收。
18.根据权利要求17所述的客户端设备(110b),其特征在于,所述收发器(111b)还用于从所述安全服务器设备接收临时非对称加密密钥对的公钥,所述处理器(112b)还用于使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成所述第二对称密钥。
19.根据权利要求17所述的客户端设备(110b),其特征在于,所述处理器(112b)还用于在所述解密所述接收的加密第三对称密钥时使用白盒加密。
20.根据权利要求17至19中任一项所述的客户端设备(110b),其特征在于,还包括用于执行加密操作的受信执行环境(114b)。
21.一种安全服务器设备(100a),其特征在于,所述安全服务器设备(100a)包括处理器(102a)以及耦合到所述处理器(102a)的接口(101a),其中所述处理器(102a)用于:
使所述接口(101a)获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
生成临时非对称加密密钥对,使用预定密钥协议基于所述获得的所述调配非对称加密密钥对的公钥和所述生成的临时非对称加密密钥对的私钥生成第二对称密钥,并在加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据时使用所述生成的第二对称密钥;
使所述接口(101a)将所述待调配的加密数据和所述生成的临时非对称加密密钥对的公钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
22.一种安全服务器设备(100b),其特征在于,所述安全服务器设备(100b)包括处理器(102b)以及耦合到所述处理器(102b)的接口(101b),其中所述处理器(102b)用于:使所述接口(101b)获得调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的公钥,随机生成第三对称密钥,使用所述随机生成的第三对称密钥加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据,以及在对所述第三对称密钥进行加密时使用所述生成的第二对称密钥;
使所述接口(101b)将所述待调配的加密数据和所述加密的第三对称加密密钥发送到与所述类别标识符关联的所述客户端设备中的一个或多个。
23.一种客户端设备(110a),其特征在于,所述客户端设备(110a)包括处理器(112a)以及耦合到所述处理器(112a)的收发器(111a),其中所述处理器(112a)用于:
使所述收发器(111a)从安全服务器设备接收待调配给所述客户端设备(110a)的加密数据,以及接收临时非对称加密密钥对的公钥;
获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于与所述客户端设备(110a)相关联的客户端设备类别标识符对应的第一对称密钥在所述客户端设备(110a)处生成,所述第一对称密钥存储在所述客户端设备(110a)的安全存储器(113a)中;
使用预定密钥协商协议基于所述生成的调配非对称加密密钥对的所述私钥和所述接收的所述临时非对称加密密钥对的公钥生成第二对称密钥;
在解密所述待调配的加密数据时使用所述生成的第二对称密钥。
24.一种客户端设备(110b),其特征在于,所述客户端设备(110b)包括处理器(112b)以及耦合到所述处理器(112b)的收发器(111b),其中所述处理器(112b)用于:
使所述收发器(111b)从安全服务器设备接收待调配给所述客户端设备(110b)的加密数据;
获得调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经基于与所述客户端设备(110b)相关联的客户端设备类别标识符对应的第一对称密钥在所述客户端设备(110b)处生成,所述第一对称密钥存储在所述客户端设备(110b)的安全存储器(113b)中;
在生成第二对称密钥时使用所述获得的所述调配非对称加密密钥对的私钥;
在解码加密第三对称密钥时使用所述生成的第二对称密钥,并且在解密所述待调配的数据时使用所述加密第三对称密钥,所述加密第三对称密钥已经由所述收发器(111b)从所述安全服务器设备接收。
25.一种数据调配方法(300a),其特征在于,包括:
安全服务器设备获得(301a)调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
所述安全服务器设备生成(302a)临时非对称加密密钥对,使用(303a)预定密钥协议基于所述调配非对称加密密钥对的公钥和所述临时非对称加密密钥对的私钥生成第二对称密钥;
所述安全服务器设备在加密待调配给与所述类别标识符相关联的一个或多个客户端设备的数据时使用(304a)所述生成的第二对称密钥;
所述安全服务器设备将所述待调配的加密数据和所述临时非对称加密密钥对的公钥从所述安全服务器设备发送(305a)到与所述类别标识符相关联的所述客户端设备中的一个或多个。
26.一种数据调配方法(300b),其特征在于,包括:
安全服务器设备获得(301b)调配非对称加密密钥对的公钥,所述调配非对称加密密钥对已经基于客户端设备类别标识符对应的第一对称密钥生成;
所述安全服务器设备在生成第二对称密钥时使用(303b)所述获得的所述调配非对称加密密钥对的公钥;
所述安全服务器设备随机生成(305b)第三对称加密密钥;
所述安全服务器设备使用所述随机生成的第三对称加密密钥加密(306b)待调配给与所述类别标识符相关联的一个或多个客户端设备的数据;
所述安全服务器设备在加密所述第三对称密钥时使用(307b1)所述生成的第二对称密钥对;
将所述待调配的加密数据和所述加密的第三对称加密密钥从所述安全服务器设备发送(309b)到与所述类别标识符相关联的所述客户端设备中的一个或多个。
27.一种数据调配方法(310a),其特征在于,包括:
在客户端设备处从安全服务器设备接收(311a)待调配给所述客户端设备的加密数据,以及接收临时非对称加密密钥对的公钥;
所述客户端设备获得(312a)调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符对应的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中;
所述客户端设备使用(313a)预定密钥协商协议基于所述调配非对称加密密钥对的所述私钥和所述临时非对称加密密钥对的所述公钥生成第二对称密钥;
所述客户端设备在解密所述待调配的加密数据时使用(314a)所述生成的第二对称密钥。
28.一种数据调配方法(310b),其特征在于,包括:
在客户端设备处从安全服务器设备接收(311b)待调配给所述客户端设备的加密数据;
所述客户端设备获得(312b)调配非对称加密密钥对的私钥,所述调配非对称加密密钥对已经由所述客户端设备基于与所述客户端设备相关联的客户端设备类别标识符对应的第一对称密钥生成,所述第一对称密钥存储在所述客户端设备的安全存储器中;
所述客户端设备在生成第二对称密钥时使用(313b)所述调配非对称加密密钥对的私钥;
所述客户端设备在解密加密的第三对称加密密钥时使用(314b)所述生成的第二对称密钥,所述加密的第三对称加密密钥已经在所述客户端设备上从所述安全服务器设备接收;
在所述解密所述待调配的数据时使用(315b)所述解密的第三对称加密密钥。
CN201780097258.XA 2017-12-01 2017-12-01 向客户端设备安全调配数据 Active CN111406382B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/081203 WO2019105571A1 (en) 2017-12-01 2017-12-01 Secure provisioning of data to client device

Publications (2)

Publication Number Publication Date
CN111406382A CN111406382A (zh) 2020-07-10
CN111406382B true CN111406382B (zh) 2021-12-14

Family

ID=60888357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780097258.XA Active CN111406382B (zh) 2017-12-01 2017-12-01 向客户端设备安全调配数据

Country Status (7)

Country Link
US (1) US20200374112A1 (zh)
EP (1) EP3695561B1 (zh)
CN (1) CN111406382B (zh)
BR (1) BR112020009701A2 (zh)
IL (1) IL274940B1 (zh)
MX (1) MX2020005598A (zh)
WO (1) WO2019105571A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018132991A1 (de) * 2018-12-19 2020-06-25 Francotyp-Postalia Gmbh System und verfahren zum protokollieren von prozess-schritten
KR102319699B1 (ko) * 2019-08-02 2021-11-02 국민대학교산학협력단 안티-인버전 함수를 이용한 화이트박스 암호 인코딩 장치 및 방법
US11611431B2 (en) 2020-07-01 2023-03-21 Red Hat, Inc. Network bound encryption for recovery of trusted execution environments
US11671412B2 (en) * 2020-07-01 2023-06-06 Red Hat, Inc. Network bound encryption for orchestrating workloads with sensitive data
US11741221B2 (en) 2020-07-29 2023-08-29 Red Hat, Inc. Using a trusted execution environment to enable network booting
US11258617B1 (en) * 2020-12-04 2022-02-22 Salesforce.Com, Inc. Device identity using key agreement
US20230130121A1 (en) * 2021-10-27 2023-04-27 Salesforce.Com, Inc. Protecting Application Private Keys Using MPC Techniques

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2582085A1 (en) * 2011-10-10 2013-04-17 Certicom Corp. Generating implicit certificates
CN103354498A (zh) * 2013-05-31 2013-10-16 北京鹏宇成软件技术有限公司 一种基于身份的文件加密传输方法
WO2014200496A1 (en) * 2013-06-13 2014-12-18 Intel Corporation Secure pairing for communication across devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073142A (en) * 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) * 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) * 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US8756683B2 (en) * 2006-12-13 2014-06-17 Microsoft Corporation Distributed malicious software protection in file sharing environments
US8892136B2 (en) * 2010-07-27 2014-11-18 At&T Intellectual Property I, L.P. Identifying abusive mobile messages and associated mobile message senders
US10395031B2 (en) * 2010-12-30 2019-08-27 Verisign, Inc. Systems and methods for malware detection and scanning
US20120272320A1 (en) * 2011-04-25 2012-10-25 Verizon Patent And Licensing Inc. Method and system for providing mobile device scanning
WO2013063474A1 (en) * 2011-10-28 2013-05-02 Scargo, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
CN105556532A (zh) * 2013-09-27 2016-05-04 迈克菲股份有限公司 伴随数据行进的数字保护
CN105515768B (zh) * 2016-01-08 2017-07-21 腾讯科技(深圳)有限公司 一种更新密钥的方法、装置和***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2582085A1 (en) * 2011-10-10 2013-04-17 Certicom Corp. Generating implicit certificates
CN103354498A (zh) * 2013-05-31 2013-10-16 北京鹏宇成软件技术有限公司 一种基于身份的文件加密传输方法
WO2014200496A1 (en) * 2013-06-13 2014-12-18 Intel Corporation Secure pairing for communication across devices

Also Published As

Publication number Publication date
WO2019105571A1 (en) 2019-06-06
EP3695561A1 (en) 2020-08-19
CN111406382A (zh) 2020-07-10
EP3695561B1 (en) 2022-04-27
IL274940A (en) 2020-07-30
US20200374112A1 (en) 2020-11-26
IL274940B1 (en) 2024-04-01
BR112020009701A2 (pt) 2020-11-03
MX2020005598A (es) 2020-09-25

Similar Documents

Publication Publication Date Title
CN111406382B (zh) 向客户端设备安全调配数据
US11323276B2 (en) Mutual authentication of confidential communication
US9794249B1 (en) Using a digital certificate with multiple cryptosystems
CN108886468B (zh) 用于分发基于身份的密钥资料和证书的***和方法
CN110050437B (zh) 分布式证书注册的装置和方法
CN104094267B (zh) 安全共享来自源装置的媒体内容的方法、装置和***
JP7232816B2 (ja) 資産を認証する認証システム及び認証方法
US20200204360A1 (en) Method and Devices for Communicating Securely Between Devices
WO2006023151A2 (en) Method of delivering direct proof private keys to devices using an on-line service
WO2017167771A1 (en) Handshake protocols for identity-based key material and certificates
WO2015158172A1 (zh) 一种用户身份识别卡
CN110268675B (zh) 可编程硬件安全模块和可编程硬件安全模块上的方法
JP2020507243A (ja) ネットワークデバイス及び信頼できるサードパーティデバイス
WO2023284691A1 (zh) 一种账户的开立方法、***及装置
WO2018119852A1 (en) Method for mutual authentication between device and secure element
WO2022233394A1 (en) Device, method and system for asynchronous messaging
EP3800825B1 (en) Method and device for configuring alias credential
WO2014005534A1 (zh) 一种从数据提供方传输数据到智能卡的方法和***
US11783057B2 (en) Method for securely provisioning a device incorporating an integrated circuit without using a secure environment
WO2022214182A1 (en) Hardware module and method for key diversification

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
CB03 Change of inventor or designer information

Inventor after: Sampur Soviet

Inventor after: Li Qiming

Inventor after: Peka Letinin

Inventor after: Lian Gang

Inventor after: Xie Meilun

Inventor after: Fang Xiwen

Inventor after: Shan Zhihua

Inventor before: Sampur Soviet

Inventor before: Li Qiming

Inventor before: Peka Letinin

Inventor before: Lian Gang

Inventor before: Xie Meilun

Inventor before: Fang Xiwen

Inventor before: Shan Zhihua

GR01 Patent grant
GR01 Patent grant