Changes

Jump to: navigation, search

Apps/Security

492 bytes removed, 20:32, 22 March 2012
moved requirements to requirements section
== Summary ==
===Core Principles===
#User control: Users control what application permissions an application has at all times (pre, during and post installation).
#Secure by default: A user who chooses to accept the default permissions recommended by a store must be secure by default
#Least Privilege: Applications must be granted the minimum privileges necessary to function
#Minimize Permissions: APIs should be designed in such a way to provide the most functionality without the need to be granted permissions
 
(''comment: these principles are requirements, and as such should be moved to the requirements section'')
===Process for granting permissions===
(''comment: this section appears to be in discussion or proposal form, not a summary form. as such it should be moved to a suitable section'')
 
===Management of Permissions===
#A user can modify the permissions granted to a Web App at any time including granting or revoking privileges
#Permissions can be granted per application, or set globally in the Default Permission Policy (see below)
#Users need to be guided on the consequence of changing permissions, and protected from making choices which are insecure or which could disable their device (e.g. removing the permissions setting capability from the permissions web app)
#Permissions can be modified either through a permission manager application, or set through contextual actions (e.g. response to security prompts including "remember me" checkboxes or through behavior in some cases, e.g. user ignores a prompt five times in a minute, don't prompt again for an hour)
 
(''comment: these permissions are written as a list of requirements, and as such should be moved to the requirements section'')
 
===Default Permission Policy===
Each B2G device has a default permissions policy which takes precedence over the app store. This is expected to contain rules for a subset of permissions.Its purpose is:
*for device manufacturers to set safe default limits for permissions
*for users to decide on global limits for permissions
For example, a default setting for location might be that even apps, which are granted access to location, must always ask the user. This could modify this policy to be more strict, and globally deny applications from accessing location information.
 
A user should be warned before they override the Default Permission Policy in an unsafe way.
 
(''comment: these default permissions policy specifications are written as a list of requirements, and as such should be moved to the requirements section'')
===Permission Types===
(''comment: these permission types are not really a summary, and as such should be moved to a suitable section'')
 
===Trust Model===
#The user is the root source of trust for permissions settings.
#B2G devices will be shipped with a root Trusted Store which has the power to set the permissions defaults for an Web App.
#The user can choose to override store permissions (either granting or revoking privileges), but the store permissions should be safe for the user, and represent the minimum permissions the application needs to run.
#The store can also entrust other stores with the power to grant permissions (possibly a subset of permissions, or not privileged permissions)
 
(''comment: these are requirements, and as such should be moved to the requirements section'')
=== Security Requirements for Critical App Deployment ===
== Requirements ==
===Core Principles===
#User control: Users control what application permissions an application has at all times (pre, during and post installation).
#Secure by default: A user who chooses to accept the default permissions recommended by a store must be secure by default
#Least Privilege: Applications must be granted the minimum privileges necessary to function
#Minimize Permissions: APIs should be designed in such a way to provide the most functionality without the need to be granted permissions
 
===Trust Model===
#The user is the root source of trust for permissions settings.
#B2G devices will be shipped with a root Trusted Store which has the power to set the permissions defaults for an Web App.
#The user can choose to override store permissions (either granting or revoking privileges), but the store permissions should be safe for the user, and represent the minimum permissions the application needs to run.
#The store can also entrust other stores with the power to grant permissions (possibly a subset of permissions, or not privileged permissions)
 
===Management of Permissions===
#A user can modify the permissions granted to a Web App at any time including granting or revoking privileges
#Permissions can be granted per application, or set globally in the Default Permission Policy (see below)
#Users need to be guided on the consequence of changing permissions, and protected from making choices which are insecure or which could disable their device (e.g. removing the permissions setting capability from the permissions web app)
#Permissions can be modified either through a permission manager application, or set through contextual actions (e.g. response to security prompts including "remember me" checkboxes or through behavior in some cases, e.g. user ignores a prompt five times in a minute, don't prompt again for an hour)
 
===Default Permission Policy===
Each B2G device has a default permissions policy which takes precedence over the app store. This is expected to contain rules for a subset of permissions.Its purpose is:
*for device manufacturers to set safe default limits for permissions
*for users to decide on global limits for permissions
For example, a default setting for location might be that even apps, which are granted access to location, must always ask the user. This could modify this policy to be more strict, and globally deny applications from accessing location information.
 
A user should be warned before they override the Default Permission Policy in an unsafe way.
 
=== Distribution / management of WebApps ===
# It should not be trivially easy for a rogue application to be listed on a marketplace / store
# User should be able to audit usage of permissions (this is different from viewing what permissions an app has, since that does not tell you how or when it is used)
# Apps must not request permission to do something or use a function that it has not declared that it needs to do. ('''TBD: If an app attempts to execute a function which the user has not authorised, what action should be taken? terminate the app? remove it? report it?''')
 
discussion links:
=== Enforcement of permissions on device ===
# Permissions should be enforced regardless of version of B2G installed
 
== Proposals ==
177
edits

Navigation menu