DKAL*: constructing executable specifications of authorization protocols

  • Authors:
  • Jean-Baptiste Jeannin;Guido de Caso;Juan Chen;Yuri Gurevich;Prasad Naldurg;Nikhil Swamy

  • Affiliations:
  • Cornell University;Universidad de Buenos Aires, Argentina;Microsoft Research;Microsoft Research;Microsoft Research;Microsoft Research

  • Venue:
  • ESSoS'13 Proceedings of the 5th international conference on Engineering Secure Software and Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many prior trust management frameworks provide authorization logics for specifying policies based on distributed trust. However, to implement a security protocol using these frameworks, one usually resorts to a general-purpose programming language. To reason about the security of the entire system, one must study not only policies in the authorization logic, but also hard-to-analyze implementation code. This paper proposes dkal⋆, a language for constructing executable specifications of authorization protocols. Protocol and policy designers can use dkal⋆'s authorization logic for expressing distributed trust relationships, and its small rule-based programming language to describe the message sequence of a protocol. Importantly, many low-level details of the protocol (e.g., marshaling formats or management of state consistency) are left abstract in dkal⋆, but sufficient details must be provided in order for the protocol to be executable. We formalize the semantics of dkal⋆, giving it an operational semantics and a type system. We prove various properties of dkal⋆, including type soundness and a decidability property for its underlying logic. We also present an interpreter for dkal⋆, mechanically verified for correctness and security. We evaluate our work experimentally on several examples.