RFC 7912
Message Authorizing Email Header Field and Its Use for the Draft and Release Procedure
RFC 7912: Message Authorizing Email Header Field and Its Use for the Draft and Release Procedure π
okay bestie, RFC 7912 is an Informational doc π from the Independent Submission stream, so it's published for information and isn't an Internet Standards Track spec β¨. A. Melnikov from Isode Ltd wrote it in June 2016, and its ISSN is 2070-1721. The title block has no Obsoletes or Updates line π, so nothing is listed as replaced or changed by it.
Table of Contents πΈ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions Used in This Document . . . . . . . . . . . . . . 3
3. Draft and Release Procedure . . . . . . . . . . . . . . . . . 3
3.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Handling of Initial Message Submission by the MSA . . . . 3
3.3. Review by Authorizing User(s) . . . . . . . . . . . . . . 4
3.3.1. Processing of Encrypted Messages . . . . . . . . . . 5
3.3.2. Authorizing S/MIME Signatures . . . . . . . . . . . . 5
3.4. Role of Other Messaging Agents at the Sender's Domain . . 6
3.4.1. MDA at the Sender's Domain . . . . . . . . . . . . . 6
3.4.2. Border MTA at the Sender's Domain . . . . . . . . . . 6
4. MMHS-Authorizing-Users Header Field . . . . . . . . . . . . . 6
5. Updated MIXER Mapping . . . . . . . . . . . . . . . . . . . . 7
5.1. Mapping from RFC 5322/MIME to X.400 . . . . . . . . . . . 7
5.2. Mapping from X.400 to RFC 5322/MIME . . . . . . . . . . . 7
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
7. Security Considerations . . . . . . . . . . . . . . . . . . . 8
7.1. Forged Header Fields . . . . . . . . . . . . . . . . . . 9
7.2. Intentionally Malformed Header Fields . . . . . . . . . . 9
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Normative References . . . . . . . . . . . . . . . . . . 9
8.2. Informative References . . . . . . . . . . . . . . . . . 10
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 11
Abstract π¦
this doc is about a Military Message Handling System (MMHS) message that one user composes, which only gets released to the mail transfer system once one or more Authorizing Users approve it by adding the MMHS-Authorizing-Users header field π
. The message can optionally be signed by the sender and/or reviewer, so recipients can check both the original signature (if there is one) and the review signatures π₯.
Status of This Memo β¨
This document is not an Internet Standards Track specification π. It's published for informational purposes.
This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor chose to publish it at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 7841 π.
Information about the current status of this document, any errata, and how to give feedback on it can be found at http://www.rfc-editor.org/info/rfc7912 π.
Copyright Notice π«Ά
Copyright (c) 2016 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, because they describe your rights and restrictions with respect to this document π.
1. Introduction β¨
okay so in some secure environments, email can't be released to the Message Transfer System (MTS) π. That means it can't reach recipients unless one or more Authorizing Users (for example, Releasing Officers or Release Authorities) sign off on it first π. This doc explains how that gate can be built using an extra Internet Email [RFC5322] header field, which can optionally be protected with S/MIME [RFC5750] [RFC5751] or DomainKeys Identified Mail (DKIM) [RFC6376] π.
It describes the whole procedure for how an email composed by one user gets released to the MTS once one or more Authorizing Users approve it and optionally countersign it π. The MMHS-Authorizing-Users header field (see Section 4) shows which user(s) authorized the message π. If it's S/MIME signed, recipients can verify both the original signature (if any) and the counter signatures β¨. The sender's original S/MIME signature (if any) is not affected by any extra S/MIME review signatures, so it stays intact π¦.
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 formal syntax uses the Augmented Backus-Naur Form (ABNF) [RFC5234] notation, including the core rules defined in Appendix B of RFC 5234 [RFC5234]. Terms that aren't defined in this document are taken from [RFC5322] π .
3. Draft and Release Procedure π§
3.1. Terminology π
- Drafter: any email user who composes a message (Draft Message) that needs authorization before it's released to its intended recipients βοΈ.
- Authorizing User (also Releaser or Authorizer): the mailbox of a user or a group of users who have to inspect and authorize the release of a Draft Message before it can be sent π. An organization can require more than one Authorizing User to authorize the release of a Draft Message π.
3.2. Handling of Initial Message Submission by the MSA π·
The original email to be sent doesn't include the MMHS-Authorizing-Users header field π. It may or may not include the sender's S/MIME signature.
The message is first submitted over SMTP [RFC6409] π¨. How it gets to the Authorizing User(s) isn't specified in this document, so that part is up to you π€·ββοΈ. One option is for the Message Submission Agent (MSA) to redirect every email that isn't addressed to Authorizing Users and wasn't submitted by Authorizing Users to a preconfigured mailbox (or mailboxes) that Authorizing User(s) can access π¬. Another option is for the MSA to redirect every email that lacks the MMHS-Authorizing-Users header field and/or the matching S/MIME review signatures to a preconfigured mailbox (or mailboxes) that Authorizing User(s) can access π.
To stop a malicious sender from getting around or messing with the Draft and Release procedure, the MSA MUST check that the MMHS-Authorizing-Users header field (if present) is syntactically valid and contains the email addresses of entities allowed to act as Authorizing Users π. When review signatures are used, it also checks that every entity listed has at least one matching review signature (or signature) that is valid π.
3.3. Review by Authorizing User(s) π
Each user agent (UA) used by an authorized user MUST perform the steps below π . If there are multiple Authorizing Users, the whole sequence is repeated for each one π.
- Verify where the message came from (the From/Sender header fields) π΅οΈββοΈ. The exact mechanism for this is out of scope for this document. One example is verifying the S/MIME signature, making sure the signature protects all header fields (that is, the message is wrapped by message/rfc822, as described in Section 3.1 of [RFC5751]) and that it matches the sender of the message, as described in [RFC5750]. Another example is verifying a DKIM signature [RFC6376] (added by the Drafter's Mail User Agent (MUA) or MSA) that covers the From/Sender header fields π¦.
- Check whether the message already contains the
MMHS-Authorizing-Usersheader field with the email address of the Authorizing User π. (This can happen, for example, if the email system is misconfigured and contains a loop, or if a malicious sender or attacker is trying to mess with the authorization procedure π.) If the message doesn't contain the Authorizing User's email address in theMMHS-Authorizing-Usersheader field, move on to the next step. If theMMHS-Authorizing-Usersheader field does contain the Authorizing User's email address, verify that the field is valid (for example, by checking the S/MIME signature/review signature or the DKIM signature). Also verify that the email address associated with the signature matches the Authorizing User's email address. If the validity of theMMHS-Authorizing-Usersheader field can be verified, go to step 5 below. Otherwise, return the message to the sender (bounce) or redirect it to a designated abuse mailbox π¨. - Let the Authorizing User review the content of the message π. Some of the checks can be automated (for example, searching for keywords). See Section 3.3.1 for additional considerations π§ . If, based on the check, the Authorizing User is happy to release the message to the MTS (or to the next Authorizing User, if multiple authorizations are required), the UA SHOULD let the Authorizing User protect additions to the
MMHS-Authorizing-Usersheader field π. For example, it can allow adding an S/MIME review signature (if S/MIME is used to protect theMMHS-Authorizing-Usersheader field; see Section 3.3.2 for more details) β¨. If the Authorizing User wants to reject the message, it SHOULD be returned to the Drafter with an explanatory note, or it MAY be discarded π ββοΈ. The Authorizing User can also choose to forward the message to another Authorizing User for additional approval, or become a new Drafter of the message πββοΈ. If the Authorizing User becomes the new Drafter, its UA MUST strip any existing email addresses from theMMHS-Authorizing-Usersheader field π§Ή. - If there's an existing
MMHS-Authorizing-Usersheader field that already contains the Authorizing User's email address, skip this step π. Otherwise, insert a newMMHS-Authorizing-Usersheader field (if one is absent) containing the Authorizing User's email address, or append the Authorizing User's email address to the end of the existingMMHS-Authorizing-Usersheader field π. - The (possibly) updated email message is either released to the MTS or sent to the next Authorizing User, depending on the email system configuration π. Heads up, though: if the Authorizing User changes the message in a way that invalidates existing S/MIME or DKIM signature(s), the Authorizing User becomes the Drafter and needs to reapply any protections ππ
3.3.1. Processing of Encrypted Messages π
Okay so any encrypted message sent where the Draft and Release procedure is in force also needs to be encrypted to all the Authorizing Users, so they can actually review it. No review, no release, bestie π . If a User Agent used by an Authorizing User can't decrypt the message, it SHOULD notify the sender (which can be the Drafter or a previous Authorizing User) about the problem using a non-delivery Delivery Status Notification (DSN) or through some other means. The ciphertext that can't be decrypted by the Authorizing User MAY be included in the notification to aid debugging π. Why wouldn't you notify the sender? Good question π. It's to avoid Denial-of-Service attacks. Imagine an attacker finds a way to inject fake messages with encryption that doesn't validate, just to overflow the sender's INBOX. Not cute π.
3.3.2. Authorizing S/MIME Signatures βοΈ
If S/MIME were not used, the Authorizing User can become the original signer of the message π¦.
If a message is signed with multiple signatures (for example, using different cryptographic algorithms, as described in [RFC5752]), all of the signatures that can be verified by an Authorizing User SHOULD be signed with a review signature (authorizing signatures) β¨. A recipient of the message can consider any chain of review signatures that matches MMHS-Authorizing-Users header field values as valid, but only if all signatures in the chain are verified. It's giving "trust, but verify" π§. All of the signatures that cannot be verified MUST be stripped by the Authorizing User Agent π§Ή.
When triple wrapping [RFC2634] is used, authorizing signatures are applied to the outer level, so that they can be verified by Message Transfer Agents (MTAs) without needing to decrypt the content. Main character energy for the outer layer π.
3.4. Role of Other Messaging Agents at the Sender's Domain πΈ
3.4.1. MDA at the Sender's Domain
If a message being sent is going to be delivered within the sender's domain, Message Delivery Agents (MDAs) are responsible for making sure the message was properly authorized by Authorizing User(s), as determined by the sender's domain email system configuration. They check the presence and validity of the MMHS-Authorizing-Users header field in the message, plus the validity of the signatures on the message π.
Note that the above requirements don't apply to direct delivery to any user designated as an Authorizing User π«Ά.
3.4.2. Border MTA at the Sender's Domain πͺ
The sender's domain border MTAs are responsible for making sure that all messages leaving the sender's domain were properly authorized by the Authorizing User(s), as determined by the sender's domain email system configuration. They verify the presence and validity of the MMHS-Authorizing-Users header field in outgoing messages, as well as the validity of the associated signatures on the message. Gatekeeper behavior, iconic π
.
4. MMHS-Authorizing-Users Header Field π
The MMHS-Authorizing-Users header field specifies the list of Authorizing Users (or entities(*)) that countersigned this email message (for example, using S/MIME) before it was authorized for release to the MTS. Each user/entity is described by the email address π§.
(*) Note that in some environments, identities of Authorizing Users are required to be hidden from recipients of email messages. So, upon receipt, MMHS-Authorizing-Users might contain an email address associated with a group of possible users. Such email addresses need to have signatures that don't disclose group membership π.
The MMHS-Authorizing-Users header field specified in this document MUST NOT appear more than once in message headers. An email message that contains multiple MMHS-Authorizing-Users header fields is malformed, no cap π. An agent processing such a malformed message SHOULD either return it to the sender (if possible) or fix the message so that it contains only one copy of the header field π οΈ.
MMHS-Authorizing-Users = "MMHS-Authorizing-Users:"
mailbox-list CRLF
mailbox-list = <Defined in RFC 5322>
5. Updated MIXER Mapping π¦
This section provides an updated version of the MIXER mapping specified in [RFC2156] for MMHS applications β¨.
5.1. Mapping from RFC 5322/MIME to X.400
In the absence of the MMHS-Authorizing-Users header field, the From and Sender header fields are mapped to their X.400 equivalents as specified in [RFC2156].
If the MMHS-Authorizing-Users header field is present:
- If the Sender header field is present, it is mapped to
IPMS.Heading.originator. Otherwise, the first From header field address is mapped toIPMS.Heading.originator. - Map the From header field address(es) and the
MMHS-Authorizing-Usersheader field address(es) toIPMS.Heading.authorizing-users, skipping the first From header field address if it was mapped toIPMS.Heading.originator.
5.2. Mapping from X.400 to RFC 5322/MIME
Mapping from X.400 to the Internet is controlled by whether or not a particular message is considered a military message. A message is considered a military message (as defined by ACP 123 [ACP123] and also specified in STANAG 4406 [STANAG-4406]) if there are any MMHS heading extensions present. Alternatively, this MAY be done by configuration (i.e., all messages can be considered military messages) ποΈ.
For non-military messages, mapping from X.400 as specified in [RFC2156] is used.
For military messages, the following mapping is used:
IPMS.Heading.originatoris mapped to the From header field.- The
IPMS.Heading.authorizing-usersis mapped to theMMHS-Authorizing-Usersheader field.
6. IANA Considerations π
IANA has added the MMHS-Authorizing-Users header field specified in Section 4 to the "Provisional Message Header Field Names" registry, defined by "Registration Procedures for Message Header Fields" [RFC3864]. The registration template is as follows π:
Header field name: MMHS-Authorizing-Users
Applicable protocol: mail ([RFC5322])
Status: provisional
Author/Change controller: Alexey Melnikov <alexey.melnikov@isode.com>
Specification document(s): RFC 7912
Related information:
7. Security Considerations π¨
Okay, this section is serious, so read it carefully bestie. Security is not the place for vibes-only π€.
In some military environments, the identities of Authorizing Users are required to be hidden from recipients of email messages. This can be accomplished by using a group address for the MMHS-Authorizing-Users. In this way, the recipient will know that it was released by an Authorizing User in that group, but the recipient will not know which one of them took the action π«£.
For those organizations that do not wish to disclose the Authorizing Users' group membership, care must also be taken to ensure that the information included in the certificate used for signing email messages does not disclose individuals in the group π.
Further security considerations are described in subsections of this section.
7.1. Forged Header Fields π΅οΈ
A malicious sender may add or change an MMHS-Authorizing-Users header field to bypass or alter the message authorization procedure invoked for messages with no MMHS-Authorizing-Users header field. For this reason, it is important for agents and clients that rely on the validity of the MMHS-Authorizing-Users header field to also verify the review signature (or a similar protection mechanism) that confirms that a particular person or entity authorized release of a message. Don't trust the header alone, periodt π«.
7.2. Intentionally Malformed Header Fields π
It is possible for an attacker to add an MMHS-Authorizing-Users header field that is extraordinarily large or otherwise malformed, in an attempt to discover or exploit weaknesses in the header field parsing code. Implementations MUST thoroughly verify all such header fields received from MTAs and be robust against intentionally as well as unintentionally malformed header fields. Parsers, stay strong πͺ.
8. References π
8.1. Normative References
[ACP123] CCEB, "Common Messaging strategy and procedures", ACP 123
(B), May 2009.
[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>.
[RFC2156] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay):
Mapping between X.400 and RFC 822/MIME", RFC 2156,
DOI 10.17487/RFC2156, January 1998,
<http://www.rfc-editor.org/info/rfc2156>.
[RFC2634] Hoffman, P., Ed., "Enhanced Security Services for S/MIME",
RFC 2634, DOI 10.17487/RFC2634, June 1999,
<http://www.rfc-editor.org/info/rfc2634>.
[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>.
[RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322,
DOI 10.17487/RFC5322, October 2008,
<http://www.rfc-editor.org/info/rfc5322>.
[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,
<http://www.rfc-editor.org/info/rfc5750>.
[RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
Mail Extensions (S/MIME) Version 3.2 Message
Specification", RFC 5751, DOI 10.17487/RFC5751, January
2010, <http://www.rfc-editor.org/info/rfc5751>.
[RFC6376] Crocker, D., Ed., Hansen, T., Ed., and M. Kucherawy, Ed.,
"DomainKeys Identified Mail (DKIM) Signatures", STD 76,
RFC 6376, DOI 10.17487/RFC6376, September 2011,
<http://www.rfc-editor.org/info/rfc6376>.
[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>.
8.2. Informative References
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864,
DOI 10.17487/RFC3864, September 2004,
<http://www.rfc-editor.org/info/rfc3864>.
[RFC5752] Turner, S. and J. Schaad, "Multiple Signatures in
Cryptographic Message Syntax (CMS)", RFC 5752,
DOI 10.17487/RFC5752, January 2010,
<http://www.rfc-editor.org/info/rfc5752>.
[STANAG-4406]
NATO, "STANAG 4406 Edition 2: Military Message Handling
System", STANAG 4406 Ed. 2, March 2005.
Acknowledgements π«Ά
Many thanks to Steve Kille, Jim Schaad, Russ Housley, David Wilson, Chris Bonatti, and Sean Turner for the reviews and text they provided. The queens π.
Some text in this document was copied from RFC 7001 π.
Author's Address π
Alexey Melnikov
Isode Ltd
14 Castle Mews
Hampton, Middlesex TW12 2NP
United Kingdom
Email: Alexey.Melnikov@isode.com
π¦ where this page comes from
- ietf: rfc7912 2016-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms