Re: [I2nsf] 答复: Service Layer Policies - Post 1: Background Information on PCIM
John Strassner <strazpdj@gmail.com> Mon, 14 December 2015 05:27 UTC
Return-Path: <strazpdj@gmail.com>
X-Original-To: i2nsf@ietfa.amsl.com
Delivered-To: i2nsf@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AA9FE1ACCE0 for <i2nsf@ietfa.amsl.com>; Sun, 13 Dec 2015 21:27:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.099
X-Spam-Level:
X-Spam-Status: No, score=-1.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_45=0.6, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PbsdwFD8MBSW for <i2nsf@ietfa.amsl.com>; Sun, 13 Dec 2015 21:27:23 -0800 (PST)
Received: from mail-vk0-x236.google.com (mail-vk0-x236.google.com [IPv6:2607:f8b0:400c:c05::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8BC3B1ACCE5 for <i2nsf@ietf.org>; Sun, 13 Dec 2015 21:27:22 -0800 (PST)
Received: by vkay187 with SMTP id y187so147149359vka.3 for <i2nsf@ietf.org>; Sun, 13 Dec 2015 21:27:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=wX+zbOEHL6lzrJq3q7y/1Cpg5hKm+1vpmzUBjfHa5+0=; b=Pwcz6rkp1pwqUXLrG7YldLhDMY89Niqm5az7eHZcnfFO0OILHqHlx6n8Gnz/JMSAAz 8dIAD5dRR6z9gZ5lzjF5YSqlmn2K+uMC+A2Pw3dQ/YvsS+YH0/l8p15ldoYuBBqhtc7D 1WciQIwkrlJ1Pu8xnBUG0HMid+kocSshtYn5faEUdpYh+Lpsh42/Ky69W5vLcockfjcg 2iJFF3k5k7onzqbDOGZhy16XJrS4iYtJURGwvGOCZci6E1wD0WZYgKO2R3MenmlNY2za Anz8j4gyBoBfHu4QWW4kX1rWxfvHf1o9g8k2bIFEaHZKRuVZ73yaNsy5IeGsRkEr7juQ 9F4w==
MIME-Version: 1.0
X-Received: by 10.31.166.208 with SMTP id p199mr11247760vke.122.1450070841516; Sun, 13 Dec 2015 21:27:21 -0800 (PST)
Received: by 10.103.40.131 with HTTP; Sun, 13 Dec 2015 21:27:21 -0800 (PST)
In-Reply-To: <C02846B1344F344EB4FAA6FA7AF481F12AEBE1AA@SZXEMA502-MBS.china.huawei.com>
References: <CAJwYUrE=Lqf1tzggRoJ=yRCTGa2BsGuWs34XVVUmoA7WkhJ5gA@mail.gmail.com> <4A95BA014132FF49AE685FAB4B9F17F657DAE627@dfweml701-chm> <CAJwYUrGN57i8FSiiirMKPjGa51hqBVY6D1Uw8tJW=anaNsvfpA@mail.gmail.com> <C02846B1344F344EB4FAA6FA7AF481F12AEBE1AA@SZXEMA502-MBS.china.huawei.com>
Date: Sun, 13 Dec 2015 21:27:21 -0800
Message-ID: <CAJwYUrFyz5V1Bn8BLehzFVc9LJZ92=m32UDoyr8tYxjc+p6m_Q@mail.gmail.com>
From: John Strassner <strazpdj@gmail.com>
To: "Xialiang (Frank)" <frank.xialiang@huawei.com>, John Strassner <strazpdj@gmail.com>
Content-Type: multipart/alternative; boundary="001a11416fbc686c590526d4ed63"
Archived-At: <http://mailarchive.ietf.org/arch/msg/i2nsf/bG900uVnneCfGuAxsWlLB2KOe0Y>
Cc: "i2nsf@ietf.org" <i2nsf@ietf.org>, Linda Dunbar <linda.dunbar@huawei.com>
Subject: Re: [I2nsf] 答复: Service Layer Policies - Post 1: Background Information on PCIM
X-BeenThere: i2nsf@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "*I2NSF: Interface to Network Security Functions mailing list*" <i2nsf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i2nsf/>
List-Post: <mailto:i2nsf@ietf.org>
List-Help: <mailto:i2nsf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i2nsf>, <mailto:i2nsf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Dec 2015 05:27:28 -0000
Hi Frank, Since current design principle for the policy model of capability interface is to abstract from most common existing NSF security policy implementations and consolidate them into a general and extensive model, I think imperative logic is more suitable for this goal. <jcs> I agree. For example, declarative policies will require a much more complex translation to a form that security devices can ingest than imperative policies do. </jcs> I am very interested in whether “event” can be used in I2NSF capability interface. Do you have some suggestions? <jcs> Why not? :-) There are a lot of advantages to using Events. For example, events can be used to debug the system by providing a real-time trace of which policies executed. Logs like this are also crucial for accounting and auditing. I think that we should at least make Events (and hence, event-condition-action policies) optional in our policy structure. </jcs> Are the “subject” and “target” two different classes in PCIMe? Do you suggest to include them in I2NSF policy model of capability interface for the goal of authorizing the policy? <jcs> Subject and Target are NOT part of PCIM or PCIMe (see Post 2a or 2b). IFF I2NSF needs to represent authorization policies (and I don't see why we wouldn't), then SUBJECT is MANDATORY; it is also mandatory for performing deontic and/or alethic logic. Target (especially if modeled as a set of roles) is a much more scalable and robust way of defining what entities policy will be applied to. </jcs> regards, John On Sun, Dec 13, 2015 at 6:45 PM, Xialiang (Frank) <frank.xialiang@huawei.com > wrote: > Hi John, > > Since current design principle for the policy model of capability > interface is to abstract from most common existing NSF security policy > implementations and consolidate them into a general and extensive model, I > think imperative logic is more suitable for this goal. > > > > I am very interested in whether “event” can be used in I2NSF capability > interface. Do you have some suggestions? > > > > Are the “subject” and “target” two different classes in PCIMe? Do you > suggest to include them in I2NSF policy model of capability interface for > the goal of authorizing the policy? > > > > B.R. > > Frank > > > > *发件人:* I2nsf [mailto:i2nsf-bounces@ietf.org] *代表 *John Strassner > *发送时间:* 2015年12月12日 7:32 > *收件人:* Linda Dunbar > *抄送:* i2nsf@ietf.org > *主题:* Re: [I2nsf] Service Layer Policies - Post 1: Background Information > on PCIM > > > > Hi Linda, > > > > thank you for your kind words. My replies are inline: > > > > Thank you very much for the in-depth analysis of PCIM and its suitability > as something that I2NSF should be based on. What you write is very > valuable. I think the analysis should be added to the I2NSF gap analysis, > (or be a standalone Policy Analysis ID). > > > > <jcs> > > If desired, I could summarize the key points for the gap analysis. I would > be willing to do a Policy Analysis I-D, but I think that this probably > belongs in SUPA. However, feedback from I2NSF is invaluable for such a > document. > > </jcs> > > > > > > Note: It is possible to define limited constraints in PCIM as conditions. > For example, the VendorPolicyCondition class has two attributes, Constraint > and ConstraintEncoding, that do this. This will be discussed more in Post 4. > > > > Note: Context is NOT defined in the PCIM. > > > > [Linda] Do you agree that “Condition of the PCIM” == “I2NSF subject” & > “the Contextual states (or the I2NSF object)”? > > > > <jcs> > > PCIM/PCIMe conditions are clearly similar to what is now called "I2NSF > Subject". However, the contextual state is trickier. Part of the problem is > how we want to define Context. I'll save the bulk for Post 4 (as outlined > in my Post 0 note). However, looking at page 6 of > draft-merged-i2nsf-framework-04: > > "Object-Match values, based on context (e.g., state, direction of the > traffic, time, geo-location, etc.)", in which case: > > - state: likely NOT part of the condition; rather, it applies to the > entire PolicyRule as a whole > > - traffic direction: part of the condition > > - time: part of the condition > > - geo-location: part of the condition > > </jcs> > > > > ... > > > > Critical Problems: > > > > There is no unique ID that can be used to distinguish different > instances of the same PolicyRule, PolicyGroup, PolicyCondition, > or PolicyAction. > > [Linda] Can we simply create an ID (string or numeric) for instances of > the same PolicyRule? Or it is more complicated? > > > > <jcs> > > SUPA and DEN-ng use two attributes to do this: > > > > - a string that contains the content of the identifier > > - a string that is an enum, which defines how to interpret the content > > > > This allows different IDs to be mixed (e.g., URIs, GUIDs, keys, FQDNs, > etc.) > > > > That being said, it is certainly easier to pick one and go with it, but > since I2NSF SHOULD interoperate with other models easily, I would recommend > a scheme similar to the one I used (or the above, of course). > > </jcs> > > > > > > Relationships are implemented by defining an abstract class > with keys, and then overriding the keys in the subclasses of the > relationship. This is broken. Would you override keys in an RDBMS? > > [Linda] Is the “Key” to differentiating different “PolicyRule”? Can you > give an example of “subclasses of the relationship”? > > What events can cause “overriding the keys in the subclasses of the > relationship”? > > > > <jcs> > No, the key (as in primary and foreign keys, just to be clear) is used as > part of how CIM data models are built. I believe that this strategy is > fundamentally incorrect (as in, would you override keys in an RDBMS). It > also violates a host of object-oriented principles (see Post 2b). > > > > Remember, PCIM and PCIMe do NOT define events. This is a design > (compile-time) definition of how you build CIM classes. > </jcs> > > > > > > · Most of the classes that are used to implement the relationships > do NOT have attributes, so it is impossible to restrict which > classes are related to which other classes (e.g., by context). > Put another way, the same relationship must always be used > between two types, even if the semantics varies. (The two > exceptions are PolicyConditionInPolicyRule and > PolicyActionInPolicyRule). > > [Linda] Does “classes” == “PolicyRule”? > > > > <jcs> > > No, "classes" == {association | aggregation | composition}. > > > > This is another artifact of CIM. They implement ALL relationships as > classes. In UML, there is a difference between these three relationships > and realizing them as a class; the CIM approach eliminates this distinction. > > </jcs> > > > > > > - The "ignore this unless you need this" philosophy does not > work. How do you know if other implementations that you are > supposed to interoperate with are using them? > > [Linda] Is “Ignore this unless you need this” an new type of “PolicyRule”? > > > > <jcs> > > No, sorry, this is one of the key points underlying the design philosophy > of CIM, and carried into PCIM and PCIMe. Basically, it means that it is OK > to define model elements on another model element if they are optional. > Examples: > > > > - defining an optional attribute, method, or relationship on a class > - defining an optional constraint > > > > This violates all of the 4 design principles in Post 2b (references > section) > > </jcs> > > > > > > There is no concept of the subject or the target of a policy > > [Linda] Does your “subject” have the same meaning as the “I2NSF subject” > which means bits&bytes extracted from packets? > > > > <jcs> > > No. A PolicySubject is the author of a policy. One could also > differentiate between author, owner, and executor, but that is more > complex. It is vital for deontic logic (i.e., the logic of obligations and > permissions, as in MUST, MUST NOT, SHOULD, MAY, etc.). This is one of my > concerns with the Sbbject-Object-Action-Function model - one cannot build > authorization policies that can be logically proven to be correct or not > without a PolicySubject. > > </jcs> > > > > > > Adding a new type of policy (e.g., declarative or functional) > will cause a major rewrite of the entire model > > > > [Linda] Can we say that I2NSF policies have one type > “Subject-ContextualStates- action- function? So in I2NSF environment, there > is only the notion of adding a new “PolicyRule”, but no adding a new policy > type. Is this correct statement? > > > > <jcs> > > No. The meaning of what I wrote above is much broader. If you think of ECA > policies as imperative in nature, then the analogy is that PCIM/PCIMe are > hard-wired to imperative policies. The schema cannot be used for other > forms (declarative, functional, etc.) of policies. > > > > Put another way, ECA (or CA, which is all that the PCIM/PCIMe can do) is > imperative - it specifies that, given this particular state, the ONLY state > that you are allowed to transition to is this other state. Rationality MUST > be compiled into the policy. In contrast, for declarative logic, given a > particular state, there are a SET of states that either satisfy the goal, > or take you closer to the goal. Hence, rationality is GENERATED by a logic > planner/optimizer. > > </jcs> > > > > > > There is no approach to detecting and solving policy conflicts; > this is due to the simplistic notion of just using a PDP and a > PEP for applying policies. > > > > [Linda] in I2NSF, there could be a lot of conflicts, for example, there > could be two rules entered at different time: > > 1. Virtual Network X can’t access “YouTube”, > > 2. 10.1.1.1 can access “YouTube” (where 10.1.1.1 is a host within > the Virtual Network X). > > Do you call the 2 rules above conflict? > > <jcs> > > Bob already answered this in > http://www.ietf.org/mail-archive/web/i2nsf/current/msg00729.html > > +1 to his answer (or see my reply) > > </jcs> > > > > > > Given the large amount of problems, I recommend that we not consider PCIM > further. > > [Linda] should I2NSF reference PCIM? > > > > <jcs> > > I don't see any harm in **referencing** PCIM or PCIMe; I just don't want > to **use** either to construct our policies. > > </jcs> > > > > > > best regards, > > John > > > > > > > > On Tue, Dec 8, 2015 at 1:10 PM, Linda Dunbar <linda.dunbar@huawei.com> > wrote: > > John, > > > > Thank you very much for the in-depth analysis of PCIM and its suitability > as something that I2NSF should be based on. What you write is very > valuable. I think the analysis should be added to the I2NSF gap analysis, > (or be a standalone Policy Analysis ID). > > > > I have some questions inserted below: > > > > *From:* I2nsf [mailto:i2nsf-bounces@ietf.org] *On Behalf Of *John > Strassner > *Sent:* Sunday, December 06, 2015 7:01 PM > *To:* i2nsf@ietf.org > *Subject:* [I2nsf] Service Layer Policies - Post 1: Background > Information on PCIM > > > > <Snipped> > > > > 2. Brief description of PCIM > > > > The PCIM Class Hierarchy is very simple, as this is a CA > (condition-action) model. Events are NOT represented. PCIM defines a > PolicyRule, a PolicyGroup (group of PolicyRules), PolicyCondition, and > PolicyAction. These are all siblings; their common superclass is called > Policy, as shown below: > > > > ManagedElement (abstract) > | > +---Policy (abstract) > | | > | +---PolicyGroup > | | > | +---PolicyRule > | | > | +---PolicyCondition (abstract) > | | | > | | +---PolicyTimePeriodCondition > | | | > | | +---VendorPolicyCondition > | | > | +---PolicyAction (abstract) > | | > | +---VendorPolicyAction > > > > Note: PCIM does have a simple notion of Roles, but implements them as > attributes, instead of objects. This is not scalable, and does not fully > realize the power of using roles. This will be discussed more in Post 3. > > > > Note: It is possible to define limited constraints in PCIM as conditions. > For example, the VendorPolicyCondition class has two attributes, Constraint > and ConstraintEncoding, that do this. This will be discussed more in Post 4. > > > > Note: Context is NOT defined in the PCIM. > > > > [Linda] Do you agree that “Condition of the PCIM” == “I2NSF subject” & > “the Contextual states (or the I2NSF object)”? > > > > > > 3. Summary: main drawbacks of using PCIM > > > > Note that the current CIM Policy Model (2.44.1) is significantly different > than either PCIM or PCIMe. PCIM is based on CIM 2.4; PCIMe is based on CIM > 2.5. PCIMe is NOT backwards compatible with PCIM in all areas. > > > > Critical Problems: > > - There is no unique ID that can be used to distinguish different > instances of the same PolicyRule, PolicyGroup, PolicyCondition, > or PolicyAction. > > [Linda] Can we simply create an ID (string or numeric) for instances of > the same PolicyRule? Or it is more complicated? > > - Relationships are implemented by defining an abstract class > with keys, and then overriding the keys in the subclasses of the > relationship. This is broken. Would you override keys in an RDBMS? > > [Linda] Is the “Key” to differentiating different “PolicyRule”? Can you > give an example of “subclasses of the relationship”? > > What events can cause “overriding the keys in the subclasses of the > relationship”? > > - Most of the classes that are used to implement the relationships > do NOT have attributes, so it is impossible to restrict which > classes are related to which other classes (e.g., by context). > Put another way, the same relationship must always be used > between two types, even if the semantics varies. (The two > exceptions are PolicyConditionInPolicyRule and > PolicyActionInPolicyRule). > > [Linda] Does “classes” == “PolicyRule”? > > - The "ignore this unless you need this" philosophy does not > work. How do you know if other implementations that you are > supposed to interoperate with are using them? > > [Linda] Is “Ignore this unless you need this” an new type of “PolicyRule”? > > - There is no concept of error or exception handling > - There is no concept of the subject or the target of a policy > > [Linda] Does your “subject” have the same meaning as the “I2NSF subject” > which means bits&bytes extracted from packets? > > - Adding a new type of policy (e.g., declarative or functional) > will cause a major rewrite of the entire model > > > > [Linda] Can we say that I2NSF policies have one type > “Subject-ContextualStates- action- function? So in I2NSF environment, there > is only the notion of adding a new “PolicyRule”, but no adding a new policy > type. Is this correct statement? > > - There is no approach to detecting and solving policy conflicts; > this is due to the simplistic notion of just using a PDP and a > PEP for applying policies. > > > > [Linda] in I2NSF, there could be a lot of conflicts, for example, there > could be two rules entered at different time: > > 1. Virtual Network X can’t access “YouTube”, > > 2. 10.1.1.1 can access “YouTube” (where 10.1.1.1 is a host within > the Virtual Network X). > > Do you call the 2 rules above conflict? > > > > > > 4. Recommendations > > > > Given the large amount of problems, I recommend that we not consider PCIM > further. > > [Linda] should I2NSF reference PCIM? > > > > Thank you very much. Linda > > > > 5. Origin of PCIM/PCIMe > > > > This is a **theory** section; please skip unless you want to understand > the model in more detail. > > > > The PCIM is based on the DMTF CIM, which is actually a **data model** > (despite its name) because it uses relational technologies (e.g., keys and > weak references) to create its model. PCIM is based on an early version of > the CIM (2.4); the current version of the CIM is 2.44.1 as of this writing. > Since this is tied to the CIM, this means that: > > > > 1) Policy is subclassed from a more generic class (ManagedElement) > > 2) ALL relationships (associations, aggregations, and compositions) > > are realized as **classes** > > 3) As a result of 2), relationships are subclassed > > 4) Both attributes and associations are **inherited** > > 5) The same design approach (as much as possible) was used in > > PCIM/PCIMe as was in CIM. Specifically, it was thought better > > to define a generic, but optional, relationship instead of not > > defining the relationship. > > 6) The CIM does NOT have a single rooted hierarchy; this makes > > code generation more complex > > 7) The CIM uses a proprietary language and is not strictly UML > > compliant, even though it looks like UML (unfortunately, this > > language is also called MOF) > > > > Depending on the complexity of the implementation, the above have been > shown to produce problems in large environments. For example, the spirit of > "let's define an attribute or association in case it is useful, and make it > optional so you don't have to worry about it" not only violates some > well-known software architectural guidelines (e.g., Single Responsibility > Principle and the Liskov Substitution Principle), but it makes things > difficult to interoperate with (since you never really know if an attribute > or relationship should be instantiated or not). > > > > > > regards, > > John > > > > > -- > > regards, > > John > -- regards, John
- [I2nsf] Service Layer Policies - Post 1: Backgrou… John Strassner
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Linda Dunbar
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Natale, Bob
- Re: [I2nsf] Service Layer Policies - Post 1: Back… Linda Dunbar
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- [I2nsf] 答复: Service Layer Policies - Post 1: Back… Xialiang (Frank)
- Re: [I2nsf] Service Layer Policies - Post 1: Back… John Strassner
- [I2nsf] 答复: Service Layer Policies - Post 1: Back… Xialiang (Frank)
- Re: [I2nsf] 答复: Service Layer Policies - Post 1: … John Strassner
- Re: [I2nsf] 答复: Service Layer Policies - Post 1: … John Strassner
- [I2nsf] 答复: 答复: Service Layer Policies - Post 1: … Xialiang (Frank)