[Docs] [txt|pdf|xml|html] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: (draft-melnikov-acme-email-smime) 00 01 02 03 04 05

Network Working Group                                        A. Melnikov
Internet-Draft                                                 Isode Ltd
Intended status: Informational                          October 19, 2018
Expires: April 22, 2019


Extensions to Automatic Certificate Management Environment for end user
                          S/MIME certificates
                     draft-ietf-acme-email-smime-04

Abstract

   This document specifies identifiers and challenges required to enable
   the Automated Certificate Management Environment (ACME) to issue
   certificates for use by email users that want to use S/MIME.

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 https://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 April 22, 2019.

Copyright Notice

   Copyright (c) 2018 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
   (https://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.




Melnikov                 Expires April 22, 2019                 [Page 1]


Internet-Draft               ACME for S/MIME                October 2018


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions Used in This Document . . . . . . . . . . . . . .   2
   3.  Use of ACME for issuing end user S/MIME certificates  . . . .   2
     3.1.  ACME challenge email  . . . . . . . . . . . . . . . . . .   3
     3.2.  ACME response email . . . . . . . . . . . . . . . . . . .   4
   4.  Open Issues . . . . . . . . . . . . . . . . . . . . . . . . .   5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   6
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   7.  Normative References  . . . . . . . . . . . . . . . . . . . .   6
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . .   8
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   [I-D.ietf-acme-acme] is a mechanism for automating certificate
   management on the Internet.  It enables administrative entities to
   prove effective control over resources like domain names, and
   automates the process of generating and issuing certificates.

   This document describes an extension to ACME for use by S/MIME.
   Section 3 defines extensions for issuing end user S/MIME [RFC5750]
   certificates.

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].

3.  Use of ACME for issuing end user S/MIME certificates

   [I-D.ietf-acme-acme] defines "dns" Identifier Type that is used to
   verify that a particular entity has control over a domain or specific
   service associated with the domain.  In order to be able to issue
   end-user S/MIME certificates, ACME needs a new Identifier Type that
   proves ownership of an email address.

   This document defines a new Identifier Type "email" which corresponds
   to an (all ASCII) email address [RFC5321] or Internationalized Email
   addresses [RFC6531].  This can be used with S/MIME or other similar
   service that requires posession of a certificate tied to an email
   address.

   Any identifier of type "email" in a newOrder request MUST NOT have a
   wildcard ("*") character in its value.




Melnikov                 Expires April 22, 2019                 [Page 2]


Internet-Draft               ACME for S/MIME                October 2018


   A new challenge type "email-reply-00" is used with "email" Identifier
   Type, which provides proof that an ACME client has control over an
   email address:

   1.  ACME server generates a "challenge" email message with the
       subject "ACME: <token-part1>", where <token-part1> is the
       base64url encoded first part of the token, which contains at
       least 64 bit of entropy.  The challenge email message structure
       is described in more details in Section 3.1.  The second part of
       the token (token-part2, which also contains at least 64 bit of
       entropy) is returned over HTTPS [RFC2818] to the ACME client.

   2.  ACME client concatenates "token-part1" and "token-part2" to
       create "token", calculates key-authz (as per Section 8.1 of
       [I-D.ietf-acme-acme]), then includes the base64url encoded
       SHA-256 digest [FIPS180-4] of the key authorization in the body
       of a response email message containing a single text/plain MIME
       body part [RFC2045].  The response email message structure is
       described in more details in Section 3.2

   For an identifier of type "email", CSR MUST contain the request email
   address in an extensionRequest attribute [RFC2985] requesting a
   subjectAltName extension.

3.1.  ACME challenge email

   A "challenge" email message MUST have the following structure:

   1.  The message Subject header field has the following syntax: "ACME:
       <token-part1>", where the prefix "ACME:" is followed by exactly
       one SP character.  <token-part1> is the base64url encoded first
       part of the ACME token that MUST be at least 64 octet long after
       decoding.  [[Alexey: is the following going to be problematic due
       to the total subject lenght and recommended 78 octet line length
       limit?]] For ease of implementation, no RFC 2231 encoding of
       subject is allowed in the "challenge" email message.

   2.  The message MUST include the "Auto-Submitted: auto-generated"
       header field [RFC3834].  It MAY include optional parameters as
       allowed by syntax of Auto-Submitted header field.

   3.  The message MUST have a single text/plain MIME body part
       [RFC2045], that contains human readable explanation of the
       purpose of the message.







Melnikov                 Expires April 22, 2019                 [Page 3]


Internet-Draft               ACME for S/MIME                October 2018


   Example ACME "challenge" email


     Auto-Submitted: auto-generated
     Date: Sat, 1 Sep 2018 10:08:55 +0100
     Message-ID: <A2299BB.FF7788@example.org>
     From: acme-generator@example.org
     To: alexey@example.com
     Subject: ACME: <base64url-encoded-token-with-64-octets-of-entropy>
     Content-Type: text/plain
     MIME-Version: 1.0

     This is an automatically generated ACME challenge for email address
     "alexey@example.com". If you haven't requested an S/MIME
     certificate generation for this email address, be very afraid.
     If you did request it, your email client might be able to process
     this request automatically, or you might have to paste the first
     token part into an external program.

                                 Figure 1

3.2.  ACME response email

   A "response" email message MUST have the following structure:

   1.  The message Subject header field has the following syntax: "Re:
       ACME: <token-part1>", where the string "ACME:" is followed by
       exactly one SP character.  <token-part1> is the base64url encoded
       first part of the ACME token.  (Note that this would be a subject
       generated by any email client replying to the "challenge" email
       message.)  [[Alexey: is the following going to be problematic due
       to the total subject lenght and recommended 78 octet line length
       limit?]] For ease of implementation, no RFC 2231 encoding of
       subject is allowed in the "response" email message.

   2.  The From: header field contains the email address of the user
       that is requesting S/MIME certificate issuance.

   3.  The To: header field of the response contains the value from the
       From: header field of the challenge email.

   4.  The Cc: header field must be absent in the "response" email
       message.

   5.  The message MUST have a single text/plain MIME body part
       [RFC2045], containing base64url encoded SHA-256 digest
       [FIPS180-4] of the key authorization, calculated based on token-
       part1 (received over email) and token-part2 (received over



Melnikov                 Expires April 22, 2019                 [Page 4]


Internet-Draft               ACME for S/MIME                October 2018


       HTTPS).  Note that due to historic line length limitations in
       email, line endings (CRLFs) can be freely inserted in the middle
       of the encoded digest, so they need to be ignored when processing
       it.

   6.  There is no need to use any Content-Transfer-Encoding other than
       7bit, however use of Quoted-Printable or base64 is not prohibited
       in a "response" email message.

   Example ACME "response" email


   Date: Sat, 1 Sep 2018 11:12:00 +0100
   Message-ID: <111-22222-3333333@example.com>
   From: alexey@example.com
   To: acme-generator@example.org
   Subject: Re: ACME: <base64url-encoded-token-with-64-octets-of-entropy>
   Content-Type: text/plain
   MIME-Version: 1.0

   LoqXcYV8q5ONbJQxbmR7SCTNo3tiAXDfowy
   jxAjEuX0.9jg46WB3rR_AHD-EBXdN7cBkH1WOu0tA3M9
   fm21mqTI

                                 Figure 2

4.  Open Issues

   [[This section should be empty before publication]]

   1.  Do we need to handle text/html or multipart/alternative in email
       challenge?  Simplicity suggests "no".  However, for automated
       processing it might be better to use at least multipart/mixed
       with a special MIME type.

   2.  How to verify authenticity of "challenge" email messages?  The
       document can recommend either S/MIME signing (in which case the
       "challenge" email message should be allowed to be S/MIME signed
       multipart/signed or application/pkcs7-mime containing SignedData)
       and/or presence of DKIM signature covering at least From/To/
       Subject, with working SPF and DMARC.

   3.  Similarly to the above: how to verify authenticity of "response"
       email messages?  We can't require use of S/MIME, as this protocol
       is used for S/MIME user enrollment.  However DKIM/SPF/DMARC can
       be recommended.





Melnikov                 Expires April 22, 2019                 [Page 5]


Internet-Draft               ACME for S/MIME                October 2018


   4.  Define a new parameter to "Auto-Submitted: auto-generated", so
       that it is easier to figure out that a particilar message is an
       ACME challenge message?

5.  IANA Considerations

   IANA is requested to register a new Identifier Type "email" which
   corresponds to an (all ASCII) email address [RFC5321] or
   Internationalized Email addresses [RFC6531].

   And finally, IANA is requested to register the following ACME
   challenge types that are used with Identifier Type "email": "email-
   reply".  The reference for it is this document.

6.  Security Considerations

   TBD.

7.  Normative References

   [FIPS180-4]
              National Institute of Standards and Technology, "Secure
              Hash Standard (SHS)", FIPS PUB 180-4, August 2015,
              <https://csrc.nist.gov/publications/detail/fips/180/4/
              final>.

   [I-D.ietf-acme-acme]
              Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic
              Certificate Management Environment (ACME)", draft-ietf-
              acme-acme-14 (work in progress), August 2018.

   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part One: Format of Internet Message
              Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
              <https://www.rfc-editor.org/info/rfc2045>.

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

   [RFC2818]  Rescorla, E., "HTTP Over TLS", RFC 2818,
              DOI 10.17487/RFC2818, May 2000,
              <https://www.rfc-editor.org/info/rfc2818>.







Melnikov                 Expires April 22, 2019                 [Page 6]


Internet-Draft               ACME for S/MIME                October 2018


   [RFC2985]  Nystrom, M. and B. Kaliski, "PKCS #9: Selected Object
              Classes and Attribute Types Version 2.0", RFC 2985,
              DOI 10.17487/RFC2985, November 2000,
              <https://www.rfc-editor.org/info/rfc2985>.

   [RFC3834]  Moore, K., "Recommendations for Automatic Responses to
              Electronic Mail", RFC 3834, DOI 10.17487/RFC3834, August
              2004, <https://www.rfc-editor.org/info/rfc3834>.

   [RFC5321]  Klensin, J., "Simple Mail Transfer Protocol", RFC 5321,
              DOI 10.17487/RFC5321, October 2008,
              <https://www.rfc-editor.org/info/rfc5321>.

   [RFC5750]  Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
              Mail Extensions (S/MIME) Version 3.2 Certificate
              Handling", RFC 5750, DOI 10.17487/RFC5750, January 2010,
              <https://www.rfc-editor.org/info/rfc5750>.

   [RFC6531]  Yao, J. and W. Mao, "SMTP Extension for Internationalized
              Email", RFC 6531, DOI 10.17487/RFC6531, February 2012,
              <https://www.rfc-editor.org/info/rfc6531>.

   [RFC7515]  Jones, M., Bradley, J., and N. Sakimura, "JSON Web
              Signature (JWS)", RFC 7515, DOI 10.17487/RFC7515, May
              2015, <https://www.rfc-editor.org/info/rfc7515>.


























Melnikov                 Expires April 22, 2019                 [Page 7]


Internet-Draft               ACME for S/MIME                October 2018


Appendix A.  Acknowledgements

   Thank you to Andreas Schulze and Gerd v.  Egidy for suggestions,
   comments and corrections on this document.

Author's Address

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

   EMail: alexey.melnikov@isode.com





































Melnikov                 Expires April 22, 2019                 [Page 8]


Html markup produced by rfcmarkup 1.129c, available from https://tools.ietf.org/tools/rfcmarkup/