Proceedings of the ACM on Programming Languages · 2024 · 16 citations · 16 references
ComputingComputer ScienceComputer SystemsFormal MethodsProgramming LanguagesSecurity PolicyAccess ControlApplication Programming InterfacesAuthorizationDeductive VerificationPolicy-based Access ControlProof AssistantsAccess ModelsAuthorization LanguagesDelegation LanguagesPermissionsPolicy Engine DesignPolicy ExpressivenessPolicy ModelsPolicy Structure
Cedar is a new authorization policy language designed to be ergonomic, fast, safe, and analyzable. Rather than embed authorization logic in an application’s code, developers can write that logic as Cedar policies and delegate access decisions to Cedar’s evaluation engine. Cedar’s simple and intuitive syntax supports common authorization use-cases with readable policies, naturally leveraging concepts from role-based, attribute-based, and relation-based access control models. Cedar’s policy structure enables access requests to be decided quickly. Cedar’s policy validator leverages optional typing to help policy writers avoid mistakes, but not get in their way. Cedar’s design has been finely balanced to allow for a sound and complete logical encoding, which enables precise policy analysis, e.g., to ensure that when refactoring a set of policies, the authorized permissions do not change. We have modeled Cedar in the Lean programming language, and used Lean’s proof assistant to prove important properties of Cedar’s design. We have implemented Cedar in Rust, and released it open-source. Comparing Cedar to two open-source languages, OpenFGA and Rego, we find (subjectively) that Cedar has equally or more readable policies, but (objectively) performs far better.
16
Finding and understanding bugs in C compilers
Xuejun Yang, Yang Chen, Eric Eide et al. · 2011 · 733 citations
Attribute-Based Access Control
Vincent C. Hu, D. Richard Kuhn, David F. Ferraiolo et al. · Computer · 2015 · 548 citations
Differential Testing for Software.
W. M. McKeeman · 1998 · 454 citations
SD3: a trust management system with certified evaluation
Trevor Jim · 2002 · 273 citations
Typed memory management in a calculus of capabilities
Karl Crary, David Walker, Greg Morrisett · 1999 · 251 citations