Refinement Types for Secure Implementations
File(s)refinement-types.pdf (448.75 KB)
Published version
Author(s)
Maffeis, S
Gordon, A
Fournet, C
Bhargavan, K
Bengtson, J
Type
Conference Paper
Abstract
We present the design and implementation of a typechecker for verifying security properties of the source code of cryptographic protocols and access control mechanisms. The underlying type theory is a lambda-calculus equipped with refinement types for expressing pre- and post-conditions within first-order logic. We derive formal cryptographic primitives and represent active adversaries within the type theory. Well-typed programs enjoy assertion-based security properties, with respect to a realistic threat model including key compromise. The implementation amounts to an enhanced typechecker for the general purpose functional language F#; typechecking generates verification conditions that are passed to an SMT solver. We describe a series of checked examples. This is the first tool to verify authentication properties of cryptographic protocols by typechecking their source code.
Date Issued
2008-06
Citation
2008, pp.17-32
ISBN
978-0-7695-3182-3
Publisher
IEEE Computer Society
Source Title
CSF '08, 21st IEEE Symposium on Computer Security Foundations 2008
Start Page
17
End Page
32
Copyright Statement
© 2008 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.
Source
CSF '08, 21st IEEE Symposium on Computer Security Foundations 2008
Source Place
Pittsburgh, USA
Start Date
2008-06-23
Finish Date
2008-06-25
Coverage Spatial
Pittsburgh, USA