| < draft-ietf-dane-srv-02.txt | draft-ietf-dane-srv-03.txt > | |||
|---|---|---|---|---|
| DNS-Based Authentication of Named T. Finch | DNS-Based Authentication of Named Entities (DANE) T. Finch | |||
| Entities (DANE) University of Cambridge | Internet-Draft University of Cambridge | |||
| Internet-Draft February 25, 2013 | Intended status: Standards Track M. Miller | |||
| Intended status: Standards Track | Expires: June 16, 2014 P. Saint-Andre | |||
| Expires: August 29, 2013 | Cisco Systems, Inc. | |||
| December 13, 2013 | ||||
| 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-02 | draft-ietf-dane-srv-03 | |||
| Abstract | Abstract | |||
| The DANE specification [RFC6698] 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 can use SRV records [RFC2782] to indirectly | application protocols use SRV records (RFC 2782) to indirectly name | |||
| name the server hosts for a service domain. (SMTP uses MX records | the server hosts for a service domain (SMTP uses MX records for the | |||
| for the same purpose.) This specification gives generic instructions | same purpose). This specification gives generic instructions for how | |||
| for how these application protocols locate and use TLSA records. | these application protocols locate and use TLSA records when | |||
| Separate documents give the details that are specific to particular | technologies such as SRV records are used. Separate documents give | |||
| application protocols. | the details that are specific to particular application protocols. | |||
| 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 August 29, 2013. | This Internet-Draft will expire on June 16, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2013 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 . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Relation between SRV and MX records . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. DNS checks for TLSA and SRV records . . . . . . . . . . . . . 4 | 3. Relation between SRV and MX records . . . . . . . . . . . . . 3 | |||
| 3.1. SRV query . . . . . . . . . . . . . . . . . . . . . . . . 4 | 4. DNS Checks for TLSA and SRV Records . . . . . . . . . . . . . 4 | |||
| 3.2. TLSA queries . . . . . . . . . . . . . . . . . . . . . . . 5 | 4.1. SRV Query . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. TLS checks for TLSA and SRV records . . . . . . . . . . . . . 5 | 4.2. TLSA Queries . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Guidance for application protocols . . . . . . . . . . . . . . 6 | 5. TLS Checks for TLSA and SRV Records . . . . . . . . . . . . . 5 | |||
| 6. Guidance for server operators . . . . . . . . . . . . . . . . 6 | 6. Guidance for Application Protocols . . . . . . . . . . . . . 6 | |||
| 7. Security considerations . . . . . . . . . . . . . . . . . . . 7 | 7. Guidance for Server Operators . . . . . . . . . . . . . . . . 6 | |||
| 7.1. Mixed security status . . . . . . . . . . . . . . . . . . 7 | 8. Internationalization Considerations . . . . . . . . . . . . . 7 | |||
| 7.2. A service domain trusts its servers . . . . . . . . . . . 7 | 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 7.3. Certificate subject name matching . . . . . . . . . . . . 8 | 10. Security Considerations . . . . . . . . . . . . . . . . . . . 7 | |||
| 7.4. Deliberate omissions . . . . . . . . . . . . . . . . . . . 8 | 10.1. Mixed Security Status . . . . . . . . . . . . . . . . . 7 | |||
| 8. Internationalization Considerations . . . . . . . . . . . . . 8 | 10.2. A Service Domain Trusts its Servers . . . . . . . . . . 7 | |||
| 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 10.3. Certificate Subject Name Matching . . . . . . . . . . . 8 | |||
| 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 8 | 10.4. Deliberate Omissions . . . . . . . . . . . . . . . . . . 8 | |||
| 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 11.1. Normative References . . . . . . . . . . . . . . . . . . . 9 | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 11.2. Informative References . . . . . . . . . . . . . . . . . . 10 | 12.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
| Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . . 10 | 12.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
| Appendix B. Rationale . . . . . . . . . . . . . . . . . . . . . . 10 | Appendix A. Example . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11 | Appendix B. Rationale . . . . . . . . . . . . . . . . . . . . . 10 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
| 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]). | |||
| Some application protocols do not use host names directly, but | Some application protocols do not use host names directly; instead, | |||
| instead use a service domain. The domain's servers are located | they use a service domain and the relevant host names are located | |||
| indirectly via SRV records [RFC2782] (or MX records in the case of | indirectly via SRV records [RFC2782], or MX records in the case of | |||
| SMTP [RFC5321]). When they do not use host names [RFC6698] does not | SMTP [RFC5321]. (Note: in the "CertID" specification [RFC6125], the | |||
| direcly apply to these protocols. | source domain and host name are referred to as the "source domain" | |||
| and the "derived domain".) Because of this intermediate resolution | ||||
| step, the normal DANE rules specified in [RFC6698] do not directly | ||||
| apply to protocols that use SRV or MX records. | ||||
| This document describes how to use DANE TLSA records with SRV and MX | This document describes how to use DANE TLSA records with SRV and MX | |||
| records. To summarize: | records. To summarize: | |||
| o We rely on DNSSEC to secure the association between the service | o We rely on DNSSEC to secure the association between the service | |||
| domain and the target server host names, i.e. the result of the | domain and the target server host names (i.e., the host names that | |||
| SRV or MX query. | are discovered by the SRV or MX query). | |||
| o The TLSA records are located using the SRV port, protocol, and | o The TLSA records are located using the port, protocol, and target | |||
| target host name fields. | host name fields (not the service domain). | |||
| o Clients always use TLS when connecting to servers with TLSA | o Clients always use TLS when connecting to servers with TLSA | |||
| records. | records. | |||
| o The server's certificate is expected to authenticate the server | o Assuming that the association is secure, the server's certificate | |||
| host name, rather than the service domain. | is expected to authenticate the target server host name, rather | |||
| than the service domain. | ||||
| Separate documents give the details that are specific to particular | Separate documents give the details that are specific to particular | |||
| application protocols. For examples, see [I-D.ietf-dane-smtp] and | application protocols, such as SMTP [I-D.ietf-dane-smtp-with-dane] | |||
| [I-D.ietf-dane-mua]. | and XMPP [I-D.ietf-xmpp-dna]. | |||
| 2. Terminology | ||||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| memo are to be interpreted as described in [RFC2119]. | "OPTIONAL" in this memo are to be interpreted as described in | |||
| [RFC2119]. | ||||
| 2. 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 a 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 | Service - smtp | |||
| Proto - tcp | Proto - tcp | |||
| Name - MX owner name (mail domain) | Name - MX owner name (mail domain) | |||
| TTL - MX TTL | TTL - MX TTL | |||
| skipping to change at page 4, line 12 ¶ | skipping to change at page 4, line 4 ¶ | |||
| 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 | Service - smtp | |||
| Proto - tcp | Proto - tcp | |||
| Name - MX owner name (mail domain) | Name - MX owner name (mail domain) | |||
| TTL - MX TTL | TTL - MX TTL | |||
| Class - MX Class | Class - MX Class | |||
| Priority - MX Priority | Priority - MX Priority | |||
| Weight - 0 | Weight - 0 | |||
| Port - 25 | Port - 25 | |||
| Target - MX Target | Target - MX Target | |||
| For example this MX record is treated as if it were the following SRV | Thus we can treat the following MX record as if it were the SRV | |||
| record: | 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]. | [I-D.ietf-dane-smtp-with-dane]. | |||
| 3. DNS checks for TLSA and SRV records | 4. DNS Checks for TLSA and SRV Records | |||
| 3.1. SRV query | 4.1. SRV Query | |||
| When the client makes a SRV query, a successful result will be (a | When the client makes an SRV query, a successful result will be a | |||
| possible chain of CNAME / DNAME aliases referring to) a list of one | list of one or more SRV records (or possibly a chain of CNAME / DNAME | |||
| or more SRV records. | aliases referring to such a list). | |||
| For this specification to take effect, all of these DNS RRsets MUST | For this specification to apply, all of these DNS RRsets MUST be | |||
| be "secure" according to DNSSSEC validation ([RFC4033] section 5). | "secure" according to DNSSSEC validation ([RFC4033] section 5). In | |||
| 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 | |||
| behaviour. (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 the | If any of the responses is "bogus" according to DNSSEC validation, | |||
| client MUST abort. (This usually corresponds to a "server failure" | the client MUST abort. (This usually corresponds to a "server | |||
| 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 Section 4). | use when checking certificate names (see Section 5). | |||
| 3.2. TLSA queries | 4.2. TLSA Queries | |||
| This sub-section applies to each server host name individually, | This sub-section applies to each server host name individually, | |||
| provided the SRV response was secure according to DNSSEC validation. | provided the SRV response was secure according to DNSSEC validation. | |||
| 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: port from | [RFC6698] section 3, based on fields from the SRV record: the port | |||
| the SRV RDATA, protocol from the SRV query name, and the TLSA base | from the SRV RDATA, the protocol from the SRV query name, and the | |||
| domain is the SRV target host name. | TLSA base domain set to the SRV target host name. | |||
| For example this SRV record leads to the following TLSA query: | For example, the following SRV record leads to the TLSA query shown | |||
| 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. | |||
| _143._tcp.imap.example.net. IN TLSA ? | _143._tcp.imap.example.net. IN TLSA ? | |||
| The client SHALL determine if the TLSA record(s) are usable according | The client SHALL determine if the TLSA record(s) are usable according | |||
| to section 4.1 of [RFC6698]. This affects SRV handling as follows: | to section 4.1 of [RFC6698]. This affects SRV handling as follows: | |||
| If the TLSA response is "secure" the client MUST use TLS when | If the TLSA response is "secure", the client MUST use TLS when | |||
| connecting to the server. The TLSA records are used when validating | connecting to the server. The TLSA records are used when validating | |||
| the server's certificate as described in section Section 4. | the server's certificate as described under Section 5. | |||
| If the TLSA response is "insecure" or "indeterminate" the client | If the TLSA response is "insecure" or "indeterminate", the client | |||
| SHALL proceed as if this server has no TLSA records. It MAY connect | SHALL proceed as if this server has no TLSA records. It MAY connect | |||
| to the server with or without TLS. | to the server with or without TLS. | |||
| If the TLSA response is "bogus" then the client MUST NOT connect to | If the TLSA response is "bogus", then the client MUST NOT connect to | |||
| the corresponding server. (The client can still use other SRV | the corresponding server. (The client can still use other SRV | |||
| targets.) | targets.) | |||
| 4. TLS checks for TLSA and SRV records | 5. TLS Checks for TLSA and SRV Records | |||
| 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] without further input from the TLSA records. If the client | without further input from the TLSA records. If the client received | |||
| received one or more usable TLSA certificate associations, it SHALL | one or more usable TLSA certificate associations, it SHALL process | |||
| 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 | The client uses the DNSSEC validation status of the SRV query in its | |||
| server certificate identity checks. (The TLSA validation status does | server certificate identity checks. (The TLSA validation status does | |||
| not affect the server certificate identity checks.) It SHALL use the | not affect the server certificate identity checks.) It SHALL use the | |||
| Server Name Indication extension (TLS SNI) [RFC6066] with the | Server Name Indication extension (TLS SNI) [RFC6066] or its | |||
| preferred name chosen as follows. It SHALL verify the identity | functional equivalent in the relevant application protocol (e.g., in | |||
| asserted by the server's certificate according to [RFC6125] section | XMPP [RFC6120] this is the the 'to' address of the initial stream | |||
| 6, using a list of reference identifiers constructed as follows. | header). The preferred name SHALL be chosen as follows, and the | |||
| client SHALL verify the identity asserted by the server's certificate | ||||
| according to [RFC6125] section 6, using a list of reference | ||||
| identifiers constructed as follows. (Note again that in RFC 6125 the | ||||
| terms "source domain" and "derived domain" refer to the same things | ||||
| as "service domain" and "target host name" in this document.) | ||||
| SRV is insecure or indeterminate: The reference identifiers SHALL | SRV is insecure or indeterminate: The reference identifiers SHALL | |||
| include the service domain and MUST NOT include the SRV target | include the service domain and MUST NOT include the SRV target | |||
| host name. The service domain is the preferred name for TLS SNI. | host name. The service domain is the preferred name for TLS SNI | |||
| or its equivalent. | ||||
| 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. | 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.) | |||
| 5. 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: (This section is | document the following points ought to be covered: | |||
| currently sketchy.) | ||||
| o SRV fallback logic? In the event of bogus replies etc. | o Fallback logic in the event of bogus replies and the like. | |||
| o Compatibility with non-SRV clients. | o Compatibility with clients that do not support SRV lookups. | |||
| 6. Guidance for server operators | 7. Guidance for Server Operators | |||
| In order to support this specification, server software MUST | In order to support this specification, server software MUST | |||
| implement the TLS Server Name Indication extension (TLS SNI) | implement the TLS Server Name Indication extension (TLS SNI) | |||
| [RFC6066] for selecting the appropriate certificate. | [RFC6066] (or its functional equivalent in the relevant application | |||
| protocol) for selecting the appropriate certificate. | ||||
| A server that supports TLS and is the target of a SRV record MUST | A server that supports TLS and is the target of an SRV record MUST | |||
| have a TLS certificate that authenticates the SRV query domain (i.e. | have a TLS certificate that authenticates the SRV query domain (i.e. | |||
| the service domain, or "source domain" in [RFC6125] terms). This is | the service domain, or "source domain" in [RFC6125] terms). This is | |||
| necessary for clients that cannot perform DNSSEC validation. This | necessary for clients that cannot perform DNSSEC validation. This | |||
| certificate MUST be the default that is presented if the client does | certificate MUST be the default that is presented if the client does | |||
| not use TLS SNI. | not use TLS SNI or its functional equivalent. | |||
| In order to support this specification, the server SHOULD also have a | In order to support this specification, the server SHOULD also have a | |||
| certificate that authenticates the SRV target domain (the mail server | certificate that authenticates the SRV target domain (e.g., the mail | |||
| hostname). This can be done using a multi-name certificate or by | server hostname). This can be done using a multi-name certificate or | |||
| using the client's TLS SNI to select the appropriate certificate. | by using the client's TLS SNI or its functional equivalent to select | |||
| The server's TLSA record SHOULD correspond to this certificate. | the appropriate certificate. The server's TLSA record SHOULD | |||
| correspond to this certificate. | ||||
| Note: In some application protocols, there are old non-SRV clients | Note: In some application protocols, there are old non-SRV clients | |||
| that expect a server's TLS certificate to authenticate its host name; | that expect a server's TLS certificate to authenticate its host name; | |||
| they are also unlikely to support SNI. This means that servers for | they are also unlikely to support SNI. This means that servers for | |||
| old clients need a different default certificate from servers that | old clients need a different default certificate from servers that | |||
| are the targets of SRV records. If the server does not have a | are the targets of SRV records. If the server does not have a | |||
| certificate that authenticates all relevant names, it is necessary to | certificate that authenticates all relevant names, it is necessary to | |||
| segregate old and new clients. This can be done by using different | segregate old and new clients. This can be done by using different | |||
| target hosts or non-standard ports in the SRV targets. (The latter | target hosts or non-standard ports in the SRV targets. (The latter | |||
| avoids the need for additional certificates.) | avoids the need for additional certificates.) | |||
| 7. Security considerations | 8. Internationalization Considerations | |||
| 7.1. Mixed security status | If any of the DNS queries are for an internationalized domain name, | |||
| then they need to use the A-label form [RFC5890]. | ||||
| We do not specify that clients check that all of a service domain's | 9. IANA Considerations | |||
| No IANA action is required. | ||||
| 10. Security Considerations | ||||
| 10.1. Mixed Security Status | ||||
| We do not specify that clients checking all of a service domain's | ||||
| server host names are consistent in whether they have or do not have | server host names are consistent in whether they have or do not have | |||
| TLSA records. This is so that partial or incremental deployment does | TLSA records. This is so that partial or incremental deployment does | |||
| 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 fall-back 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. | |||
| 7.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. | |||
| 7.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 checking might appear to be unnecessary, since DNSSEC provides a | |||
| secure binding between the server name and the TLSA record, which in | secure binding between the server name and the TLSA record, which in | |||
| turn authenticates the certificate. However this latter step can be | turn authenticates the certificate. However this latter step can be | |||
| indirect, via a chain of certificates. A usage=0 TLSA record only | indirect, via a chain of certificates. A usage=0 TLSA record only | |||
| authenticates the CA that issued the certificate, and third parties | authenticates the CA that issued the certificate, and third parties | |||
| can obtain certificates from the same CA. | can obtain certificates from the same CA. | |||
| So this specification says that clients check that the server's | Therefore this specification says that a client needs to check | |||
| certificate matches the server host name, to ensure that the | whether the server's certificate matches the server host name, to | |||
| certificate was issued by the CA to the server that the client is | ensure that the certificate was issued by the CA to the server that | |||
| connecting to. The client always performs this check regardless of | the client is connecting to. The client always performs this check | |||
| the TLSA usage, to simplify implementation and so that this | regardless of the TLSA usage, to simplify implementation and so that | |||
| specification is less likely to need updating when new TLSA usages | this specification is less likely to need updating when new TLSA | |||
| are added. | usages are added. | |||
| 7.4. Deliberate omissions | 10.4. Deliberate Omissions | |||
| We do not specify that clients check the DNSSEC state of the server | We do not specify that clients check the DNSSEC state of the server | |||
| address records. This is not necessary since the certificate checks | address records. This is not necessary since the certificate checks | |||
| ensure that the client has connected to the correct server. (The | ensure that the client has connected to the correct server. (The | |||
| address records will normally have the same security state as the | address records will normally have the same security state as the | |||
| TLSA records, but they can differ if there are CNAME or DNAME | TLSA records, but they can differ if there are CNAME or DNAME | |||
| indirections.) | indirections.) | |||
| 8. Internationalization Considerations | 11. Acknowledgements | |||
| If any of the DNS queries are for an internationalized domain name, | ||||
| then they need to use the A-label form [RFC5890]. | ||||
| 9. IANA Considerations | ||||
| No IANA action is required. | ||||
| 10. 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, Ned Freed, Olafur | |||
| Gudmundsson, Paul Hoffman, Phil Pennock, Hector Santos, Jonas | Gudmundsson, Paul Hoffman, Phil Pennock, Hector Santos, Jonas | |||
| Schneider, and Alessandro Vesely for helpful suggestions. | Schneider, and Alessandro Vesely for helpful suggestions. | |||
| 11. References | 12. References | |||
| 11.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, | |||
| February 2000. | February 2000. | |||
| [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "DNS Security Introduction and Requirements", | Rose, "DNS Security Introduction and Requirements", RFC | |||
| RFC 4033, March 2005. | 4033, March 2005. | |||
| [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | [RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. | |||
| Rose, "Protocol Modifications for the DNS Security | Rose, "Protocol Modifications for the DNS Security | |||
| Extensions", RFC 4035, March 2005. | Extensions", RFC 4035, March 2005. | |||
| [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | [RFC5280] Cooper, D., Santesson, S., Farrell, S., Boeyen, S., | |||
| Housley, R., and W. Polk, "Internet X.509 Public Key | Housley, R., and W. Polk, "Internet X.509 Public Key | |||
| Infrastructure Certificate and Certificate Revocation List | Infrastructure Certificate and Certificate Revocation List | |||
| (CRL) Profile", RFC 5280, May 2008. | (CRL) Profile", RFC 5280, May 2008. | |||
| [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, | [RFC5321] Klensin, J., "Simple Mail Transfer Protocol", RFC 5321, | |||
| October 2008. | October 2008. | |||
| [RFC5890] Klensin, J., "Internationalized Domain Names for | [RFC5890] Klensin, J., "Internationalized Domain Names for | |||
| Applications (IDNA): Definitions and Document Framework", | Applications (IDNA): Definitions and Document Framework", | |||
| RFC 5890, August 2010. | RFC 5890, August 2010. | |||
| [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | [RFC6066] Eastlake, D., "Transport Layer Security (TLS) Extensions: | |||
| Extension Definitions", RFC 6066, January 2011. | Extension Definitions", RFC 6066, January 2011. | |||
| [RFC6120] Saint-Andre, P., "Extensible Messaging and Presence | ||||
| Protocol (XMPP): Core", RFC 6120, March 2011. | ||||
| [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | [RFC6125] Saint-Andre, P. and J. Hodges, "Representation and | |||
| Verification of Domain-Based Application Service Identity | Verification of Domain-Based Application Service Identity | |||
| within Internet Public Key Infrastructure Using X.509 | within Internet Public Key Infrastructure Using X.509 | |||
| (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. | |||
| 11.2. Informative References | 12.2. Informative References | |||
| [I-D.ietf-dane-smtp] | [I-D.ietf-dane-smtp-with-dane] | |||
| Finch, T., "Secure SMTP using DNS-Based Authentication of | Dukhovni, V. and W. Hardaker, "(DANE) TLSA records.", | |||
| Named Entities (DANE) TLSA records.", draft-ietf-dane-smtp | draft-ietf-dane-smtp-with-dane (work in progress), | |||
| (work in progress), March 2013. | November 2013. | |||
| [I-D.ietf-dane-mua] | [I-D.ietf-xmpp-dna] | |||
| Finch, T., "Using DNS-Based Authentication of Named | Saint-Andre, P. and M. Miller, "Domain Name Associations | |||
| Entities (DANE) with POP, IMAP, and message submission.", | (DNA) in the Extensible Messaging and Presence Protocol | |||
| draft-ietf-dane-mua (work in progress), March 2013. | (XMPP)", draft-ietf-xmpp-dna-04 (work in progress), | |||
| October 2013. | ||||
| Appendix A. Example | Appendix A. 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 ... | |||
| skipping to change at page 10, line 44 ¶ | skipping to change at page 10, line 45 ¶ | |||
| 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. 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 and scales up more easily to larger numbers of service | domains (so-called "multi-tenanted environments") and scales up more | |||
| 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 | |||
| sense to associate it with the server name rather than the service | sense to associate it with the server host name rather than the | |||
| domain. | service domain. | |||
| o In the absence of TLS SNI, if the certificate identifies the host | o In the absence of TLS SNI, if the certificate identifies the host | |||
| name then it does not need to list all the possible service | name then it does not need to list all the possible service | |||
| domains. | domains. | |||
| o When the server certificate is replaced it is much easier if there | o When the server certificate is replaced it is much easier if there | |||
| is one part of the DNS that needs updating to match, instead of an | is one part of the DNS that needs updating to match, instead of an | |||
| unbounded number of hosted service domains. | unbounded number of hosted service domains. | |||
| o The same TLSA records work with this specification, and with | o The same TLSA records work with this specification, and with | |||
| direct connections to the host name in the style of [RFC6698]. | direct connections to the host name in the style of [RFC6698]. | |||
| o Some application protocols, such as SMTP, allow a client to | o Some application protocols, such as SMTP, allow a client to | |||
| perform transactions with multiple service domains in the same | perform transactions with multiple service domains in the same | |||
| connection. It is not in general feasible for the client to | connection. It is not in general feasible for the client to | |||
| specify the service domain using TLS SNI when the connection is | specify the service domain using TLS SNI when the connection is | |||
| established, and the server might not be able to present a | established, and the server might not be able to present a | |||
| certificate that authenticates all possible service domains. | certificate that authenticates all possible service domains. | |||
| o It is common for SMTP servers to act in multiple roles, as | o It is common for SMTP servers to act in multiple roles, for | |||
| outgoing relays or as incoming MX servers, depending on the client | example as outgoing relays or as incoming MX servers, depending on | |||
| identity. It is simpler if the server can present the same | the client identity. It is simpler if the server can present the | |||
| certificate regardless of the role in which it is to act. | same certificate regardless of the role in which it is to act. | |||
| Sometimes the server does not know its role until the client has | Sometimes the server does not know its role until the client has | |||
| authenticated, which usually occurs after TLS has been | authenticated, which usually occurs after TLS has been | |||
| established. | established. | |||
| This specification does not provide an option to put TLSA records | This specification does not provide an option to put TLSA records | |||
| under the service domain because that would add complexity without | under the service domain because that would add complexity without | |||
| providing any benefit, and security protocols are best kept simple. | providing any benefit, and security protocols are best kept simple. | |||
| As described above, there are real-world cases where authenticating | As described above, there are real-world cases where authenticating | |||
| the service domain cannot be made to work, so there would be | the service domain cannot be made to work, so there would be | |||
| complicated criteria for when service domain TLSA records might be | complicated criteria for when service domain TLSA records might be | |||
| used and when they cannot. This is all avoided by putting the TLSA | used and when they cannot. This is all avoided by putting the TLSA | |||
| records under the server host name. | records under the server host name. | |||
| The disadvantage is that clients which do not do DNSSEC validation | The disadvantage is that clients which do not do DNSSEC validation | |||
| must, according to [RFC6125] rules, check the server certificate | must, according to [RFC6125] rules, check the server certificate | |||
| against the service domain, since they have no other way to | against the service domain, since they have no other way to | |||
| authenticate the server. This means that Server Name Indication | authenticate the server. This means that SNI support or its | |||
| support is necessary for backwards compatibility. | functional equivalent is necessary for backward compatibility. | |||
| Author's Address | ||||
| Authors' Addresses | ||||
| 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 | ||||
| Cisco Systems, Inc. | ||||
| 1899 Wynkoop Street, Suite 600 | ||||
| Denver, CO 80202 | ||||
| USA | ||||
| Email: mamille2@cisco.com | ||||
| Peter Saint-Andre | ||||
| Cisco Systems, Inc. | ||||
| 1899 Wynkoop Street, Suite 600 | ||||
| Denver, CO 80202 | ||||
| USA | ||||
| Email: psaintan@cisco.com | ||||
| End of changes. 70 change blocks. | ||||
| 156 lines changed or deleted | 174 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/ | ||||