RFC 7444 INFORMATIONAL EMAIL · SECURITY LABELS · MESSAGE HEADERS

SIO-Label: Security Labels in Internet Email

A header field to mark email messages with sensitivity information for display and policy handling.

On rfc-editor.org ↗
PUBLISHED
February 2015
AUTHORS
K. Zeilenga, A. Melnikov
STREAM
INDEPENDENT
HEADER FIELD NAMES
SIO-Label, SIO-Label-History
STRUCTURED LABEL FORMATS
ESS, X.411, XML, or custom URI
COLOR FORMATS
Hex RGB (#rrggbb) or CSS named colors
REQUIRED PARAMETERS
Marking OR (type AND label)
DOI
10.17487/RFC7444

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Independent Submission                                       K. Zeilenga
Request for Comments: 7444                                   A. Melnikov
Category: Informational                                    Isode Limited
ISSN: 2070-1721                                            February 2015


                   Security Labels in Internet Email

Abstract

   This document describes a header field, SIO-Label, for use in
   Internet email to convey the sensitivity of the message.  This header
   field may carry a textual representation (a display marking) and/or a
   structural representation (a security label) of the sensitivity of
   the message.  This document also describes a header field, SIO-Label-
   History, for recording changes in the message's label.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This is a contribution to the RFC Series, independently of any other
   RFC stream.  The RFC Editor has chosen to publish this document 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 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7444.

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.

Table of Contents

   1. Introduction ....................................................2
      1.1. Relationship to Inline Sensitivity Markings ................3
      1.2. Relationship to Preexisting Security Label Header Fields ...4
      1.3. Relationship to Enhanced Security Services for S/MIME ......4
   2. Conventions Used in This Document ...............................5
   3. Overview ........................................................5
   4. The SIO-Label Header Field ......................................6
   5. The SIO-Label-History Header Field ..............................9
   6. IANA Considerations ............................................12
   7. Security Considerations ........................................12
   8. References .....................................................14
      8.1. Normative References ......................................14
      8.2. Informative References ....................................15
   Acknowledgements ..................................................16
   Authors' Addresses ................................................16

1.  Introduction

   A security label, sometimes referred to as a confidentiality label,
   is a structured representation of the sensitivity of a piece of
   information.  A security label can be used in conjunction with a
   clearance, a structured representation of what sensitive information
   a person (or other entity) is authorized to access, and a security
   policy to control access to each piece of information.  For instance,
   an email message could have an "EXAMPLE CONFIDENTIAL" label that
   requires the sender and the receiver to have a clearance granting
   access to information labeled "EXAMPLE CONFIDENTIAL".  X.841 [X.841]
   provides a discussion of security labels, clearances, and security
   policy.

   A display marking is a textual representation of the sensitivity of a
   piece of information.  For instance, "EXAMPLE CONFIDENTIAL" is a
   textual representation of the sensitivity.  A security policy can be
   used to generate display markings from security labels.  Display
   markings are generally expected to be prominently displayed whenever
   the content is displayed.

   Sensitivity-based authorization is used in networks that operate
   under a set of information classification rules, such as in
   government and military agency networks.  The standardized formats
   for security labels, clearances, security policy, and associated
   authorization models are generalized and can be used in non-
   government deployments where appropriate.

   Security labels may also be used for purposes other than
   authorization.  In particular, they may be used simply to convey the
   sensitivity of a piece information.  The security label could be
   used, for instance, to organize content in a content store.

   This document describes a protocol for conveying the sensitivity of a
   electronic mail message [RFC5322] as a whole.  In particular, this
   document describes a header field, SIO-Label, that carries a security
   label, a display marking, and display colors.  This document also
   describes a header field, SIO-Label-History, that records changes in
   the message's security label.

   This protocol is based in part upon "XEP-0258: Security Labels in
   XMPP" [XEP258].

1.1.  Relationship to Inline Sensitivity Markings

   In environments requiring messages to be marked with an indication of
   their sensitivity, it is common to place a textual representation of
   the sensitivity, a display marking, within the body to the message
   and/or in the Subject header field.  For instance, the authors often
   receives messages of the form:

   To: author <author@example.com>;
   From: Some One <someone@example.net>;
   Subject: the subject (UNCLASSIFIED)

   UNCLASSIFIED

   Text of the message.

   UNCLASSIFIED

   Typically, when placed in the body of the message, the marking is
   inserted into the content such that it appears as the first line(s)
   of text in the body of the message.  This is known as a FLOT (First
   Line(s) of Text) marking.  The marking may or may not be surrounded
   by other text indicating that the marking denotes the sensitivity of
   the message.  A FLOT may also be accompanied by a LLOT (Last Line(s)
   of Text) marking.  The message above contains a two-line FLOT and a
   two-line LLOT (in both cases, a line providing the marking and an
   empty line between the marking and the original content appear).

   Typically, when placed in the Subject of the message, the marking is
   inserted before or after the contents of the original Subject field;
   it is surrounded by parentheses or the like and/or separated from the
   content by white space.

   The particular syntax and semantics of inline sensitivity markings
   are generally a local matter.  This hinders interoperability within
   an organization wanting to take actions based upon these markings and
   hinders interoperability between cooperating organizations wanting to
   usefully share sensitivity information

   The authors expect that such markings will continue to be widely
   used, especially in the absence of ubiquitous support for a
   standardized header field indicating the sensitivity of the message.

   The authors hope that through the use of a formally specified header
   field, interoperability within organizations and between
   organizations can be improved.

1.2.  Relationship to Preexisting Security Label Header Fields

   A number of non-standard header fields, such as the X-X411 field, are
   used to carry a representation of the sensitivity of the message,
   whether a structured representation or textual representation.

   The authors hope that the use of preexisting (non-standard) header
   fields will be replaced, over time, with the use of the header field
   described in this document.

1.3.  Relationship to Enhanced Security Services for S/MIME

   Enhanced Security Services for S/MIME (ESS) [RFC2634] provides,
   amongst other services, signature services "for content integrity,
   non-repudiation with the proof of origin, and [securely] binding
   attributes (such as a security label) to the original content".

   While it may be possible to utilize the protocol described in this
   document concurrently with ESS, this protocol should generally be
   viewed as an alternative to ESS.

   It is noted that in ESS, the security label applies to MIME [RFC2045]
   content, where in this protocol, the label applies to the message as
   a whole.

   It is also noted that in ESS, security labels are securely bound to
   the MIME content through the use of digital signatures.  This
   protocol does not provide message-signing services and hence does not
   provide secure binding the label to the message, content integrity,
   or non-repudiation of the proof of origin.

   This protocol is designed for situations/environments where message
   signing is not necessary to provide sufficient security.

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 specifications in this document use the Augmented
   Backus-Naur Form (ABNF) as described in [RFC5234].

   The term "base64 encoding" is used to refer to the "Base 64 encoding"
   defined in Section 4 of [RFC4648].  The term "BER encoding" is used
   to refer to encoding per the Basic Encoding Rules (BER) as defined in
   [X.690].

3.  Overview

   A Mail User Agent (MUA) originating a message can, if so configured,
   offer the user a menu of sensitivities to choose from and, upon
   selection, insert the display marking, foreground and background
   colors, and security label parameters associated with that selection
   into the SIO-Label header field of the message.

   Mail Submission Agents (MSAs), Mail Transfer Agents (MTAs), and Mail
   Delivery Agents (MDAs) can then, if so configured, use the provided
   sensitivity information (or lack thereof) in determining whether to
   accept, forward, or otherwise act on the message as submitted.  These
   agents, hereafter referred to as Service Agents (SAs), can, if so
   configured, modify the sensitivity information of the message, such
   as replacing the security label and/or display marking with
   equivalent representations of the sensitivity of the message.  SAs
   that add, modify, or delete the SIO-Label header field SHOULD add an
   SIO-Label-History header.

   Receiving MUAs that implement this extension SHALL, when displaying
   the message, also prominently display the marking, if any, conveyed
   in the SIO-Label header field or, if policy-aware and configured to
   display locally generated markings, a marking generated by the
   conveyed label and the governing policy.  It is also desirable to
   display this marking in listings of messages.  In the case the
   conveyed marking is displayed, the marking SHOULD be displayed using
   the foreground and background colors conveyed in the header field.
   In the case the marking was generated from a conveyed label and the
   governing policy, the marking SHOULD be displayed using the
   foreground and background colors conveyed by the governing policy.

   While MUAs are not expected to make authorization decisions based
   upon values of the SIO-Label header field, MUAs can otherwise use the
   provided sensitivity information (or lack thereof) in determining how
   to act on the message.  For instance, the MUA may organize messages
   in its store of messages based upon the content of this header field.

4.  The SIO-Label Header Field

   The header field name is "SIO-Label", and its content is a set of
   key/value pairs, each referred to as a parameter.

   Formal header field syntax:

   sio-label = "SIO-Label:" [FWS] sio-label-parm-seq [FWS] CRLF

   sio-label-parm-seq = sio-label-parm
       [ [FWS] ";" [FWS] sio-label-parm-seq ]

   sio-label-parm = parameter

   where the parameter production is defined in [RFC2231], the FWS
   production is defined in [RFC5322], and the CRLF production is
   defined in [RFC5234].  It is noted that the productions defined in
   [RFC2231] rely on the ABNF in [RFC0822], which implicitly allows for
   white space in certain cases.  In particular, white space is
   implicitly allowed in the parameter production immediately before and
   after the "=".  It is also noted that [RFC2231] allows for quoted-
   string values (for parameter production) of substantial length, for
   string characters outside of US-ASCII, or for other such cases.
   Implementors should consult the referenced specifications for
   details.

   The "marking" parameter is a display string for use by
   implementations that are unable or unwilling to utilize the governing
   security policy to generate display markings.  The "marking"
   parameter SHOULD generally be provided in SIO-Label header fields.
   It ought only be absent where an SA relies on other SAs to generate
   the marking.

   The "fgcolor" and "bgcolor" parameters are tokens restricted to color
   production representing the foreground and background colors,
   respectively, for use in colorizing the display marking string.
   Their values are RGB colors in hexadecimal format (e.g., "#ff0000"),
   or one of the Cascading Style Sheets (CSS) color names (e.g., "red")
   given in named-color type below (the 16 HTML4 colors + "orange")
   [CSS3-Color].  The default foreground color is black.  The default
   background is white.  The "fgcolor" and "bgcolor" parameters SHALL be
   absent if the "marking" parameter is absent.  The HEXDIG production
   below is defined in [RFC5234].

   Formal color syntax:

   color = hex-color / named-color

   hex-color = "#" 6HEXDIG    ; Hex-encoded RGB

   named-color =
              "aqua" /
              "black" /
              "blue" /
              "fuschia" /
              "gray" /
              "green" /
              "lime" /
              "maroon" /
              "navy" /
              "olive" /
              "purple" /
              "red" /
              "silver" /
              "teal" /
              "white" /
              "yellow" /
              "orange" ; named colors

   The "type" parameter is a quoted string containing the string ":ess",
   the string ":x411", the string ":xml", or a URI [RFC3986] denoting
   the type and encoding of the "label" parameter.  The "label"
   parameter value is a quoted string.  The "type" parameter SHALL be
   present if the "label" parameter is present.  The "label" parameter
   SHALL be present if the "type" parameter is present.  When
   sensitivity-based authorization is performed, the absence of the
   "type" and "label" parameters indicates that the message is handled
   under default handling rules (e.g., as if no SIO-Label was present).

   The string ":ess" indicates that the "label" parameter value is the
   base64 encoding of the BER encoding of an ESS security label
   [RFC2634].

   ESS Label Example:

   SIO-Label: marking="EXAMPLE CONFIDENTIAL";
       fgcolor=black; bgcolor=red;
       type=":ess"; label="MQYGASkCAQM="

   The string ":x411" indicates that the "label" parameter value is the
   base64 encoding of the BER encoding of an X.411 security label
   [X.411].

   X.411 Label Example:

   SIO-Label: marking="EXAMPLE CONFIDENTIAL";
       fgcolor=black; bgcolor=red;
       type=":x411"; label="MQYGASkCAQM="

   The string ":xml" indicates that the "label" parameter value is the
   base64 encoding of a security label represented using [XML].  The XML
   prolog SHOULD be absent unless specifically required (such as when
   the character encoding is not UTF-8).  The particular flavor of
   security label representation is indicated by the root element name
   and its name space.

   XML Label Example:

   SIO-Label: marking="EXAMPLE CONFIDENTIAL";
       fgcolor=black; bgcolor=red;
       type=":xml";
       label*0="PFNlY0xhYmVsIHhtbG5zPSJodHRwOi8vZXhhbX";
       label*1="BsZS5jb20vc2VjLWxhYmVsLzAiPjxQb2xpY3lJ";
       label*2="ZGVudGlmaWVyIFVSST0idXJuOm9pZDoxLjEiLz";
       label*3="48Q2xhc3NpZmljYXRpb24+MzwvQ2xhc3NpZmlj";
       label*4="YXRpb24+PC9TZWNMYWJlbD4=";

   where the XML label, with new lines and white space added for
   readability, is:

   <SecLabel xmlns="http://example.com/sec-label/0">
       <PolicyIdentifier URI="urn:oid:1.1"/>
       <Classification>3</Classification>
   </SecLabel>

   The ":ess" and ":x411" formats SHOULD be used to represent ESS or
   X.411 security labels, respectively, instead of any direct XML
   representation of these formats.

   The header field SHALL minimally contain a "marking" parameter or
   contain both the "type" and "label" parameters.

   This header field may be extended to include additional parameters by
   future document formally updating (or replacing) this document.
   Implementations SHOULD ignore additional parameters they do not
   recognize.  This recommendation is not a mandate so as to allow
   agents to process a message with an SIO-Label header field with
   unrecognized parameters differently than a message with an SIO-Label
   header field without the unrecognized parameters.

   Each message SHALL contain zero or one SIO-Label header field.

   Extended Example:

   SIO-Label: marking*=us-ascii'en'EXAMPLE%20CONFIDENTIAL;
       fgcolor = black ; bgcolor = red ;
       type=":ess"; label*0="MQYG";
       label*1="ASkCAQM="

   The Extended Example is equivalent to the ESS Label Example above.

5.  The SIO-Label-History Header Field

   Any service agent MAY record label changes in an SIO-Label-History
   header.  This header field is intended to provide trace information
   (and only trace information).  For instance, it can be used to record
   the label change when an SIO-Label header is added, modified, or
   deleted by a service agent.  This field can be used in other
   situations as well.  For instance, a gateway that translates X.400
   messages to RFC 5322 mail can use this header field to record
   labeling changes made while translating a message.

   The SIO-Label-History header field is considered to be a trace field
   as defined in Section 3.6.7 of [RFC5322].

   The formal syntax of the SIO-Label-History header is the same as the
   SIO-Label, but with the following parameters:

   o  change - one of "add", "replace", "delete".

   o  changed-by - contains a string identifying the agent, commonly the
      agent's fully qualified domain name.

   o  changed-at - contains a date-time production, as specified in
      [RFC5322], representing the date and time the header was
      rewritten.

   o  changed-comment - contains a string containing a comment.

   o  marking, fgcolor, bgcolor, type, label - records the message's
      label information prior to adding, modifying, or deleting SIO-
      Label, using the same parameter syntax used for SIO-Label.  These
      parameters are absent when the change action is "add".

   o  new-marking, new-fgcolor, new-bgcolor, new-type, new-label -
      records the message's label information after adding, modifying,
      or deleting SIO-Label, using the same parameter syntax used for
      corresponding SIO-Label parameters.  These parameters are absent
      when the change type is "delete".

   The header field SHALL minimally contain the "change", "changed-by",
   and "changed-at" parameters.

   This header field can be extended to include additional parameters by
   future documents formally updating (or replacing) this document.

   Each message can contain zero or more SIO-Label-History header
   fields.  All SIO-Label-History header fields should immediately
   follow the SIO-Label header field, if any, and be grouped together.
   Additional SIO-Label-History header fields should be added
   immediately preceding any existing SIO-Label-History header fields.

   SIO Label History Add, Modify, Delete Example:

   SIO-Label-History: marking="EXAMPLE CONFIDENTIAL";
       fgcolor=black; bgcolor=red;
       type=":xml";
       label*0="PFNlY0xhYmVsIHhtbG5zPSJodHRwOi8vZXhhbX";
       label*1="BsZS5jb20vc2VjLWxhYmVsLzAiPjxQb2xpY3lJ";
       label*2="ZGVudGlmaWVyIFVSST0idXJuOm9pZDoxLjEiLz";
       label*3="48Q2xhc3NpZmljYXRpb24+MzwvQ2xhc3NpZmlj";
       label*4="YXRpb24+PC9TZWNMYWJlbD4=";
       change=delete;
       changed-by="delete.example.com";
       changed-at="18 Feb 2013 9:24 PDT";
       changed-comment="delete"
   SIO-Label-History: marking="EXAMPLE CONFIDENTIAL";
       fgcolor=black; bgcolor=red;
       type=":ess"; label="MQYGASkCAQM=";
       new-marking="EXAMPLE CONFIDENTIAL";
       new-fgcolor=black; new-bgcolor=red;
       new-type=":xml";
       new-label*0="PFNlY0xhYmVsIHhtbG5zPSJodHRwOi8vZXhhbX";
       new-label*1="BsZS5jb20vc2VjLWxhYmVsLzAiPjxQb2xpY3lJ";
       new-label*2="ZGVudGlmaWVyIFVSST0idXJuOm9pZDoxLjEiLz";
       new-label*3="48Q2xhc3NpZmljYXRpb24+MzwvQ2xhc3NpZmlj";
       new-label*4="YXRpb24+PC9TZWNMYWJlbD4=";
       change=replace;
       changed-by="modify.example.net";
       changed-at="18 Feb 2013 8:24 PDT";
       changed-comment="replaced with XML variant"
   SIO-Label-History: new-marking="EXAMPLE CONFIDENTIAL";
       new-fgcolor=black; new-bgcolor=red;
       new-type=":ess"; new-label="MQYGASkCAQM=";
       change=add;
       changed-by="add.example.net";
       changed-at="18 Feb 2013 7:24 PDT";
       changed-comment="added label"

6.  IANA Considerations

   The SIO-Label and SIO-Label-History header fields have been
   registered in the "Provisional Message Header Field Registry" in
   accordance with [RFC3864].

   Header field name: SIO-Label
   Applicable protocol: mail [RFC5322]
   Status: provisional
   Author/change controller: Kurt Zeilenga (kurt.zeilenga@isode.com)
   Specification document(s): RFC 7444

   Header field name: SIO-Label-History
   Applicable protocol: mail [RFC5322]
   Status: provisional
   Author/change controller: Kurt Zeilenga (kurt.zeilenga@isode.com)
   Specification document(s): RFC 7444

7.  Security Considerations

   Sensitive information should be appropriately protected (whether
   labeled or not).  For email messages, it is generally appropriate for
   the sending entity to authenticate the receiving entity and to
   establish transport-level security, including protective services for
   both data integrity and data confidentiality.  When a receiving
   entity makes authorization decisions based upon assertions of the
   sending entity, including assertions of identity, it is generally
   appropriate for the receiving entity to authenticate the sending
   entity.

   This document provides a facility for expressing the sensitivity of
   an email message.  The mere expression of actual sensitivity
   generally does not elevate the sensitivity of the message; however,
   expressions of sensitivities can themselves be regarded as sensitive
   information.  For instance, a marking of "BLACK PROJECT RESTRICTED"
   could disclose the existence of a sensitivity project.

   The SIO-Label header field expresses the sensitivity of the whole
   message, including the header and body.  This document does not
   provide a means to express the sensitivity of portions of an email
   message, such as the possibly different sensitivities of various MIME
   parts that the message may be composed of.  The approach used in this
   document favors simplicity and ease of use (i.e., a single expression
   of sensitivity) over the complexity and difficulty of marking and
   labeling portions of a message.

   The expressed sensitivity can be used in determining how to handle a
   message.  For instance, the value of the SIO-Label header field (or
   lack thereof) can be used to determine if it is appropriate to be
   forwarded to a particular entity and, if so, what minimum security
   services ought to be used in the forwarding exchange.  The mechanism
   for determining how to handle a message-based expressed sensitivity
   is beyond the scope of this document.

   The actual content may have more or less sensitivity than indicated
   by the security label.  Agents should avoid lowering security
   requirements for message exchange with a particular entity based upon
   conveyed sensitivity.

   This protocol does not itself provide message-signing services, such
   as used in providing message integrity protection, non-repudiation,
   and binding of attributes (such as the security label to the
   message).  While it possible that this protocol could be used with a
   general message-signing service, this document does not detail such
   use.

   While security label and display marking parameters are expected to
   express the same sensitivity, nothing in this specification ensures
   that the security label and display marking values express the same
   sensitivity.  For instance, an MUA could submit a message that
   contains a security label that expresses one sensitivity and a
   display marking with a different sensitivity, and by doing so,
   possibly cause an SA to inappropriately handle the message.  It is
   generally appropriate for each SA using the SIO-Label values to
   determine if the security label and display marking values express
   the same sensitivity and, if not, take appropriate action (such as
   rejecting the message).

   This document also provides a facility for expressing changes to the
   label of a message.  This is intended to be used for trace purposes
   only.  It is noted that the SIO-Label-History header field can
   include sensitive information and, as such, can be removed from the
   message when its inclusion would result in disclosure of
   inappropriate information.

8.  References

8.1.  Normative References

   [CSS3-Color] Celik, T. and C. Lilley, "CSS3 Color Module",
                W3C Candidate Recommendation
                CR-css3-color-20030514, May 2003,
                <http://www.w3.org/TR/2003/CR-css3-color-20030514>.

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

   [RFC2231]    Freed, N. and K. Moore, "MIME Parameter Value and
                Encoded Word Extensions: Character Sets, Languages, and
                Continuations", RFC 2231, November 1997,
                <http://www.rfc-editor.org/info/rfc2231>.

   [RFC2634]    Hoffman, P., Ed., "Enhanced Security Services for
                S/MIME", RFC 2634, June 1999,
                <http://www.rfc-editor.org/info/rfc2634>.

   [RFC3864]    Klyne, G., Nottingham, M., and J. Mogul, "Registration
                Procedures for Message Header Fields", BCP 90, RFC 3864,
                September 2004,
                <http://www.rfc-editor.org/info/rfc3864>.

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

   [RFC4648]    Josefsson, S., "The Base16, Base32, and Base64 Data
                Encodings", RFC 4648, October 2006,
                <http://www.rfc-editor.org/info/rfc4648>.

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

   [RFC5322]    Resnick, P., Ed., "Internet Message Format", RFC 5322,
                October 2008, <http://www.rfc-editor.org/info/rfc5322>.

   [X.411]      ITU-T, "Message Handling Systems (MHS) - Message
                Transfer System: Abstract Service Definition and
                Procedures", ITU-T Recommendation X.411, June 1999.

   [X.690]      ITU-T, "ASN.1 encoding rules: Specification of Basic
                Encoding Rules (BER), Canonical Encoding Rules (CER) and
                Distinguished Encoding Rules (DER)", ITU-T
                Recommendation X.690, November 2008.

   [XML]        Bray, T., Paoli, J., Sperberg-McQueen, C., Maler, E.,
                and F. Yergeau, "Extensible Markup Language (XML) 1.0
                (Fifth Edition)", W3C Recommendation REC-xml-20081126,
                November 2008,
                <http://www.w3.org/TR/2008/REC-xml-20081126>.

8.2.  Informative References

   [RFC0822]    Crocker, D., "STANDARD FOR THE FORMAT OF ARPA INTERNET
                TEXT MESSAGES", STD 11, RFC 822, August 1982,
                <http://www.rfc-editor.org/info/rfc822>.

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

   [X.841]      ITU-T, "Security information objects for access
                control", ITU-T Recommendation X.841, October 2000.

   [XEP258]     Zeilenga, K., "XEP-0258: Security Labels in XMPP", XEP
                XMPP Extension Protocols, April 2013.

Acknowledgements

   The authors appreciate the review, comment, and text provided by
   community members, including Dave Cridland, Brad Hards, Russ Housley,
   Steve Kille, Graeme Lunt, Alan Ross, Jim Schaad, and David Wilson.

Authors' Addresses

   Kurt Zeilenga
   Isode Limited

   EMail: Kurt.Zeilenga@isode.com


   Alexey Melnikov
   Isode Limited
   14 Castle Mews
   Hampton, Middlesex  TW12 2NP
   United Kingdom

   EMail: Alexey.Melnikov@isode.com

AI ELI5

On this page
PROBLEMOrganizations need to label email messages with their sensitivity level (e.g., Confidential, Internal Use Only) so people and mail systems know how to handle them. Many organizations add labels as text in the subject or message body, but this is informal and lacks interoperability. Some systems use proprietary header fields, creating incompatibility.
MECHANISMThis specification defines two header fields: SIO-Label conveys the sensitivity of a message as a display marking (text), foreground and background colors, and optionally a structured security label (ESS, X.411, or XML format); SIO-Label-History records changes made to the label as the message passes through the mail system.
STANDARDIZATIONMail systems can now standardly communicate message sensitivity in a format that both human users and automated systems can recognize, enabling consistent display of sensitivity markings, policy-based message handling, and audit trails of label changes.

§1Introduction

A security label is a structured representation of the sensitivity of information. Organizations that operate under information classification rules—such as government, military, and sensitive corporate networks—use security labels to control who can access what information. A display marking is the human-readable version, such as "CONFIDENTIAL" or "INTERNAL USE ONLY."

Internet email messages frequently need to carry sensitivity information, but standards for doing so have been missing. Many organizations currently place the sensitivity marking as plain text in the Subject line or at the start and end of the message body, a practice known as inline sensitivity markings (FLOT/LLOT markings). Some mail systems use non-standard header fields like X-X411.

This specification defines a standard header field, SIO-Label, to convey the sensitivity of an email message as a whole. It can carry a display marking (textual), foreground and background colors for displaying the marking, and/or a structured security label (in ESS, X.411, or XML format). The specification also defines SIO-Label-History to record changes made to the label as the message traverses the mail system.

Email should be marked with how secret it is, like a letter stamped confidential. This describes a standard way to add that mark to any email so mail programs and people see it.

§2How SIO-Label Is Used

A Mail User Agent (MUA) composing a message can offer the user a menu of sensitivities to choose from and insert the corresponding display marking, colors, and security label into the SIO-Label header. Mail Transfer Agents (MTAs) and Mail Delivery Agents (MDAs) can then examine the header to decide whether to accept, forward, or modify the message. A mail agent handling the label MAY add an SIO-Label-History header to record the change.

When displaying the message, a receiving MUA SHALL prominently display the marking (either the one conveyed in the header or one generated locally from the label and a security policy) using the specified foreground and background colors. MUAs can also use the sensitivity information to organize messages in local storage or make other handling decisions, though they are not expected to enforce authorization based on the label.

This approach supports environments where messages need clear sensitivity indicators visible to both automated systems and users. Unlike Enhanced Security Services for S/MIME (which securely binds labels to content through digital signatures), this simple mechanism assumes message signing is not necessary.

When you write an email, you pick how secret it is. The mail system sees that marking and shows it to the person who reads it. If the mail system changes the marking, it keeps track of who changed it and when.

§3The SIO-Label Header Field

The SIO-Label header field contains a sequence of parameters separated by semicolons, following the syntax defined in RFC 2231.

The marking parameter is the human-readable sensitivity label as a text string (e.g., "EXAMPLE CONFIDENTIAL"). It SHOULD generally be present. The fgcolor and bgcolor parameters specify foreground and background colors for displaying the marking, as either RGB hex values (e.g., "#ff0000" for red) or CSS color names (e.g., "red", "blue", "white"). Default colors are black text on white background. These color parameters are required if marking is present.

The type parameter is a quoted string indicating the format and encoding of the label parameter. Four type values are defined: ":ess" for base64-encoded ESS security labels (from RFC 2634); ":x411" for base64-encoded X.411 security labels; ":xml" for base64-encoded XML security labels; or a URI denoting a custom type. The label parameter contains the encoded structured security label. The type and label parameters must appear together, or both must be absent.

A message must contain zero or one SIO-Label header field. The header field must contain either a marking parameter or both type and label parameters (or both marking and label).

The header has a marking (like the word Confidential), colors (like black and red), and optionally a structured label (a computer-readable format of the same sensitivity). All parts are optional as long as there is something there.

Example SIO-Label header with ESS format
SIO-Label header example
SIO-Label: marking="EXAMPLE CONFIDENTIAL";
            fgcolor=black; bgcolor=red;
            type=":ess"; label="MQYGASkCAQM="

§4The SIO-Label-History Header Field

The SIO-Label-History header field is a trace header (as defined in RFC 5322) that records changes made to the SIO-Label header. Each SIO-Label-History entry tracks one modification. Multiple SIO-Label-History headers may appear; new entries should be inserted immediately before existing ones (newest first).

Each history entry must contain the change parameter ("add", "replace", or "delete"), changed-by (identifying the mail agent that made the change), and changed-at (a date-time when the change was made). An optional changed-comment may provide context.

When the change is "add", the entry records the new-marking, new-fgcolor, new-bgcolor, new-type, and new-label (the label information added). When the change is "replace", it records both the old and new values. When the change is "delete", it records the old values being removed. This allows mail administrators and users to audit how sensitivity labels have been modified as messages pass through the system.

When a mail server changes the sensitivity marking, it writes down who changed it, when, and what the old and new markings are. This makes an audit trail so you can see who touched the marking and when.

Example of SIO-Label-History tracking a label change
SIO-Label-History audit example
SIO-Label-History: marking="EXAMPLE CONFIDENTIAL";
                   fgcolor=black; bgcolor=red;
                   type=":ess"; label="MQYGASkCAQM=";
                   new-marking="EXAMPLE CONFIDENTIAL";
                   new-fgcolor=black; new-bgcolor=red;
                   new-type=":xml"; new-label*0="PFNlY...";
                   change=replace;
                   changed-by="gateway.example.com";
                   changed-at="18 Feb 2015 08:24 PDT";
                   changed-comment="converted from ESS to XML format"

§5Security Considerations

Sensitive information should be appropriately protected by transport-level security, authentication, and authorization mechanisms, independent of sensitivity labels. The label itself does not provide protection; it is merely an expression of sensitivity for handling decisions and display purposes.

The marking itself might be sensitive (e.g., "BLACK PROJECT RESTRICTED" discloses the existence of a classified project). The label applies to the entire message (header and body together), not to individual MIME parts, reflecting a design choice favoring simplicity over complexity.

Mail systems using the header to make authorization decisions should authenticate the sending entity and verify that the label authenticity. However, unlike ESS, this mechanism provides no message-signing services and hence no secure binding of the label to the message content, no content integrity protection, and no non-repudiation. It is intended for environments where message signing is not necessary.

The SIO-Label-History header may contain sensitive information (e.g., revealing previous classification levels) and should be removed when its inclusion would cause inappropriate disclosure. The specification recommends that agents verify consistency between the security label and display marking, rejecting messages with inconsistent values.

The marking is just information; it does not protect the message by itself. Real security needs encryption and authentication. The marking can itself be secret, so you might remove the history headers before sending the message to someone outside your organization.

§6References