Security Labels in Internet Email Isode LimitedKurt.Zeilenga@isode.comIsode Limited5 Castle Business Village36 Station RoadHamptonMiddlesexTW12 2BXUKAlexey.Melnikov@isode.comemailheader fieldsESSSecurity LabelConfidential LabelMessage SensitivityThis document describes a header field, SIO-Label, for use in Internet Mail to convey the sensitivity of the
message. This header field which 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.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 information sensitivities 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
a EXAMPLE CONFIDENTIAL label, and hence requiring the sender and the receiver to have a clearance granting
access to EXAMPLE CONFIDENTIAL labeled information. 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 which operate under a set of information classification
rules, such as in government military agency networks. The standardized formats for security labels, clearances,
and 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 , as a whole. In particular, this document describes a header field, SIO-Label, to carry a
security label, a display marking, and display colors. This document also describes a header field,
SIO-Label-History, to record changes in the message's security label.This protocol is based in part upon Security Labels in XMPP protocol.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: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 of 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 the marking denotes the
sensitivity of the message. A FLOT may also 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 a empty
line between the marking and the original content).Typically, when placed in the Subject of the message, the marking is inserted before or after the original
subject field contents surrounded with by parentheses or the like, and/or separated from the content by white
space.The particulars syntax and semantics of inline sensitivity markings is 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 informationThe authors expect such markings to be continued to widely used, especially in absence of ubiquitous support
for a standardized header field indicating the sensitivity of the message.The authors hope that through the use of standardized header field, interoperability within organizations and
between organizations can be improved. 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 the use of non-standard header fields will be replaced, over time, with use of the header
field described in this document. Enhanced Security Services for S/MIME (ESS) 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 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
securely binding the label to the message, or for content integrity, or for non-repudiation of the proof of
origin.This protocol is designed for situations/environments where message signing is not necessary to provide
sufficient security.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 .The formal syntax specifications in this document use the Augmented Backus-Naur Form (ABNF) as described in
.The term "base64 encoding" is used to refer to the Base 64 encoding defined in Section 4 of . The term "BER encoding" is used to refer to encoding per the Basic Encoding Rules (BER) as
defined in .A Mail User Agent (MUAs) originating a message can, if so configured, offer the user with 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) then can, if so
configured, use the provided (or lack thereof) sensitivity information in determining whether to accept,
forward, or otherwise act on the message as submitted. These agents, here after 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 an equivalent representations of the sensitivity of the message. SAs which add
or modify or delete the SIO-Label header field SHOULD add an SIO-Label-History header.Receiving MUAs which 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, marking SHOULD be
displayed using the foreground and background colors conveyed in the header field. In the case the marking was
generated from 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 (or lack thereof) sensitivity information 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.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:where the parameter production is defined in , the FWS production are defined in , and the CRLF production is defined in . It is noted that the RFC
2231 productions rely on ABNF 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 RFC 2231 allows for quoted-string values (of the parameter production) of substantial
length and for string characters outside of US-ASCII, or other such cases. Implementors should consult the
referenced specifications for specifics.The "marking" parameter is a display string for use by implementations which 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 SA 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 CSS color names (e.g., "red") given in named-color
type below (the 16 HTML4 colors + "orange") . 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 Formal color syntax:The "type" parameter is a quoted-string containing the string ":ess" or the string ":x411" or the string ":xml"
or a URI denoting the type and encoding of "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. The absence of the "type" and "label" parameters
indicates the message is handled, where sensitivity-based authorization is performed, under default handling
rules (e.g., as if no SIO-Label was present).The string ":ess" indicates the "label" parameter value is the base64 encoding of the BER encoding of an ESS
security label . ESS Label Example:The string ":x411" indicates the "label" parameter value is the base64 encoding of the BER encoding of an X.411
security label .X.411 Label Example:The string ":xml" indicates the "label" parameter value is the base64 encoding of a security label represented
using . 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.The ":ess" and ":x411" formats SHOULD be used represent ESS or X.411 security labels, respectively, instead
of any direct XML representation of these formats.XML Label Example: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-header field with
unrecognized header fields differently than a message less those unrecognized header fields. Each message SHALL contain zero or one SIO-Label header field.Extended Example:The Extended Example is equivalent to the ESS Label Example above.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, modify, or deleted by an service agent. This field use can be used in other
sitations as well. For instance, an X.400 to Internet messagging gateway can use this header field to record
labeling changes made while translating a message.The formal syntax of the SIO-Label-History header is the same as the SIO-Label, but with parameters as
discussed herechange - one of "add", "replace", "delete".changed-by - contains a string identify the agent, commonly the agent's fully qualified domain name.changed-at - contains a date-time production, as specified in representing the date and time the header was rewritten.changed-comment - contains a string containing a comment.marking, fgcolor, bgcolor, type, label - records the message's label information prior to add, modify, delete
of SIO-Label, using same parameter syntax used of SIO-Label. These parameters are absent when the change action
is add.new-marking, new-fgcolor, new-bgcolor, new-type, new-label - records the message's label information after add,
modify, delete of SIO-Label, using 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 document 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 the SIO-Label header field, if any, and be grouped together. Additional
SIO-Label-History header fields should be added immediately preceeding any existing SIO-Label-History header
fields.SIO Label History add, modify, delete example:IANA is requested to add, as detailed below, the SIO-Label and SIO-Label-History header fields to the
"Permanent Message Header Field Registry", defined by Registration Procedures for Message Header Fields . Header field name: SIO-Label Applicable protocol: mail
Status: informational Author/change controller: Kurt Zeilenga (kurt.zeilenga@isode.com)
Specification document(s): this document Header field name: SIO-Label-History Applicable protocol: mail
Status: informational Author/change controller: Kurt Zeilenga (kurt.zeilenga@isode.com)
Specification document(s): this documentSensitive 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 both data integrity and data confidential protective services. Where a receiving
entity to make 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 of a 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. This approach used
in this favors simplicity and ease of use of a single expression of sensitivity over the complexity and
difficultly of use of portion marking and labeling.The expressed sensitivity can be used in determining how to handle a message. For instance, the value of the
SIO-Label header (or lack thereof) field can be used to determine if it appropriate to be forwarded to a
particular entity and, if so, what the minimum security services are that which 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 be 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 a used in providing message integrity
protection, non-repudiation, and binding of attributes, such 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 which contains security label which expresses one sensitivity and a
display marking a different sensitivity, and by doing so, possibly cause an SA to inappropriately handle the
message. It is generally appropriate for each SA making use of 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 this SIO-Label-History header field can include sensitive
information and, as such, can be removed from the message where its inclusion would result in an inapprorpriate
information disclosure.Extensible Markup Language (XML) 1.0 (Fifth Edition)Message Handling Systems (MHS) - Message Transfer System: Abstract Service Definition and
ProceduresInternational Telephone and Telegraph Consultative CommitteeASN.1 encoding rules: Specification of basic encoding Rules (BER), Canonical encoding rules (CER) and
Distinguished encoding rules (DER)International Telephone and Telegraph Consultative CommitteeCSS3 Color ModuleSecurity information objects for access controlInternational Telephone and Telegraph Consultative CommitteeXEP-0258: Security Labels in XMPPXMPP Standards FoundationThe 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.