User-Driven Access Control:
Rethinking Permission Granting in Modern Operating Systems
Franziska Roesner, Tadayoshi Kohno
{franzi, yoshi}@cs.washington.edu
University of Washington
Alexander Moshchuk, Bryan Parno, Helen J. Wang
{alexmos, parno, helenw}@microsoft.com
Microsoft Research, Redmond
Crispin Cowan crispin@microsoft.com
Microsoft
Abstract
tionality and security for access to the user s data and resources. From a functionality standpoint, isolation inhibits the client-side manipulation of user data across arbitrary applications. For example, the isolation of web sites makes it difficult to share photos between two online providers
(e.g., Picasa and Flickr) without manually downloading and re-uploading them. (While two such applications can prenegotiate data exchanges through IPC channels or other APIs,
requiring every pair of applications used by a user to prenegotiate is inefficient or impossible.) From a security standpoint, existing access control mechanisms tend to be coarsegrained, abrasive, or inadequate. For instance, they require users to make out-of-context, uninformed decisions at install time via manifests [3, 6], or they unintelligently prompt users to determine their intent [5, 20].
Thus, a pressing open problem in these systems is how to allow users to grant applications access to user-owned resources spanning different isolation boundaries, defined as privacy-and cost-sensitive devices and sensors (such as the camera, GPS, or SMS capabilities), system services and settings (such as the contact list or clipboard), and user content stored with various applications (such as photos or documents). To address this problem, we propose user-driven access control, whereby the system captures user intent via authentic user actions in the context of applications.
In particular, we introduce access control gadgets (ACGs)
as an operating system technique to capture user intent. Each user-owned resource exposes UI elements called ACGs for applications to embed. The user s authentic UI interactions with an ACG grant the embedding application permission to access the corresponding resource. Our design ensures the display integrity of ACGs, resists tampering by malicious applications, and allows the system to translate authentic user input on the ACGs into permissions.
The ACG mechanism enables a permission granting system that minimizes unintended access by letting users grant permissions at the time of use (unlike the manifest model)
and minimizes the burden on users by implicitly extracting a
Modern client platforms, such as iOS, Android, Windows
Phone, Windows 8, and web browsers, run each application in an isolated environment with limited privileges. A pressing open problem in such systems is how to allow users to grant applications access to user-owned resources, e.g., to privacyand cost-sensitive devices like the camera or to user data residing in other applications. A key challenge is to enable such access in a way that is non-disruptive to users while still maintaining least-privilege restrictions on applications.
In this paper, we take the approach of user-driven access control, whereby permission granting is built into existing