Union, intersection and refinement types and reasoning about type disjointness for secure protocol implementations

  • Authors:
  • Michael Backes;Cătălin Hriţcu;Matteo Maffei

  • Affiliations:
  • CISPA, Saarland University, Saarbrücken, Germany and MPI-SWS, Saarbrücken and Kaiserslautern, Germany;CISPA, Saarland University, Saarbrücken, Germany and Inria, Paris-Rocquencourt, France and University of Pennsylvania, Philadelphia, PA, USA;CISPA, Saarland University, Saarbrücken, Germany

  • Venue:
  • Journal of Computer Security - Foundational Aspects of Security
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present a new type system for verifying the security of reference implementations of cryptographic protocols written in a core functional programming language. The type system combines prior work on refinement types, with union, intersection, and polymorphic types, and with the novel ability to reason statically about the disjointness of types. The increased expressivity enables the analysis of important protocol classes that were previously out of scope for the type-based analyses of reference protocol implementations. In particular, our types can statically characterize: i more usages of asymmetric cryptography, such as signatures of private data and encryptions of authenticated data; ii authenticity and integrity properties achieved by showing knowledge of secret data; iii applications based on zero-knowledge proofs. The type system comes with a mechanized proof of correctness and an efficient type-checker.