CN108604983B - 通过域名服务对私钥的安全的委托分发的介质和方法 - Google Patents

通过域名服务对私钥的安全的委托分发的介质和方法 Download PDF

Info

Publication number
CN108604983B
CN108604983B CN201680021221.4A CN201680021221A CN108604983B CN 108604983 B CN108604983 B CN 108604983B CN 201680021221 A CN201680021221 A CN 201680021221A CN 108604983 B CN108604983 B CN 108604983B
Authority
CN
China
Prior art keywords
private key
key
party system
dns
encrypted
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
CN201680021221.4A
Other languages
English (en)
Other versions
CN108604983A (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.)
Valimail Inc
Original Assignee
Valimail Inc
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 Valimail Inc filed Critical Valimail Inc
Publication of CN108604983A publication Critical patent/CN108604983A/zh
Application granted granted Critical
Publication of CN108604983B publication Critical patent/CN108604983B/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
    • 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/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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
    • 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/0819Key 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/0822Key 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 key encryption key
    • 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/0819Key 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/0825Key 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
    • 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/0819Key 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/32Cryptographic 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/3247Cryptographic 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
    • 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/32Cryptographic 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/3247Cryptographic 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/3249Cryptographic 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 RSA or related signature schemes, e.g. Rabin scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种第三方系统生成公钥‑私钥对,该公钥‑私钥对中的公钥是加密密钥,而该公钥‑私钥对中的私钥是解密密钥。第三方系统将加密密钥作为第三方系统的DNS记录进行公布。第三方系统接收代表域所有者对要发送给接收方的消息进行签名的请求,并且访问由域所有者经由域所有者的DNS记录公布的加密后的委托私钥,该加密后的委托私钥是使用加密密钥来加密的。第三方系统使用解密密钥对加密后的委托私钥进行解密,并且使用委托私钥来生成用于消息的签名。第三方系统将签名和消息发送给接收方。

Description

通过域名服务对私钥的安全的委托分发的介质和方法
相关申请的交叉引用
本申请要求于2015年2月14号提交的第62/116.414号美国临时申请的优先权,其全部内容通过引用而并入本文。
技术领域
本公开内容总体上涉及网络领域,具体地,涉及通过域名服务(DNS) 对私钥的安全的委托分发。
背景技术
在如电子邮件(email)一样的分发式消息系统中,需要针对消息的声称身份对消息的发起者进行验证,以消除欺诈性消息。针对该问题的一种方法是使用公钥密码来验证消息。在该方法中,加密散列(hash)用于验证与身份相关联的消息。在全球可见的目录中公布一个或多个公钥,其中,仅身份的拥有者被允许在目录中公布记录。被授权的发送方拥有相应的私钥,这些发送方可以使用该私钥来对消息的散列版本进行加密,并且包括加密散列作为消息的元数据。接收方可以使用公钥对元数据进行解密,并且将其与他们自己的、独立生成的消息的散列进行比较。如果这些散列匹配,则发送方是有效的。域名密钥识别邮件(DKIM)是该系统针对电子邮件的实现标准。
这种方法非常有效,但其在存在多个签名实体时存在一些问题。当存在被允许对从单个共享域针对单个共享域授权的消息进行签名(并因此必须具有有效的私钥)的多个不同实体时,私钥分发变得具有挑战性。例如,如果“acme.com”的管理员希望允许对来自“ajax.com”的消息进行签名,则每个域会需要有效的私钥。
一种方法是将主域的不同子域分配给不同的签名组织,以消除共享。在这种情况下,每个签名组织都具有对针对其子域的全球目录的完全控制。虽然这可以起到作用,但这无法实现在单个域上支持多个发送方的主要目标,因为每个组织都需要主域的不同子域。
替选地,每个签名实体都可以生成其自身的私钥/公钥对,并且将公钥提供给授权的域所有者,以在全球目录中公布。通过在全球目录中的适当位置公布相应的公钥,域所有者发出其正向签名实体委托签名权限的信号。然而,这种手动处理往往使授权域所有者既容易出错又负担繁重。这还使得难以将诸如密钥轮换的最佳实践包括在内,因为这需要每当替换密钥时重复手动处理,从而导致在实践中可能无法更新密钥的状况。
因此,缺乏的是以安全且自动的方式生成针对共享域所授权的委托私钥并将其分发给多个多个不同实体的能力、以及对这样的密钥的可靠管理和更新。
发明内容
在一些实施例中,用于通过域名服务(DNS)安全地分发用于公钥密码的委托私钥的系统和方法可包括:使用公钥密码来允许通过域名服务 (DNS)安全且自动地分发私钥。通过在DNS中公布的加密数据,将这样的委托私钥从域所有者分发给第三方实体。域所有者以其域的DNS区域内的DNS记录公布公钥。然后,第三方实体可以使用用于消息签名的相应私钥来代表域所有者而对对称密钥交换进行协商或者将其用于实现适合于应用的其他目的。自动系统对创建和更新这些私钥/公钥对进行处理,并且将它们公布于在由域所有者管理的域上的适当DNS记录。
在一些实施例中,希望使用由域所有者授权的私钥(例如,代表域所有者对消息进行签名)的第三方实体使用公钥密码算法来生成专用密钥对。该密钥对将包括解密密钥和加密密钥。第三方实体在明确定义的位置 (例如,在由第三方实体所拥有的已知域的协议限定子域上)将加密密钥作为DNS TXT记录进行公布,并且将解密密钥保持为私有的。
在一些实施例中,用于通过域名服务(DNS)安全地分发委托私钥的系统和方法可以包括代表授权域的所有者而执行动作的自动系统。该自动系统在本文被称为密钥对生成器。密钥对生成器可以被配置成允许特定的第三方实体使用与特定的授权域相关联的私钥。在这种情况下,密钥对生成器可以检查对于如上所述的第三方实体的加密密钥记录的存在。在一些实施例中,当检测到这样的加密记录并且授权域的所有者希望将权限委托给第三方实体时,密钥对生成器可以生成包括委托私钥(私钥)和验证密钥(公钥)的新的公钥密码密钥对。密钥对生成器可以使用从加密密钥记录检索到的加密密钥对委托私钥进行加密,并且在DNS中在已知的明确定义的位置将验证密钥和加密后的委托私钥分别作为验证密钥记录和加密委托私钥记录公布。可以针对授权域的所有者希望为其生成密钥的每个第三方实体生成不同的记录。
在一些实施例中,用于通过域名服务(DNS)安全地分发委托私钥的系统和方法包括如下步骤:希望使用这样的委托私钥(例如,代表授权域对消息进行签名)的第三方实体检查相应的验证密钥记录和加密委托私钥记录的存在。如果这些记录存在,则第三方实体可以使用其私有的解密密钥来根据加密委托私钥记录对委托私钥进行解密。然后,该委托私钥可以由代表授权域的第三方实体使用。
在其他实施例中,希望使用与委托私钥对应的公钥(例如,验证消息签名或与私钥拥有者安全地交换对称密钥)的当事方可以从由密钥对生成器公布的验证密钥记录中检索验证密钥。验证密钥记录的确切格式将根据不同的应用而不同,并且该格式应该被认为是非限制性的。
在使用该系统生成消息签名的具体示例中,接着消息接收器可以执行标准签名验证算法,并且可以验证或拒绝签名。在任一种情况下,验证方可以使用标准过程,并且不需要知道第三方实体已进行签名。
在其他实施例中,用于通过域名服务(DNS)安全地分发委托私钥的系统和方法可以通过利用DNS(现有的、全球可用的且已认证的目录系统)支持对用于公钥密码的委托私钥的安全分发来推动经由互联网的密钥分发技术。另外,由于时间的流逝或者由于一个或多个密钥可能被泄露,这些方法可以支持对所述密钥的自动更新。这是对这样的系统的固有安全性和鲁棒性的极大改进。
附图说明
所公开的实施例具有根据详细描述、所附权利要求以及附图(或图) 更加显而易见的优点和特征。下面是对附图的简要介绍。
图1示出了根据实施例的能够通过DNS对私钥进行安全的委托分发的示例系统。
图2是示出了根据一个实施例的用于使得第三方系统能够代表域所有者生成密钥的示例处理的交互图和流程图。
图3是示出了根据一个实施例的用于使得第三方系统120能够代表域所有者对消息进行签名的示例性处理的交互图和流程图。
图4是示出了能够从机器可读介质读取指令且在处理器(或控制器) 中执行这些指令的示例机器的部件的框图。
具体实施方式
附图和以下描述仅通过说明的方式涉及优选实施例。应该注意的是,根据下面的讨论,本文公开的结构和方法的替选实施例容易被认为是在不背离所要求保护的原理的情况下可以采用的可行的替选实施方式。
现在将详细地参考多个实施例,其示例在附图中示出。应注意的是,在可实践的情况下,相似或类似的附图标记可用在附图中,并且可表示相似或类似的功能。仅出于说明目的,附图描绘所公开的系统(或方法)的实施例。本领域的技术人员从下面的描述中容易认识到可在不背离本文所描述的原理的情况下采用本文所示的结构和方法的替选实施例。
配置概述
通过示例性实施例的方式公开了能够通过DNS对私钥进行安全的委托分发的系统和处理。在实施例中,第三方系统生成公钥-私钥对,该公钥-私钥对中的公钥是加密密钥,而该公钥-私钥对中的私钥是解密密钥。第三方系统将加密密钥作为第三方系统的DNS记录进行公布。第三方系统接收代表域所有者对要被发送给接收方的消息进行签名的请求,并且访问由域所有者通过域所有者的DNS记录公布的加密后的委托私钥,其中,该加密后的委托私钥是使用加密密钥来进行加密的。第三方系统使用解密密钥对加密后的委托私钥进行解密,并且使用委托私钥来生成针对消息的签名。第三方系统将签名和消息发送给接收方。
在实施例中,域所有者系统识别第三方系统,以委托对消息进行签名。域所有者系统访问由第三方系统以第三方系统的DNS记录所公布的加密密钥。域所有者系统生成公钥-私钥对,该公钥-私钥对中的公钥是验证密钥,而该公钥-私钥对中的私钥是委托私钥,该委托私钥由第三方系统用来代表域所有者系统的域所有者对消息进行签名。域所有者系统使用加密密钥对委托私钥进行加密,以生成加密后的委托私钥。域所有者系统以域所有者的DNS记录公布加密后的委托私钥,并且以域所有者的DNS记录公布验证密钥。
引言
公钥密码在许多应用中起到了重要作用。然而,对于这些应用中的许多应用而言,在自动进行将私钥分发给签名者并将公钥与身份相关联的基础处理方面存在重要挑战。DNS提供了可以用于支持解决这些挑战的自动处理的工具。
考虑密码签名(即,可以包括有用以验证消息发起者的身份的元数据) 的具体示例应用以及消息在被接收时的完整性。可以利用任何数量的公钥密码算法(例如,RSA、DSA)中的一种算法来执行密码签名。这样的密码签名具有广泛应用,包括通过使用域名密钥识别邮件(DKIM)协议的电子邮件消息认证的域中的特定用途。
当创建密码签名时,消息的发起者得到表示他们想要签名的消息的一组字节。这通常是利用散列算法(诸如SHA-512或MD-5)来完成的,以确保极其难以生成产生相同的代表字节组的另一消息。在这种情况下,已知代表字节组作为消息散列。
发起者随后用公钥对中的私有部分(下文中被称为委托私钥)来对该消息散列进行加密。委托私钥用于生成消息签名,并且根据基础密码过程的性质,没有委托私钥的任何人都应该不能生成正确签名。仅限于被授权对消息进行签名的人拥有委托私钥。
公钥对中的相应的公共部分(被已知为验证密钥)可以用于验证消息签名,并因此验证消息的权限和完整性。消息的接收方可以使用发起者所采用的相同过程来生成消息散列。然后,接收方可以使用验证密钥来对消息签名进行解密,并且确认解密后的值与由接收方计算出的消息散列匹配。如果值匹配,则确认消息签名。否则,拒绝消息签名。
将仅在消息的签名者拥有与验证密钥成为密钥对的委托私钥的情况下,确认消息签名。因此,如果接收方可以以可以对验证密钥的源进行认证的方式获得验证密钥,则允许消息接收方将消息授权为最终源于该源。
域名服务(DNS)可以用于以安全的方式将域(以及因此将域的注册所有者的身份)与验证密钥相关联。在这种情况下,包含验证密钥的DNS TXT记录被公布于为组织注册的区域中的定义明确的子域中。由于仅组织的域的注册所有者或被注册所有者授权的那些当事方可以在该区域中公布DNS记录,于是,包含验证密钥的DNS记录的公布必须由注册的所有者授权。
密码签名算法固有地需要消息的发起者拥有委托私钥。使用DNS对验证密钥进行认证需要验证密钥对于注册的域所有者或其授权更新它们的DNS记录的当事方是可用的。由于委托私钥和验证密钥仅可以成对地一起生成,因此当注册的域所有者想要允许第三方实体代表他们对消息进行签名但不想给予该实体在其区域中公布DNS记录的能力时,提出了挑战。必须将委托私钥或验证密钥从一方分发给另一方,这提出了很多挑战。此外,未来对委托私钥/验证密钥对的更新展现了相似的问题。
示例性密钥委托系统
图1示出了根据实施例的能够通过DNS对私钥进行安全的委托分发的示例性系统100。系统100包括网络150、一个或多个验证代理160、域所有者DNS服务器130和第三方DNS服务器140、域所有者系统110 以及第三方系统120。尽管所示的系统100包括图1所示的元件,但是在其他实施例中,系统100可以包括不同的元件。另外,在其他实施例中,可以在各元件之间不同地分配每个元件的功能。
可以是有线网络、无线网络或有线网络与无线网络的组合的网络150 使得在验证代理160、DNS系统130/140、域所有者系统110和第三方系统120之间能够进行通信,并且可以包括互联网、LAN、VLAN(例如,具有VPN)、WAN或其他网络。在一个实施例中,网络150使用标准通信技术和/或协议,诸如超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、统一资源定位符(URL)和域名系统(DNS)。在另一实施例中,实体可以使用定制的和/或专用的数据通信技术来替代上述技术或者除了上述技术外还使用定制的和/或专用的数据通信技术。
域所有者DNS服务器130和第三方DNS服务器140存储在DNS系统中使用的DNS条目,诸如DNS条目135、137和145。每个DNS服务器均可以包括一个或多个计算系统,诸如参照图4描述的计算系统。
每个DNS条目均可以包括用于特定域的一个或多个DNS记录,诸如本领域中已知的A记录、MX记录等。某些DNS条目(例如,DNS条目 135、137和145)可以包括密码密钥,诸如验证密钥136、加密后的委托私钥138以及加密密钥146。在一个实施例中,在每个DNS条目中,这些密钥被存储为TXT记录。这些密钥可以用于对通过网络150发送的数据的发送方真实性和内容进行签名和验证。这样的数据可以包括消息、文件、电子邮件等。尽管如图1所示的记录被分离到多个条目中以及多个服务器上,但是在其他实施例中,记录可以被合并到更少的条目、更少的服务器、单个条目或一些其他组合中。
域所有者系统110包括一个或多个计算系统,例如,域所有者用来托管域并执行与该域相关的活动的服务器。这些活动可以包括为网页服务、发送和接收电子邮件、托管文件、执行电子商务等。在一个实施例中,类似于参照图4描述的计算系统来配置这些计算系统。
如所示的那样,域所有者系统110包括密钥对生成器115以及委托私钥117。尽管所示的域所有者系统110包括图1所示的元件,但是在其他实施例中,域所有者系统110可以包括不同的元件。例如,域所有者系统 110可以包括在公钥密码方案中使用的附加密钥。此外,在其他实施例中,可以在各元件之间不同地分配每个元件的功能。
域所有者系统110的密钥对生成器115生成私钥和公钥对。在一个实施例中,密钥对生成器115生成包括委托私钥117和验证密钥136的密钥对。验证密钥136是该密钥对中的公钥,而委托私钥117是私钥。密钥对生成器115将验证密钥136作为记录置于域所有者DNS服务器130上的 DNS条目135中。
密钥对生成器115还通过用存储于第三方DNS服务器140的加密密钥146对委托私钥117进行加密来生成加密后的委托私钥138,并且将该加密后的委托私钥138作为记录存储于域所有者DNS服务器130。第三方系统120生成加密密钥146作为密钥对的一部分。因此,仅第三方系统 120可以对加密后的委托私钥138进行解密,以取回委托私钥138,该委托私钥138可以由第三方系统120用来代表域所有者对数据进行签名和/ 或加密。
第三方系统120使用由域所有者安全地传递给第三方系统120的委托私钥来代表域所有者对数据进行签名或加密。第三方系统120包括一个或多个计算系统,这一个或多个计算系统可以与参照图4描述的计算系统类似地配置。
如所示,第三方系统120包括签名模块126、密钥对生成器125和解密密钥127。尽管所示的第三方系统120包括图1所示的元件,但是在其他实施例中,第三方系统120可以包括不同的元件。例如,第三方系统 120可以包括要在公钥密码方案中使用的附加密钥。此外,在其他实施例中,可以在各元件之间不同地分配每个元件的功能。
第三方系统120的签名模块126使用私钥来代表域所有者对消息或其他数据进行签名。签名方法可以基于公钥密码的已知方法。作为示例,第三方系统120可以为安全系统、数据/消息分发服务或者为多个域所有者提供集中式消息系统的其他第三方提供方。第三方系统120可以代表域所有者系统110将数据和/或其他消息发送给一个或多个接收方,并且对该数据进行签名,以便接收方可以验证数据是真实的且尚未被更改。为此,签名模块126检索由域所有者系统110提供的加密后的委托私钥138。加密后的委托私钥138是已使用加密密钥146来加密的委托私钥117。签名模块126能够使用存储于第三方系统120的解密密钥127对加密后的委托私钥138进行解密,以访问委托私钥117。签名模块126使用经解密的委托私钥117来生成针对要发送到接收方的数据的签名。第三方系统将签名和原始数据发送给接收方。
第三方系统120的密钥对生成器125生成公钥/私钥对,以有利于代表域所有者对数据进行签名。在一个实施例中,对于第三方系统120对数据进行签名所针对的每个域所有者,密钥对生成器125生成解密密钥127 (私钥)和加密密钥146(公钥)。第三方系统120以第三方DNS服务器 140上的DNS条目145处的记录公布加密密钥146,以便域所有者系统 110可以检索加密密钥146以对委托私钥117进行加密,从而生成加密后的委托私钥138。
验证代理160对由第三方系统120签名的签名进行验证,并且可以与参照图4所描述的计算系统类似地配置。例如,验证代理160可以为接收由第三方系统120签名的数据的服务器。
验证代理160包括用以验证其接收到的数据的签名的签名验证器 165。该数据可能已由第三方系统120代表域所有者系统110签名、或者由域所有者系统110自身签名。为了验证签名,签名验证器165使用由域所有者系统110在DNS条目135中公布的验证密钥136,并且确定签名是否指示接收到的数据是有效且真实的。例如,接收到的数据可能已被散列化,其中,该散列是第三方系统120使用委托私钥117来加密的。签名验证器165使用验证密钥136来对散列进行解密,并且确定散列是否与本地计算的、数据的散列匹配。如果这两个散列匹配,则签名验证器165 指示数据是合法的。否则,签名验证器165指示消息是不合法的。
使用上述系统100,第三方系统120能够代表域所有者对消息进行签名。这可以提供注册的域所有者可以将委托私钥安全地分发给他们愿意委托与其域身份相关联的权限的第三方的方法。在一些实施例中,这提供了注册的域所有者或第三方都不无需在初始设置之后手动地更新DNS记录的益处。将参照图2至图3描述关于上述处理的附加详情。
密钥对生成的示例交互图
图2是示出根据一个实施例的用于使得第三方系统120能够代表域所有者生成密钥的示例性处理的交互图和流程图。在一个实施例中,图2 将处理中的操作归于所示的元件。然而,部分或全部步骤可以由其他元件来执行。另外,一些实施例可以并行地执行操作,按不同顺序执行操作或者执行不同的操作。此外,应注意的是,在一个示例性实施例中,步骤和 /或模块可以被实现为指令,例如,可以由参照图4所述的处理器402执行的指令424。
在一个实施例中,第三方系统120使用任何数量的公知的公钥加密算法中的一种算法来生成解密密钥和加密密钥对(210)。这种公钥加密算法的非限制性示例可以是2048-bit(2048位)Rivest-Shamir-Adleman (RSA)。
作为该密钥对中的私有部分的解密密钥127可以存储在内部以供以后使用。将作为该密钥对中的公共部分的加密密钥146可以作为第三方 DNS服务器140的DNS条目145中的记录进行公布(215),以使得其通过DNS对于希望将签名权限委托给第三方系统120的任何域而言都是可用的。
加密密钥146可以公布于任何域内。在一个实施例中,加密密码记录的公布可以是这样的:a)将该记录公布于注册到第三方系统120的区域内;以及b)与第三方系统120要从其获得委托私钥的域所有者系统110 共享记录位置。
作为加密密钥公布的非限制性示例,Example Corp公司是域“examplecorp.com”的注册所有者,并且作为用于域所有者的第三方系统120。在这种情况下,包括用于ExampleCorp的加密密钥146的记录可以在域区域“_encr._ddkim.examplecorp.com,”公布,因为该域在为 Example Corp注册的区域中。域所有者会被通知该记录的位置,或者可以基于指示具有加密密钥146的记录的位置的域区域的标准化命名方案来自动地定位记录的位置。
在一个实施例中,第三方系统120具有多个记录,其中,每个记录均包括单独的加密密钥146,每个加密密钥146旨在与一个或多个域所有者 (即,授权域)一起使用。在这种情况下,具有加密密钥146的若干不同的记录可以由第三方系统120公布。例如。返回参考前面的示例,这些记录可以被公布于:1)senderdomain1._encr._ddkim.examplecorp.com,2)senderdomain2._encr._ddkim.examplecorp.com,3) senderdomain3._encr._ddkim.examplecorp.com等。
包括加密密钥146的记录的格式可以变化。在一个实施例中,具有加密密钥146的DNS记录具有域所有者系统110(以及密钥对生成器115) 可以读取的格式。在一个实施例中,具有加密密钥146的记录还包括多条其他信息,这些信息包括但不限于:1)将该记录与可能在该域上公布的其他文本记录区分开的记号;2)记录的创建时间;3)记录的到期时间;4)允许在同一子域上公布多个加密密钥146的选择器字段;5)指示用于加密的算法的字段。
这样的格式的示例是内容为“v=ENCDDKIM1;k=<…>”的记录,其中,在‘k=’之后的值是按抽象语法标记可辨别编码规则(Abstract Syntax Notation One DistinguishedEncoding Rules)(ASN.1DER)编码后的加密密钥值,假设加密密钥是使用RSA-2048生成的。
在一个实施例中,如果第三方系统120需要再次生成加密密钥146 或解密密钥127,则第三方系统120以与第一次生成密钥对的情况相似的方式重复该处理。可能由于故障状况、泄露密钥或任何其他原因而需要这样做。
在域所有者一侧,域所有者系统110识别第三方系统120,以对数据签名进行委托(245)。在一个实施例中,为此,域所有者系统110利用第三方系统120的识别信息更新密钥对生成器115的配置。域所有者系统110检查具有加密密钥146的DNS条目在第三方DNS服务器140处的存在。第三方DNS服务器140的位置可以被设置在域所有者系统110外部,或者域所有者系统110能够使用所提供的第三方系统120的域名来发现第三方DNS服务器140的位置。
域所有者系统110通过将请求282发送到DNS来检查加密密钥146 的存在。如果DNS记录存在,则域所有者系统110接收具有包括第三方系统120的加密密钥146的DNS记录的响应284。域所有者系统110从该记录中提取接收到的加密密钥146(250)。
在一个实施例中,域所有者系统110通过一个或多个不同的操作来验证加密密钥146(255),所述操作可以包括:1)确保可以对所接收到的响应284的字节中的加密密钥进行解码;2)解码后的字节对应于用于预期加密算法的有效密钥;或者3)响应284的DNS记录中的元数据满足一些标准。
例如,域所有者系统110可以确保所接收到的、包括加密密钥146的 DNS TXT记录以“v=ENCDDKIM1;k=”开始,并且在‘k=’之后的值对应于按ASN.1DER编码后的RSA公钥(即,加密密钥)。
如果对加密密钥146的验证失败,则域所有者系统110可以记录错误以及/或者向警报通道(未示出)发送警报。否则,域所有者系统110使用选择的公钥算法(例如,RSA-2048、SHA-1)来生成包括委托私钥117 和验证密钥136的密钥对(260)。
域所有者系统110使用加密密钥146对委托私钥117进行加密(265)。域所有者系统110可以使用各种加密方法对委托私钥117进行加密,诸如使用用于生成加密密钥和解密密钥对以及/或者委托私钥和验证密钥对的公钥算法。例如,加密算法可以是RSA-2048。作为另一示例,域所有者系统110可以将委托私钥117划分成1024字节的块,并且在将加密密钥146作为加密密钥的情况下使用RSA-2048对每个块进行加密。域所有者系统110将得到的输出块连结,并且用Base64对它们进行编码,以产生加密后的委托私钥138。
在对委托私钥117进行加密以生成加密后的委托私钥138之后,域所有者系统110在域所有者DNS服务器130上公布加密后的委托私钥138 (270)。具体地,在一个实施例中,域所有者服务器110将加密后的委托私钥138作为TXT记录进行公布。
尽管在一些实施例中,通常可以使得该DNS TXT记录对于提交适当 DNS询问的任何客户端而言是可用的,但是在其他实施例中,该询问的结果可以基于客户端或询问的特性(例如,客户端IP地址、当日时间) 而改变。在后面的这些实施例中,这可以实现针对解密密钥127的泄漏的、另外的安全级别,该解密密钥127可以用于对加密后的委托私钥138进行解密。例如,域所有者系统110可能已将域所有者DNS服务器130配置成向已知为第三方系统120所有的一组IP地址、仅以包含加密后的委托私钥138的DNS TXT记录作出响应(例如,使用水平分割DNS (split-horizon DNS)或分割视图DNS(split-view DNS))。这确保了即使解密密钥127被泄露,也可以仅从由第三方系统120控制的基础设施内使用加密后的委托私钥138。
域所有者系统110可以用任何域公布具有加密后的委托私钥138的 DNS记录(270)。在一个实施例中,域所有者系统110在要授权签名的域的区域内公布具有加密后的委托私钥138的DNS记录。在一个实施例中,域所有者系统110按照惯例或通过直接通信在由第三方系统120已知的位置公布DNS记录。
只要加密处理被明确限定并且为第三方系统120已知,拥有解密密钥 127就使得第三方系统120能够对加密后的委托私钥138进行解密,以获得委托私钥117。此外,仅第三方系统120能够对加密后的委托私钥138 进行解密,因为这样的解密需要拥有解密密钥127。因此,在域所有者 DNS服务器130处公布加密后的委托私钥138是安全的。
作为上述处理的示例,假设第三方系统120属于ExampleCorp,并且假设希望将私钥委托给ExampleCorp的域是“somedomain.com”。可以在“examplecorp.com._sgn._ddkim.somedomain.com”的域公布包括加密后的委托私钥138的DNS记录。
包括加密后的委托私钥138的记录的格式可以变化。在一个实施例中,该记录包括具有第三方系统120可以读取的格式(例如,文本、二进制、高位优先(big endian)、低位优先(little endian)等)的加密后的委托私钥138。在替选实施例中,记录还可包含多条其他信息,所述信息包括但不限于:1)将该记录与可以在该域上公布的其他文本记录区分开的记号;2)记录的创建时间;3)记录的到期时间;4)允许在同一子域上公布多个具有加密后的委托私钥的选择器字段。
再次参考上述示例,记录的格式可以为:“v=SGNDDKIM1;k=<…>”,其中,在‘k=’之后的括号中的值是上述的加密后的委托私钥138。
在一个实施例中,域所有者系统110还将验证密钥136作为记录公布于域所有者DNS服务器130(275)。在一些实施例中,公布域和验证密钥136的确切格式是根据委托私钥138的用途以及使用验证密钥136的当事方的相应期望来规定的。
例如,假设作为电子邮件认证的DKIM处理的一部分,委托私钥138 旨在用作签名密钥。因此,具有验证密钥136的DNS记录的域和格式由 DKIM规定。在这种情况下,接着早前的示例并且假设选择器为‘examplecorp’,记录将在“examplecorp._domainkey.somedomain.com”公布,并且记录主体可以是“v=DKIM1;p=<…>”,其中在‘p=’之后的 <…>中的值是验证密钥136的ASN1.DER编码形式。
在一个实施例中,如果第三方系统120先前已被授权针对正发布委托私钥138的域进行签名,则域所有者系统110可从包括任何在先的加密后的委托私钥或验证密钥的域所有者DNS服务器130进一步删除任何已存在的记录,以防止使用目前废弃的密钥。然而,可以延迟该处理,以使得能够成功地验证已被签名但还未被其接收方验证的任何消息。
在一个实施方式中,响应于除了第三方系统120的初始配置之外的事件再次生成密钥。例如,第三方系统120可以用新的加密密钥来更新其加密密钥146的DNS记录,这可以触发该再次生成。在一个实施例中,域所有者系统110定期地轮询包括加密密钥146的记录,以检测这样的变化。在一个实施例中,域所有者系统110通过生成新的委托私钥和验证密钥来对变化做出反应,然而,在其他实施例中,域所有者系统110简单地用新的加密密钥对现有的委托私钥进行加密,并且将新的加密后的委托私钥公布于域所有者DNS服务器130。
在一个实施例中,域所有者系统110撤销现有密钥对,并且使用上述处理来用新的密钥对替换它。发生这些可能是因为一些安全漏洞,或者仅仅作为响应时间的流逝的最佳做法。
数据签名的示例交互图
图3是示出了根据一个实施例的用于使得第三方系统120能够代表域所有者对消息进行签名的示例性处理的交互图和流程图。在一个实施例中,图3将处理中的操作归于所示的元件。然而,部分或全部步骤可以由其他元件执行。另外,一些实施例可以并行地执行操作,以不同的顺序执行操作或执行不同的操作。此外,应注意的是,在一个示例性实施例中,步骤和/或模块可以被实现为指令(例如,由参照图4描述的处理器402 执行的指令424)。
第三方系统120可以接收代表域所有者(未示出)对消息进行签名的请求(310)。第三方系统120可以访问存储在DNS服务器(例如,域所有者DNS服务器130)上的已知记录位置中的加密后的委托私钥138 (315)。如果未找到该记录,则第三方系统120可以指示错误。否则,第三方系统120使用第三方系统120先前生成的、本地存储的解密密钥127 对加密后的委托私钥138进行解密(320)。
在一个实施例中,第三方系统120验证解密后的委托私钥117(325)。对委托私钥117的验证可以包括多个可行步骤,诸如:1)确保字节可以被解码;2)解码后的字节对应于用于期望的加密算法的有效密钥;或者 3)包括加密后的委托私钥138的DNS记录中的元数据满足一些标准(例如,到期时间,创建时间,所使用的加密算法等)。
例如,第三方系统120可以验证包括加密后的委托私钥的DNS记录的格式与“v=SGNDDKIM1;k=<…>”匹配,并且在‘k=’之后的值如上述的那样与加密后的委托私钥相对应。
假设发现委托私钥117是有效的,则第三方系统120使用委托私钥 117作为对于数据的签名处理中的输入。该数据可以是诸如电子邮件的消息,可以用于对称密钥交换等。在一个实施例中,第三方系统120使用委托私钥117来生成数据的签名(330)。随后,验证代理160验证该签名 (350)。只要签名处理采用公钥密码签名,处理的确切细节对于这些方法来说则是无关紧要的。这样的处理的一个非限制性示例可以是使用委托私钥117作为用于出站电子邮件的DKIM签名。
消息签名的示例是可以如何使用用于分发委托私钥的系统和方法的真实示例,但消息签名的具体情况应该被认为是非限制性的。如上所述,消息签名是该方法的重要使用情况,但并不是该方法增加价值的唯一处理。
示例性机器架构
图4是示出能够从机器可读介质读取指令且在处理器(或者控制器) 中执行这些指令的示例性机器的部件的框图。具体地,图4示出了具有计算机系统400的示例形式的机器的图示。计算机系统400可以用于执行用于使得机器执行本文描述的任何一种或多种方法(或处理)的指令424(例如,程序代码或软件)。在替选实施例中,机器作为独立设备或连接到其他机器的连接(例如,联网)设备进行操作。在网络部署中,机器可以作为在服务器-客户端网络环境中的服务器机器或客户端机器进行操作,或者作为对等(或分布式)网络环境中的对等机器进行操作。
机器可以为服务器计算机、客户端计算机、个人计算机(PC)、平板型PC、机顶盒(STB)、智能电话、物联网(IoT)设备、网络路由器、交换机或网桥、或者能够执行指定机器要采取的动作的指令424(顺序地或其他方式)的任何机器。另外,尽管仅示出了单个机器,但术语“机器”应该还被认为包括单独地或共同地执行指令424以执行本文讨论的一种或多种方法的任何机器集合。
示例性计算机系统400包括一个或多个处理单元(通常为处理器 402)。例如,处理器402是中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、控制器、状态机器、一个或多个专用集成电路 (ASIC)、一个或多个射频集成电路(RFIC)或者它们的任何组合。计算机系统400还包括主存储器404。计算机系统可以包括存储单元416。处理器402、存储器404和存储单元416通过总线408进行通信。
另外,计算机系统406可以包括静态存储器406、显示驱动器410(例如,用以驱动等离子体显示面板(PDP)、液晶显示器(LCD)或投影仪)。计算机系统400还可以包括字母数字输入设备412(例如,键盘)、光标控制设备414(例如,鼠标、跟踪球、操纵杆、运动传感器或其他指向仪器)、信号生成设备418(例如,扬声器)和网络接口设备420,它们也被配置为通过总线408进行通信。
存储单元416包括存储有实现本文所描述的任何一种或多种方法或功能的指令424(例如,软件)的机器可读介质422。指令424在由计算机系统400执行期间还可以完全或至少部分地驻存于主存储器404内或处理器402内(例如,在处理器的高速缓冲存储器内),主存储器404和处理器402还构成机器可读介质。可以通过网络接口设备420、经由网络426传送或接收指令424。
尽管在示例性实施例中所示的机器可读介质422是单个介质,但是术语“机器可读介质”应该被认为包括能够存储指令424的单个介质和多个介质(例如,集中式或分布式数据库、或者关联的缓存和服务器)。术语“机器可读介质”还应该被认为包括能够存储供机器执行的且使得机器执行本文公开的任何一种或多种方法的指令424的任何介质。术语“机器可读介质”包括但并不限于为固态存储器、光学介质和磁性介质的形式的数据储存库。
附加考虑
在整个说明书中,多个实例可将所描述的部件、操作或结构实现为单个实例。尽管一种或多种方法中的各个操作被示为且描述为单独的操作,但是可以同时执行各个操作中的一个或多个操作,并且不要求按所示的顺序执行操作。在示例配置中被呈现为分离的部件的结构和功能可以被实现为组合结构或部件。类似地,被呈现为单个部件的结构和功能可以被实现为分离的部件。这些或其他变化、修改、添加以及改进落入本文的主题的范围内。
例如,如图1至图4所示,特定的实施例在本文中被描述为包括逻辑电路或多个部件、模块或机构。模块可以构成软件模块(例如,在机器可读介质上或以传送信号实现的代码)或硬件模块。硬件模块是能够执行特定操作的有形单元,并且可以按特定方式配置或布置。在示例性实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或者计算机系统的一个或多个模块(例如,处理器或一组处理器)可以由软件 (例如,应用或应用部分)配置为进行操作以执行如本文描述的特定操作的硬件模块。
在各种实施例中,可以以机械方式或以电子方式实现硬件模块。例如,硬件模块可以包括被永久地配置为执行特定操作的专用电路或逻辑电路 (例如,被配置为专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC))。硬件模块还可以包括由软件暂时配置以执行特定操作的可编程逻辑或电路(例如,包含在通用处理器或其他可编程处理器中)。应了解的是,在专用且永久配置的电路中或在暂时配置的电路(例如,由软件配置)中以机械方式实现硬件模块的决定可能受到成本和时间考虑驱使。
本文描述的示例性方法的各种操作可以由被(例如,由软件)暂时配置或永久配置为执行相关操作的一个或多个处理器至少部分地执行。无论是暂时地配置还是永久地配置,这样的处理器都可构成进行操作以执行一个或多个操作或者功能的处理器实现模块。在一些示例性实施例中,本文中所涉及的模块可以包括处理器实现的模块。
一个或多个处理器还可以进行操作以支持在“云计算”环境中的相关操作的执行,或者作为“软件即服务”(SaaS)进行操作。例如,至少部分操作可以由一组计算机(作为包括处理器的机器的示例)执行,这些操作可通过网络(例如,互联网)以及通过一个或多个适当的接口(例如,应用程序接口(API))访问。
可以在不仅驻存于单个机器中而且被部署在多个机器上的一个或多个处理器中分配特定操作的执行。在一些示例性实施例中,一个或多个处理器或者处理器实现的模块可以位于单个地理位置(例如,家庭环境、办公室环境或服务器农场内)。在其他示例性实施例中,一个或多个处理器或者处理器实现的模块可以分布在多个地理位置上。
本说明书的某些部分是根据关于作为位或二进制数字信号存储在机器存储器(例如,计算机存储器)内的数据的操作的算法或符号表示来呈现的。这些算法或符号表示是数据处理技术领域内的普通技术人员为了将其工作实质传达给该领域的其他技术人员而使用的技术的示例。如本文所使用的,“算法”是前后一致的操作序列或导致期望结果的相似处理。在这种情况下,算法和操作涉及物理量的物理操纵。通常,但非一定地,这样的量可以采取能够被机器存储、访问、传输、组合、比较或以其他方式操纵的电信号、磁信号或光信号的形式。有时,主要出于共同使用的原因,为了方便,使用诸如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数”、“数字”的词语来指代这样的信号。然而,这些词语仅仅是方便的标记,并且与适合的物理量相关联。
除非特别说明,否则本文中使用诸如“处理”、“运算”、“计算”、“确定”、“呈现”、“显示”等词语的讨论可以是指操纵或传输一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或者接收、存储、传递或显示信息的其他机器部件内的、被表示为物理(例如,电的、磁的或光的)量的数据的机器(例如,计算机)的动作或处理。
如这里所使用的,对“一个实施例”或“实施例”的任何提及意味着,结合实施例所描述的特定元件、特征、结构或特性包括在至少一个实施例中。在本说明书的多处中出现短语“在一个实施例中”并不一定全都指的是同一实施例。
一些实施例可以使用表达“耦接”和“连接”及其衍生词描述。例如,一些实施例可以使用术语“耦接”来描述以指示两个或更多个元件直接物理接触或电接触。然而,术语“耦接”还可以意味着,两个或更多个元件彼此并不直接接触,而是仍然彼此协作或交互。实施例并不限于该情况。
如这里所使用的,术语“包括”、“包含”、“具有”或其任何其他变形都旨在覆盖非排他性的内容。例如,包括元件列表的处理、方法、物品或装置不一定仅限于这些元件,而是可以包括未明确列出的或者这样的处理、方法、物品或装置所固有的其他元件。另外,除非另外明确地指出,否则“或者”是指包容性的或者而并非排他性的或者。例如,条件A或B 满足以下任一情况:A为真(或存在),并且B为假(或不存在);A为假 (或不存在),并且B为真(或存在);以及A和B都为真(或存在)。
另外,使用“一个”是用于描述本文的实施例的元件和部件。这仅仅仅是为了方便起见,并且给出了本发明的一般意义。该描述应该被理解为包括一个或至少一个,并且单数还包括多个,除非是明显有其他含义。
在阅读本公开内容时,本领域的技术人员将了解到用于能够通过 DNS对私钥进行安全的委托分发的系统和处理的其他替选结构和功能设计。因此,尽管已示出且描述了具体实施例和应用,但是应理解的是,所公开的实施例并不限于本文公开的确切构造和部件。不背离所附权利要求中限定的主旨和范围的情况下,可以对本文公开的方法和装置的布置、操作和细节进行本领域的技术人员显而易见的各种修改、改变和变型。

Claims (24)

1.一种非暂态计算机可读存储介质,其被配置为存储指令,所述指令在由处理器执行时使得所述处理器执行以下操作:
在域所有者系统识别第三方系统,以委托其对消息进行签名;
访问由所述第三方系统以所述第三方系统的域名系统DNS记录公布的加密密钥,所述第三方系统的DNS是能够建立所述第三方系统的真实性的全球目录系统的一部分;
生成公钥-私钥对,所述公钥-私钥对中的公钥是验证密钥,而所述公钥-私钥对中的私钥是委托私钥,所述委托私钥由所述第三方系统用来代表所述域所有者系统的域所有者对消息进行签名;
使用由所述第三方系统以所述第三方系统的DNS记录公布的所述加密密钥对所述委托私钥进行加密,以生成加密后的委托私钥;
以驻存于DNS服务器上的、所述域所有者的DNS记录公布所述加密后的委托私钥;
将所述DNS服务器配置成仅针对来自所述第三方系统的网络地址的对于所述加密后的委托私钥的请求来以所述加密后的委托私钥作出响应;以及
以所述域所有者的DNS记录公布所述验证密钥。
2.根据权利要求1所述的计算机可读存储介质,其中,所述存储介质存储另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
通过以下步骤验证所述加密密钥:
确定所访问的DNS记录中的包括加密密钥的字节能够被解码;以及
确定解码后的加密密钥是利用生成所述公钥-私钥对的相同算法生成的。
3.根据权利要求1所述的计算机可读存储介质,其中,所述存储介质存储另外的指令,所述另外的指令用于使用所述加密密钥对所述委托私钥进行加密,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
将所述委托私钥划分成一个或多个块;
使用所述加密密钥对所述一个或多个块中的每个块进行加密;以及
将加密后的每个块连结,以生成所述加密后的委托私钥。
4.根据权利要求1所述的计算机可读存储介质,其中,所述存储介质存储另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
确定由所述第三方系统公布的所述加密密钥已被更新;
用更新后的加密密钥对所述委托私钥进行再次加密;以及
以所述域所有者的DNS记录公布再次加密后的委托私钥。
5.一种计算机实现的处理方法,包括:
生成公钥-私钥对,所述公钥-私钥对中的公钥是加密密钥,而所述公钥-私钥对中的私钥是解密私钥;
将加密密钥作为第三方系统的域名系统DNS记录进行公布,所述第三方系统的DNS是能够建立所述第三方系统的真实性的全球目录系统的一部分;
接收由所述第三方系统代表域所有者系统的域所有者对要被发送到接收方的消息进行签名的请求;
通过所述域所有者的DNS记录访问由所述域所有者公布的加密后的委托私钥,所述加密后的委托私钥是使用作为所述第三方系统的DNS记录公布的所述加密密钥来加密的;
使用所述解密私钥对所述加密后的委托私钥进行解密;
使用所述委托私钥生成针对所述消息的签名;以及
将所述签名和所述消息传送到所述接收方。
6.根据权利要求5所述的处理方法,其中,所述生成公钥-私钥对还包括:
使用2048位RSA来生成所述公钥-私钥对。
7.根据权利要求5所述的处理方法,其中,将所述加密密钥作为所述第三方系统的DNS记录进行公布还包括:
根据指示所述域所有者的身份的DNS记录公布所述加密密钥;以及
其中,所述第三方系统支持代表多个域所有者对消息进行签名。
8.根据权利要求5所述的处理方法,其中,所述第三方系统的DNS记录还包括用于将所述DNS记录与在所述第三方系统的域上公布的其他文本记录区分开的记号、所述DNS记录的创建时间、所述DNS记录的到期时间、允许在同一子域上公布多个加密密钥的选择器字段、以及指示用于加密的算法的字段。
9.根据权利要求5所述的处理方法,其中,存储所述加密密钥的所述第三方系统的DNS记录是DNS TXT记录。
10.根据权利要求5所述的处理方法,还包括:通过确定所述加密后的委托私钥中的要根据所述解密密钥解密的字节来验证所访问的委托私钥。
11.一种非暂态计算机可读存储介质,其被配置成存储指令,所述指令在由处理器执行时使得所述处理器执行以下操作:
在域所有者系统识别第三方系统,以委托其对消息进行签名;
访问由所述第三方系统以所述第三方系统的域名系统DNS记录公布的加密密钥,所述第三方系统的DNS是能够建立所述第三方系统的真实性的全球目录系统的一部分;
生成公钥-私钥对,所述公钥-私钥对中的公钥是验证密钥,并且所述公钥-私钥对中的私钥是委托私钥,所述委托私钥由所述第三方系统用来代表所述域所有者系统的域所有者对消息进行签名;
使用由所述第三方系统以所述第三方系统的DNS记录公布的所述加密密钥来对所述委托私钥进行加密,以生成加密后的委托私钥;
以所述域所有者的DNS记录公布所述加密后的委托私钥;以及
以所述域所有者的DNS记录公布所述验证密钥。
12.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储用于生成所述公钥-私钥对的另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
使用2048位RSA生成所述公钥-私钥对。
13.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
通过以下步骤验证所述加密密钥:
确定所访问的DNS记录中的包括加密密钥的字节能够被解码;以及
确定解码后的加密密钥是利用生成所述公钥-私钥对的相同算法而生成的。
14.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储用于使用所述加密密钥来对所述委托私钥进行加密的另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
将所述委托私钥划分成一个或多个块;
使用所述加密密钥对所述一个或多个块中的每个块进行加密;以及
将加密后的每个块连结,以生成所述加密后的委托私钥。
15.根据权利要求11所述的计算机可读存储介质,其中,存储所述加密后的委托私钥的、所述域所有者的DNS记录是DNS TXT记录。
16.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储用于以所述域所有者的DNS记录公布所述加密后的委托私钥的另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
以驻存于DNS服务器上的、所述域所有者的DNS记录公布所述加密后的委托私钥;
将所述DNS服务器配置成仅针对来自所述第三方系统的网络地址的对于所述加密后的委托私钥的请求来以所述加密后的委托私钥作出响应。
17.根据权利要求11所述的计算机可读存储介质,其中,所述域所有者的DNS记录还包括将所述DNS记录与在所述域所有者的域上公布的其他文本记录区分开的记号、所述DNS记录的创建时间、所述DNS记录的到期时间、允许在同一子域上公布多个加密密钥的选择器字段、以及指示用于加密的算法的字段。
18.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储用于以所述域所有者的DNS记录公布所述验证密钥的另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
按与域名密钥识别邮件DKIM兼容的格式对存储所述验证密钥的所述DNS记录进行格式化。
19.根据权利要求11所述的计算机可读存储介质,其中,所述存储介质存储另外的指令,所述另外的指令在由处理器执行时使得所述处理器执行以下操作:
用更新后的加密密钥对所述委托私钥进行再次加密;以及
以所述域所有者的DNS记录公布再次加密后的委托私钥。
20.一种计算机实现的处理方法,包括:
在域所有者系统识别第三方系统,以委托其对消息进行签名;
访问由所述第三方系统以所述第三方系统的域名系统DNS记录公布的加密密钥,所述第三方系统的DNS是能够建立所述第三方系统的真实性的全球目录系统的一部分;
生成公钥-私钥对,所述公钥-私钥对中的公钥是验证密钥,而所述公钥-私钥对中的私钥是委托私钥,所述委托私钥由所述第三方系统用来代表所述域所有者系统的域所有者对消息进行签名;
使用由所述第三方系统以所述第三方系统的DNS记录公布的所述加密密钥对所述委托私钥进行加密,以生成加密后的委托私钥;
以所述域所有者的DNS记录公布所述加密后的委托私钥;以及
以所述域所有者的DNS记录公布所述验证密钥。
21.根据权利要求20所述的处理方法,其中,使用所述加密密钥对所述委托私钥进行加密还包括:
将所述委托私钥划分成一个或多个块;
使用所述加密密钥对所述一个或多个块中的每个块进行加密;以及
将加密后的每个块连结,以生成所述加密后的委托私钥。
22.根据权利要求20所述的处理方法,其中,存储所述加密后的委托私钥的、所述域所有者的DNS记录是DNS TXT记录。
23.根据权利要求20所述的处理方法,其中,以所述域所有者的DNS记录公布所述加密后的委托私钥还包括:
以驻存于DNS服务器上的、所述域所有者的DNS记录公布所述加密后的委托私钥;
将所述DNS服务器配置成仅针对来自所述第三方系统的网络地址的对于所述加密后的委托私钥的请求来以所述加密后的委托私钥作出响应。
24.根据权利要求20所述的处理方法,还包括:
确定由所述第三方系统公布的所述加密密钥已被更新;
用更新后的加密密钥对所述委托私钥进行再次加密;以及
以所述域所有者的DNS记录公布再次加密后的委托私钥。
CN201680021221.4A 2015-02-14 2016-01-29 通过域名服务对私钥的安全的委托分发的介质和方法 Active CN108604983B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562116414P 2015-02-14 2015-02-14
US62/116,414 2015-02-14
PCT/US2016/015797 WO2016130340A1 (en) 2015-02-14 2016-01-29 Secure and delegated distribution of private keys via domain name service

Publications (2)

Publication Number Publication Date
CN108604983A CN108604983A (zh) 2018-09-28
CN108604983B true CN108604983B (zh) 2021-06-15

Family

ID=56615461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680021221.4A Active CN108604983B (zh) 2015-02-14 2016-01-29 通过域名服务对私钥的安全的委托分发的介质和方法

Country Status (8)

Country Link
US (3) US9686073B2 (zh)
EP (1) EP3257192B1 (zh)
JP (1) JP6526244B2 (zh)
CN (1) CN108604983B (zh)
AU (1) AU2016218340B2 (zh)
BR (1) BR112017017425B1 (zh)
CA (1) CA2976463C (zh)
WO (1) WO2016130340A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10205598B2 (en) * 2015-05-03 2019-02-12 Ronald Francis Sulpizio, JR. Temporal key generation and PKI gateway
CA2943756C (en) 2016-09-30 2024-02-06 The Toronto-Dominion Bank Information masking using certificate authority
CN108418678B (zh) * 2017-02-10 2019-05-07 贵州白山云科技股份有限公司 一种私钥安全存储和分发的方法及装置
US10637720B2 (en) * 2017-02-28 2020-04-28 International Business Machines Corporation Predictive analytics and device tracking to facilitate minimization of alert events
CN108574569B (zh) * 2017-03-08 2021-11-19 中国移动通信有限公司研究院 一种基于量子密钥的认证方法及认证装置
US10432584B1 (en) * 2017-06-23 2019-10-01 Verisign, Inc. Managing lame delegated domains within a managed DNS service
US10581909B2 (en) 2017-06-26 2020-03-03 Oath Inc. Systems and methods for electronic signing of electronic content requests
US11316666B2 (en) * 2017-07-12 2022-04-26 Amazon Technologies, Inc. Generating ephemeral key pools for sending and receiving secure communications
US10715504B2 (en) 2017-07-12 2020-07-14 Wickr Inc. Provisioning ephemeral key pools for sending and receiving secure communications
US11082412B2 (en) 2017-07-12 2021-08-03 Wickr Inc. Sending secure communications using a local ephemeral key pool
US10812276B2 (en) 2018-02-23 2020-10-20 International Business Machines Corporation Secure trust based distribution of digital certificates
US10785192B2 (en) 2018-02-28 2020-09-22 Sling Media Pvt. Ltd. Methods and systems for secure DNS routing
US10742696B2 (en) 2018-02-28 2020-08-11 Sling Media Pvt. Ltd. Relaying media content via a relay server system without decryption
US20190305940A1 (en) * 2018-03-28 2019-10-03 Ca, Inc. Group shareable credentials
CN111294379B (zh) * 2018-12-10 2022-06-07 北京沃东天骏信息技术有限公司 区块链网络服务平台及其权限托管方法、存储介质
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
US11212139B2 (en) 2019-08-29 2021-12-28 Charter Communications Operating, Llc Border gateway protocol (BGP) hijacks prefix signing using public/private keys
US11296872B2 (en) * 2019-11-07 2022-04-05 Micron Technology, Inc. Delegation of cryptographic key to a memory sub-system
CN110969431B (zh) * 2019-11-27 2024-04-19 北京贵泽系统技术有限公司 区块链数字币私钥的安全托管方法、设备和系统
US12069095B2 (en) 2020-01-22 2024-08-20 Valimail Inc. Automated authentication and authorization in a communication system
IL294919A (en) * 2020-01-22 2022-09-01 Valimail Inc Automatic authentication and authorization in a communication system
US11606198B2 (en) 2020-01-22 2023-03-14 Valimail Inc. Centrally managed PKI provisioning and rotation
EP4094418A4 (en) 2020-01-22 2024-03-20 Valimail Inc. INTERACTION CONTROL LIST DETERMINATION AND DEVICE NEIGHBORHOOD AND CORRESPONDING TOPOGRAPHY
CN111698088B (zh) * 2020-05-28 2022-10-18 平安科技(深圳)有限公司 密钥轮换方法、装置、电子设备及介质
CN112287364A (zh) * 2020-10-22 2021-01-29 同盾控股有限公司 数据共享方法、装置、系统、介质及电子设备
WO2022119586A1 (en) 2020-12-01 2022-06-09 Valimail Inc. Automated device discovery and workflow enrichment
US11695745B2 (en) 2020-12-01 2023-07-04 Valimail Inc. Automated DMARC device discovery and workflow
CN112751879B (zh) * 2021-01-08 2023-06-27 北京润通丰华科技有限公司 一种拟态dns防御系统通信加密和解密方法
US11271894B1 (en) * 2021-03-10 2022-03-08 Accenture Global Solutions Limited Systems, devices, and methods for private query and exchange of domain information
CN114142995B (zh) * 2021-11-05 2023-08-22 支付宝(杭州)信息技术有限公司 面向区块链中继通信网络的密钥安全分发方法及装置
US11991139B2 (en) 2022-09-16 2024-05-21 Valimail Inc. Automated email protocol analyzer in a privacy-safe environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010120940A2 (en) * 2009-04-15 2010-10-21 Ecert, Inc. System and method for the management of message policy
US8094810B2 (en) * 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
US9495552B2 (en) * 2012-12-31 2016-11-15 Microsoft Technology Licensing, Llc Integrated data deduplication and encryption

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834112B1 (en) * 2000-04-21 2004-12-21 Intel Corporation Secure distribution of private keys to multiple clients
US7281010B2 (en) * 2000-11-15 2007-10-09 Lenovo (Singapore) Pte. Ltd. Trusted computing platform with dual key trees to support multiple public/private key systems
US7773754B2 (en) * 2002-07-08 2010-08-10 Broadcom Corporation Key management system and method
AU2003229234A1 (en) * 2003-05-30 2005-01-21 Privasphere Gmbh System and method for secure communication
AU2004252882A1 (en) * 2003-06-10 2005-01-06 Mastercard International Incorporated Systems and methods for conducting secure payment transactions using a formatted data structure
US7313700B2 (en) * 2003-08-26 2007-12-25 Yahoo! Inc. Method and system for authenticating a message sender using domain keys
US6986049B2 (en) * 2003-08-26 2006-01-10 Yahoo! Inc. Method and system for authenticating a message sender using domain keys
US8538028B2 (en) * 2006-11-20 2013-09-17 Toposis Corporation System and method for secure electronic communication services
CA2586223A1 (en) * 2007-04-19 2007-07-18 Cannotech Experts-Conseils Inc. Opt-in process and nameserver system for ietf dnssec
US20100011420A1 (en) * 2008-07-02 2010-01-14 Barracuda Networks Inc. Operating a service on a network as a domain name system server
CA2754268C (en) * 2009-03-03 2018-04-03 Kenneth J. Giuliani Split key secure access system
US20110296171A1 (en) 2010-05-28 2011-12-01 Christina Fu Key recovery mechanism
WO2012094675A2 (en) * 2011-01-07 2012-07-12 Seven Networks, Inc. System and method for reduction of mobile network traffic used for domain name system (dns) queries
US20120216040A1 (en) * 2011-02-17 2012-08-23 Ram Tanamy System for Email Message Authentication, Classification, Encryption and Message Authenticity
JP2012199607A (ja) * 2011-03-18 2012-10-18 Anritsu Networks Kk Dnssec代理装置
US9130917B2 (en) * 2011-05-02 2015-09-08 Verisign, Inc. DNSSEC signing server
US9367676B2 (en) * 2013-03-22 2016-06-14 Nok Nok Labs, Inc. System and method for confirming location using supplemental sensor and/or location data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8094810B2 (en) * 2006-02-03 2012-01-10 Massachusetts Institute Of Technology Unidirectional proxy re-encryption
WO2010120940A2 (en) * 2009-04-15 2010-10-21 Ecert, Inc. System and method for the management of message policy
US9495552B2 (en) * 2012-12-31 2016-11-15 Microsoft Technology Licensing, Llc Integrated data deduplication and encryption

Also Published As

Publication number Publication date
BR112017017425A2 (pt) 2018-04-03
EP3257192A1 (en) 2017-12-20
CN108604983A (zh) 2018-09-28
CA2976463C (en) 2024-01-16
AU2016218340A1 (en) 2017-08-31
US20180048460A1 (en) 2018-02-15
EP3257192B1 (en) 2020-08-12
US9686073B2 (en) 2017-06-20
CA2976463A1 (en) 2016-08-18
EP3257192A4 (en) 2018-08-29
US20170250797A1 (en) 2017-08-31
WO2016130340A1 (en) 2016-08-18
AU2016218340B2 (en) 2019-01-03
US20160373252A1 (en) 2016-12-22
US9800402B2 (en) 2017-10-24
JP6526244B2 (ja) 2019-06-05
BR112017017425B1 (pt) 2024-04-30
JP2018506939A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
CN108604983B (zh) 通过域名服务对私钥的安全的委托分发的介质和方法
US7395428B2 (en) Delegating certificate validation
US8793491B2 (en) Electronic data communication system
US7992194B2 (en) Methods and apparatus for identity and role management in communication networks
US8527769B2 (en) Secure messaging with read-undeniability and deletion-verifiability
US11329997B2 (en) Signed message header storing sender account authentication method
US11457018B1 (en) Federated messaging
US7822974B2 (en) Implicit trust of authorship certification
JP2018506939A5 (zh)
US8468339B2 (en) Efficient security information distribution
US7120793B2 (en) System and method for electronic certificate revocation
US12034709B1 (en) Centralized secure distribution of messages and device updates
US20160149711A1 (en) Distributed identification system for peer to peer message transmission
US11349659B2 (en) Transmitting an encrypted communication to a user in a second secure communication network
EP3340559A1 (en) Method and system for facilitating secure communication between two or more devices
US11368442B2 (en) Receiving an encrypted communication from a user in a second secure communication network
US10791196B2 (en) Directory lookup for federated messaging with a user from a different secure communication network
JP2010245712A (ja) Id有効性管理装置及び通信装置及びid有効性管理方法及びデータ処理方法及びプログラム
Hanka et al. Security analysis of the cryptographic namespace design in Next Generation Internet architectures
AU2005220240B1 (en) Method of providing key containers

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
GR01 Patent grant
GR01 Patent grant