- From: Laura Arribas via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 26 May 2010 11:53:09 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/policy In directory hutz:/tmp/cvs-serv27583 Modified Files: Overview.html Log Message: Update to the policy framework draft Index: Overview.html =================================================================== RCS file: /sources/public/2009/dap/policy/Overview.html,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Overview.html 13 Apr 2010 15:01:37 -0000 1.8 +++ Overview.html 26 May 2010 11:53:07 -0000 1.9 @@ -29,10 +29,10 @@ <h2>Security Framework</h2> <section id="framework-overview"> <h3>Framework Overview</h3> - <p> - The DAP security model is based on a clear + <p> + This security model is based on a clear separation between the definition of the general framework and the creation - of specific Security Policies. This allows the configured Security Policy of + of specific trust and access policies. This allows the configured policies of a web runtime to be adapted to the needs of different stakeholders at any time during the lifecycle of a product. This includes, but is not limited to, the embedding and configuration of web runtimes at manufacture as well @@ -49,27 +49,27 @@ compatibility in policy structure). However, the framework must permit fine-grained security policies to be represented as well as policies based on broad groupings of APIs and assignment of web applications to a small number of - trust domains. For example, a fine-grained security policy is necessary to grant + trust domains. For example, a fine-grained access policy is necessary to grant or deny access to individual APIs for individual web applications. </p> <p> - The DAP security framework is based on a very general model that governs access by subjects - to resources based on a hierarchy of <a href=#policy>policies</a> and <a href=#policy-set>policy sets</a>, where each policy + This framework is based on a very general model that governs both trust domain access by subjects + to resources based on a hierarchy of <a href=#trust-policy>trust policies</a>, <a href=#access-policy>access policies</a> and <a href=#policy-set>policy sets</a>, where each policy consists of a number of <a href=#rule>rules</a>. Subjects and resources are characterised by a number of defined <a href=#subject-attributes>subject attributes</a> and <a href=#resource-attributes>resource attributes</a>. A range of - attributes is defined so that policies can be expressed controlling access based + attributes is defined so that access policies can be expressed based on a widget resource signer’s identity, or an individual widget resource identity, or the widget resource signature’s root certificate, or a website’s URL. Therefore, the generality of this framework derives from the range of attributes that are supported, as well as the flexible structure of policies and policy sets in the security model. </p> <p> - This model is defined using concepts, + This general model is defined using concepts, terminology and semantics from the eXtensible Access Control Markup Language - [[!XACML20]] framework. DAP policies are capable of + [[!XACML20]] framework. Trust and access policies are capable of representation in a compact XML format (and other formats, including a compact binary representation if necessary). </p> <p> - It is intended that DAP policies are also eventually capable of representation + It is intended that trust and access policies are also eventually capable of representation in XACML, using a specific dictionary of attributes and a subset of XACML elements; however this is not currently possible without defining a number of extensions to XACML. It is hoped that this becomes possible with future @@ -78,22 +78,32 @@ </section> <!-- framework overview--> <section id="layer-model"> <h3>Layer Model</h3> - <p> - A web application uses a DAP-specified mechanism to gain access to (or bind to) - a JavaScript API by stating one or more features exposed by the JavaScript API. - The implementation of this API, in turn, makes use of one or more device + <p> + A web application uses a mechanism specified in this document to gain access to (or bind to) + a JavaScript API by stating one or more features exposed by the JavaScript API. This access is given on a basis of the trust domain that has been assigned to the web application. + The implementation of the API, in turn, makes use of one or more device capabilities, defined in terms of facilities that might be provided by APIs at the device, platform or OS level, but without reference to any particular API. Where a JavaScript API is defined within the DAP model, each function definition specifies which feature it implements, and which device capabilities it uses. </p> <p> - The mechanisms provided in DAP to bind to APIs, and to control access (both to + The mechanisms provided in this specification to bind to APIs, and to control access (both to the features and the device capabilities exposed by them) are generic, and are - not themselves dependent on any particular set of JavaScript APIs. The DAP + not themselves dependent on any particular set of JavaScript APIs. This model envisages that these controls apply, irrespective of whether the APIs in use are defined by DAP or any independent entity. <!-- This “layering” of JavaScript APIs and mediating access control is illustrated in the figure below. --> </p> + <section id="trust-domain-control-layer"> + <h4>Trust Domain Control Layer</h4> + <p> + The trust domain control layer controls the assignment of the appropiate + trust domain to the web application via the relevant trust policy. In + general, trust policies will select one trust domain or another + depending on the <a href=#subject-attributes>subject attributes</a> and<a href=#environment-attributes>environment attributes</a> that + identify the web application. + </p> + </section> <!-- trust domain control layer --> <section id="api-access-control-layer"> <h4>Javascript API Access Control Layer</h4> <p> @@ -120,7 +130,7 @@ number of significant requirements, as follows. </p> <ul> - <li><p><strong>Extensibility is an intrinsic part of the DAP model.</strong> DAP expects that APIs will be defined and implemented + <li><p><strong>Extensibility is an intrinsic part of the security model.</strong> It is expected that APIs will be defined and implemented independently, and the nature of those APIs will not necessarily be known to the author of a security policy. Therefore, if a security policy author wishes to deny access to a specific device capability, then there must be a way of doing @@ -140,41 +150,43 @@ enabling or disabling access to a specific device capability will not directly correspond to enabling or disabling access to a single JavaScript API.</p></li> <li><p><strong>Implementations of JavaScript APIs need not be as highly - trusted as the web runtime.</strong> Authors of security policies may require the ability to + trusted as the web runtime.</strong> Authors of access policies may require the ability to control access to specific JavaScript APIs, or families of APIs, based on the identity of the API (and not just the device capabilities it exposes), according to the trustworthiness of the author of the API.</p></li> - <li><p><strong>It must be possible to represent security policies + <li><p><strong>It must be possible to represent both trust and access policies portably.</strong> This implies that all identifiers used in a security policy (both for features and for device capabilities) must be portably defined, and not (for example) based on any platform-specific API names. This requires that the identifiers for device capabilities are defined in a platform-independent way. <!-- BONDI defines a set of these capabilities in - Appendix - A.--></p></li> + Appendix A.--></p></li> </ul> - </section> <!-- considerations --> - </section> <!-- logical model --> + </section> <!-- feature-caps requirements --> + </section> <!-- layer model --> <section id="logical-model"> <h3>Logical Model</h3> - <p> - The DAP access control system, from a logical perspective, mediates any - attempt by an executing web application to access device capabilities - using JavaScript APIs. The access control system, implementing a specific - access control policy, has the sole effect of making and enforcing an - access control decision in relation to each attempted access. (In order to - make that decision the access control system may request interactive + <p> + On the one hand, the trust domain control system explained in this + document, from a logical perspective, represents the system by which a web + application that attempts to access device capabilities using JavaScript + APIs, is assigned a trust or security domain. This trust domain will then + be used in subsequent access requests, simplifying the whole process. On + the other hand, the access control system, implementing a specific access + control policy, has the sole effect of making and enforcing an access + control decision in relation to each attempted access. (In order to make + that decision the access control system may request interactive confirmation from the user, but this is invisible to the requesting web application.) </p> <p> - The access control system itself consists of a number of logically distinct + Both the trust and access control systems consist of a number of logically distinct elements. <!-- Specific DAP requirements and interfaces are specified in terms of these separate functional components. --> This logical breakdown and associated terminology is adopted from XACML [[!XACML20]] and illustrated below. </p> <!-- ILLUSTRATION XACML DATAFLOW --> - <object type="image/svg+xml" data="XACMLdataflow.svg"> - <img src="XACMLdataflow.png" alt="graphical representation of the XACML data flow" title="DAP security model, derived from XACML Specification Schema" width="700" height="700"/> </object> + <!-- <object type="image/svg+xml" data="dataflow.svg"> --> + <img src="dataflow.png" alt="graphical representation of the data flow" title="Security model, derived from XACML Specification Schema" width="700" height="700"/> <!-- </object> --> <p> The specified functional components are as follows: <ul> @@ -205,19 +217,31 @@ <p> The functionality required in each of these components is specified in terms of the following entities: </p> - <ul> <li><p><strong><a href=#subject>Subject</a>:</strong> the web application that requires access to JavaScript APIs. Examples of subjects are websites and widgets.</p></li> <li><p><strong><a href=#subject-attributes>Subject attribute</a>:</strong> each subject is associated with a set of - attributes. Subject attributes include specific attributes that represent - the identity of the web application attempting access to a resource. Valid - identity attributes include the widget identifier URI for widgets and the - URL for websites; other identifiers may be supported. Subject attributes - also include the credentials used to verify the authenticity and integrity - of the subject, e.g. a TLS or code signing digital certificate. Other + attributes. Subject attributes allow the identification of the web + application that is attempting access to device capabilities using device + APIs. The identified web application is then assigned a trust domain + according to the appropiate trust policy. Subject attributes include + specific attributes that represent the identity of the web application + attempting access to a resource. Valid identity attributes include the + widget identifier URI for widgets and the URL for websites; other + identifiers may be supported. Subject attributes also include the + credentials used to verify the authenticity and integrity of the subject, + e.g. a TLS or code signing digital certificate. Other credentials may be supported.</p></li> + <li><p><strong><a href=#environment-attributes>Environment + attribute</a>:</strong> the collection of device status and context + attributes that may be relevant to the circumstances of a resource access + attempt, but are not directly associated with either the subject or + resource. For example, environment attributes can include terminal + charging, network connection status, whether roaming.</p></li> + <div class="issue"> + <p>environment attributes</p> + <p>in this new model, aren't env attrs directly related to subject and trust policies?</p></div> <li><p><strong><a href=#resource>Resource</a>:</strong> the resources that subjects may request access to. The device features or services (e.g. the location @@ -231,12 +255,6 @@ may be associated with a resource, and these can include specific parameters that are specified as part of the request when attempting access.</p></li> - <li><p><strong><a href=#environment-attributes>Environment - attribute</a>:</strong> the collection of device status and context - attributes that may be relevant to the circumstances of a resource access - attempt, but are not directly associated with either the subject or - resource. For example, environment attributes can include terminal - charging, network connection status, whether roaming.</p></li> </ul> </p> </section> <!-- logical model -->
Received on Wednesday, 26 May 2010 11:53:10 UTC