Privacy-aware proof-carrying authorization

Proof-carrying authorization (PCA) is one of the most popular approaches for the enforcement of access control policies. In a nutshell, the idea is to formalize a policy as a set of logical rules and to let the requester construct a formal proof showing that she has permissions to access the desired resource according to the provider's policy. This policy may depend on logical formulas that are assumed by other principals in the system. The validity of these formulas is witnessed by digital signatures. The usage of digital signatures, however, has a serious drawback, i.e., sensitive data are leaked to the verifier, which severely limits the applicability of PCA. In this paper, we introduce the notion of privacy-aware proof-carrying authorization, an extension of PCA based on a powerful combination of digital signatures and zero-knowledge proofs of knowledge of such signatures. The former are used to witness the validity of logical formulas, the latter to selectively hide sensitive data. Our framework supports a variety of privacy properties, such as data secrecy and user anonymity. We conducted an experimental evaluation to demonstrate the feasibility of our approach.

[1]  Robert Harper,et al.  Distributed programming with distributed authorization , 2010, TLDI '10.

[2]  Ernest F. Brickell,et al.  Direct anonymous attestation , 2004, CCS '04.

[3]  Andrew D. Gordon,et al.  Design and Semantics of a Decentralized Authorization Language , 2007, 20th IEEE Computer Security Foundations Symposium (CSF'07).

[4]  Michael Backes,et al.  Anonymous Webs of Trust , 2010, Privacy Enhancing Technologies.

[5]  Lujo Bauer,et al.  Device-Enabled Authorization in the Grey System ¶ , 2006 .

[6]  Martín Abadi,et al.  A Calculus for Access Control in Distributed Systems , 1991, CRYPTO.

[7]  Avik Chaudhuri,et al.  PCAL: Language Support for Proof-Carrying Authorization Systems , 2009, ESORICS.

[8]  Frank Pfenning,et al.  A Proof-Carrying File System , 2010, 2010 IEEE Symposium on Security and Privacy.

[9]  John DeTreville,et al.  Binder, a logic-based security language , 2002, Proceedings 2002 IEEE Symposium on Security and Privacy.

[10]  Hovav Shacham,et al.  Randomizable Proofs and Delegatable Anonymous Credentials , 2009, CRYPTO.

[11]  Steve Zdancewic,et al.  AURA: a programming language for authorization and audit , 2008, ICFP 2008.

[12]  Georg Fuchsbauer,et al.  Batch Groth-Sahai , 2010, ACNS.

[13]  Andrew W. Appel,et al.  Proof-carrying authentication , 1999, CCS '99.

[14]  Michael Backes,et al.  A Security API for Distributed Social Networks , 2011, NDSS.

[15]  Yunhao Liu,et al.  Pseudo Trust: Zero-Knowledge Authentication in Anonymous P2Ps , 2008, IEEE Transactions on Parallel and Distributed Systems.

[16]  Silvio Micali,et al.  Proofs that yield nothing but their validity or all languages in NP have zero-knowledge proof systems , 1991, JACM.

[17]  Andrew W. Appel,et al.  Access control on the Web using proof-carrying authorization , 2003, Proceedings DARPA Information Survivability Conference and Exposition.

[18]  Amit Sahai,et al.  Efficient Non-interactive Proof Systems for Bilinear Groups , 2008, EUROCRYPT.

[19]  B. Lampson,et al.  Authentication in distributed systems: theory and practice , 1991, TOCS.