Re: [plasma] Comments on Message Access Control Requirements Draft

Patrick Patterson <> Wed, 25 July 2012 15:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 3C62221F84FB for <>; Wed, 25 Jul 2012 08:08:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id irqCh1Z6+ENl for <>; Wed, 25 Jul 2012 08:08:27 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id DD03421F845F for <>; Wed, 25 Jul 2012 08:08:26 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 45B3DA81131; Wed, 25 Jul 2012 11:08:27 -0400 (EDT)
X-Virus-Scanned: Debian amavisd-new at
Received: from ([]) by localhost (localhost []) (amavisd-new, port 10024) with ESMTP id RTINj0krgfKJ; Wed, 25 Jul 2012 11:08:26 -0400 (EDT)
Received: from [] ( []) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id 4282CA8053D; Wed, 25 Jul 2012 11:08:26 -0400 (EDT)
Mime-Version: 1.0 (Apple Message framework v1084)
Content-Type: text/plain; charset="us-ascii"
From: Patrick Patterson <>
In-Reply-To: <>
Date: Wed, 25 Jul 2012 11:08:24 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <>
To: Jean-Paul Buu-Sao <>
X-Mailer: Apple Mail (2.1084)
Subject: Re: [plasma] Comments on Message Access Control Requirements Draft
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "The PoLicy Augmented S/Mime \(plasma\) bof discussion list." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 25 Jul 2012 15:08:28 -0000

The following message has been forwarded from Trevor, as he is still having difficulties posting to the list:


Hi Jean-Paul,

Just catching up from Holiday.

I have just posted a new draft of the requirements doc you may want to check out. We have has a lot of feedback on our terminology so this new draft has attempted to improve that area.

We have changed PEP to be a Decision Requestor to more clearly indicate it does not enforce decisions. We did not adopt the Access Requestor name from the XACML model as we have other types of decisions such as integrity policy decision requests.

PDP has changed to Policy Decision and Enforcement Point to emphasize in the Plasma model these functions are logically one. That does not preclude implementations from implementing them as separate entities but that implementations detail would not impact Plasma.

You should also read the technical drafts from the implantation details.

More inline below


-----Original Message-----
From:<> []<mailto:[]> On Behalf Of Jean-Paul Buu-Sao
Sent: Monday, July 23, 2012 1:25 AM
Subject: [plasma] Comments on Message Access Control Requirements Draft


Please find my comments on the PLASMA draft 01:

1) Policy Data Binding

Section 4.2.1:

"The chief strength of binding by names is once bound to the data the association with the policy travels with the data. The chief weakness in binding by name is it requires the reference to be strongly bound to the data [...] This model is choosing to use binding by name because we need to encrypt the data which means we will [be] impacting the storage format anyway which negates the main weakness of binding my name."

TSCP approves of the choice of "binding by name". Another chief strength that you did not quote, and which is key differentiator to TSCP, is to allow policy change, with no impact on the data. This requirement cannot be met with binding by value or by description.

[TF] Good Point will add this to the draft

The draft is silent on how the name would be expressed. Can it be any arbitrary identifier, which precise syntax and semantics could be defined by a community of interest defined profile?

[TF] If you read the plasma service draft you will see we use a URI. We believe that has sufficient flexibility to address the requirements you describe.

2) Closed versus Open environment

Section 4.4:

"(A) The PEP verifies the certificate in the signed metadata then determines <<via local policy>> if it want to process the protected information based on the identity of the PDP

(D) The PDP decrypts the metadata, de-references the policy pointers and determines the set of access rules based on the <<policy published by the PAP>>. The PDP then determines the set of subject attributes it needs to evaluate the access rules. The PDP can the use PIP is has relationships with to query attributers about the subject. The list of attributes the PDP is missing is then returned to the PEP"

As stated the workflow implies a "closed environment". TSCP expected to see a workflow that could as well support an "open environment", whereas not all referenced policies are necessarily known by the local PDP/PAP ahead of time.

[TF] Since the PAP authors the policies and creates the policy reference, I don't understand a client can have a policy reference that a PAP does not know about so can you describe how this would occur.

There are a logical sequence of PDEPs in Plasma. These can be physically the same PDEP or they can be separate PDEPs.

*        The PDEP which generates the role token

*        The PDEP which generates the message token

*        The PDEP which generates the read token

Only the first PDEP needs prior knowledge of the policies which is necessary for it to generate the policy collection in the role token. All subsequent PDEPs can use the URI to discover the policies.

As a related topic, Policy Publication Point (PPP), lightly introduced in the Vocabulary section, is a good addition to [RFC3198] and [XACML-core]. In view of the support for "open environments", TSCP expected to see more requirements  on PPP.

3) Advanced Policies

Section 4.5.2:  "Advanced policy is intended to be used where one or more arbitrary policies are required on the content. It is intended to target more complex scenarios such as content with regulated information or content subject to other organization and contractual policies. The input set of attributes is defined by the policies and can be either primordial or derived attributes or both. Multiple policies have a logical relationship e.g. they can be <<AND or ORed together>>. <<It is not expected that all Plasma clients support advances policy>>."

[TF] The text was not intended to indicate only simple logical relationships would be expressed so I will change to say "AND and/or ORed together in an arbitrary combination". The technical draft uses a logic trees so already supports what you describe.

TSCP mandates a support for "advances policies".

[TF] I understand some communities of interest would require use of Advances Polices. However I don't want to burden every Plasma client implementation to support such policies. The basic policy set is aimed a simple set of scenarios where the Plasma client may well be bundled in at no charge so any additional complexity would be a tax. A premium client which supports advanced polices can then be purchased where there is business value in doing so e.g. a mandate from a community of interest such as TSCP.

A typical example is to support documents that must be simultaneously protected under an Export Control policy (e.g. ITAR Technical Assistance Agreement) and an Intellectual Property policy (e.g. Proprietary Information Exchange Agreement). In this case of multiple policies, TSCP requires that all the applicable policies are to be evaluated, with each one of the specified policy allowing the required access.

So this cannot just be a simple OR, as the Plasma draft states.

4) Policy Expression Language

The draft is silent on the positioning of PLASMA with Policy Expression Languages. Is there one in particular that PLASMA mandates (if so, which one), or is the specification agnostic (if so, what are the baseline requirements in terms of expressiveness)?

[TF] For the requirements I intend to be language neutral. We do intend to address PDAP-PAP interaction in a subsequent technical paper where the topic will have to be addressed. Some communities of interest have made significant investments in  XACML but it has not been universally adopted so plasma has a tradeoff between mandating a specific language to improve interoperability and alienating communities to do not use XACML. I don't know the right answer at this time but that answer does not impact the current work.  We do need to support language negotiation between PDEP and PAP so at a minimum so we can support communities of interest and also be forwards compatible.

Some organizations have developed and validated a broad set of policies, expressed in a Policy Expression Language of their choosing (e.g. XACML 2.0), and need to be able to reuse them.


Jean-Paul Buu-Sao, TSCP


Patrick Patterson
President and Chief PKI Architect
Carillon Information Security Inc.

tel: +1 514 485 0789
mobile: +1 514 994 8699
fax: +1 450 424 9559