A type discipline for authorization policies
- 2 August 2007
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 29 (5) , 25
- https://doi.org/10.1145/1275497.1275500
Abstract
Distributed systems and applications are often expected to enforce high-level authorization policies. To this end, the code for these systems relies on lower-level security mechanisms such as digital signatures, local ACLs, and encrypted communications. In principle, authorization specifications can be separated from code and carefully audited. Logic programs in particular can express policies in a simple, abstract manner. We consider the problem of checking whether a distributed implementation based on communication channels and cryptography complies with a logical authorization policy. We formalize authorization policies and their connection to code by embedding logical predicates and claims within a process calculus. We formulate policy compliance operationally by composing a process model of the distributed system with an arbitrary opponent process. Moreover, we propose a dependent type system for verifying policy compliance of implementation code. Using Datalog as an authorization logic, we show how to type several examples using policies and present a general schema for compiling policies.Keywords
This publication has 14 references indexed in Scilit:
- Access control for mobile agentsACM Transactions on Programming Languages and Systems, 2004
- Typing correspondence assertions for communication protocolsTheoretical Computer Science, 2003
- Protecting privacy using the decentralized label modelACM Transactions on Software Engineering and Methodology, 2000
- Secrecy by typing in security protocolsJournal of the ACM, 1999
- A Calculus for Cryptographic Protocols: The Spi CalculusInformation and Computation, 1999
- A calculus for access control in distributed systemsACM Transactions on Programming Languages and Systems, 1993
- What you always wanted to know about Datalog (and never dared to ask)IEEE Transactions on Knowledge and Data Engineering, 1989
- On the security of public key protocolsIEEE Transactions on Information Theory, 1983
- A language extension for expressing constraints on data accessCommunications of the ACM, 1978
- ProtectionACM SIGOPS Operating Systems Review, 1974