The current document is related to secure electronic communications, cryptography, and, in particular, to secure methods for provisioning, accessing, and utilizing public-key certificates.
Significant developments in information science, cryptography, and electronic-communications hardware and software have led to advancements in secure communications that allow businesses, using commercial IT systems, as well as individuals, using personal computers, tablets, or smart phones, to securely exchange messages and files through generally unsecured public communications networks and systems, particularly the Internet. Many protocols for secure communications rely upon public/private-key-based cryptography, such as the RSA cryptosystem. Additional types of public/private-key-based cryptosystems, including those based on elliptic curves and other computationally difficult problems, have emerged more recently than the RSA cryptosystem.
While, in principle, public/private-key-based cryptographic methods can be widely used in protocols to securely transmit information between computers, the currently used methods for generation, distribution, and management of public keys among communicating individuals and computer systems present a variety of logistic, management, and conceptual problems that can frustrate both computer users and system administrators, constrain access to secure communications, and present security issues with respect to repeated and on-going secure communications.
The current document is directed to methods and systems for secure provisioning, publication, distribution, and utilization of public-key certificates. These methods and systems employ domain name system (“DNS”) servers implementing the DNS security extensions (“DNSSEC servers”), a publisher component, and additional client-side and server-side functionalities. Public-key certificates provided by the DNSSEC servers engender a high degree of trust, as their integrity is protected and can be readily authenticated by the cryptographic-digital-signature based chains of trust provided by the DNSSEC. The systems to which the current document is directed employ DNSSEC servers, a publisher component, and additional client-side and server-side functionalities, and are referred to as “Public-key certificate Distribution and Management Systems” (“CDMSs”).
The current document is directed to systems that employ DNSSEC servers, a publisher component, and additional client-side and server-side functionalities, and that are referred to as “Public-Key Certificate Distribution and Management Systems” (“CDMSs”) as well as to methods carried out within and by CDMSs. The currently described methods and systems provide for the management and utilization of public keys, security of communication protocols, and innovation opportunities for new secure functionalities and services that address an ever-growing need for secure and trustworthy communications. The currently described methods and systems are effectively and easily used to safely and securely generate and publish public keys and ensure that the generated public keys can be securely authenticated when received, immediately revoked and replaced, and prevent various types of attacks and ameliorate many potential security breaches that have been identified in many currently used systems and methods.
In the following discussion, an overview of public/private-key-based cryptography and public-key certificates is first provided, followed by a discussion of potential security breaches that may occur, despite use of protocols and methods that employ public/private and symmetric key-based cryptography to encrypt information prior to transmission through public communications networks. Next, an overview of network protocols and the DNS and DNSSEC is provided. Finally, following these initial discussions, methods, and systems to which the current document is directed are disclosed with reference to illustrations and control-flow diagrams.
Encryption methods transform a digitally encoded sequence of symbols, including text and numerical data, into a corresponding encrypted symbol sequence that cannot be straightforwardly read or interpreted, in general, but that contains the same information that is contained in the original symbol sequence that was encrypted to produce the encrypted symbol sequence. A party possessing a decryption key or other decryption-facilitating information can carry out an inverse transformation to regenerate the original symbol sequence.
For secure communications, two parties exchange their public encryption keys so that each party can encrypt a message and transmit the encrypted message to the other party for decryption and reading solely by the other party. However, because of the relatively high computational overhead for asymmetric cryptography, protocols such as the transport layer security (“TLS”) protocol and the secure socket layer (“SSL”) protocol usually begin a session with a handshake step in which public/private cryptography is used initially to establish a symmetric key that can be used more computationally efficiently for message encryption and decryption. Both parties use the symmetric key for the remainder of the session. The symmetric key is referred to as a “session key.”
To generate an encryption/decryption key pair for the RSA cryptosystem, two prime numbers p and q are first selected, and the product n=pq is computed and saved. Next, the function φ(n) is computed as (p−1)(q−1). Then, an integer e in the range (1, φ(n)) is selected such that the greatest common divisor of e and φ(n) is 1. A corresponding integer d is computed such that (d*e) mod φ(n)=1. The public encryption key ke is the pair of integers (e,n) and the private, or secret, decryption key kd can be the four-tuple (d, n, p, q), the three-tuple (d, p, q), or the pair (d,n). To encrypt a message M, M is first transformed to an integer m in the range (0,n), the integer in is then subjected to the Optimal Asymmetric Encryption Padding (OAEP) randomized padding scheme, and the result is then raised to the power e modulo n or, as shown in
C=(OAEP(m))e mod n.
To decrypt the encrypted message C, the integer m is recovered by applying the inverse of the randomized padding scheme to the result of decrypting the message C by raising C to the power d modulo n, as shown in
m=OAEP−1(Cd mod n)
Finally, the integer m is transformed back into message M by the inverse of the forward transformation of M to m, performed as the first step of the encryption method. In certain cases, the initial transformation and final inverse transformations are omitted.
The RSA encryption/decryption method can also be used to digitally sign a message to provide authentication of the integrity of a transmitted message. Digital signing relies on the fact that, for a given initial value less than n, encryption is the inverse operation of the decryption operation, and vice versa. Digital signing proceeds as follows. First, a one-way cryptographic hash function is applied to the message M to produce a hash value, referred to as a “hash digest” of the message. Then, an optional transform may be applied to mHash to generate a further encoded message EM. Alternatively, the hash digest can be directly used as EM. Next, a signature for the message is generated by raising EM to the power d modulo n, equivalent to applying the RSA decryption method to EM using secret key kd. This signature is appended to message M, along with the public encryption key, ke, to be used to recover EM from the signature. A recipient of the message can verify the message by first generating mHash by applying the same one-way cryptographic hash function to the message M. The recipient next applies the RSA encryption method to the signature to generate a value EM′ or, as expressed in
EM′=signaturee(mod n)=ENC(signature,ke).
Next, in the case that the optional transform was applied to generate the signature, a corresponding reverse transform is applied to EM′ to generate mHash′. When mHash′ is equal to mHash, the hash value initially generated by applying the one-way cryptographic hash function to message M, the signature is verified. Note that the signer of the message uses the signer's private key, while the message can be verified by anyone with access to the signer's corresponding public key. Verification proves that the text of a received message M is identical to the text in the original message M that was signed by a party possessing the secret key kd.
A digitally signed message comprises three elements: message contents M, a signature, and a public key used to recover a hash digest from the signature that is compared to a hash digest computed for M in order to verify M by a recipient of the message. A digitally signed message is vulnerable to a type of man-in-the-middle attack referred to as an “intercept/resign” attack. The attacker first intercepts a transmitted message. The attacker then alters the contents of the message M to produce new, different message contents M* and uses the attacker's own private key to generate a new signature for the new message contents M*, appending the new signature and the attacker's public key to the new message contents M* to generate a fraudulent digitally signed message. The sender information associated with the fraudulent digitally signed message is not altered by the attacker, so that the fraudulent digitally signed message appears, to a recipient, to have been received from the original sender. The fraudulent digitally signed message is then accepted and deemed to be valid by an unsuspecting recipient, because the verification method, discussed above, generates an mHash and mHash′ that are equal to one another, despite the fact that the fraudulent digitally signed message includes altered message contents M*.
Finally, other types of encryption/decryption methods employ a single key for both encryption and decryption. These methods are referred to as “symmetric key” cryptosystems. In this case:
C→ENC(M,k)
M→DEC(C,k).
Symmetric-key encryption uses a single key k for both encryption and decryption. There are many different crypto systems for symmetric key encryption. One example is the Advanced Encryption Standard (“AES”). In general, symmetric-key encryption employs a series of deterministic operations for encryption that can be inverted for decryption. For symmetric-key encryption, the encryption key k is held in secret by both communicating parties since, once revealed, a message encrypted using the key k can be readily decrypted when k becomes known and when the particular symmetric-key-encryption method is also known.
Public-key certificates, including certificates that follow the X.509 ITU-T standard, are frequently used in secure communications for verifiably binding a public key to a name or identifier, such as a business entity name or a business or personal email address.
In general, public-key certificates are issued by trusted computer systems within entrusted organizations known as “Certificate Authorities” (“CAs”). CAs are well-known certificate-issuing organizations that issue public/private key pairs, including corresponding public-key certificates, as a commercial service. These organizations employ various due-diligence information-gathering techniques to verify the identity of a requesting entity prior to issuing a key pair and public-key certificate. Large organizations, such as universities or big companies, may perform the function of a CA in order to generate public-key certificates for their use, referred to as “self-signing.”
A public-key certificate is transmitted, by a first entity possessing the public-key certificate and the corresponding private key, to other entities in order to enable the other entities to securely transmit information to the first entity and to enable the first entity to digitally sign information that can then be verified by use of the public key by the other entities. For email, a sender transmits the sender's public key to other entities by signing emails transmitted to the other entities. The public key component of the digital signature can be saved for further use by those who receive the emails. Public-key distribution by this method generally involves public-key management, including procedures for public-key revocation, expiration, and replacement. Public-key management may be a burdensome overhead, often resulting in complexity that hinders use of encryption for communications.
In a first step, the browser on the user's computer, in certain cases in response to certain user inputs, and, in other cases, in response to internal events, generates a new public/private key pair ke/kd and then requests a public-key certificate from the certificate authority 410 via a request message 416. The request message is sent through various severs and routers 406 and intermediate routing systems within the public network to the certificate authority 410. In general, although not shown in
Thus, as a result of the certificate requests and responses illustrated in
Next, as shown in
Next, as shown in
Next, in step 11, as shown in
As shown in
After transmission of the encrypted pre-master secret by the user to the responder, in step 11 shown in
Protocol steps 7-10, shown in
A weakness of the above-described handshake protocol, and the above-mentioned steps to compensate for this weakness, is that strong cryptographic protections do not commence from the very first steps of the handshake protocol. The initial clear-text messages provide an entry point for attackers and eavesdroppers.
The architecture of network protocols, including those used in the Internet, is generally considered to include four layers of functionality, each higher-level layer building upon, and benefitting from, the underlying layers. Each of these layers provides functions that operate in concert to sustain the massive volumes of communication operations, carried out among millions of systems and users, that currently occur daily within the Internet. Each of these layers in an endpoint system provides capabilities for communicating with a corresponding peer layer in another endpoint system.
The lowest layer of the network-protocol architecture is referred to as the “link layer” or as the “network-interface layer.” The link layer is concerned with the hardware network interface adapters that connect a computer to the wired or wireless data transmission media over which network data flows at the physical level. Operating system I/O drivers that control the data input and output functions through these interface adapters function at the link level of the network architecture.
The second layer of the network-protocol architecture is referred to as the “network layer” or the “Internet Layer.” This layer handles the routing and movement of data packets among the stationary or mobile endpoint systems, often referred to as “hosts,” of the network. It is at this layer that communication endpoints are identified by assigning to each endpoint an Internet-protocol address (“IP address”). Identifying a target endpoint system by its assigned IP address enables data streams to be correctly directed by routers to specific endpoint systems. There are two basic types of IP addresses: IPv4 addresses and IPv6 addresses. IPv4 addresses are 32 bits in length. IPv6 addresses are 128 bits in length. As the Internet has evolved, and various blocks of IPv4 addresses have been assigned to various organizations and individual systems, the available supply of IPv4 addresses has been exhausted. Because IPv6 addresses are 128 bits in length, there are more than 3.4*1038 unique IPv6 addresses, more than sufficient for the foreseeable future.
The third layer of the network-protocol architecture is referred to as the “transport” layer” and provides for the flow of data among applications in host systems. It is at this layer that the Transmission Control Protocol (“TCP”) and User Datagram Protocol (“UDP”) are found. TCP organizes data streams into chunks, referred to as “packets,” and ensure that transmission of packet sequences is reliable. The UDP protocol is a simpler protocol that sends individual data packets, referred to as “datagrams” from one endpoint to another. Reliability is generally implemented on top of the UDP protocol.
The fourth, and highest, layer of the network-protocol architecture is referred to as the “application layer.” This is the layer at which user applications in different hosts communicate with one another, each invoking underlying transport, network, and link functionality to do so. Standard network applications, as well as user applications, operate at this level in endpoint systems.
The concept of name servers, which, over time, grew into the DNS, was created in the mid 1970s to enable attributes, particularly IP addresses, of a named endpoint system to be maintained in a well-known location. It was determined that it was much easier for people to remember the names of endpoint systems, or of standard services provided in endpoint systems, than to attempt to memorize and specify the IP addresses and other low-level details about those systems. From this beginning, the DNS has evolved to become the world's largest public distributed database. DNS is worldwide, hierarchically organized, highly distributed, and highly redundant, providing the high levels of scalability and availability needed for a shared data base that is accessed in order to establish each of many billions of Internet connections each day.
As DNS evolved, IP addresses became named and looked-up by hierarchical connection endpoint names, referred to as “domain names,” that are far easier for people to use and remember than fixed-length-bit-string IP addresses. Domain names comprise a right-to-left hierarchical sequence of tokens of alphanumeric characters. The tokens are separated by periods, for IPv4 addresses, or colons, for IPv6 addresses. The entire domain name begins with an explicit or assumed rightmost period designating any DNS root server.
A typical domain name for a financial firm web server, for example, might be: “www.mybank.com.” This is a fully qualified domain name (“FQDN”), having an explicit rightmost period. Alternatively, a non-FQDN domain name, “www.mybank.com,” having an implied rightmost period, may be used for the financial firm web server. The rightmost token of a domain name is referred to as the top-level domain name (“TLD”). The TLD is the highest point under a root server in the domain hierarchy, and may be of several types: (1) generic (“gTLD”); (2) country-code (“ccTLD”), or (3) sponsored and limited registration (“sTLD”). The next token, to the left, is referred to as the second-level domain name (“SLD”). Tokens within a domain name are referred to as “subdomain names.” The leftmost domain name token name is referred to as the “host name” or “service name.”
The entire DNS database is massive. No single DNS name server would be able to contain the entire DNS database. To provide the needed scalability and redundancy-based high availability of sufficiently many name servers, the DNS naming and content are organized as an extensible hierarchy, which enables authority over different parts of the DNS name space and content to be delegated to different name servers throughout the world. DNS database content consists of various types of resource records (“RRs”) each encoding a particular type of important information, as shown in
Retrieving RRs from the DNS database is known as “name resolution.” For example, retrieving the IP address for the bank's endpoint web server, which provides the www.mybank.com web service, can be viewed as resolution of the “www.mybank.com.” domain name. Because the naming information in DNS is distributed throughout a hierarchy of DNS name servers, name resolution comprises two phases. The first-phase goal is to find the DNS name server that contains the RRs being sought. Once the IP address of the DNS name server containing the zones for the full domain name is found, a DNS request is used to retrieve the sought RRs.
There are two basic methods for DNS name resolution. The first is referred to as “iterative resolution” and the second is referred to as “recursive resolution.” Both methods involve stepping through the DNS hierarchy, as guided by the FQDN being resolved. For iterative resolution, the requestor initiates each of the steps through the hierarchy, analyzes the returned results, and determines the next step to be taken. The very last request retrieves the sought RRs. For recursive resolution, the DNS request is made to a type of DNS name server, referred to as a “caching server,” that performs the resolution steps and returns only the sought RRs.
In both methods, all but the last of the DNS requests are used to find the correct DNS name server for the last and final request. For either resolution method, every DNS step uses an FQDN argument. The first call is to a DNS root server. Endpoint systems contain a table of the DNS root server IP addresses. The DNS server referred to as a “root server” generally may not have the requested RRs, but does have at least two NS RRs containing the names of corresponding DNS name servers that are authoritative for the TLD. A second DNS request for an A RR, containing an IPv4 IP address for a returned authoritative TLD name server name, is then used to retrieve the DNS name server IP address for the next step. Another mechanism, referred to as “glue records,” is also provided to eliminate the need for a second request. The returned IP address is used for the next step. Each step effectively increases the length of the rightmost portion of the FQDN that has been resolved. This continues until the IP address of the DNS name server authoritative for the entire domain name is used to retrieve the sought RRs. At this point, the sought RRs are returned directly to the requestor, in the iterative-resolution case, or returned to the resolving DNS server that then conveys them to the requestor, in the recursive-resolution case.
Initially, as stated previously, DNS was deployed to look up IP addresses from domain names. It also was used to look up domain names from IP addresses. As DNS evolved, many new types of content were introduced. DNS content is encoded as RRs grouped systematically into zone files. Multiple RRs with the same name, class, and type, within a zone file are referred to as “RRsets.” The formats of zone files and their RRs are standardized to ensure portability.
Arguments supplied to system and software applications at the application level, such as browsers and mail servers, are often textual information concatenated with fully qualified domain names. An argument to a browser, for example, may prefix a protocol designation to the domain name of an intended web server. This results in browser arguments such as: http:://www.myfriend.org and https://www.mybank.com. Other arguments may be appended as parameters to a domain name, such as: get.adobe.com/flashplayer/. For mail servers, prepending the destination user's name and a “@” produces email addresses such as: john.smith@HP.com. Such arguments do not modify a DNS domain name, but surround it with other information needed by a particular software application.
One introduction of new content and capabilities to the DNS system is the DNSSEC, accompanied by the signing of the DNS root servers. DNSSEC introduced new RR content types, referred to as DNSKEY, RRSIG, DS, NSEC, NSEC3, NSEC3PARAM, and DNSKEY. These additions enable zone file data to be organized into RRsets that can each be digitally signed by an appropriate DNSKEY. This produces an RRSIG RR containing the digital signature that is returned with the corresponding RRset. The extension, using the DS RR, is also able to construct a signature chain of trust for each RRset, anchored by signed root servers. Signed RRsets can be delivered from DNSSEC servers, can be cryptographically validated using the corresponding DNSKEY RR, and can be trusted due to the cryptographic chain of trust established within the DNSSEC database. Specifically, pubic-key certificates that are published in DNSSEC name servers can be delivered from DNSSEC servers, can be cryptographically validated, and can be trusted due to the cryptographic chain of trust established within the DNSSEC database. Thus, the DNSSEC system has become a trustworthy worldwide, hierarchically organized, highly scalable, highly distributed, and highly redundant public database.
In
The root domain and hierarchically ordered subdomains of the name space, represented in
The RRs for the various computer systems also may be hierarchically arranged into zones and subzones. In certain cases, there may be a one-to-one correspondence between name-space domains and zones, while, in other cases, a zone may maintain information for multiple subdomains. In
As shown in
Returning briefly to
For various reasons, a public-key certificate may be revoked when, for example, it expires, it is replaced by a new public-key, or it appears that the security of the corresponding private key may have been compromised. Currently, revocation detection is handled by maintaining large databases of revoked certificates, against which any received certificate may be checked. However, this type of revocation checking is computationally inefficient and may suffer from maintenance losses, database failures, default system settings that do not mandate checking the database, and other deficiencies.
In
Cryptographic/hash digests of an identifier of the entity to which the public-key certificate contained in the CERT RR is bound or of the entity that owns the public-key certificate may be used to name the CERT RRs within the certs subdomain. The DNSSEC servers may store and retrieve CERT RRs using these names rather than by using user names or other easily understood identifiers. Thus, merely guessing entity names and harvesting NSEC RRs cannot obtain information about the identities of entities within an organization. In one implementation of the CDMS, published public-key certificates are associated with email addresses of the entities to which they belong, and it is email addresses that are cryptographically hashed to produce digests by which corresponding public-key certificates can be retrieved from name servers by DNSSEC queries. Other naming conventions are possible.
Next, the publisher interface functions publish, create, confirm, update, and revoke are described. The function publish is invoked to publish a public-key certificate for a user or other entity. Publication results in installing the public-key certificate in the certs domain for an individual user or for another entity's use in the domain. It also enables external mail servers and other computational entities to access the published public-key certificate by generating a cryptographic-hash digest of an individual's or organization's identifier, generally an email address of the user or other entity, and using this digest in a request to the DNSSEC server containing the zone of published CERT RRs. A user furnishes an already generated public-key certificate to the publisher when invoking the publish function.
The create function is similar to the publish function, except that a new public/private key pair is generated by the publisher, a public-key certificate binding the newly created public key to the invoking user or entity is created and stored in the DNSSEC by the publisher, and an encrypted, newly generated private key is returned to the user. In other words, the create function also publishes a public-key certificate on behalf of a user or other entity and, in addition, creates the public key and a corresponding private key, prepares a public-key certificate on behalf of the user or entity, and returns the private key to the invoking user. The create function may also return a copy of the published certificate. In essence, the create function may seem to obviate the need for external CA or self-signer authorities. However, it should be recognized that the publisher offers, for the first time, a new tool and modes of operation of high utility for both CAs and self-signers. CAs, for example, may not only generate key pairs, but may also use the publisher to publish the new public keys in DNSSEC name servers. This allows CAs to sell reliable keys, provides CAs and CA customers with public key distribution without the burdens of distributing and protecting public-key certificates, and management of revocations and automatic renewals at expiration dates. A CA may, using the CDMS, may offer automatic revocation and roll-over of public keys at each expiration date.
The confirm function is used to confirm publication of a public-key certificate as well as the revocation status of the public-key certificate. Retrieving a public-key certificate from a DNSSEC name server can implement a portion of this function. When the public-key certificate is not obtained, the certificate has been revoked or expired. When the public-key certificate has been updated, the new certificate can be examined.
The update function is similar to the create function. However, the update function replaces any currently existing public-key certificate with a corresponding new public-key certificate, while the create function and publish function both fail in the case that a valid, non-revoked public-key certificate is already present within the DNSSEC name server for the named user or entity.
The revoke function removes a public-key certificate from the user or other entity's computer system and simply deletes the corresponding published public-key certificate from the publishing DNSSEC name server. In certain cases, the CDMS may support only a single public-key certificate for each user and other entities. In the more general case, the CDMS may support an arbitrary number of public-key certificates for users and entities, where each of the public-key certificates is associated with a role or type.
In one implementation of the CDMS, the CDMS computational components use standard DNSSEC queries to retrieve a DNSSEC published certificate. The DNS published-cert query can be issued to a DNSSEC name server by many computational entities, such as desktops, laptops, tablets, smart phones, host applications, software appliances, or mail servers, that currently access a DNSSEC name server using standard DNSSEC queries.
In step 1402, a digitally signed message M that includes a clear-text message m and a decrypted message digest d is received. In step 1404, the recipient computes a new digest d′ from m using a cryptographic hash function or other deterministic one-way function that is understood to generate digests. In certain cases, an identifier of the one-way function may also be included in the digital signature, when more than one one-way function can be used to generate digital signatures. In step 1406, a DNSSEC published-cert query routine, discussed above with reference to
This protocol ensures mutual authentication of client and server. In an alternative implementation, signed messages between the parties may be employed. In step 1510, following establishment of the first TLS session, the client transmits the client's email address or other communications address and a well-known form of additional client-identifying information to the publisher, which receives the email address or other communications address and client-identifying information in step 1512. In step 1514, the publisher generates a first unique transaction ID, using the client-identifying information, and returns the first transaction ID to the client. In step 1516, the client receives the first transaction ID and stores the first transaction ID along with the first-session symmetric encryption key, and then, in step 1518, terminates the TLS session. Similarly, in step 1520, the publisher stores the first-session symmetric encryption key along with the first transaction ID and then, in step 1518, terminates the TLS session.
Turning to
The remaining publisher-interface functions are analogously implemented. For example, the create publisher-interface function involves transmission of information needed to construct a certificate from the client to the publisher, construction of a certificate by the publisher, rather than transmission of a certificate by the client, as in
To implement the confirm publisher-interface function, the publisher formulates and issues a request for retrieving the identified certificate from the appropriate DNSSEC name server. This request returns the signed RRset containing the requested certificate, along with the RRSIG RR containing the digital signature of the RRset. A second request is formulated to retrieve the DNSKEY containing the zone-signing key for the zone from which the CERT RRset was returned. This key can then be used to validate the CERT RRset and its RRset digital signature previously returned in the RRSIG RR. As explained above, the DNSSEC system signatures are supported by a cryptographic chain of trust extending all the way back to a DNSSEC root domain name server.
The update publisher function is implemented similarly to the create publisher function, with the difference that the update publisher function first deletes, on the client side, any public-key certificate currently stored within the client's system, and also deletes on the DNSSEC name server side the public-key certificate that is to be updated. It then proceeds with the create publisher functions. As mentioned above, the revoke publisher-interface function also deletes the currently stored public-key certificate on the client side within the user's system, as well as the CERT RR containing the public-key certificate in the DNSSEC name server.
For both update and revoke, the publisher function protocol can first validate the IP address of the user's email server and the user's email account before undertaking the certificate update and revoke operations. The update and revoke may be directed to a single public-key certificate associated with a user, in CDMS implementations, and also may be directed to a public-key certificate having a particular specified role or type for its owner.
The CDMS securely publishes public-key certificates for a wide variety of different types of users and entities. These published public-key certificates become available to any computing system, such as a mail server, that can accesses DNSSEC name servers through DNSSEC queries. As a result, the published public-keys can be used as the basis for a wide variety of different types of secure communications, secure transactions, or digitally encoded information verification via digital signatures. For example, a mailer plug-in can retrieve the public-key certificate for the addressee of an email that is being sent and, when receiving a valid and unrevoked public-key certificate corresponding to the addressee, can encrypt the email using the addressee's published public key prior to transmission. Thus, a message sender need not have first received a public-key certificate from an addressee, and can verify association of the public-key certificate to the addressee through DNSSEC, rather than relying on external certificate authorities or other means. Published public-key certificates also can be used for validation of distributed software, for automated SPAM and Phishing-email-detection, discussed earlier, and for implementing a variety of different extremely secure transaction protocols that strongly authenticate multiple parties participating in the transaction.
To prevent intercept/resign attacks, certain implementations of the CDMS employ and utilize partial digital signatures, as discussed above. A partial digital signature comprises only the first two of the above-discussed three elements of a digital signature. The third element of a digital signature, the public key, is separately retrieved from a DNSSEC server, having been requested using a defined convention for deriving a sender's DNS certificate domain name from the identifier of the original sender. This permits retrieving a public key belonging to a particular named sender or organization and ensures that such a key has been authenticated by the DNSSEC cryptographic chain of trust anchored in a DNS root server. As a result, such a digital signature can be validated if and only if the actual signing party possesses the private key corresponding to the sender's public key retrieved from the DNSSEC server. As long as the sender retains sole custody of the sender's private key, man-in-the-middle intercept/resign attacks are prevented.
Such use of partial digital signatures, for example, is helpful for authenticating and verifying identities of email senders. Adopting a practice that all unsigned emails are discarded and that all signed emails are validated by partial signature methods, phishing and SPAM emails cannot fake or hide the true identities of their senders. Emails with invalid sender identities are automatically discarded by a mailer or can be identified and further analyzed to determine the actual sender. Thus, systematic deployment of DNSSEC public key publication can greatly reduce the likelihood of successful cyber attacks based on phishing, and can lead to ignoring and/or identifying SPAM purveyors.
Although the present invention has been described in terms of particular embodiments, it is not intended that the invention be limited to these embodiments. Modifications within the spirit of the invention will be apparent to those skilled in the art. For example, the publisher functionality can be distributed among client-side and publisher-side portions in a variety of different ways. The publisher interface may include additional functions or variations on the publisher functions addressed above. Variations may include different, additional, or fewer arguments in different implementations. As discussed above, the publisher functionality may be embodied in special-purpose hardware devices or in software implementations included in DNS servers or other systems. A variety of different hardware platforms may be used for implementing the publisher functions, and publisher routines can be implemented in many different ways by varying any of the many different design and implementation parameters, including control structures, modular organization, data structures, programming language, and other such parameters. While email addresses are an attractive option for identifiers bound to public keys by published-key certificates, other types of identifiers, such as corporate functional server or service domain names, may alternatively be used.
It is appreciated that the previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the disclosure. Thus, the present disclosure is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein. Although not articulated in this application, benefits of the invention accrue to the operational practices of CAs, as well system and application developers. Such benefits are intended, and will become apparent to experts in each of these areas.
This application is a continuation-in-part of application Ser. No. 13/293,102, filed Nov. 9, 2011.
Number | Date | Country | |
---|---|---|---|
61411895 | Nov 2010 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13293102 | Nov 2011 | US |
Child | 14169102 | US |