| < draft-ietf-dane-openpgpkey-07.txt | draft-ietf-dane-openpgpkey-08.txt > | |||
|---|---|---|---|---|
| Network Working Group P. Wouters | Network Working Group P. Wouters | |||
| Internet-Draft Red Hat | Internet-Draft Red Hat | |||
| Intended status: Experimental January 27, 2016 | Intended status: Experimental March 08, 2016 | |||
| Expires: July 30, 2016 | Expires: September 09, 2016 | |||
| Using DANE to Associate OpenPGP public keys with email addresses | Using DANE to Associate OpenPGP public keys with email addresses | |||
| draft-ietf-dane-openpgpkey-07 | draft-ietf-dane-openpgpkey-08 | |||
| Abstract | Abstract | |||
| OpenPGP is a message format for email (and file) encryption that | OpenPGP is a message format for email (and file) encryption that | |||
| lacks a standardized lookup mechanism to securely obtain OpenPGP | lacks a standardized lookup mechanism to securely obtain OpenPGP | |||
| public keys. DNS-Based Authentication of Named Entities ("DANE") is | public keys. DNS-Based Authentication of Named Entities ("DANE") is | |||
| a method for publishing public keys in DNS. This document specifies | a method for publishing public keys in DNS. This document specifies | |||
| a DANE method for publishing and locating OpenPGP public keys in DNS | a DANE method for publishing and locating OpenPGP public keys in DNS | |||
| for a specific email address using a new OPENPGPKEY DNS Resource | for a specific email address using a new OPENPGPKEY DNS Resource | |||
| Record. Security is provided via Secure DNS, however the OPENPGPKEY | Record. Security is provided via Secure DNS, however the OPENPGPKEY | |||
| record is not a replacement for verification of authenticity via the | record is not a replacement for verification of authenticity via the | |||
| "Web of Trust" or manual verification. The OPENPGPKEY record can be | "Web Of Trust" or manual verification. The OPENPGPKEY record can be | |||
| used to encrypt an email that would otherwise have to be send | used to encrypt an email that would otherwise have to be sent | |||
| unencrypted. | unencrypted. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on July 30, 2016. | This Internet-Draft will expire on September 09, 2016. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.1. Experiment goal . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Experiment goal . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2. The OPENPGPKEY Resource Record . . . . . . . . . . . . . . . 4 | 2. The OPENPGPKEY Resource Record . . . . . . . . . . . . . . . 4 | |||
| 2.1. The OPENPGPKEY RDATA component . . . . . . . . . . . . . 4 | 2.1. The OPENPGPKEY RDATA component . . . . . . . . . . . . . 5 | |||
| 2.1.1. The OPENPGPKEY RDATA content . . . . . . . . . . . . 4 | 2.1.1. The OPENPGPKEY RDATA content . . . . . . . . . . . . 5 | |||
| 2.1.2. Reducing the Transferable Public Key size . . . . . . 5 | 2.1.2. Reducing the Transferable Public Key size . . . . . . 6 | |||
| 2.2. The OPENPGPKEY RDATA wire format . . . . . . . . . . . . 6 | 2.2. The OPENPGPKEY RDATA wire format . . . . . . . . . . . . 6 | |||
| 2.3. The OPENPGPKEY RDATA presentation format . . . . . . . . 6 | 2.3. The OPENPGPKEY RDATA presentation format . . . . . . . . 7 | |||
| 3. Location of the OPENPGPKEY record . . . . . . . . . . . . . . 6 | 3. Location of the OPENPGPKEY record . . . . . . . . . . . . . . 7 | |||
| 4. Email address variants . . . . . . . . . . . . . . . . . . . 7 | 4. Email address variants and internationalization | |||
| 5. Application use of OPENPGPKEY . . . . . . . . . . . . . . . . 7 | considerations . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Obtaining an OpenPGP key for a specific email address . . 7 | 5. Application use of OPENPGPKEY . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Confirming that an OpenPGP key is current . . . . . . . . 8 | 5.1. Obtaining an OpenPGP key for a specific email address . . 9 | |||
| 5.3. Public Key UIDs and query names . . . . . . . . . . . . . 8 | 5.2. Confirming that an OpenPGP key is current . . . . . . . . 9 | |||
| 6. OpenPGP Key size and DNS . . . . . . . . . . . . . . . . . . 9 | 5.3. Public Key UIDs and query names . . . . . . . . . . . . . 9 | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 6. OpenPGP Key size and DNS . . . . . . . . . . . . . . . . . . 10 | |||
| 7.1. MTA behaviour . . . . . . . . . . . . . . . . . . . . . . 10 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | |||
| 7.2. MUA behaviour . . . . . . . . . . . . . . . . . . . . . . 10 | 7.1. MTA behaviour . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7.3. Email client behaviour . . . . . . . . . . . . . . . . . 11 | 7.2. MUA behaviour . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 7.4. Response size . . . . . . . . . . . . . . . . . . . . . . 11 | 7.3. Email client behaviour . . . . . . . . . . . . . . . . . 12 | |||
| 7.5. Email address information leak . . . . . . . . . . . . . 11 | 7.4. Response size . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 7.6. Storage of OPENPGPKEY data . . . . . . . . . . . . . . . 12 | 7.5. Email address information leak . . . . . . . . . . . . . 12 | |||
| 7.7. Security of OpenPGP versus DNSSEC . . . . . . . . . . . . 12 | 7.6. Storage of OPENPGPKEY data . . . . . . . . . . . . . . . 13 | |||
| 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 12 | 7.7. Security of OpenPGP versus DNSSEC . . . . . . . . . . . . 13 | |||
| 8.1. The GNU Privacy Guard (GNUpg) . . . . . . . . . . . . . . 13 | 8. Implementation Status . . . . . . . . . . . . . . . . . . . . 13 | |||
| 8.2. hash-slinger . . . . . . . . . . . . . . . . . . . . . . 13 | 8.1. The GNU Privacy Guard (GNUpg) . . . . . . . . . . . . . . 14 | |||
| 8.3. openpgpkey-milter . . . . . . . . . . . . . . . . . . . . 14 | 8.2. hash-slinger . . . . . . . . . . . . . . . . . . . . . . 14 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 8.3. openpgpkey-milter . . . . . . . . . . . . . . . . . . . . 15 | |||
| 9.1. OPENPGPKEY RRtype . . . . . . . . . . . . . . . . . . . . 14 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | 9.1. OPENPGPKEY RRtype . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . 16 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 16 | |||
| Appendix A. Generating OPENPGPKEY records . . . . . . . . . . . 17 | 11.2. Informative References . . . . . . . . . . . . . . . . . 17 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 | Appendix A. Generating OPENPGPKEY records . . . . . . . . . . . 18 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| 1. Introduction | 1. Introduction | |||
| OpenPGP [RFC4880] public keys are used to encrypt or sign email | OpenPGP [RFC4880] public keys are used to encrypt or sign email | |||
| messages and files. To encrypt an email message, or verify a | messages and files. To encrypt an email message, or verify a | |||
| sender's OpenPGP signature, the email client or MTA needs to locate | sender's OpenPGP signature, the email client or MTA needs to locate | |||
| the recipient's OpenPGP public key. | the recipient's OpenPGP public key. | |||
| OpenPGP clients have relied on centralized "well-known" key servers | OpenPGP clients have relied on centralized "well-known" key servers | |||
| that are accessed using either the HTTP Keyserver Protocol [HKP] | that are accessed using the HTTP Keyserver Protocol [HKP]. | |||
| Alternatively, users need to manually browse a variety of different | Alternatively, users need to manually browse a variety of different | |||
| front-end websites. These key servers do not require a confirmation | front-end websites. These key servers do not require a confirmation | |||
| of the email address used in the User ID of the uploaded OpenPGP | of the email address used in the User ID of the uploaded OpenPGP | |||
| public key. Attackers can - and have - uploaded rogue public keys | public key. Attackers can - and have - uploaded rogue public keys | |||
| with other people's email addresses to these key servers. | with other people's email addresses to these key servers. | |||
| Once uploaded, public keys cannot be deleted. People who did not | Once uploaded, public keys cannot be deleted. People who did not | |||
| pre-sign a key revocation can never remove their OpenPGP public key | pre-sign a key revocation can never remove their OpenPGP public key | |||
| from these key servers once they have lost access to their private | from these key servers once they have lost access to their private | |||
| key. This results in receiving encrypted email that cannot be | key. This results in receiving encrypted email that cannot be | |||
| decrypted. | decrypted. | |||
| Therefor, these keyservers are not well suited to support email | Therefore, these keyservers are not well suited to support email | |||
| clients and MTA's to automatically encrypt email - especially in the | clients and MTA's to automatically encrypt email - especially in the | |||
| absence of an interactive user. | absence of an interactive user. | |||
| This document describes a mechanism to associate a user's OpenPGP | This document describes a mechanism to associate a user's OpenPGP | |||
| public key with their email address, using the OPENPGPKEY DNS RRtype. | public key with their email address, using the OPENPGPKEY DNS RRtype. | |||
| These records are published in the DNS zone of the user's email | These records are published in the DNS zone of the user's email | |||
| address. If the user loses their private key, the OPENPGPKEY DNS | address. If the user loses their private key, the OPENPGPKEY DNS | |||
| record can simply be updated or removed from the zone. | record can simply be updated or removed from the zone. | |||
| The OPENPGPKEY data is secured using Secure DNS [RFC4035] | The OPENPGPKEY data is secured using Secure DNS [RFC4035] | |||
| skipping to change at page 3, line 45 ¶ | skipping to change at page 3, line 48 ¶ | |||
| The main goal of the OPENPGPKEY resource record is to stop passive | The main goal of the OPENPGPKEY resource record is to stop passive | |||
| attacks against plaintext emails. While it can also thwart some | attacks against plaintext emails. While it can also thwart some | |||
| active attacks (such as people uploading rogue keys to keyservers in | active attacks (such as people uploading rogue keys to keyservers in | |||
| the hopes that others will encrypt to these rogue keys), this | the hopes that others will encrypt to these rogue keys), this | |||
| resource record is not a replacement for verifying OpenPGP public | resource record is not a replacement for verifying OpenPGP public | |||
| keys via the web of trust signatures, or manually via a fingerprint | keys via the web of trust signatures, or manually via a fingerprint | |||
| verification. | verification. | |||
| 1.1. Experiment goal | 1.1. Experiment goal | |||
| This specification is one experiment in improving access to public | ||||
| keys for end-to-end email security. There are a range of ways in | ||||
| which this can reasonably be done, for OpenPGP or S/MIME, for example | ||||
| using the DNS, or SMTP, or HTTP. Proposals for each of these have | ||||
| been made with various levels of support in terms of implementation | ||||
| and deployment. For each such experiment, specifications such as | ||||
| this will enable experiments to be carried out that may succeed or | ||||
| that may uncover technical or other impediments to large- or small- | ||||
| scale deployments. The IETF encourages those implementing and | ||||
| deploying such experiments to publicly document their experiences so | ||||
| that future specifications in this space can benefit. | ||||
| This document defines an RRtype whose use is Experimental. The goal | This document defines an RRtype whose use is Experimental. The goal | |||
| of the experiment is to see whether encrypted email usage will | of the experiment is to see whether encrypted email usage will | |||
| increase if an automated discovery method is available to MTA's and | increase if an automated discovery method is available to MTA's and | |||
| MUA's to help the enduser with email encryption key management. | MUA's to help the enduser with email encryption key management. | |||
| It is unclear if this RRtype will scale to some of the larger email | It is unclear if this RRtype will scale to some of the larger email | |||
| service deployments. Concerns have been raised about the size of the | service deployments. Concerns have been raised about the size of the | |||
| OPENPGPKEY record and the size of the resulting DNS zone files. This | OPENPGPKEY record and the size of the resulting DNS zone files. This | |||
| experiment hopefully will give the working group some insight into | experiment hopefully will give the working group some insight into | |||
| whether this is a problem or not. | whether this is a problem or not. | |||
| skipping to change at page 5, line 45 ¶ | skipping to change at page 6, line 19 ¶ | |||
| o [ other subkeys if relevant ... ] | o [ other subkeys if relevant ... ] | |||
| 2.1.2. Reducing the Transferable Public Key size | 2.1.2. Reducing the Transferable Public Key size | |||
| When preparing a Transferable Public Key for a specific OPENPGPKEY | When preparing a Transferable Public Key for a specific OPENPGPKEY | |||
| RDATA format with the goal of minimizing certificate size, a user | RDATA format with the goal of minimizing certificate size, a user | |||
| would typically want to: | would typically want to: | |||
| o Where one User ID from the certifications matches the looked-up | o Where one User ID from the certifications matches the looked-up | |||
| address, strip away non-matching User IDs and any associated | address, strip away non-matching User IDs and any associated | |||
| certifications (self-signatures or third-party certifications) | certifications (self-signatures or third-party certifications). | |||
| o Strip away all User Attribute packets and associated | o Strip away all User Attribute packets and associated | |||
| certifications. | certifications. | |||
| o Strip away all expired subkeys. The user may want to keep revoked | o Strip away all expired subkeys. The user may want to keep revoked | |||
| subkeys if these were revoked prior to their preferred expiration | subkeys if these were revoked prior to their preferred expiration | |||
| time to ensure that correspondents know about these earlier then | time to ensure that correspondents know about these earlier than | |||
| expected revocations. | expected revocations. | |||
| o Strip away all but the most recent self-sig for the remaining user | o Strip away all but the most recent self-signature for the | |||
| IDs and subkeys | remaining user IDs and subkeys. | |||
| o Optionally strip away any uninteresting or unimportant third-party | o Optionally strip away any uninteresting or unimportant third-party | |||
| User ID certifications. This is a value judgment by the user that | User ID certifications. This is a value judgment by the user that | |||
| is difficult to automate. At the very least, expired and | is difficult to automate. At the very least, expired and | |||
| superseded third-party certifcations should be stripped out. The | superseded third-party certifcations should be stripped out. The | |||
| user should attempt to keep the most recent and most well | user should attempt to keep the most recent and most well | |||
| connected certifications in the Web Of Trust in their Transferable | connected certifications in the Web Of Trust in their Transferable | |||
| Public Key. | Public Key. | |||
| 2.2. The OPENPGPKEY RDATA wire format | 2.2. The OPENPGPKEY RDATA wire format | |||
| skipping to change at page 7, line 21 ¶ | skipping to change at page 8, line 5 ¶ | |||
| For example, to request an OPENPGPKEY resource record for a user | For example, to request an OPENPGPKEY resource record for a user | |||
| whose email address is "hugh@example.com", an OPENPGPKEY query would | whose email address is "hugh@example.com", an OPENPGPKEY query would | |||
| be placed for the following QNAME: "c93f1e400f26708f98cb19d936620da35 | be placed for the following QNAME: "c93f1e400f26708f98cb19d936620da35 | |||
| eec8f72e57f9eec01c1afd6._openpgpkey.example.com". The corresponding | eec8f72e57f9eec01c1afd6._openpgpkey.example.com". The corresponding | |||
| RR in the example.com zone might look like (key shortened for | RR in the example.com zone might look like (key shortened for | |||
| formatting): | formatting): | |||
| c9[..]d6._openpgpkey.example.com. IN OPENPGPKEY <base64 public key> | c9[..]d6._openpgpkey.example.com. IN OPENPGPKEY <base64 public key> | |||
| 4. Email address variants | 4. Email address variants and internationalization considerations | |||
| Mail systems usually handle variant forms of local-parts. The most | Mail systems usually handle variant forms of local-parts. The most | |||
| common variants are upper and lower case, often automatically | common variants are upper and lower case, often automatically | |||
| corrected when a name is recognized as such. Other variants include | corrected when a name is recognized as such. Other variants include | |||
| systems that ignore "noise" characters such as dots, so that local | systems that ignore "noise" characters such as dots, so that local | |||
| parts johnsmith and John.Smith would be equivalent. Many systems | parts johnsmith and John.Smith would be equivalent. Many systems | |||
| allow "extensions" such as john-ext or mary+ext where john or mary is | allow "extensions" such as john-ext or mary+ext where john or mary is | |||
| treated as the effective local-part, and the ext is passed to the | treated as the effective local-part, and the ext is passed to the | |||
| recipient for further handling. This can complicate finding the | recipient for further handling. This can complicate finding the | |||
| OPENPGPKEY record associated with the dynamically created email | OPENPGPKEY record associated with the dynamically created email | |||
| address. | address. | |||
| [RFC5321] and its predecessors have always made it clear that only | [RFC5321] and its predecessors have always made it clear that only | |||
| the recipient MTA is allowed to interpret the local-part of an | the recipient MTA is allowed to interpret the local-part of an | |||
| address. A client supporting OPENPGPKEY therefor MUST NOT perform | address. A client supporting OPENPGPKEY therefore MUST NOT perform | |||
| any kind of mapping rules based on the email address. | any kind of mapping rules based on the email address. | |||
| Section 3 above defines how the local-part is used to determine the | ||||
| location in which one looks for an OPENPGPKEY record. Given the | ||||
| variety of local-parts seen in email, designing a good experiment for | ||||
| this is difficult as: a) some current implementations are known to | ||||
| lowercase at least US-ASCII local-parts, b) we know from (many) other | ||||
| situations that any strategy based on guessing and making multiple | ||||
| DNS queries is not going to achieve consensus for good reasons, and | ||||
| c) the underlying issues are just hard - see Section 10.1 of | ||||
| [RFC6530] for discussion of just some of the issues that would need | ||||
| to be tackled to fully address this problem. | ||||
| However, while this specification is not the place to try to address | ||||
| these issues with local-parts, doing so is also not required to | ||||
| determine the outcome of this experiment. If this experiment | ||||
| succeeds then further work on email addresses with non-ASCII local- | ||||
| parts will be needed and that would be better based on the findings | ||||
| from this experiment, rather than doing nothing or starting this | ||||
| experiment based on a speculative approach to what is a very complex | ||||
| topic. | ||||
| 5. Application use of OPENPGPKEY | 5. Application use of OPENPGPKEY | |||
| The OPENPGPKEY record allows an application or service to obtain an | The OPENPGPKEY record allows an application or service to obtain an | |||
| OpenPGP public key and use it for verifying a digital signature or | OpenPGP public key and use it for verifying a digital signature or | |||
| encrypting a message to the public key. The DNS answer MUST pass | encrypting a message to the public key. The DNS answer MUST pass | |||
| DNSSEC validation; if DNSSEC validation reaches any state other than | DNSSEC validation; if DNSSEC validation reaches any state other than | |||
| "Secure" (as specified in [RFC4035]), the DNSSEC validation MUST be | "Secure" (as specified in [RFC4035]), the DNSSEC validation MUST be | |||
| treated as a failure. | treated as a failure. | |||
| 5.1. Obtaining an OpenPGP key for a specific email address | 5.1. Obtaining an OpenPGP key for a specific email address | |||
| skipping to change at page 8, line 21 ¶ | skipping to change at page 9, line 26 ¶ | |||
| 5.2. Confirming that an OpenPGP key is current | 5.2. Confirming that an OpenPGP key is current | |||
| Locally stored OpenPGP public keys are not automatically refreshed. | Locally stored OpenPGP public keys are not automatically refreshed. | |||
| If the owner of that key creates a new OpenPGP public key, that owner | If the owner of that key creates a new OpenPGP public key, that owner | |||
| is unable to securely notify all users and applications that have its | is unable to securely notify all users and applications that have its | |||
| old OpenPGP public key. Applications and users can perform an | old OpenPGP public key. Applications and users can perform an | |||
| OPENPGPKEY lookup to confirm the locally stored OpenPGP public key is | OPENPGPKEY lookup to confirm the locally stored OpenPGP public key is | |||
| still the correct key to use. If the locally stored OpenPGP public | still the correct key to use. If the locally stored OpenPGP public | |||
| key is different from the DNSSEC validated OpenPGP public key | key is different from the DNSSEC validated OpenPGP public key | |||
| currently published in DNS, the verification MUST be treated as a | currently published in DNS, the confirmation MUST be treated as a | |||
| failure unless the locally stored OpenPGP key signed the newly | failure unless the locally stored OpenPGP key signed the newly | |||
| published OpenPGP public key found in DNS. An application that can | published OpenPGP public key found in DNS. An application that can | |||
| interact with the user MAY ask the user for guidance. For privacy | interact with the user MAY ask the user for guidance, otherwise the | |||
| reasons, an application MUST NOT attempt to lookup an OpenPGP key | application will have to apply local policy. For privacy reasons, an | |||
| from DNSSEC at every use of that key. | application MUST NOT attempt to lookup an OpenPGP key from DNSSEC at | |||
| every use of that key. | ||||
| 5.3. Public Key UIDs and query names | 5.3. Public Key UIDs and query names | |||
| An OpenPGP public key can be associated with multiple email addresses | An OpenPGP public key can be associated with multiple email addresses | |||
| by specifying multiple key uids. The OpenPGP public key obtained | by specifying multiple key uids. The OpenPGP public key obtained | |||
| from a OPENPGPKEY RR can be used as long as the query and resulting | from a OPENPGPKEY RR can be used as long as the query and resulting | |||
| data form a proper email to uid identity association. | data form a proper email to uid identity association. | |||
| CNAME's (see [RFC2181]) and DNAME's (see [RFC6672]) can be followed | CNAME's (see [RFC2181]) and DNAME's (see [RFC6672]) can be followed | |||
| to obtain an OPENPGPKEY RR, as long as the original recipient's email | to obtain an OPENPGPKEY RR, as long as the original recipient's email | |||
| skipping to change at page 12, line 32 ¶ | skipping to change at page 13, line 40 ¶ | |||
| Anyone who can obtain a DNSSEC private key of a domain name via | Anyone who can obtain a DNSSEC private key of a domain name via | |||
| coercion, theft or brute force calculations, can replace any | coercion, theft or brute force calculations, can replace any | |||
| OPENPGPKEY record in that zone and all of the delegated child zones. | OPENPGPKEY record in that zone and all of the delegated child zones. | |||
| Any future messages encrypted with the malicious OpenPGP key could | Any future messages encrypted with the malicious OpenPGP key could | |||
| then be read. | then be read. | |||
| Therefore, an OpenPGP key obtained via a DNSSEC validated OPENPGPKEY | Therefore, an OpenPGP key obtained via a DNSSEC validated OPENPGPKEY | |||
| record can only be trusted as much as the DNS domain can be trusted, | record can only be trusted as much as the DNS domain can be trusted, | |||
| and is no substitute for in-person OpenPGP key verification or | and is no substitute for in-person OpenPGP key verification or | |||
| additional Openpgp verification via "Web of Trust" signatures present | additional Openpgp verification via "Web Of Trust" signatures present | |||
| on the OpenPGP in question. | on the OpenPGP in question. | |||
| 8. Implementation Status | 8. Implementation Status | |||
| [RFC Editor Note: Please remove this entire seciton prior to | [RFC Editor Note: Please remove this entire seciton prior to | |||
| publication as an RFC.] | publication as an RFC.] | |||
| This section records the status of known implementations of the | This section records the status of known implementations of the | |||
| protocol defined by this specification at the time of posting of this | protocol defined by this specification at the time of posting of this | |||
| Internet-Draft, and is based on a proposal described in [RFC6982]. | Internet-Draft, and is based on a proposal described in [RFC6982]. | |||
| End of changes. 20 change blocks. | ||||
| 51 lines changed or deleted | 86 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||