Internet DRAFT - draft-schaad-mile-iodef-plasma
draft-schaad-mile-iodef-plasma
MILE J. Schaad
Internet-Draft Soaring Hawk Consulting
Intended status: Standards Track February 11, 2014
Expires: August 15, 2014
Plasma Protected IODEF
draft-schaad-mile-iodef-plasma-00.txt
Abstract
The Incident Object Description Exchange Format (IODEF) defines a XML
representation for information about computer security incidents.
The driver for the standardization effort for IODEF is the desire to
share the information as part of the cybersecurity response. As the
security considerations of RFC5070 notes, the data can be sensitive
and should only be disclosed to appropriate parties. This document
describes how to use the Plasma policy enforcement model to ensure
access to the IODEF data follows the appropriate policies in a
distributed environment and independent of the transports used to
share the information.
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 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 August 15, 2014.
Copyright Notice
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
Schaad Expires August 15, 2014 [Page 1]
Internet-Draft Plasma Protected IODEF February 2014
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Terminology . . . . . . . . . . . . . . . . 3
2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Cybersecurity Information Sharing . . . . . . . . . . . . 4
2.1.1. Actors . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.2. Plasma and the Traffic Light Protocol . . . . . . . . 5
2.1.3. Topologies . . . . . . . . . . . . . . . . . . . . . 5
2.1.4. Requirements for Strong Policy Enforcement on
Cybersecurity Information . . . . . . . . . . . . . . 6
2.2. PoLicy enhAnced Secure eMAil (Plasma) . . . . . . . . . . 6
2.2.1. Benefits of Policy Enforcement on Cybersecurity
Information Sharing . . . . . . . . . . . . . . . . . 7
2.2.2. Plasma Policies and Decisions . . . . . . . . . . . . 8
2.3. Plasma and IODEF . . . . . . . . . . . . . . . . . . . . 8
2.4. Plasma and Layered Application Design . . . . . . . . . . 11
3. The Plasma Protected IODEF Data Model . . . . . . . . . . . . 12
3.1. PlasmaToken Class . . . . . . . . . . . . . . . . . . . . 12
3.1.1. EncryptedDataHashs Class . . . . . . . . . . . . . . 13
4. Plasma Service Request/Response Messages . . . . . . . . . . 14
4.1. Create IODEF Documents Request . . . . . . . . . . . . . 14
4.2. Create IODEF Document Response . . . . . . . . . . . . . 15
4.3. Read IODEF Document Request . . . . . . . . . . . . . . . 16
4.4. Read IODEF Document Response . . . . . . . . . . . . . . 17
5. Processing Rules for protected IODEF . . . . . . . . . . . . 18
5.1. Creating Protected IODEF data . . . . . . . . . . . . . . 18
5.2. Receiving Protected IODEF data . . . . . . . . . . . . . 18
6. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 20
7. XML Schema . . . . . . . . . . . . . . . . . . . . . . . . . 22
7.1. IODEF Document with encrypted classes . . . . . . . . . . 22
7.2. Plasma Token . . . . . . . . . . . . . . . . . . . . . . 23
8. Mandatory Algorithms . . . . . . . . . . . . . . . . . . . . 25
9. Security Considerations . . . . . . . . . . . . . . . . . . . 25
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 25
11.1. Normative References . . . . . . . . . . . . . . . . . . 25
11.2. Informative References . . . . . . . . . . . . . . . . . 26
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 26
Schaad Expires August 15, 2014 [Page 2]
Internet-Draft Plasma Protected IODEF February 2014
1. Introduction
It has long been held that 'knowledge is power' and that getting the
right information in a timely manner to decision makers helps them
make well informed decisions. In cybersecurity, that information is
often spread across many stakeholders. Getting the right information
to the operational teams responding to cybersecurity incident helps
them reduce risks, deter attacks, mitigate exploits and enhance
resilience. The need for effective and timely information sharing
has been recognized by policymakers, executives and security
professionals alike.
At times, cybersecurity information will be sensitive e.g. because of
national security implications or due to potential commercial
business impact. Policy will require the information has to be
shared on a need-to-know basis which requires definition and
enforcement of some criteria to establish a subjects need to know the
information. The stakeholders need both confidence in the robustness
of the technical controls which implement the policy as well as a
means to demonstrate compliance with the policy as prerequisites to
entrusting their sensitive data to such a system.
The need for information sharing is a fundamental part of
collaborative endeavors. It can take many forms due to the context
of the collaboration. The policies governing the information sharing
also apply to the information regardless of which tool us used to
convey the information. Collaborative efforts have a rich and
diverse toolset for exchanging information and cybersecurity
collaboration is no exception. It is necessary for any policy
enforcement mechanism supporting information exchange such as IODEF
be part of a "bigger picture" so that the same policies can be
enforced on any cybersecurity information regardless of the tools
used to share that information.
1.1. Requirements Terminology
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].
When the words appear in lower case, their natural language meaning
is used.
2. Background
Schaad Expires August 15, 2014 [Page 3]
Internet-Draft Plasma Protected IODEF February 2014
2.1. Cybersecurity Information Sharing
Calls to enhance cybersecurity information sharing have been made
regularly over the past two decades. The need for cybersecurity
information sharing within private critical infrastructure sectors
and with the government has been identified as an important practice
to help better secure the increasingly cyber-dependent critical
infrastructure. Any policy controls also have to strike a balance
between reasonable and robust technical controls and legal
enforcement of contractual obligations.
2.1.1. Actors
There are a number of different actors involved in the cybersecurity
ecosystem who are each looking for and contributing different
information which requires control not only access to the data but
also use and onward publication of the information.
Governments are concerned about national economic and security
issues.
Enterprises are subject to cybercrime and cyberespionage and need
to protect their sensitive information such as customer data,
intellectual property and trade secrets.
IT companies who provide products and services to Governments and
enterprises are concerned about the security and integrity of
their offerings
IT security firms who offer security specific products and
services as well as cybersecurity information are concerned about
keeping their products and services current.
Researchers track incidents and find vulnerabilities in the
products and services from IT companies are looking for new events
and trends in the data.
Academia performs security research.
There are several types of cybersecurity information: incidents,
situational awareness, best practices, strategic analysis, threat,
vulnerability, and mitigation information. These various types of
information have different uses, and are often produced and utilized
for different purposes by the different actors. This is a similar
situation to health care where a health care practitioner and medical
statistician would both need access to a particular medical record
for totally different purpose, one where the identity of the patient
is part of the data set and one where the information forms part of
Schaad Expires August 15, 2014 [Page 4]
Internet-Draft Plasma Protected IODEF February 2014
an anonymous data set. Similar consideration exist for cybersecurity
information so access control need to be flexible to enables
different forms of data use without compromising compliance.
2.1.2. Plasma and the Traffic Light Protocol
The Traffic Light Protocol (TLP) is a means for the originator of
data to indicate how widely they want the information shared. It is
an advisory notice and relies on the recipients being trusted to
understand and obey the rules of the protocol. The originator marks
the information with a hierarchical marking to indicate the scope of
the onward dissemination of the information. The markings are as
follows
RED Most restrictive, Very small community of interest. Admission
to the community strictly controlled. Typically named recipients
only.
AMBER Limited Disclosure. Moderate sized community of interest
within participating organizations. Reasonable need to know
admission test to community of interest. Typically named
organizations only.
GREEN Moderate Disclose. Large community of interest with
participating organizations and their partners. Minimal need to
know test for admission to community of interest.
WHITE Public Data
Plasma allow for the implementation of the TLP with more rigor where
the incident owner can better control the release of the information.
The incident owner can define specific kneed to know criteria it
deems appropriate for the incident and for the current TLP making to
be communicated to the recipient. As the incident transitions from
breaking news to ancient history, it allows the incident owner to
relax the policy accordingly without impacting the incident data held
across the ecosystem.
2.1.3. Topologies
Cybersecurity information sharing used an asynchronous message
paradigm. The Information sharing can follow all the standard
topology options
o Peer to Peer
o Mesh Topology
Schaad Expires August 15, 2014 [Page 5]
Internet-Draft Plasma Protected IODEF February 2014
o Star Topology
Peer to peer offer the highest control and security but does not
scale and is the most fragile. The other topologies improve the
scalability and availability but at the cost of security and control.
Nodes in the more complex topologies would typically not be under the
control of the senders or recipients organizations. They may be
trusted to route messages between senders and recipients but do not
have a need to know the content of cybersecurity information. The
need to leverage services to enable high availability and resilience
without the need to also trust such services with sensitive data is
paramount. This is similar to email which has similar topologies
where users trust services to deliver email and be highly resilient
and available while not wanting them to have access to sensitive
content.
2.1.4. Requirements for Strong Policy Enforcement on Cybersecurity
Information
o For the ecosystem to enable the data sharing while enforcing the
policy considerations around the sensitivity and use of the data.
o For the actors, devising new ways to use the data so any policy
enforcement mechanism need to be flexible and extensible to adapt
to the changes.
o Public and private laws will continue to evolve and adapt so any
policy enforcement mechanism needs to be extensible and expressive
to ensure fidelity of the policy.
o For implementers, to have a mechanism which abstracts them as much
as possible from the details of the policy decisions. To have a
clear and concise set of requirements to enable the policy
decisions.
to do: more in data use and policy
2.2. PoLicy enhAnced Secure eMAil (Plasma)
Email remains one of the most wildly used tools for collaboration.
It has mature and widely deployed standards for security in S/MIME
[RFC5751] and PGP [RFC4880] which deliver basic security services
(confidentiality, integrity and data origin authentication). S/MIME
also has optional Enhanced Security Service [RFC5035] which can
deliver policy enforcement on S/MIME messages.
Despite all this, secure email is still the exception as a percentage
of the overall email traffic. It is used in communities of interest
Schaad Expires August 15, 2014 [Page 6]
Internet-Draft Plasma Protected IODEF February 2014
including cybersecurity, but does not deliver robust policy
enforcement on the contents of the message. Plasma was an effort to
fundamentally rethink and update email security model to enable it to
align with other technologies and enable its broader use and deliver
strong policy enforcement on message continents. Though some of the
work was specific to S/MIME [I-D.schaad-plasma-cms], it was based on
a generic data model [I-D.freeman-plasma-requirements] and has a
generic decision request\response protocol
[I-D.schaad-plasma-service] which can support other types of data and
applications.
Plasma developed a generic data model for policy enforcement on
information. One of the objectives of the model is to enable
consistent policy enforcement on information for a broad set of
users, across a broad set of environments and applications. The
Plasma data model, leverages many of the developments in identity and
identity attributes. Plasma closely ties the meta-data of the
applicable policies to data in order to deliver consistent policy
enforcement for mobile data. It users a tamper proof binding so the
policy relationship reliably travels with the data. The model relies
on attributes about the subject requesting access, their system, the
data and their environments as inputs to the policy to deliver
Attribute Based Access Control (ABAC). The policy processing is
complex so the model does not require the rules to be distributed to
clients. The clients request decisions from a Policy Decision and
Enforcement Point (PDEP) service who render decisions for the
subjects. The PDEP's in turn, discover the necessary policy from
Policy Authoring Points.
2.2.1. Benefits of Policy Enforcement on Cybersecurity Information
Sharing
For the Actors, it incentivize the exchange of the very freshest and
interesting data, maximizes the way to derive intelligence from the
data while managing the risk of unexpected use or abuse of the
information.
For the regulators, and lawyers, it supports their policy needs in a
smarter, more business friendly way.
For implementers, it simplifies thief products by abstracting a wide
variety of issues to be policy decisions.
For the ecosystem, it supports new use cases at scale with reduced
compliance costs.
Schaad Expires August 15, 2014 [Page 7]
Internet-Draft Plasma Protected IODEF February 2014
2.2.2. Plasma Policies and Decisions
Polices in Plasma are set of rules which render either a result
(permit, deny) or an error (indeterminate, and unknown) based on the
supplied attributes of a request. Decisions are logic gates where
one or more policies together with their logical relationship are
used together to render a policy decision (permit, deny) or an error
(indeterminate, and unknown). A single Plasma Token can contain one
or more decision logic gates making it possible to render multiple
decisions from a single request. The number of decisions within the
policy object is hidden by design from the client. Each decision is
enforced by a separate encryption key. A separate policy object
would only be required if a Plasma server was not trusted to make a
decision for all policies e.g. data being aggregated from different
communities.
Information may be shared under multiple policies, for examples an
organization may have specific cybersecurity information sharing
agreements with some organizations, and pre-existing non-disclosure
agreements with other organizations and an incident could be shared
providing one or other of the policies is met. Equally, information
from different organizations can be commingled e.g. where an IODEF
document contains incident's from different organizations, where each
organization would be asserting its policies on the incident data.
Both scenarios are supported by Plasma. The policy request and
evaluation process can be time consuming therefore content creators
should minimize the number of policy objects and policy decisions
where creating content for publication.
Full details of the Plasma data model can be found in Section 4 of
the Requirements for Message Access Control
[I-D.freeman-plasma-requirements]
2.3. Plasma and IODEF
XML encryption allows for very granular protection of sensitive data
in an XML document. It allows for protection of entire elements,
element content and arbitrary data in XML documents. XML encryption
can also be nested whereby part of the data being encrypted is
already encrypted (Super-Encryption). This allows the content
creator of an IODEF documents full control to protect any portion of
the document they need. Once the data has been encrypted, Plasma
allows the encryption key to be linked to a Plasma Decision via the
Plasma Token where one or more policies can be combined to reflect
the data governance requirements of the information. Cybersecurity
information in the IODEF document requiring different data
governance, can be combined in a single document and protected with
different keys linked to different decisions.
Schaad Expires August 15, 2014 [Page 8]
Internet-Draft Plasma Protected IODEF February 2014
+-----------------+ +-----------------+
| Plasma Token | | IODEF Incident |
+-----------------+ +-----------------+
| Policy Decision |----------------| Encrypted Data |
| CEK ID ABCD | | CEK ID ABCD |
| CEK 2412 | | HASH 1234 |
+-----------------+ +-----------------+
| HASH 1234 |
+-----------------+
Figure 1: Single Plasma Policy Decision and Protected Incident
This is the simplest example with a single incident and a single
decision. The incident is encrypted with a single CEK. If a
recipient passes the policy decision check, the Plasma server would
release the CEK enabling the recipient to decrypt the incident.
+-----------------+ +-----------------+
| Plasma Token | | IODEF Incident |
+-----------------+ +-----------------+
| Policy Decision |----------------| Encrypted Data |
| CEK ID ABCD | | | CEK ID ABCD |
| CEK 2412 | | | HASH 1234 |
+-----------------+ | +-----------------+
| HASH 1234 | |
| 5678 | | +-----------------+
+-----------------+ | | IODEF Incident |
| +-----------------+
+--------| Encrypted Data |
| CEK ID ABCD |
| HASH 5678 |
+-----------------+
Figure 2: Single Plasma Policy Decision and Two Protected Incidents
with Same Policy Decision
When there are multiple incidents subject to the same decision, they
are encrypted using the same CEK. Again, a recipient passing the
policy decision check, will receive the CEK which enables them to
decrypt both incidents.
Schaad Expires August 15, 2014 [Page 9]
Internet-Draft Plasma Protected IODEF February 2014
+-----------------+ +-----------------+
| Plasma Token | | IODEF Incident |
+-----------------+ +-----------------+
| Policy Decision |----------------| Encrypted Data |
| CEK ID ABCD | | | CEK ID ABCD |
| CEK 2412 | | | HASH 1234 |
| Policy Decision | | +-----------------+
+ CEK ID A1B2 | |
| CEK F469 | |
+-----------------+ | +-----------------+
| HASH 1234 | | | IODEF Incident |
| 5678 | | +-----------------+
+-----------------+ +--------| Encrypted Data |
| CEK ID A1B2 |
| HASH 5678 |
+-----------------+
Figure 3: Single Plasma Policy Decision and Two Protected Incidents
with Two Policy Decision
When there are incidents subject to different policy decision, this
can still be accommodated within the same token and hence same
decision request. Each incident is encrypted with different CEK, one
CEK per decision. A recipient receives the CEK for every policy
check they pass.
+-----------------+ +-----------------+
| Plasma Token | | IODEF Incident |
+-----------------+ +-----------------+
| Policy Decision |---------| Encrypted Data |
| CEK ID ABCD | | CEK ID ABCD |
| CEK 2412 | | HASH 1234 |
| Policy Decision | +-----------------+
+ CEK ID A1B2 | |
| CEK F469 | |
+-----------------+ | +-----------------+
| HASH 1234 | | | Assessment |
| 5678 | | +-----------------+
+-----------------+ +--------| Encrypted Data |
| CEK ID A1B2 |
| HASH 5678 |
+-----------------+
Figure 4: Single Plasma Policy Decision, a Protected Incidents with
child class with a different policy decision
The same approach can be applied when an incident has a child class
with a different policy to the parent. The child class is encrypted
Schaad Expires August 15, 2014 [Page 10]
Internet-Draft Plasma Protected IODEF February 2014
with different CEK to the parent. A recipient receives the CEK for
every policy check they pass.
Question: Do we need to add a policy token consolidation request i.e.
if a client finds multiple tokens from the same server, submit to
server and ask for them to be merged into one.
2.4. Plasma and Layered Application Design
Today's applications are built using separate layers which group
components which discreet functions together into distinct layers.
These layers can be described as follows
o Presentation Layer: Components responsible for managing users
interaction with the application
o Business Layer: Components responsible for core business logic
o Data Layer: Components responsible for interacting with data
sources to enable the abstraction of the storage mechanism from
business layer.
+--------------------+
| Users |
+--------------------+
|
|
+--------------------+
| Presentation Layer |
+--------------------+
|
|
+--------------------+
| Business Layer |
+--------------------+
|
|
+--------------------+
| Data Layer |
+--------------------+
| |
| |
+--------------+ +--------------+
| Data Source | | Services |
+--------------+ +--------------+
Figure 5: Layered Application Model
Schaad Expires August 15, 2014 [Page 11]
Internet-Draft Plasma Protected IODEF February 2014
The objective of the layers is to deliver the best maintainability,
extensibility and flexibility for the application. Plasma is part of
the security service which is a cross layer function which can
manifest in all layers. The layers are a logical separation which
allows for the different components to be deployed in different
physical combinations to respond to different sociability,
performance and security considerations without impacting the
underlying components.
The Plasma model fully supports the layered application model.
Access to data becomes a policy issue i.e. does the policy allow the
subject to access the data. For example if the business layer was
deployed on a server or local on the users client, it would change
the identity of the subject and (and the attributes) of the access
request, but providing the subject met the policy requirements,
either could be given access to the data.
3. The Plasma Protected IODEF Data Model
Note. Some harmonization work is in progress between this document
and [I-D.schaad-plasma-service] so XML schema names and types may
change as a result.
The Plasma protected IODEF model supports IODEF documents with
multiple Incident's. If all the incidents have the same security
policy, then the same Plasma server(s) can control access to all the
Incidents and a single instance of the Plasma Token containing a
single content encryption key (CEK) for all incidents can be used.
If incidents have different security polices, but the same Plasma
server is trusted to perform the access control decision for all the
policies, again a single instance of the Plasma Token with multiple
CEKs can be used (one for each decision). If the Incidents have
different security policies and the same Plasma server is not trusted
with all the decisions then multiple Plasma Tokens can be used.
3.1. PlasmaToken Class
The PlasmaToken class contains the Plasma meta-data that allows the
Plasma server to enforce policy decisions on the protected IODEF
data. This is an XML analog of the ASN.1 encoded Plasma token
structure defined in [I-D.schaad-plasma-cms]. The Plasma token
contains encrypted content defined in [I-D.schaad-plasma-cms] which
is processed by the Plasma server to convey policy requirements and
content encryption keys. The token is signed by the Plasma server
and the signature has signed elements to enable the receiving client
to process the Plasma Token. It has a signed element with one or
more URIs that identify the set of Plasma servers which can process
the Policy Token. It also has an element containing the hash(s) of
Schaad Expires August 15, 2014 [Page 12]
Internet-Draft Plasma Protected IODEF February 2014
the encrypted content associated with the token to establish a
binding between the protected IODEF data and the specific Plasma
Token.
The PlasmaToken class uses the Class extension mechanism defined in
[RFC5070] Section 5.2.
+-------------------------+
| PlasmaToken |
+-------------------------+
| |<>----------[ EncryptedData ]
| |<>--(1..*)--[ ServerURI ]
| |<>----------[ EncryptedDataHashs ]
+-------------------------+
Figure 6: PlasmaToken Class
The aggregate classes in the Plasma Token are as follows:
EncryptedData One. The element defined in
[W3C.WD-xmlenc-core1-20101130] that contains the encrypted data used
by the Plasma server to process access requests to the protected
IODEF data. The encapsulated contents of this element are defined in
[I-D.schaad-plasma-cms]
ServerURI One or more. The URI of one or more Plasma servers which
can process decisions requests for the Plasma Token. The order of
URLs does not indicate any order of priority, it is a matter of local
client policy on the order to use. The URL defines both the
destination server and the protocol to be used. When the schema for
the URL is "plasma", then the protocol which MUST be used is
[I-D.schaad-plasma-service].
It is a matter of local policy of the IODEF recipient if it chooses
to contact one of the plasma servers identified by the ServerURI
based on their trust in the identity of the signer of the Plasma
Token.
3.1.1. EncryptedDataHashs Class
Todo, this might get wrapped into the re-factoring.
For privacy reasons, it is highly desirable that the recipient client
of an IODEF document can validate that the Plasma Token embedded in a
document, is associated with the encrypted data it is attached to
prior to contacting the Plasma server. For this reason, in addition
to the requirement that a recipient validate the signature of the
Plasma server over the token, a new element is defined which contains
Schaad Expires August 15, 2014 [Page 13]
Internet-Draft Plasma Protected IODEF February 2014
one or more hashes of the encrypted content(s). These encrypted data
hashes constitute a detached signature of the encrypted content.
The EncryptedDataHashs class contains the hash values for the one or
more sets of encrypted data.
+--------------------------+
| EncryptedDataHashes |
+--------------------------+
| |<>----------[ DigestMethod ]
| |<>--(1..*)--[ DigestValue ]
+--------------------------+
Figure 7: EncryptedDataHashs Class
DigestMethod one. The element defined in
[W3C.WD-xmldsig-core2-20100831] that identifies the digest algorithm
to be applied to the encrypted protected data e.g. an encrypted
incident, associated with the Plasma Token.
DigestValue One or more. The element defined in
[W3C.WD-xmldsig-core2-20100831] that contains the encoded value of
the digest of the encrypted protected data. If the token has been
used to protect multiple elements e.g. multiple incidents, then there
will be multiple digest values.
4. Plasma Service Request/Response Messages
This specification uses the [I-D.schaad-plasma-service] specification
to process decision requests for IODEF protected data. This
specification defines new actions and token types.
4.1. Create IODEF Documents Request
The create document message request is built using the
Plasma:PlasmaRequest XML structure defined in
[I-D.schaad-plasma-service]. When building the request, follow
[I-D.schaad-plasma-service] with the following changes:
o The client MUST include an action attribute. The document defines
the GetXMLPlasmaToken action attribute.
o A message requesting a XML Plasma token looks like this:
Schaad Expires August 15, 2014 [Page 14]
Internet-Draft Plasma Protected IODEF February 2014
<Plasma:PlasmaRequest>
<Plasma:Authentication>
<Plasma:WS_Token>
Role Token goes here
</Plasma:WS_Token>
</Plasma:Authentication>
<xacml:Request>
<xacml:Attributes Category="...:action">
<xacml:Attribute AttributeId="urn:plasma:action-id">
<xacml:AttributeValue>
GetXMLPlasmaToken
</xacml:AttributeValue>
</xacml:Attribute>
</xacml:Attributes>
<xacml:Attributes Category="...:data">
<xcaml:Attribute AttributeId="urn:plasma:data-id">
<xacml:AttributeValue>
<Plasma:GetXMLPlasmaToken>
<Plasma:Label>
... Label Tree for message ...
</Plasma:Label>
<Plasma:EncryptedDataHashs>
... Hash algorithm and hash(s) of encrypted content ...
</Plasma:EncryptedDataHashs>
<Plasma:CEK>
... Content Encryption Key ...
</Plasma:CEK>
</Plasma:GetXMLPlasmaToken>
</xacml:AttributeValue>
</xcaml:Attribute>
</xacml:Attributes>
</xacml:Request>
</Plasma:PlasmaRequest>
4.2. Create IODEF Document Response
In response to a create document request, the Plasma server returns a
create document response message. The response messages uses the
plasma:PlasmaResponse XML structure. When the response message is
created, the following should be noted:
o The xacml:Decisions is always included in the response. If the
'Permit' value is returned then the Plasma:XMLToken element MUST
be present.
o The PlasmaReturnToken element with a Plasma:XMLToken content is
included with a permit response.
Schaad Expires August 15, 2014 [Page 15]
Internet-Draft Plasma Protected IODEF February 2014
An example of a message returning the set of policy information is:
<Plasma:PlasmaResponse>
<xacml:Response>
<xacml:Result>
<xacml:Decision>Permit</xacml:Decision>
</xacml:Result>
</xacml:Response>
<Plasma:PlasmaReturnToken xsi:"Plasma:XMLTokenResponseType">
<Plasma:XMLPlasmaToken>xxx token xxxx</Plasma:XMLPlasmaToken>
</Plasma:PlasmaReturnToken>
</Plasma:PlasmaResponse>
4.3. Read IODEF Document Request
The client sends a request to the Plasma server that is identified in
the token. For the XML tokens, the address of the Plasma server to
use is located in the ServerURI element of the Plasma Token.
The request uses the plasma:PlasmaRequest XML structure. When
building the request, the following should be noted:
o The xacml:Request MUST be present in the first message of the
exchange.
o The action used to denote that a XML token should be decrypted is
"ParseXMLToken"
o The XML token to be cracked is identified by "XMLToken"
o If the client is using the XML Digital Signature element in this
message, then the client MUST include the cryptographic channel
binding token (Section 10.1.1) in the set of XACML attributes.
An example of a message returning the set of policy information is:
Schaad Expires August 15, 2014 [Page 16]
Internet-Draft Plasma Protected IODEF February 2014
<plasma:PlasmaRequest>
<plasma:Authentication>...</plasma:Authentication>
<xacml:Request>
<xacml:Attributes Category="...:action">
<xacml:Attribute AttributeId="..:action-id">
<xacml:AttributeValue>ParsePlasmaToken />
</xacml:Attribute>
</xacml:Attributes>
<xacml:Attribute Category="...:data">
<xacml:Attribute AttributeId="..:data:XMLToken">
<xacml:AttributeValue> XML Token </xacml:AttributeValue>
</xacml:Attribute>
</xacml:Attribute>
</xacml:Request>
</plasma:PlasmaRequest>
4.4. Read IODEF Document Response
In response to a parse token request, the Plasma server returns a
decrypted key in the response. The response uses the plasma:Plasma
XML structure. When a response message is create the following
should be noted:
o If the Plasma Token contained multiple decisions, a single
response can be used for all decisions.
o For each decision, if the value of xacml:Decision is Permit, then
response MUST include an Plasma:XMLKey element.
o For each decision, if the value of xacml:Decision is not Permit,
the plasma:XMLKey MUST be absent.
An example of a message returning the set of policy information is as
follows:
<Plasma:PlasmaResponse>
<xacml:Response>
<xacml:Result>
<xacml:Decision>Permit</xacml:Decision>
</xacml:Result>
</xacml:Response>
<Plasma:Key>
<Plasma:DisplayString>Label Text </Plasma:DisplayString>
<Plasma:KEK>hex based KEK</Plasma:KEK>
</Plasma:CMSKey>
</Plasma:PlasmaResponse>
Schaad Expires August 15, 2014 [Page 17]
Internet-Draft Plasma Protected IODEF February 2014
5. Processing Rules for protected IODEF
This is the set of processing steps that either a creator or receiver
of protected IODEF needs to follow. The order of the steps is not
normative.
5.1. Creating Protected IODEF data
These are the step that the creator of an protected IODEF message
needs to do.
1. The creating agent obtains the set of policies under which it can
create IODEF data.
2. The creating agent composes the IODEF content.
3. The creating agent determines the set of policies to be applied
to the IODEF content.
4. The creating agent selects the content encryption algorithm (with
input from the obligations of the policies chosen) and randomly
creates the CEK(s).
5. The creating agent encrypts the content with the CEK and computes
the encrypted hash value.
6. The creating agent transmits the CEK, the hash of the encrypted
content value(s) and the policy label(s) to the PLASMA server.
7. If the creating agents request passes the Plasma server policy
check, the Plasma server will return the Plasma Policy meta-data
to the creating agent. If the policy validation fails then the
creator cannot send the IODEF message under the requested policy
label.
8. The creating agent verifies the signature on the Plasma Policy
meta-data. If the Signature is current and passes cryptographic
processing the sender can add the policy meta-data to the
appropriate PolicyData element and sends the IODEF message.
5.2. Receiving Protected IODEF data
These are the steps that the recipient of a protected IODEF message
needs to follow. The order of the steps is not normative.
1. The Receiving Agent obtains the message from another IODEF agent.
Schaad Expires August 15, 2014 [Page 18]
Internet-Draft Plasma Protected IODEF February 2014
2. The Receiving Agent recognizes that it is protected IODEF
content.
3. The Receiving Agent validates the PolicyData attribute. The
following steps need to be taken for validation.
A. The signature on the PolicyData structure is validated. If
the validation fails then processing ends.
B. The certificate used to validate the signature MUST contain
the XXXX value in the EKU extension. The certificate MUST
NOT contain the anyPolicy value in the EKU extension. Local
policy can dictate that content of the PlasmaURL attribute be
used in selecting trust anchors for the signing certificate.
C. If the PlasmaURL attribute is absent, then processing fails.
D. The URL value in the PlasmaURL attribute is checked against
local policy. If the check fails then processing fails.
This check is performed so that information about the user is
not given to a random Plasma server. The schema of the URL
MUST be one that the client implements. (For example the
"plasma" schema associated with RFC XXX
[I-D.schaad-plasma-service].) As discussed in Section 4.5 of
[I-D.freeman-plasma-requirements], policy can be enforced on
the edge of an enterprise, this means that if multiple URLs
are present in the Plasma URL attribute they all need to be
checked for policy and ability to use before this step fails.
E. The EncryptedHash attribute value is checked against the
encrypted content. If this attribute is absent then
processing fails. If the value does not matched the computed
value on the encrypted content then processing fails.
4. The recipient agent gathers the necessary identity and attribute
statements, usual certificates or SASL statements.
5. The recipient agent establishing a secure connection to the
Plasma server and passes in the identity and attribute statements
and receives back the CEK or a lock box to allow it to obtain the
CEK value.
6. the recipient agent uses the returned CEK to decrypt the
protected content and compares the generated Message
Authentication Code for the value in Authentication Tag and fail
if they don't match.
Schaad Expires August 15, 2014 [Page 19]
Internet-Draft Plasma Protected IODEF February 2014
6. Examples
The following example is an IODEF document with 3 incidents. The
first is a public incident where all data is in the clear. The
second incident is a public incident with a private contact. The
third incident is private.
<?xml version="1.0" encoding="UTF-8"?>
<iodef:IODEF-Document lang="en"
xmlns:iodef="urn:ietf:params:xml:ns:iodef-2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
xmlns:plasma="urn:ietf:params:ns:plasma:1.0">
<iodef:Incident purpose="reporting" restriction="public">
<iodef:IncidentID name="CERT-OUR-DOMAIN"
CERT-OUR-DOMAIN#111-1/>
<iodef:ReportTime 2014-02-05T10:21:05+00:00/>
<iodef:Assessment>
<iodef:Impact severity="high" It go boom />
</iodef:Assessment>
<iodef:Contact role="creator" type="organization">
<iodef:ContactName Trevor Freeman />
<iodef:Description Lead contact />
</iodef:Contact>
</iodef:Incident>
<iodef:Incident purpose="reporting">
<iodef:IncidentID
name="CERT-OUR-DOMAIN">CERT-OUR-DOMAIN#111-2/>
<iodef:ReportTime>2014-02-06T10:21:00+00:00 />
<iodef:Assessment>
<iodef:Impact severity="medium" It go splash />
</iodef:Assessment>
<iodef:EncryptedContact>
<xenc:EncryptionMethod
Algorithm="http://www.w3.org/2009/xmlenc11#aes128-gcm"/>
<ds:KeyInfo>
<ds:KeyName>Plasma#1</ds:KeyName>
</ds:KeyInfo>
<xenc:CipherData>
<xenc:CipherValue XXXX Encrypted iodef:Contact XXXXX />
</xenc:CipherData>
</iodef:EncryptedContact>
</iodef:Incident>
<iodef:EncryptedIncident>
<xenc:EncypteData>
<xenc:EncryptionMethod
Algorithm="http://www.w3.org/2009/xmlenc11#aes128-gcm">
Schaad Expires August 15, 2014 [Page 20]
Internet-Draft Plasma Protected IODEF February 2014
<ds:KeyInfo>
<ds:KeyName Plasma#2 />
</ds:KeyInfo>
<xenc:CipherData>
<xenc:CipherValue>XXXX Encrypted Incident XXXX />
</xenc:CipherData>
</xenc:EncryptionMethod>
</xenc:EncypteData>
</iodef:EncryptedIncident>
<iodef:AdditonalData dtype="xml">
<xenc:KeyInfo>
<plasma:PlasmaKey>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2006/12/xml-c14n11"/>
<ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference Id="EncryptedKey">
<ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>XXXX Digest XXXX/>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>XXXX Signature XXXX />
<ds:KeyInfo>
<ds:X509Data>Put a certificate here</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<plasma:LockBox id="EncryptedKey">
<xenc:CipherText>
<xenc:CipherValue>xxxxxxxxxx />
</xenc:CipherText>
<plasma:EncryptedHashes>
<ds:DigestMethod Algorithm="#sha1"/>
<ds:DigestValue>XXXXX#1</ds:DigestValue>
<ds:DigestValue>XXXXXX#2</ds:DigestValue>
</plasma:EncryptedHashes>
<plasma:Server url="plasma:PlasmaServerName.com"/>
</plasma:LockBox>
</ds:Object>
</plasma:PlasmaKey>
</xenc:KeyInfo>
</iodef:AdditonalData>
</iodef:IODEF-Document>
Schaad Expires August 15, 2014 [Page 21]
Internet-Draft Plasma Protected IODEF February 2014
7. XML Schema
This schema is the XML analogue of the CMS recipient info structure
defined in [I-D.schaad-plasma-cms]. It contains the encrypted data
used by the Plasma server. The encrypted data contains the policy
decision leaf structures and CEKs. It also has any other attributes
necessary for processing the request e.g. resource and audit
attributes. The Plasma token also has a number of signed elements
necessary for the client to process the token.
7.1. IODEF Document with encrypted classes
When a client wants to validate the XML schema of an IODEF document
containing encrypted classes prior to processing the contents, it
MUST use a modified schema which allows for the substitution of the
encrypted elements.
For example the current IODEF document class is as follows
<xs:element name="IODEF-Document">
<xs:complexType>
<xs:sequence>
<xs:element ref="iodef:Incident"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version" type="xs:string" fixed="1.00"/>
<xs:attribute name="lang" type="xs:language" use="required"/>
<xs:attribute name="formatid" type="xs:string"/>
<xs:complexType>
</xs:element>
The modified class schema needs to be as follows:
Schaad Expires August 15, 2014 [Page 22]
Internet-Draft Plasma Protected IODEF February 2014
<xs:element name="IODEF-Document">
<xs:complexType>
<xs:sequence>
<xs:group ref="iodef:IncidentChoice"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version" type="xs:string" fixed="1.00"/>
<xs:attribute name="lang" type="xs:language" use="required"/>
<xs:attribute name="formatid" type="xs:string"/>
<xs:complexType>
</xs:element>
<xs:group name="IncidentChoice">
<xs:choice>
<xs:element> ref="iodef:Incident"/>
<xs:element name="EncryptedIncedent"
type="xencEncryptedDataType"/>
</xs:choice>
</xs:group>
The choice between the encrypted and unencrypted class MUST be
inserted in every class with a restriction attribute.
7.2. Plasma Token
Schaad Expires August 15, 2014 [Page 23]
Internet-Draft Plasma Protected IODEF February 2014
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:Plasma="PlasmaToken.xsd"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<xs:element name="PlasmaToken" type="XML">
<xs:complexType>
<xs:sequence>
<xenc:KeyInfo>
<Plasma:PlasmaKey>
<ds:SignedInfo maxoccurs="unbounded">
<ds:CanonicalizationMethod />
<ds:SignatureMethod />
<ds:Reference id="EncryptedKey">
<ds:DigestValue />
</ds:Reference>
</ds:SignedInfo>
<ds:SigntureValue />
<ds:KeyInfo>
<ds:X509Data />
<xs:complextype>
<xs:sequence>
<Plasma:LockBox>
<xenc:CipherTExt>
<xenc:CipherValue />
</xenc:CipherText>
</Plasma:LockBox>
<Plasma:EncryptedDataHashes>
<ds:DigestMethod/>
<ds:DigestValue maxoccurs="unbounded"/>
</Plasma:EncryptedDataHashes>
<Plasma:ServerURI maxoccurs="unbounded" />
</xs:sequence>
</xs:complextype>
</ds:KeyInfo>
</Plasma:PlasmaKey>
</xenc:KeyInfo>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Schaad Expires August 15, 2014 [Page 24]
Internet-Draft Plasma Protected IODEF February 2014
8. Mandatory Algorithms
Clients MUST implement the mandatory algorithms defined for XML
encryption [W3C.WD-xmlenc-core1-20101130] for the encryption of IODEF
document contents. Clients SHOULD use AES128-GCM unless otherwise
directed by a policy obligation. Other algorithms may be
implemented.
Clients MUST implement SHA-256 and SHA-512 as defined for message
digest [W3C.WD-xmlenc-core1-20101130] for computation of the
Encrypted Content Hash. Clients SHOULD use SHA-256 unless otherwise
directed by a policy obligation. Other algorithms MAY be
implemented.
When verifying signatures on the Plasma Token, clients MUST be able
to verify the RSA v1.5 signature algorithm with SHA-256 and SHA-512.
Clients MUST also be able to verify the EC-DSA signature algorithm
with SHA-256 and SHA-512 signature algorithm. Clients MAY be able to
verify other signature algorithms.
9. Security Considerations
A malicious Plasma server can generate a Plasma token over any
protected content i.e. there is no guarantee that the Plasma server
knows the CEK of the protected data or if it is genuine data at all
and free from malicious content. For example, it can generate a new
Plasma token for some existing protected content with the hashes of
the encrypted data. The fact that the signature of the Plasma token
validates along with the hashes of the encrypted data is only a
integrity check over the data set i.e. if it fails, processing should
fail. The fact that the signature and associate data hashes
validates MUST NOT be uses as any indication of trustworthiness of
the Plasma Server.
10. IANA Considerations
Tbd
11. References
11.1. Normative References
[I-D.schaad-plasma-cms]
Schaad, J., "Plasma Service Cryptographic Message Syntax
(CMS) Processing", draft-schaad-plasma-cms-04 (work in
progress), March 2013.
Schaad Expires August 15, 2014 [Page 25]
Internet-Draft Plasma Protected IODEF February 2014
[I-D.schaad-plasma-service]
Schaad, J., "Plasma Service Trust Processing", draft-
schaad-plasma-service-04 (work in progress), January 2013.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5070] Danyliw, R., Meijer, J., and Y. Demchenko, "The Incident
Object Description Exchange Format", RFC 5070, December
2007.
[W3C.WD-xmldsig-core2-20100831]
Eastlake, D., Reagle, J., Solo, D., Yiu, K., Hirsch, F.,
Roessler, T., and P. Datta, "XML Signature Syntax and
Processing Version 2.0", World Wide Web Consortium WD WD-
xmldsig-core2-20100831, August 2010,
<http://www.w3.org/TR/2010/WD-xmldsig-core2-20100831>.
[W3C.WD-xmlenc-core1-20101130]
Roessler, T., Reagle, J., Hirsch, F., and D. Eastlake,
"XML Encryption Syntax and Processing Version 1.1", World
Wide Web Consortium LastCall WD-xmlenc-core1-20101130,
November 2010,
<http://www.w3.org/TR/2010/WD-xmlenc-core1-20101130>.
11.2. Informative References
[I-D.freeman-plasma-requirements]
Freeman, T., Schaad, J., and P. Patterson, "Requirements
for Message Access Control", draft-freeman-plasma-
requirements-08 (work in progress), October 2013.
[RFC4880] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.
Thayer, "OpenPGP Message Format", RFC 4880, November 2007.
[RFC5035] Schaad, J., "Enhanced Security Services (ESS) Update:
Adding CertID Algorithm Agility", RFC 5035, August 2007.
[RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
Mail Extensions (S/MIME) Version 3.2 Message
Specification", RFC 5751, January 2010.
Author's Address
Jim Schaad
Soaring Hawk Consulting
Email: ietf@augustcellars.com
Schaad Expires August 15, 2014 [Page 26]