Modular Verification of Security Protocol Code by Typing

被引:32
作者
Bhargavan, Karthikeyan
Fournet, Cedric
Gordon, Andrew D.
机构
来源
POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES | 2010年
关键词
D O I
10.1145/1706299.1706350
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We propose a method for verifying the security of protocol implementations. Our method is based on declaring and enforcing invariants on the usage of cryptography. We develop cryptographic libraries that embed a logic model of their cryptographic structures and that specify preconditions and postconditions on their functions so as to maintain their invariants. We present a theory to justify the soundness of modular code verification via our method. We implement the method for protocols coded in F# and verified using F7, our SMT-based typechecker for refinement types, that is, types carrying formulas to record invariants. As illustrated by a series of programming examples, our method can flexibly deal with a range of different cryptographic constructions and protocols. We evaluate the method on a series of larger case studies of protocol code, previously checked using whole-program analyses based on ProVerif, a leading verifier for cryptographic protocols. Our results indicate that compositional verification by typechecking with refinement types is more scalable than the best domain-specific analysis currently available for cryptographic code.
引用
收藏
页码:445 / 456
页数:12
相关论文
共 27 条
[1]   Secrecy by typing in security protocols [J].
Abadi, M .
JOURNAL OF THE ACM, 1999, 46 (05) :749-786
[2]  
[Anonymous], 2008, P 2008 ACM S INF COM
[3]  
[Anonymous], 1996, LNCS
[4]  
BELLARE M, 2008, J CRYPTOLOGY, V21
[5]  
Bengtson J., 2008, MSRTR2008118
[6]  
BHARGAVAN K, 2006, CSFW 06
[7]  
Bhargavan K., 2006, LNCS, V4184
[8]  
Bhargavan K, 2008, CCS'08: PROCEEDINGS OF THE 15TH ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, P459
[9]   An efficient cryptographic protocol verifier based on prolog rules [J].
Blanchet, B .
14TH IEEE COMPUTER SECURITY FOUNDATIONS WORKSHOP, PROCEEDINGS, 2001, :82-96
[10]   A computationally sound mechanized prover for security protocols [J].
Blanchet, Bruno .
2006 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, PROCEEDINGS, 2006, :140-154