Network Working Group                                        A. Melnikov
Internet-Draft                                                 Isode Ltd
Updates: 2595, 3207, 3501, 5804 (if                     December 4, 9, 2015
         approved)
Intended status: Standards Track
Expires: June 6, 11, 2016

Updated TLS Server Identity Check Procedure for Email Related Protocols
                   draft-ietf-uta-email-tls-certs-06
                   draft-ietf-uta-email-tls-certs-07

Abstract

   This document describes TLS server identity verification procedure
   for SMTP Submission, IMAP, POP and ManageSieve clients.  It replaces
   Section 2.4 of RFC 2595, updates Section 4.1 of RFC 3207, updates
   Section 11.1 of RFC 3501, updates Section 2.2.1 of RFC 5804.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on June 6, 11, 2016.

Copyright Notice

   Copyright (c) 2015 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions Used in This Document . . . . . . . . . . . . . .   3
   3.  Email Server Certificate Verification Rules . . . . . . . . .   3
   4.  Compliance Checklist for Certification Authorities  . . . . .   5
     4.1.  Notes on handling of SRV-ID by Certificate Certification Authorities  .    5
   5.  Compliance Checklist for Mail Service Providers and
       Certificate Signing Request generation tools  . . . . . . . .   5   6
     5.1.  Notes on hosted hosting multiple domains . . . . . . . . . . . . . . . . .   6
   6.  Examples  . . . . . . . . . . . . . . . . . . . . . . . . . .   6   7
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7   8
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .   7   8
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7   9
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   7   9
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   8  10
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . .  10  11
   Appendix B.  Changes since draft-ietf-uta-email-tls-certs-00  . .  10  11
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  10  11

1.  Introduction

   Use of TLS by SMTP Submission, IMAP, POP and ManageSieve clients is
   described in [RFC3207], [RFC3501], [RFC2595] and [RFC5804]
   respectively.  Each of the documents describes slightly different
   rules for server certificate identity verification (or doesn't define
   any rules at all).  In reality, email client and server developers
   implement many of these protocols at the same time, so it would be
   good to define modern and consistent rules for verifying email server
   identities using TLS.

   This document describes the updated TLS server identity verification
   procedure for SMTP Submission [RFC6409] [RFC3207], IMAP [RFC3501],
   POP [RFC1939] and ManageSieve [RFC5804] clients.  It replaces
   Section 2.4 of RFC 2595.

   Note that this document doesn't apply to use of TLS in MTA-to-MTA
   SMTP.

   This document provides a consistent TLS server identity verification
   procedure across multiple email related protocols.  This should make
   it easier for Certification Authorities and ISPs to deploy TLS for
   email use, and would enable email client developers to write more
   secure code.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   The following terms or concepts are used through the document:

   reference identifier:  (as defined in [RFC6125]) One of the domain
      names associated by the email (i.e., an SMTP, IMAP, POP3 or
      ManageSieve) client with the target email server and optionally an
      application service type for performing name checks on the server
      certificate.  When name checks are applicable, at least one of the
      reference identifiers MUST match an [RFC6125] DNS-ID or SRV-ID (or
      if none are present the [RFC6125] CN-ID) of the server
      certificate.

   CN-ID, DNS-ID, SRV-ID and URI-ID are identifier types (see [RFC6125]
   for details).  For convenience, their short definitions from
   [RFC6125] are listed below:

      CN-ID = a Relative Distinguished Name (RDN) in the certificate
      subject field that contains one and only one attribute-type-and-
      value pair of type Common Name (CN), where the value matches the
      overall form of a domain name (informally, dot- separated letter-
      digit-hyphen labels).

      DNS-ID = a subjectAltName entry of type dNSName

      SRV-ID = a subjectAltName entry of type otherName whose name form
      is SRVName

      URI-ID = a subjectAltName entry of type uniformResourceIdentifier
      whose value includes both (i) a "scheme" and (ii) a "host"
      component (or its equivalent) that matches the "reg-name" rule
      (where the quoted terms represent the associated [RFC5234]
      productions from [RFC3986]).

3.  Email Server Certificate Verification Rules

   During a TLS negotiation, an email client (i.e., an SMTP, IMAP, POP3
   or ManageSieve client) MUST check its understanding of the server
   hostname against the server's identity as presented in the server
   Certificate message, in order to prevent man-in-the-middle attacks.
   This check is only performed after the server certificate passes
   certification path validation as described in Section 6 of [RFC5280].
   Matching is performed according to the rules specified in Section 6
   of [RFC6125], including "certificate pinning" and the procedure on
   failure to match.  The following inputs are used by the verification
   procedure used in [RFC6125]:

   1.  For DNS-ID and CN-ID identifier types the client MUST use one or
       more of the following as "reference identifiers": (a) the domain
       portion of the user's email address, (b) the hostname it used to
       open the connection (without CNAME canonicalization).  The client
       MAY also use (c) a value securely derived from (a) or (b), such
       as using "secure" DNSSEC [RFC4033][RFC4034][RFC4035] validated
       lookup.

   2.  When using email service discovery procedure specified in
       [RFC6186] the client MUST also use the domain portion of the
       user's email address as another "reference identifier" to compare
       against SRV-ID identifier in the server certificate.

   The rules and guidelines defined in [RFC6125] apply to an email
   server certificate, with the following supplemental rules:

   1.  Support for the DNS-ID identifier type (subjectAltName of dNSName
       type [RFC5280]) is REQUIRED in Email client software
       implementations.

   2.  Support for the SRV-ID identifier type (subjectAltName of SRVName
       type [RFC4985]) is REQUIRED for email client software
       implementations that support [RFC6186].  List of SRV-ID types for
       email services is specified in [RFC6186].  For the ManageSieve
       protocol the service name "sieve" is used.

   3.  URI-ID identifier type (subjectAltName of
       uniformResourceIdentifier type [RFC5280]) MUST NOT be used by
       clients for server verification, as URI-ID were not historically
       used for email.

   4.  For backward compatibility with deployed software CN-ID
       identifier type (CN attribute from the subject name, see
       [RFC6125]) MAY be used for server identity verification.

   5.  Email protocols allow use of certain wilcards in identifiers
       presented by email servers.  The "*" wildcard character MAY be
       used as the left-most name component of DNS-ID or CN-ID in the
       certificate.  For example, a DNS-ID of *.example.com would match
       a.example.com, foo.example.com, etc. but would not match
       example.com.  Note that the wildcard character MUST NOT be used
       as a fragment of the left-most name component (e.g.,
       *oo.example.com, f*o.example.com, or foo*.example.com).

4.  Compliance Checklist for Certification Authorities

   1.  CA MUST support issuance of server certificates with DNS-ID
       identifier type (subjectAltName of dNSName type [RFC5280]).

   2.  CA MUST support issuance of server certificates with SRV-ID
       identifier type (subjectAltName of SRVName type [RFC4985]) for
       each type of email service.  See Section 4.1 for more discussion
       on what this means for Certification Authorities.

   3.  For backward compatibility with deployed client base, CA MUST
       support issuance of server certificates with CN-ID identifier
       type (CN attribute from the subject name, see [RFC6125]).

   4.  CA MAY allow "*" (wildcard) as the left-most name component of
       DNS-ID or CN-ID in server certificates it issues.

4.1.  Notes on handling of SRV-ID by Certificate Certification Authorities

   TBD.  List some possible recommendations

   [RFC6186] provides an easy way for organizations to autoconfigure
   email clients.  It also allows for delegation of email services to an
   email hosting provider.  When connecting to such delegated hosting
   service an email client that attempts to verify TLS server identity
   needs to know that if it connects to imap.hosting.example.net that
   such server is authorized to provide email access for an email such
   as alice@example.org.  In absence of SRV-IDs, users of compliant
   email clients would be forced to manual confirm exception, because
   TLS server certificate verification procedures specified in this
   document would result in failure to match TLS server certificate
   against the expected domains.  One way to provide such authorization
   is for the TLS certificate for imap.hosting.example.net to include
   SRV-ID(s) (or DNS-ID) for example.org domain.  (Another way is for
   SRV lookups to be protected by DNSSEC, but this solution depends
   reliance of DNSSEC and limitations thus is not discussed in this document.  A
   future update to this document might rectify this.)

   The ability of different
   approaches. issuing certificates that contain SRV-ID implies the
   ability to verify that entities requesting them are authorized to run
   email service for these SRV-IDs.  In particular, certification
   authorities that can't verify such authorization MUST NOT include
   email SRV-IDs in certificates they issue.  This document doesn't
   specify exact mechanism(s) that can be used to achieve this.
   However, a few special case recommendations are listed below.

   A certification authority willing to sign a certificate containing a
   particular DNS-ID SHOULD also support signing a certificate
   containing one or more of email SRV-IDs for the same domain, because
   the SRV-ID effectively provides more restricted access to an email
   service for the domain (as opposed to unrestricted use of any
   services for the same domain, as specified by DNS-ID).

   A certification authority which also provides DNS service for a
   domain can use DNS information to validate SRV-IDs for the domain.

   A certification authority MAY treat a certificate for a subdomain of
   example.com (e.g. imap.sub1.example.com or imap.example.com) that
   contains one or more SRV-ID for example.com as validated.

5.  Compliance Checklist for Mail Service Providers and Certificate
    Signing Request generation tools

   1.  MUST include the DNS-ID identifier type in Certificate Signing
       Requests for the host name(s) where the email server(s) are
       running.  SHOULD include the DNS-ID identifier type in
       Certificate Signing Requests for the domain portion of served
       email addresses.

   2.  If the email services provided are discoverable using DNS SRV as
       specified in [RFC6186], the Mail Service Provider MUST include
       the SRV-ID identifier type for each type of email service in
       Certificate Signing Requests.

   3.  SHOULD include CN-ID identifier type for the host name where the
       email server(s) is running in Certificate Signing Requests for
       backward compatibility with deployed email clients.  (Note, a
       certificate can only include a single CN-ID, so if a mail service
       is running on multiple hosts, either each host has to use
       different certificate with its own CN-ID, a single certificate
       with multiple DNS-IDs, or a single certificate with wildcard in
       CN-ID can be used).

   4.  MAY include "*" (wildcard) as the left-most name component of
       DNS-ID or CN-ID in Certificate Signing Requests.

5.1.  Notes on hosted hosting multiple domains

   A server that hosts multiple domains

   TBD.  Compare needs to do one of the following
   (or some combination thereof):

   1.  Use a single TLS certificate that contains includes a complete list of all hosted
       the domains versa
   use of SNI or it is serving.

   2.  Serve each domain on its own IP/port, using separate IPs for TLS
       certificates on each hosted IP/port.

   3.  Use Server Name Indication (SNI) TLS extension [RFC6066] to
       select the right certificate to return during TLS negotiation.
       Each domain with has its own TLS certificate in this case.

   Each of these deployment choices have their scaling disadvantages
   when the list of domains changes.  A single certificate (the first
   choice) requires that when a domain is added, then a new Certificate
   Signing Request that includes a complete list of all the domains
   needs to be issued and passed to a CA in order to generate a new
   certificate.  Separate IP/port can avoid regenerating the
   certificate, but requires more transport layer resources.  Use of TLS
   SNI requires each email client to support it.

   Several Mail Service Providers host hundreds and even thousands of
   domain.  This document, as well as its predecessors RFC 2595, RFC
   3207, RFC 3501 and RFC 5804 don't address scaling issues caused by
   use of TLS in multi-tenanted environments.  Further work is needed to
   address this issue, possibly using DNSSEC or something like POSH
   [RFC7711].

6.  Examples

   Consider an IMAP-accessible email server which supports both IMAP and
   IMAPS (IMAP-over-TLS) at the host "mail.example.net" servicing email
   addresses of the form "user@example.net".  A certificate for this
   service needs to include DNS-IDs of "example.net" (because it is the
   domain portion of emails) and "mail.example.net" (this is what a user
   of this server enters manually, if not using [RFC6186]).  It might
   also include CN-ID of "mail.example.net" for backward compatibility
   with deployed infrastructure.

   Consider the IMAP-accessible email server from the previous paragraph
   which is additionally discoverable via DNS SRV lookups in domain
   "example.net" (DNS SRV records "_imap._tcp.example.net" and
   "_imaps._tcp.example.net").  In addition to DNS-ID/CN-ID identity
   types specified above, a certificate for this service also needs to
   include SRV-IDs of "_imap.example.net" (when STARTTLS is used on the
   IMAP port) and "_imaps.example.net" (when TLS is used on IMAPS port).
   See [RFC6186] for more details.  (Note that unlike DNS SRV there is
   no "_tcp" component in SRV-IDs).

   Consider the IMAP-accessible email server from the first paragraph
   which is running on a host also known as "mycompany.example.com".  In
   addition to DNS-ID identity types specified above, a certificate for
   this service also needs to include DNS-ID of "mycompany.example.com"
   (this is what a user of this server enters manually, if not using
   [RFC6186]).  It might also include CN-ID of "mycompany.example.com"
   instead of the CN-ID "mail.example.net" for backward compatibility
   with deployed infrastructure.  (This is so, because a certificate can
   only include a single CN-ID)

   Consider an SMTP Submission server at the host "submit.example.net"
   servicing email addresses of the form "user@example.net" and
   discoverable via DNS SRV lookups in domain "example.net" (DNS SRV
   records "_submission._tcp.example.net").  A certificate for this
   service needs to include SRV-IDs of "_submission.example.net" (see
   [RFC6186]) along with DNS-IDs of "example.net" and
   "submit.example.net".  It might also include CN-ID of
   "submit.example.net" for backward compatibility with deployed
   infrastructure.

   Consider a host "mail.example.net" servicing email addresses of the
   form "user@example.net" and discoverable via DNS SRV lookups in
   domain "example.net", which runs SMTP Submission, IMAPS and POP3S
   (POP3-over-TLS) and ManageSieve services.  Each of the servers can
   use their own certificate specific to their service (see examples
   above).  Alternatively they can all share a single certificate that
   would include SRV-IDs of "_submission.example.net",
   "_imaps.example.net", "_pop3s.example.net" and "_sieve.example.net"
   along with DNS-IDs of "example.net" and "mail.example.net".  It might
   also include CN-ID of "mail.example.net" for backward compatibility
   with deployed infrastructure.

7.  IANA Considerations

   This document doesn't require any action from IANA.

8.  Security Considerations

   The goal of this document is to improve interoperability and thus
   security of email clients wishing to access email servers over TLS
   protected email protocols, by specifying a consistent set of rules
   that email service providers, email client writers and Certification
   Authorities can use when creating server certificates.

   TLS Server Identity Check for Email relies on use of trustworthy DNS
   hostnames when constructing "reference identifiers" that are checked
   against an email server certificate.  Such trustworthy names are
   either entered manually (for example if they are advertised on a Mail
   Service Provider's website), explicitly confirmed by the user (e.g.
   if they are a target of a DNS SRV lookup) or derived using a secure
   third party service (e.g.  DNSSEC-protected SRV records which are
   verified by the client or trusted local resolver).  Future work in
   this area might benefit from integration with DANE [RFC6698], but it
   is not covered by this document.

9.  References

9.1.  Normative References

   [RFC1939]  Myers, J. and M. Rose, "Post Office Protocol - Version 3",
              STD 53, RFC 1939, DOI 10.17487/RFC1939, May 1996,
              <http://www.rfc-editor.org/info/rfc1939>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC3207]  Hoffman, P., "SMTP Service Extension for Secure SMTP over
              Transport Layer Security", RFC 3207, DOI 10.17487/RFC3207,
              February 2002, <http://www.rfc-editor.org/info/rfc3207>.

   [RFC3501]  Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION
              4rev1", RFC 3501, DOI 10.17487/RFC3501, March 2003,
              <http://www.rfc-editor.org/info/rfc3501>.

   [RFC4985]  Santesson, S., "Internet X.509 Public Key Infrastructure
              Subject Alternative Name for Expression of Service Name",
              RFC 4985, DOI 10.17487/RFC4985, August 2007,
              <http://www.rfc-editor.org/info/rfc4985>.

   [RFC5804]  Melnikov, A., Ed. and T. Martin, "A Protocol for Remotely
              Managing Sieve Scripts", RFC 5804, DOI 10.17487/RFC5804,
              July 2010, <http://www.rfc-editor.org/info/rfc5804>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
              <http://www.rfc-editor.org/info/rfc5280>.

   [RFC6125]  Saint-Andre, P. and J. Hodges, "Representation and
              Verification of Domain-Based Application Service Identity
              within Internet Public Key Infrastructure Using X.509
              (PKIX) Certificates in the Context of Transport Layer
              Security (TLS)", RFC 6125, DOI 10.17487/RFC6125, March
              2011, <http://www.rfc-editor.org/info/rfc6125>.

   [RFC6186]  Daboo, C., "Use of SRV Records for Locating Email
              Submission/Access Services", RFC 6186,
              DOI 10.17487/RFC6186, March 2011,
              <http://www.rfc-editor.org/info/rfc6186>.

   [RFC6409]  Gellens, R. and J. Klensin, "Message Submission for Mail",
              STD 72, RFC 6409, DOI 10.17487/RFC6409, November 2011,
              <http://www.rfc-editor.org/info/rfc6409>.

9.2.  Informative References

   [RFC2595]  Newman, C., "Using TLS with IMAP, POP3 and ACAP",
              RFC 2595, DOI 10.17487/RFC2595, June 1999,
              <http://www.rfc-editor.org/info/rfc2595>.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <http://www.rfc-editor.org/info/rfc3986>.

   [RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "DNS Security Introduction and Requirements",
              RFC 4033, DOI 10.17487/RFC4033, March 2005,
              <http://www.rfc-editor.org/info/rfc4033>.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, DOI 10.17487/RFC4034, March 2005,
              <http://www.rfc-editor.org/info/rfc4034>.

   [RFC4035]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Protocol Modifications for the DNS Security
              Extensions", RFC 4035, DOI 10.17487/RFC4035, March 2005,
              <http://www.rfc-editor.org/info/rfc4035>.

   [RFC5234]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234,
              DOI 10.17487/RFC5234, January 2008,
              <http://www.rfc-editor.org/info/rfc5234>.

   [RFC6066]  Eastlake 3rd, D., "Transport Layer Security (TLS)
              Extensions: Extension Definitions", RFC 6066,
              DOI 10.17487/RFC6066, January 2011,
              <http://www.rfc-editor.org/info/rfc6066>.

   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based Authentication
              of Named Entities (DANE) Transport Layer Security (TLS)
              Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, August
              2012, <http://www.rfc-editor.org/info/rfc6698>.

   [RFC7711]  Miller, M. and P. Saint-Andre, "PKIX over Secure HTTP
              (POSH)", RFC 7711, DOI 10.17487/RFC7711, November 2015,
              <http://www.rfc-editor.org/info/rfc7711>.

Appendix A.  Acknowledgements

   Thank you to Chris Newman, Viktor Dukhovni, Sean Turner, Russ Housley
   and
   Housley, Alessandro Vesely Vesely, Harald Alvestrand and John Levine for
   comments on this document.

   The editor of this document copied lots of text from RFC 2595 and RFC
   6125, so the hard work of editors of these document is appreciated.

Appendix B.  Changes since draft-ietf-uta-email-tls-certs-00

   [[Note to RFC Editor: Please delete this section before publication]]

   Added another example, clarified that subjectAltName and DNS SRV are
   using slightly different syntax.

   As any certificate can only include one CN-ID, corrected examples.

   Split rules to talk seperately about requirements on MUAs, CAs and
   MSPs/CSR generation tools.

   Updated Introduction section.

Author's Address

   Alexey Melnikov
   Isode Ltd
   14 Castle Mews
   Hampton, Middlesex  TW12 2NP
   UK

   EMail: Alexey.Melnikov@isode.com