Network Working Group | F.M. Martin, Ed. |
Internet-Draft | |
Updates: 7001 (if approved) | March 06, 2014 |
Intended status: Standards Track | |
Expires: September 07, 2014 |
Authentication-Results Registration for TLS
draft-martin-authentication-results-tls-01
This memo updates the registry of properties in Authentication-Results: message header fields to allow relaying of the results of an email sent using STARTTLS [RFC3207] or not.
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 September 07, 2014.
Copyright (c) 2014 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.
STARTTLS [RFC3207] defines how to send an email over an SMTP [RFC5321] encrypted session between two mail servers.
This memo thus registers an additional reporting property allowing a TLS result to be relayed as an annotation in a message header.
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 RFC 2119 [RFC2119].
STARTTLS [RFC3207] defines how to send an email over an encrypted session between two mail servers, Message Transfer Agent (MTA), using the TLS [RFC5246] protocol.
Most of these exchanges are opportunistic, meaning a best effort is done to establish an encrypted message exchange regardless of the strength of the cipher or the validity of the certificates used. However, the results of this negotiation should be recorded in the message via the Authentication-Results header [RFC7001] to indicate to other message processing algorithms, including Messaging User Agents (MUA), how securely this message was transmitted from the MTA client to the MTA server.
The concept of authentication here is related to the presentation of a certificate which is verified valid by a set of trusted Certificate Authorithies (CA), via DANE [RFC6698] or by local policy. This does not indicate that any string in the certificate is related to any string in the email.
This memo adds to the "Email Authentication Methods" registry, created by IANA upon publication of [RFC7001], the following:
The "tls" method can have the following results:
none: the message was sent in clear.
pass: the message was sent encrypted and the client certificate was verified valid either using a trusted CA or via DANE [RFC6698].
selfsigned: the message was sent encrypted but the client certificate is self signed.
fail: the message was sent encrypted but the client certificate is not valid. It is advised to use comments to indicate the nature of the problem like certifcate expired, not linked to a trusted CA,...
temperror: the message was sent encrypted and the server was not able to verify the client certificate at this time. This may indicate for instance that the server could not fetch the CRL.
permerror: the message was sent encrypted and the client certificate was not verified by the MTA server.
policy.cert_client: the subject of the X.509 certificate used by the client to initiate TLS.
policy.cert_server: the subject of the X.509 certificate used by the server to initiate TLS (optional).
policy.cert_verif: the type of certification performed: CA, DANE [RFC6698], LOCAL (optional).
policy.tls_v: the ptotocol version used to encrypt SSL2.0, SSL3.0, TLS1.0, TLS1.1,... (optional)
policy.key_ciphersuite: the description of the TLS cipher suite used as defined in the IANA cipher suite registry.
policy.key_fingerprint: the fingerprint of the key used (optional).
policy.key_strength: as many SMTP TLS are opportunistic in nature this property is an arbitrary value set by the MTA server to indicate the strength of the encryption (optional).
While ciphers strength vary overtime, and key length in bits does not indicate a comparable strength between various cyphers, it may be difficult for all the processors of the authentication-results header to redo the analysis based on the cipher used and all to arrive to the same conclusion. It seems, therefore, best if the receiving MTA does that analysis and communicate it to the other layers. This is the purpose of the key.strength.
Per [IANA], the following items have been added to the "Email Authentication Methods" registry:
+----------+----------+--------+-----------------+-----------------+ | Method | Defined | ptype | property | value | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | cert_client | subject of | | | | | | client | | | | | | certificate | | | | | | section 4.1.26 | | | | | | of RFC 5280 | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | cert_server | subject of | | | | | | server | | | | | | certificate | | | | | | section 4.1.26 | | | | | | of RFC 5280 | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | cert_verif | CA | | | | | | DANE | | | | | | LOCAL | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | tls_v | protocol | | | | | | version | | | | | | description | | | | | | from RFC 5246 | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | key_ciphersuite | IANA cipher | | | | | | suite registry | | | | | | description | | | | | | from RFC 5246 | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | key_fingerprint | key | | | | | | fingerprint | | | | | | from RFC 5246 | +----------+----------+--------+-----------------+-----------------+ | tls | RFC 3207 | policy | key_strength | low | | | | | | medium | | | | | | high | | | | | | | +----------+----------+--------+-----------------+-----------------+
Also, the following items have been added to the "Email Authentication Result Names" registry:
+-----------+--------------+------------+---------+-----------------+ | Code | Existing/New | Defined In | Method | Meaning | +-----------+--------------+------------+---------+-----------------+ | none | existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+ | pass | existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+ | selfsigned| existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+ | fail | existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+ | temperror | existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+ | permerror | existing | RFC 7001 | tls | this memo | | | | | (added) | | +-----------+--------------+------------+---------+-----------------+
This memo creates a mechanism for relaying STARTTLS [RFC3207] results using the structure already defined by [RFC7001]. The Security Considerations sections of those documents should be consulted.
[RFC5226] | Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008. |
This section presents an example of the use of this new header field to indicate TLS results.
A message that went over a successful TLS session:
Authentication-Results: mail-router.example.net; dkim=pass (good signature) header.d=newyork.example.com header.b=oINEO8hg; tls=pass (verified, expires 20140505) policy.cert_verif=CA policy.cert_client="/C=US/ST=CA/L=ToonTown/O=ACME/ CN=smtp.example.com" policy.key_ciphersuite=TLS_RSA_WITH_RC4_128_SHA policy.tls_v=TLS1.0 policy.key_fingerprint="68:B3:29:DA:98:93:E3:40:99:C7:D8: AD:5C:B9:C9:40" policy.key_strength=MEDIUM; Received: from newyork.example.com (newyork.example.com [192.0.2.250]) by mail-router.example.net (8.11.6/8.11.6) for <recipient@example.net> with ESMTPS id i7PK0sH7021929; Fri, Feb 15 2002 17:19:22 -0800 DKIM-Signature: v=1; a=rsa-sha256; s=rashani; d=newyork.example.com; t=1188964191; c=relaxed/simple; h=From:Date:To:VBR-Info:Message-Id:Subject; bh=sEu28nfs9fuZGD/pSr7ANysbY3jtdaQ3Xv9xPQtS0m7=; b=oINEO8hgn/gnunsg ... 9n9ODSNFSDij3= From: sender@newyork.example.com Date: Fri, Feb 15 2002 16:54:30 -0800 To: meetings@example.net Message-Id: <12345.abc@newyork.example.com> Subject: here's a sample