| < draft-ietf-dane-srv-03.txt | draft-ietf-dane-srv-04.txt > | |||
|---|---|---|---|---|
| DNS-Based Authentication of Named Entities (DANE) T. Finch | DNS-Based Authentication of Named Entities (DANE) T. Finch | |||
| Internet-Draft University of Cambridge | Internet-Draft University of Cambridge | |||
| Intended status: Standards Track M. Miller | Intended status: Standards Track M. Miller | |||
| Expires: June 16, 2014 P. Saint-Andre | Expires: August 15, 2014 Cisco Systems, Inc. | |||
| Cisco Systems, Inc. | P. Saint-Andre | |||
| December 13, 2013 | &yet | |||
| February 11, 2014 | ||||
| Using DNS-Based Authentication of Named Entities (DANE) TLSA records | Using DNS-Based Authentication of Named Entities (DANE) TLSA records | |||
| with SRV and MX records. | with SRV and MX records. | |||
| draft-ietf-dane-srv-03 | draft-ietf-dane-srv-04 | |||
| Abstract | Abstract | |||
| The DANE specification (RFC 6698) describes how to use TLSA resource | The DANE specification (RFC 6698) describes how to use TLSA resource | |||
| records in the DNS to associate a server's host name with its TLS | records in the DNS to associate a server's host name with its TLS | |||
| certificate. The association is secured with DNSSEC. Some | certificate. The association is secured with DNSSEC. Some | |||
| application protocols use SRV records (RFC 2782) to indirectly name | application protocols use SRV records (RFC 2782) to indirectly name | |||
| the server hosts for a service domain (SMTP uses MX records for the | the server hosts for a service domain (SMTP uses MX records for the | |||
| same purpose). This specification gives generic instructions for how | same purpose). This specification gives generic instructions for how | |||
| these application protocols locate and use TLSA records when | these application protocols locate and use TLSA records when | |||
| skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 42 ¶ | |||
| 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 June 16, 2014. | This Internet-Draft will expire on August 15, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2014 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 . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Relation between SRV and MX records . . . . . . . . . . . . . 3 | 3. Relation between SRV and MX records . . . . . . . . . . . . . 3 | |||
| 4. DNS Checks for TLSA and SRV Records . . . . . . . . . . . . . 4 | 4. DNS Checks for TLSA and SRV Records . . . . . . . . . . . . . 4 | |||
| 4.1. SRV Query . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4.1. SRV Query . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4.2. TLSA Queries . . . . . . . . . . . . . . . . . . . . . . 5 | 4.2. TLSA Queries . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. TLS Checks for TLSA and SRV Records . . . . . . . . . . . . . 5 | 5. TLS Checks for TLSA and SRV Records . . . . . . . . . . . . . 6 | |||
| 6. Guidance for Application Protocols . . . . . . . . . . . . . 6 | 6. Guidance for Application Protocols . . . . . . . . . . . . . 6 | |||
| 7. Guidance for Server Operators . . . . . . . . . . . . . . . . 6 | 7. Guidance for Server Operators . . . . . . . . . . . . . . . . 7 | |||
| 8. Internationalization Considerations . . . . . . . . . . . . . 7 | 8. Internationalization Considerations . . . . . . . . . . . . . 7 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 10. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 8 | |||
| 10.1. Mixed Security Status . . . . . . . . . . . . . . . . . 7 | 10.1. Mixed Security Status . . . . . . . . . . . . . . . . . 8 | |||
| 10.2. A Service Domain Trusts its Servers . . . . . . . . . . 7 | 10.2. A Service Domain Trusts its Servers . . . . . . . . . . 8 | |||
| 10.3. Certificate Subject Name Matching . . . . . . . . . . . 8 | 10.3. Certificate Subject Name Matching . . . . . . . . . . . 8 | |||
| 10.4. Deliberate Omissions . . . . . . . . . . . . . . . . . . 8 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
| 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 12.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 10 | Appendix A. Mail Example . . . . . . . . . . . . . . . . . . . . 10 | |||
| Appendix B. Rationale . . . . . . . . . . . . . . . . . . . . . 10 | Appendix B. XMPP Example . . . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | Appendix C. Rationale . . . . . . . . . . . . . . . . . . . . . 11 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
| 1. Introduction | 1. Introduction | |||
| The base DANE specification [RFC6698] describes how to use TLSA | The base DANE specification [RFC6698] describes how to use TLSA | |||
| resource records in the DNS to associate a server's host name with | resource records in the DNS to associate a server's host name with | |||
| its TLS certificate. The association is secured using DNSSEC. That | its TLS certificate. The association is secured using DNSSEC. That | |||
| document "only relates to securely associating certificates for TLS | document "only relates to securely associating certificates for TLS | |||
| and DTLS with host names" (see the last paragraph of section 1.2 of | and DTLS with host names" (see the last paragraph of section 1.2 of | |||
| [RFC6698]). | [RFC6698]). | |||
| skipping to change at page 3, line 44 ¶ | skipping to change at page 3, line 46 ¶ | |||
| [RFC2119]. | [RFC2119]. | |||
| 3. Relation between SRV and MX records | 3. Relation between SRV and MX records | |||
| For the purpose of this specification (to avoid cluttering the | For the purpose of this specification (to avoid cluttering the | |||
| description with special cases) we treat each MX record ([RFC5321] | description with special cases) we treat each MX record ([RFC5321] | |||
| section 5) as being equivalent to an SRV record [RFC2782] with | section 5) as being equivalent to an SRV record [RFC2782] with | |||
| corresponding fields copied from the MX record and the remaining | corresponding fields copied from the MX record and the remaining | |||
| fields having fixed values as follows: | fields having fixed values as follows: | |||
| Service - smtp | Table 1: SRV Fields and MX Equivalents | |||
| +---------------+-----------------------------+ | ||||
| Proto - tcp | | DNS SRV Field | Equivalent MX Value | | |||
| +---------------+-----------------------------+ | ||||
| Name - MX owner name (mail domain) | | Service | smtp | | |||
| +---------------+-----------------------------+ | ||||
| TTL - MX TTL | | Proto | tcp | | |||
| Class - MX Class | +---------------+-----------------------------+ | |||
| | Name | MX owner name (mail domain) | | ||||
| Priority - MX Priority | +---------------+-----------------------------+ | |||
| | TTL | MX TTL | | ||||
| Weight - 0 | +---------------+-----------------------------+ | |||
| | Class | MX Class | | ||||
| Port - 25 | +---------------+-----------------------------+ | |||
| | Priority | MX Priority | | ||||
| Target - MX Target | +---------------+-----------------------------+ | |||
| | Weight | 0 | | ||||
| +---------------+-----------------------------+ | ||||
| | Port | 25 | | ||||
| +---------------+-----------------------------+ | ||||
| | Target | MX Target | | ||||
| +---------------+-----------------------------+ | ||||
| Thus we can treat the following MX record as if it were the SRV | Thus we can treat the following MX record as if it were the SRV | |||
| record shown below: | record shown below: | |||
| example.com. 86400 IN MX 10 mx.example.net. | example.com. 86400 IN MX 10 mx.example.net. | |||
| _smtp._tcp.example.com. 86400 IN SRV 10 0 25 mx.example.net. | _smtp._tcp.example.com. 86400 IN SRV 10 0 25 mx.example.net. | |||
| Other details that are specific to SMTP are described in | Other details that are specific to SMTP are described in | |||
| [I-D.ietf-dane-smtp-with-dane]. | [I-D.ietf-dane-smtp-with-dane]. | |||
| skipping to change at page 4, line 37 ¶ | skipping to change at page 5, line 4 ¶ | |||
| When the client makes an SRV query, a successful result will be a | When the client makes an SRV query, a successful result will be a | |||
| list of one or more SRV records (or possibly a chain of CNAME / DNAME | list of one or more SRV records (or possibly a chain of CNAME / DNAME | |||
| aliases referring to such a list). | aliases referring to such a list). | |||
| For this specification to apply, all of these DNS RRsets MUST be | For this specification to apply, all of these DNS RRsets MUST be | |||
| "secure" according to DNSSSEC validation ([RFC4033] section 5). In | "secure" according to DNSSSEC validation ([RFC4033] section 5). In | |||
| the case of aliases, the whole chain MUST be secure as well as the | the case of aliases, the whole chain MUST be secure as well as the | |||
| ultimate target. (This corresponds to the AD bit being set in the | ultimate target. (This corresponds to the AD bit being set in the | |||
| response(s) - see [RFC4035] section 3.2.3.) | response(s) - see [RFC4035] section 3.2.3.) | |||
| If they are not all secure, this protocol has not been fully | If they are not all secure, this protocol has not been fully | |||
| deployed. The client SHOULD fall back to its non-DNSSEC non-DANE | deployed. The client SHOULD fall back to its non-DNSSEC non-DANE | |||
| behavior. (This corresponds to the AD bit being unset.) | behavior. (This corresponds to the AD bit being unset.) | |||
| If any of the responses is "bogus" according to DNSSEC validation, | If any of the responses is "bogus" according to DNSSEC validation, | |||
| the client MUST abort. (This usually corresponds to a "server | the client MUST abort. (This usually corresponds to a "server | |||
| failure" response.) | failure" response.) | |||
| In the successful case, the client now has an authentic list of | In the successful case, the client now has an authentic list of | |||
| server host names with weight and priority values. It performs | server host names with weight and priority values. It performs | |||
| server ordering and selection using the weight and priority values | server ordering and selection using the weight and priority values | |||
| without regard to the presence or absence of DNSSEC or TLSA records. | without regard to the presence or absence of DNSSEC or TLSA records. | |||
| It takes note of the DNSSEC validation status of the SRV response for | It takes note of the DNSSEC validation status of the SRV response for | |||
| use when checking certificate names (see Section 5). | use when checking certificate names (see Section 5). | |||
| 4.2. TLSA Queries | 4.2. TLSA Queries | |||
| This sub-section applies to each server host name individually, | If the SRV response was insecure or indeterminate, the client MUST | |||
| provided the SRV response was secure according to DNSSEC validation. | NOT perform any TLSA queries. If the SRV response is secure | |||
| according to DNSSEC validation, the client performs a TLSA query for | ||||
| each SRV target as describes in this section. | ||||
| For each SRV target host name, if the response to the address (A or | ||||
| AAAA) query is insecure or indeterminate, the client MUST NOT perform | ||||
| a TLSA query for that target; the TLSA a query will most likely fail. | ||||
| The client SHALL construct the TLSA query name as described in | The client SHALL construct the TLSA query name as described in | |||
| [RFC6698] section 3, based on fields from the SRV record: the port | [RFC6698] section 3, based on fields from the SRV record: the port | |||
| from the SRV RDATA, the protocol from the SRV query name, and the | from the SRV RDATA, the protocol from the SRV query name, and the | |||
| TLSA base domain set to the SRV target host name. | TLSA base domain set to the SRV target host name. | |||
| For example, the following SRV record leads to the TLSA query shown | For example, the following SRV record leads to the TLSA query shown | |||
| below: | below: | |||
| _imap._tcp.example.com. 86400 IN SRV 10 0 143 imap.example.net. | _imap._tcp.example.com. 86400 IN SRV 10 0 143 imap.example.net. | |||
| skipping to change at page 5, line 48 ¶ | skipping to change at page 6, line 20 ¶ | |||
| When connecting to a server, the client MUST use TLS if the responses | When connecting to a server, the client MUST use TLS if the responses | |||
| to the SRV and TLSA queries were "secure" as described above. If the | to the SRV and TLSA queries were "secure" as described above. If the | |||
| client received zero usable TLSA certificate associations, it SHALL | client received zero usable TLSA certificate associations, it SHALL | |||
| validate the server's TLS certificate using the normal PKIX rules | validate the server's TLS certificate using the normal PKIX rules | |||
| [RFC5280] or protocol-specific rules (e.g., following [RFC6125]) | [RFC5280] or protocol-specific rules (e.g., following [RFC6125]) | |||
| without further input from the TLSA records. If the client received | without further input from the TLSA records. If the client received | |||
| one or more usable TLSA certificate associations, it SHALL process | one or more usable TLSA certificate associations, it SHALL process | |||
| them as described in [RFC6698] section 2.1. | them as described in [RFC6698] section 2.1. | |||
| The client uses the DNSSEC validation status of the SRV query in its | If a usable TLSA record with Certificate Usage "3" matches the TLS | |||
| server certificate identity checks. (The TLSA validation status does | server's certificate, or public key for the certificate, all other | |||
| not affect the server certificate identity checks.) It SHALL use the | validation and verification checks MAY be ignored (e.g., reference | |||
| identifier, key usage, expiration, issuance, etc.). | ||||
| Otherwise, the client uses the DNSSEC validation status of the SRV | ||||
| query in its server certificate identity checks. It SHOULD use the | ||||
| Server Name Indication extension (TLS SNI) [RFC6066] or its | Server Name Indication extension (TLS SNI) [RFC6066] or its | |||
| functional equivalent in the relevant application protocol (e.g., in | functional equivalent in the relevant application protocol (e.g., in | |||
| XMPP [RFC6120] this is the the 'to' address of the initial stream | XMPP [RFC6120] this is the the 'to' address of the initial stream | |||
| header). The preferred name SHALL be chosen as follows, and the | header). The preferred name SHALL be chosen as follows, and the | |||
| client SHALL verify the identity asserted by the server's certificate | client SHALL verify the identity asserted by the server's certificate | |||
| according to [RFC6125] section 6, using a list of reference | according to [RFC6125] section 6, using a list of reference | |||
| identifiers constructed as follows. (Note again that in RFC 6125 the | identifiers constructed as follows. (Note again that in RFC 6125 the | |||
| terms "source domain" and "derived domain" refer to the same things | terms "source domain" and "derived domain" refer to the same things | |||
| as "service domain" and "target host name" in this document.) | as "service domain" and "target host name" in this document.) | |||
| skipping to change at page 6, line 26 ¶ | skipping to change at page 7, line 4 ¶ | |||
| SRV is secure: The reference identifiers SHALL include both the | SRV is secure: The reference identifiers SHALL include both the | |||
| service domain and the SRV target host name. The target host name | service domain and the SRV target host name. The target host name | |||
| is the preferred name for TLS SNI or its equivalent. | is the preferred name for TLS SNI or its equivalent. | |||
| (In the latter case, the client will accept either identity so that | (In the latter case, the client will accept either identity so that | |||
| it is compatible with servers that do and do not support this | it is compatible with servers that do and do not support this | |||
| specification.) | specification.) | |||
| 6. Guidance for Application Protocols | 6. Guidance for Application Protocols | |||
| Separate documents describe how to apply this specification to | Separate documents describe how to apply this specification to | |||
| particular application protocols. If you are writing such as | particular application protocols. If you are writing such as | |||
| document the following points ought to be covered: | document the following points ought to be covered: | |||
| o Fallback logic in the event of bogus replies and the like. | o Fallback logic in the event of bogus replies and the like. | |||
| o Compatibility with clients that do not support SRV lookups. | o Compatibility with clients that do not support SRV lookups. | |||
| 7. Guidance for Server Operators | 7. Guidance for Server Operators | |||
| In order to support this specification, server software MUST | To conform to this specification, the published SRV records and | |||
| implement the TLS Server Name Indication extension (TLS SNI) | subsequent address (A, AAAA) records MUST be secured with DNSSEC. | |||
| [RFC6066] (or its functional equivalent in the relevant application | There SHOULD also be at least one TLSA record published that | |||
| protocol) for selecting the appropriate certificate. | authenticates the server's certificate. Except for Certificate Usage | |||
| "3", the certificate authenticated by the TLSA record(s) MUST contain | ||||
| a reference identifier that matches: | ||||
| A server that supports TLS and is the target of an SRV record MUST | o the service domain name (the "source domain" in [RFC6125] terms, | |||
| have a TLS certificate that authenticates the SRV query domain (i.e. | which is the SRV query domain); and/or | |||
| the service domain, or "source domain" in [RFC6125] terms). This is | ||||
| necessary for clients that cannot perform DNSSEC validation. This | ||||
| certificate MUST be the default that is presented if the client does | ||||
| not use TLS SNI or its functional equivalent. | ||||
| In order to support this specification, the server SHOULD also have a | o the server host name (the "derived domain" in [RFC6125] terms, | |||
| certificate that authenticates the SRV target domain (e.g., the mail | which is the SRV target). | |||
| server hostname). This can be done using a multi-name certificate or | ||||
| by using the client's TLS SNI or its functional equivalent to select | ||||
| the appropriate certificate. The server's TLSA record SHOULD | ||||
| correspond to this certificate. | ||||
| Note: In some application protocols, there are old non-SRV clients | Servers that support multiple service domains (i.e., multi-tenant) | |||
| that expect a server's TLS certificate to authenticate its host name; | can implement Server Name Identifier (TLS SNI) [RFC6066] or its | |||
| they are also unlikely to support SNI. This means that servers for | functional equivalent to determine which certificate to offer. | |||
| old clients need a different default certificate from servers that | Clients that do not support this specification will indicate a | |||
| are the targets of SRV records. If the server does not have a | preference for the service domain name, while clients that support | |||
| certificate that authenticates all relevant names, it is necessary to | this specification will indicate the server host name. However, the | |||
| segregate old and new clients. This can be done by using different | server determines what certificate to present in the TLS handshake; | |||
| target hosts or non-standard ports in the SRV targets. (The latter | e.g., the presented certificate might only authenticate the server | |||
| avoids the need for additional certificates.) | host name. | |||
| 8. Internationalization Considerations | 8. Internationalization Considerations | |||
| If any of the DNS queries are for an internationalized domain name, | If any of the DNS queries are for an internationalized domain name, | |||
| then they need to use the A-label form [RFC5890]. | then they need to use the A-label form [RFC5890]. | |||
| 9. IANA Considerations | 9. IANA Considerations | |||
| No IANA action is required. | No IANA action is required. | |||
| skipping to change at page 8, line 4 ¶ | skipping to change at page 8, line 22 ¶ | |||
| not break the service. Different levels of deployment are likely if | not break the service. Different levels of deployment are likely if | |||
| a service domain has a third-party fallback server, for example. | a service domain has a third-party fallback server, for example. | |||
| The SRV and MX sorting rules are unchanged; in particular they have | The SRV and MX sorting rules are unchanged; in particular they have | |||
| not been altered in order to prioritize secure servers over insecure | not been altered in order to prioritize secure servers over insecure | |||
| servers. If a site wants to be secure it needs to deploy this | servers. If a site wants to be secure it needs to deploy this | |||
| protocol completely; a partial deployment is not secure and we make | protocol completely; a partial deployment is not secure and we make | |||
| no special effort to support it. | no special effort to support it. | |||
| 10.2. A Service Domain Trusts its Servers | 10.2. A Service Domain Trusts its Servers | |||
| By signing their zone with DNSSEC, service domain operators | By signing their zone with DNSSEC, service domain operators | |||
| implicitly instruct their clients to check their server TLSA records. | implicitly instruct their clients to check their server TLSA records. | |||
| This implies another point in the trust relationship between service | This implies another point in the trust relationship between service | |||
| domain holders and their server operators. Most of the setup | domain holders and their server operators. Most of the setup | |||
| requirements for this protocol fall on the server operator: | requirements for this protocol fall on the server operator: | |||
| installing a TLS certificate with the correct name, and publishing a | installing a TLS certificate with the correct name, and publishing a | |||
| TLSA record under that name. If these are not correct then | TLSA record under that name. If these are not correct then | |||
| connections from TLSA-aware clients might fail. | connections from TLSA-aware clients might fail. | |||
| 10.3. Certificate Subject Name Matching | 10.3. Certificate Subject Name Matching | |||
| Section 4 of the TLSA specification [RFC6698] leaves the details of | Section 4 of the TLSA specification [RFC6698] leaves the details of | |||
| checking names in certificates to higher level application protocols, | checking names in certificates to higher level application protocols, | |||
| though it suggests the use of [RFC6125]. | though it suggests the use of [RFC6125]. | |||
| Name checking might appear to be unnecessary, since DNSSEC provides a | Name checks are not necessary if the matching TLSA record is of | |||
| secure binding between the server name and the TLSA record, which in | Certificate Usage "3". Because such a record identifies the specific | |||
| turn authenticates the certificate. However this latter step can be | certificate (or public key of the certificate), additional checks are | |||
| indirect, via a chain of certificates. A usage=0 TLSA record only | superfluous and potentially conflicting. | |||
| authenticates the CA that issued the certificate, and third parties | ||||
| can obtain certificates from the same CA. | ||||
| Therefore this specification says that a client needs to check | ||||
| whether the server's certificate matches the server host name, to | ||||
| ensure that the certificate was issued by the CA to the server that | ||||
| the client is connecting to. The client always performs this check | ||||
| regardless of the TLSA usage, to simplify implementation and so that | ||||
| this specification is less likely to need updating when new TLSA | ||||
| usages are added. | ||||
| 10.4. Deliberate Omissions | ||||
| We do not specify that clients check the DNSSEC state of the server | Otherwise, while DNSSEC provides a secure binding between the server | |||
| address records. This is not necessary since the certificate checks | name and the TLSA record, and the TLSA record provides a binding to a | |||
| ensure that the client has connected to the correct server. (The | certificate, this latter step can be indirect via a chain of | |||
| address records will normally have the same security state as the | certificates. For example, a Certificate Usage "0" TLSA record only | |||
| TLSA records, but they can differ if there are CNAME or DNAME | authenticates the CA that issued the certificate, and third parties | |||
| indirections.) | can obtain certificates from the same CA. Therefore, clients need to | |||
| check whether the server's certificate matches one of the expected | ||||
| reference identifiers to ensure the certificate was issued by the CA | ||||
| to the server the client expects. | ||||
| 11. Acknowledgements | 11. Acknowledgements | |||
| Thanks to Mark Andrews for arguing that authenticating the server | Thanks to Mark Andrews for arguing that authenticating the server | |||
| host name is the right thing, and that we ought to rely on DNSSEC to | host name is the right thing, and that we ought to rely on DNSSEC to | |||
| secure the SRV / MX lookup. Thanks to James Cloos, Ned Freed, Olafur | secure the SRV / MX lookup. Thanks to James Cloos, Viktor Dukhovni, | |||
| Gudmundsson, Paul Hoffman, Phil Pennock, Hector Santos, Jonas | Ned Freed, Olafur Gudmundsson, Paul Hoffman, Phil Pennock, Hector | |||
| Schneider, and Alessandro Vesely for helpful suggestions. | Santos, Jonas Schneider, and Alessandro Vesely for helpful | |||
| suggestions. | ||||
| 12. References | 12. References | |||
| 12.1. Normative References | 12.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for | |||
| specifying the location of services (DNS SRV)", RFC 2782, | specifying the location of services (DNS SRV)", RFC 2782, | |||
| skipping to change at page 10, line 8 ¶ | skipping to change at page 10, line 15 ¶ | |||
| (PKIX) Certificates in the Context of Transport Layer | (PKIX) Certificates in the Context of Transport Layer | |||
| Security (TLS)", RFC 6125, March 2011. | Security (TLS)", RFC 6125, March 2011. | |||
| [RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication | [RFC6698] Hoffman, P. and J. Schlyter, "The DNS-Based Authentication | |||
| of Named Entities (DANE) Transport Layer Security (TLS) | of Named Entities (DANE) Transport Layer Security (TLS) | |||
| Protocol: TLSA", RFC 6698, August 2012. | Protocol: TLSA", RFC 6698, August 2012. | |||
| 12.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-dane-smtp-with-dane] | [I-D.ietf-dane-smtp-with-dane] | |||
| Dukhovni, V. and W. Hardaker, "(DANE) TLSA records.", | Dukhovni, V. and W. Hardaker, "SMTP security via | |||
| draft-ietf-dane-smtp-with-dane (work in progress), | opportunistic DANE TLS", draft-ietf-dane-smtp-with-dane-05 | |||
| November 2013. | (work in progress), February 2014. | |||
| [I-D.ietf-xmpp-dna] | [I-D.ietf-xmpp-dna] | |||
| Saint-Andre, P. and M. Miller, "Domain Name Associations | Saint-Andre, P. and M. Miller, "Domain Name Associations | |||
| (DNA) in the Extensible Messaging and Presence Protocol | (DNA) in the Extensible Messaging and Presence Protocol | |||
| (XMPP)", draft-ietf-xmpp-dna-04 (work in progress), | (XMPP)", draft-ietf-xmpp-dna-05 (work in progress), | |||
| October 2013. | February 2014. | |||
| Appendix A. Example | Appendix A. Mail Example | |||
| In the following, most of the DNS resource data is elided for | In the following, most of the DNS resource data is elided for | |||
| simplicity. | simplicity. | |||
| ; mail domain | ; mail domain | |||
| example.com. MX 1 mx.example.net. | example.com. MX 1 mx.example.net. | |||
| example.com. RRSIG MX ... | example.com. RRSIG MX ... | |||
| ; SMTP server host name | ; SMTP server host name | |||
| mx.example.net. A 192.0.2.1 | mx.example.net. A 192.0.2.1 | |||
| mx.example.net. RRSIG A ... | ||||
| mx.example.net. AAAA 2001:db8:212:8::e:1 | mx.example.net. AAAA 2001:db8:212:8::e:1 | |||
| mx.example.net. RRSIG ... | ||||
| ; TLSA resource record | ; TLSA resource record | |||
| _25._tcp.mx.example.net. TLSA ... | _25._tcp.mx.example.net. TLSA ... | |||
| _25._tcp.mx.example.net. RRSIG TLSA ... | _25._tcp.mx.example.net. RRSIG TLSA ... | |||
| Mail for addresses at example.com is delivered by SMTP to | Mail for addresses at example.com is delivered by SMTP to | |||
| mx.example.net. Connections to mx.example.net port 25 that use | mx.example.net. Connections to mx.example.net port 25 that use | |||
| STARTTLS will get a server certificate that authenticates the name | STARTTLS will get a server certificate that authenticates the name | |||
| mx.example.net. | mx.example.net. | |||
| Appendix B. Rationale | Appendix B. XMPP Example | |||
| In the following, most of the DNS resource data is elided for | ||||
| simplicity. | ||||
| ; XMPP domain | ||||
| _xmpp-client.example.com. SRV 1 0 5222 im.example.net. | ||||
| _xmpp-clientexample.com. RRSIG SRV ... | ||||
| ; XMPP server host name | ||||
| im.example.net. A 192.0.2.3 | ||||
| im.example.net. RRSIG A ... | ||||
| im.example.net. AAAA 2001:db8:212:8::e:4 | ||||
| im.example.net. RRSIG AAAA ... | ||||
| ; TLSA resource record | ||||
| _5222._tcp.im.example.net. TLSA ... | ||||
| _5222._tcp.im.example.net. RRSIG TLSA ... | ||||
| Mail for addresses at example.com is delivered by SMTP to | ||||
| mx.example.net. Connections to mx.example.net port 25 that use | ||||
| STARTTLS will get a server certificate that authenticates the name | ||||
| mx.example.net. | ||||
| Appendix C. Rationale | ||||
| The long-term goal of this specification is to settle on TLS | The long-term goal of this specification is to settle on TLS | |||
| certificates that verify the server host name rather than the service | certificates that verify the server host name rather than the service | |||
| domain, since this is more convenient for servers hosting multiple | domain, since this is more convenient for servers hosting multiple | |||
| domains (so-called "multi-tenanted environments") and scales up more | domains (so-called "multi-tenanted environments") and scales up more | |||
| easily to larger numbers of service domains. | easily to larger numbers of service domains. | |||
| There are a number of other reasons for doing it this way: | There are a number of other reasons for doing it this way: | |||
| o The certificate is part of the server configuration, so it makes | o The certificate is part of the server configuration, so it makes | |||
| skipping to change at page 12, line 14 ¶ | skipping to change at page 13, line 4 ¶ | |||
| Tony Finch | Tony Finch | |||
| University of Cambridge Computing Service | University of Cambridge Computing Service | |||
| New Museums Site | New Museums Site | |||
| Pembroke Street | Pembroke Street | |||
| Cambridge CB2 3QH | Cambridge CB2 3QH | |||
| ENGLAND | ENGLAND | |||
| Phone: +44 797 040 1426 | Phone: +44 797 040 1426 | |||
| Email: dot@dotat.at | Email: dot@dotat.at | |||
| URI: http://dotat.at/ | URI: http://dotat.at/ | |||
| Matthew Miller | Matthew Miller | |||
| Cisco Systems, Inc. | Cisco Systems, Inc. | |||
| 1899 Wynkoop Street, Suite 600 | 1899 Wynkoop Street, Suite 600 | |||
| Denver, CO 80202 | Denver, CO 80202 | |||
| USA | USA | |||
| Email: mamille2@cisco.com | Email: mamille2@cisco.com | |||
| Peter Saint-Andre | Peter Saint-Andre | |||
| Cisco Systems, Inc. | &yet | |||
| 1899 Wynkoop Street, Suite 600 | ||||
| Denver, CO 80202 | ||||
| USA | ||||
| Email: psaintan@cisco.com | Email: ietf@stpeter.im | |||
| End of changes. 31 change blocks. | ||||
| 101 lines changed or deleted | 126 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/ | ||||