2009/dap/policy-reqs Overview.html,1.2,1.3

Update of /sources/public/2009/dap/policy-reqs
In directory hutz:/tmp/cvs-serv9326

Modified Files:
	Overview.html 
Log Message:
additional edits to complete ACTION-49


Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/policy-reqs/Overview.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- Overview.html	8 Nov 2009 18:59:31 -0000	1.2
+++ Overview.html	10 Nov 2009 17:02:29 -0000	1.3
@@ -30,6 +30,11 @@
         further work. It is based on input documents and list
         discussion.
       </p>
+      <p>
+        The security framework described in this document is intended
+        to be applicable both to widgets and web applications (web
+        site access to Device APIs).
+      </p>
     </section>
 
     <section class='informative'>
@@ -37,45 +42,90 @@
       <p>The following definitions are used in this document.</p>
       <dl>
         <dt>Application</dt>
-        <dd>Code that may make use of DAP APIs. This can be widgets, web
+        <dd>Code that may make use of DAP Device APIs. Application
+          code can be widgets or web 
           applications running in a browser, for example. </dd>
 
-        <dt>API</dt>
-          <dd>Collection of interfaces structured in terms of methods and
-            properties used by applications to access device
-            capabilities. Related interfaces may be grouped into
-            modules. Interfaces may be defined using WebIDL. Note that
-            interfaces, by themselves, are not necessarily associated
-            with a specific 
-            device capability. 
-          </dd>
-        <dt>Feature</dt>
-        <dd>A Feature is a defined way 
-of accessing certain specified define capabilities using an associated API.</dd>
-        <dt>device capability</dt>
-        <dd>device resource or functionality requiring access
+        <dt>Device API</dt>
+        <dd>A Device API is a collection of Javascript interfaces
+          structured in 
+          terms of methods and properties. Device APIs are  used by
+          applications to access Device 
+          Capabilities.
+        </dd>
+        <dt>Device Capability</dt>
+        <dd>A Device Capability is a device resource or device functionality
+          requiring access 
           control.</dd>
-          <dd> Examples of device capabilities are the ability to
+        <dd> Examples of device capabilities are the ability to
           read a local 
           file, or to discover nearby Bluetooth devices, or to send an
           SMS 
-          message.  In principle, device capabilities can be defined
+          message.  Device Capabilities may be defined
           in a way that is 
-          independent of the specific APIs that an application uses to access
+          independent of the specific Device APIs that an application
+          uses to access 
           them.  
         </dd>
+        <dt>Feature</dt>
+        <dd>A Feature is a set of Device APIs that provides access
+          to specified Device Capabilities. A Feature is identified
+          uniquely by IRI, and is the unit of expression of dependencies by Web
+          Applications.</dd>
+        <dt>Implicit Consent</dt>
+        <dd>A user action that is semantically meaningful in the
+          application context but which also implies that the user
+          wishes the action to proceed. An example is pressing a camera
+          shutter to take a photograph, implying consent to the act of
+          taking a photograph.</dd>
       </dl>
     </section>
 
-    <section>
-      <h2>Out of Scope</h2>
+    <section  class='informative'>
+      <h2>Use Cases</h2>
+      <p>Example Widget use cases, to give examples of the types of
+        policy that might be expressed:</p>
       <p>
+        <ul>
+          <li>
+            A Widget whose signature chains to operator root can read and write
+            from the PIM databases.
+          </li><li>
+            A Widget downloaded from weather.example.com can access
+            geolocation coordinates if the user says it’s OK.
+          </li><li>
+            The weather.example.com Widget can connect to
+            weather.example.com without 
+            notifying the user, except when roaming.
+          </li><li>
+            All Widgets with a reliably identified author can save data
+            persistently if the user says it’s OK.
+          </li><li>
+            No Widget can get my location, no matter who trusts it.
+          </li>
+        </ul>
+      </p>
+      <p>Example web site use cases, to give examples of the types of
+        policy that might be expressed:</p>
+      <p>
+        <ul>
+          <li>
+            A reliably identified website can access geolocation coordinates if the
+            user confirms it’s OK.
+          </li><li>
+            Any Website in a subdomain of mynetwork.example.com can read phone status
+            properties.
+          </li><li>
+            Reliably identified Websites can send and receive SMS except to premium
+            rate numbers.
+          </li><li>
+            evil.example.com cannot access any device APIs.
+          </li><li>
+            The weather.example.com foo widget can access geolocation coordinates but
+            only if it’s embedded on the foo home page.
+          </li>
+        </ul>
       </p>
-      <ul>
-        <li>The management of security policies ... is out of scope
-          (charter)</li>
-        <li>Identity Revocation</li>
-      </ul>
     </section>
 
     <section>
@@ -168,9 +218,12 @@
             decisions</li>
           <li>Users SHOULD have control over general configuration of security
             decisions</li>
+          <li>The security policy framework SHOULD be able to record
+            security configuration choices and interactive policy 
+            decisions using the policy markup language format.</li>
         </ul>
       </section>
-      <section class='informative'>
+      <section>
         <h3>Rationale</h3>
         <p>
           Prompts should be eliminated whenever possible. Many prompts do not provide
@@ -187,20 +240,31 @@
           less inclined to take any security decision seriously, which further
           undermines the effectiveness of a user-driven access control system.
         </p><p>
-          There will unavoidably be situations, however, where the
-          user is required to 
-          make access control decisions when web applications wish to
-          use sensitive 
-          APIs. The key issue remains, therefore, and DAP needs to
-          ensure a framework 
-          is provided that allows it to happen, and maximizes its
-          effectiveness, 
-          rather than seeking to eliminate it altogether. 
+          The semantics of some APIs are defined such that user
+          interaction is essential to use of the API. An example is
+          a camera API that enables the user to take a photograph, but
+          is defined to require the user to press a shutter key to take
+          the photograph. Another example
+          is an API that produces a message template, but requires the
+          user to press &quot;send&quot; to actually send the message.
         </p><p>
-          Modal prompts (i.e. prompts that block all other user
+          Such user actions constitute implicit consent, since the user
+          has a choice to perform them and doing so implies consent to
+          use the associated Device Capabilities. Such implicit consent
+          eliminates the need for a security access dialog for that
+          action since it is implicit in the application semantics. 
+        </p><p>
+          Device APIs may also be defined such that implicit consent is not
+          implied. Examples are a camera API that takes a photograph without
+          user involvement, or a messaging API that sends a message without the
+          user pressing &quot;send&quot;. In these cases policy and/or
+          user dialogs may be required.
+        </p><p>
+          It is important to note that  modal prompts (i.e. prompts
+          that block all other user 
           interaction until 
-          dismissed) seriously compromise user experience and are
-          avoidable. 
+          dismissed) seriously compromise the user experience. Modal
+          security prompts SHOULD be avoided.
         </p><p>
           Any prompt or dialog that requests a user security decision
           at runtime (e.g. 
@@ -210,24 +274,17 @@
           so that all 
           operations that could potentially trigger a prompt are
           asynchronous. 
-        </p><p>
-        The semantics of some APIs can be defined such that they
-        require user interaction that is meaningful to the user, yet
-        also imply consent to the action. Such implicit consent
-        eliminates the need for a security access dialog entirely,
-        incorporating it into the application semantics. An example is
-        a camera API that enables the user to take a photograph, but
-        requires them to press a shutter key to do so. Another example
-        is an API that produces a message template, but requires the
-        user to press "send" to actually send the message.
-        </p><p>
-          Given the wide range of possible valid means of eliciting
-          user security 
-          decisions, DAP should be minimally prescriptive about the
-          user experience, 
-          and should not assume that the same user experience is
-          appropriate for every 
-          API.
+        </p>
+        <p>
+          If user decisions
+          are themselves expressible in the policy language, then they can be 
+          &quot;remembered&quot; by
+          adding a policy-set and/or rule to the policy. Similarly, user
+          configuration settings should be possible in the policy
+          language.  This means that the policy document is not just a
+          way of creating 
+          an initial policy configuration, but can be the sole and complete
+          representation of the access control configuration at any time.
         </p>
       </section>
       <section class='informative'>
@@ -281,33 +338,6 @@
               effectively.
             </p>
           </li>
-          <li>Application control vs user agent control
-            <p class='issue'>
-              Does application or user agent or both determine which prompts are
-              presented to user?
-            </p>
-            <p>
-              This issue is whether the application, or the user agent, or both, have a
-              role in determining the extent to which prompts may appear, and at what
-              time.
-            </p><p>
-              Usually an application itself knows whether or not the user has implicitly
-              given permission for a particular operation. For example, after a user as
-              explicitly clicked the &quot;send email now&quot; button, he should not be faced with
-              a dialog saying &quot;this application wishes to connect to the
-              network ....&quot;. 
-              The user agent, by itself, cannot tell if the application has earned the
-              right to perform an operation without further explicit user acknowledgment,
-              so there is an argument for the application being able to influence whether
-              or not the UA intervenes with a prompt. This, of course, requires greater
-              trust in the application than would be necessary if the UA intervened
-              unconditionally.
-            </p><p>
-              DAP should determine whether or not there is a role that the application
-              itself can play in how and when security decisions are elicited explicitly
-              from the user.
-            </p>
-          </li>
         </ul>
       </section> <!-- open issues -->
     </section> <!-- user control -->
@@ -321,10 +351,8 @@
           <li>Capabilities MUST be defined for all sensitive device resources
             and functionality.
           </li>
-
-          <li>The security framework MUST support identifying device
-            capabilities 
-            independently of API using IRIs.
+          <li>Capabilities MUST be identified by strings associated
+            with API definitions produced by the DAP WG.
           </li>
           <li>The security framework MUST support access control
             decisions based on device capabilities, 
@@ -334,6 +362,7 @@
             decisions based on device features (one or more capabilities
             bound to a device API).
           </li>
+          <li>Features MUST be identified by IRI.</li>
           <li>The security framework MUST support sufficient granularity
             for sensible access control decisions.
           </li>
@@ -368,17 +397,41 @@
   <h3>Open Issues for Resolution</h3>
   <p>
   </p>
-  <p class='issue'>
-    Is access control at the feature level required or is access control
-    at the device capability level adequate?
-  </p>
-  <p class='issue'>
-    Define features by IRI and capabilities by string? e.g. BONDI identifies features by IRI, but defines a separate
-    namespace, centrally managed, for device capabilities (e.g.
-    device.io.file.read). 
-  </p>
 </section>
 </section>
+<section>
+  <h2>Access Control</h2>
+  <section>
+    <h3>Requirements</h3>
+    <p></p>
+    <ul>
+      <li>Access control decisions may be made at both the
+        granularity of Features
+        and Device Capabilities.
+      </li>
+    </ul>
+    <p class='issue'>
+      Is access control at the feature level required or is access control
+      at the device capability level adequate?
+    </p>
+  </section>
+  <section class='informative'>
+    <h3>Rationale</h3>
+    <p>
+    </p>
+  </section>
+</section>
+<section>
+  <h2>Out of Scope</h2>
+  <p>
+  </p>
+  <ul>
+    <li>The management of security policies ... is out of scope
+      (charter)</li>
+    <li>Identity Revocation</li>
+  </ul>
+</section>
+
 <section class='appendix'>
   <h2>Acknowledgements</h2>
   <p>

Received on Tuesday, 10 November 2009 17:02:41 UTC