Verified correctness and security of OpenSSL HMAC

被引:0
作者
Beringer, Lennart [1 ]
Petcher, Adam [2 ,3 ]
Ye, Katherine Q. [1 ]
Appel, Andrew W. [1 ]
机构
[1] Princeton Univ, Princeton, NJ 08544 USA
[2] Harvard Univ, Cambridge, MA 02138 USA
[3] MIT, Lincoln Lab, Cambridge, MA 02139 USA
来源
PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM | 2015年
关键词
FORMAL VERIFICATION; PROOF;
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
We have proved, with machine-checked proofs in Coq, that an OpenSSL implementation of HMAC with SHA-256 correctly implements its FIPS functional specification and that its functional specification guarantees the expected cryptographic properties. This is the first machine-checked cryptographic proof that combines a source-program implementation proof, a compiler-correctness proof, and a cryptographic-security proof, with no gaps at the specification interfaces. The verification was done using three systems within the Coq proof assistant: the Foundational Cryptography Framework, to verify crypto properties of functional specs; the Verified Software Toolchain, to verify C programs w.r.t. functional specs; and CompCert, for verified compilation of C to assembly language.
引用
收藏
页码:207 / 221
页数:15
相关论文
共 41 条
[1]  
Affeldt R, 2014, J FORMALIZ REASON, V7, P63
[2]   On construction of a library of formally verified low-level arithmetic functions [J].
Affeldt, Reynald .
INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2013, 9 (02) :59-77
[3]  
Almeida J.B., 2013, P 2013 ACM SIGSAC C, P1217, DOI 10.1145/2508859.2516652
[4]  
Almeida J.B., 2012, IPTH ACM C COMPUTER, P488, DOI DOI 10.1145/2382196.2382249
[5]   CAOVerif: An open-source deductive verification platform for cryptographic software implementations [J].
Almeida, Jose Bacelar ;
Barbosa, Manuel ;
Filliatre, Jean-Christophe ;
Pinto, Jorge Sousa ;
Vieira, Barbara .
SCIENCE OF COMPUTER PROGRAMMING, 2014, 91 :216-233
[6]  
[Anonymous], 2008, FIPS PUB
[7]  
Appel A.W., 2014, PROGRAM LOGICS CERTI
[8]   Verification of a Cryptographic Primitive: SHA-256 [J].
Appel, Andrew W. .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2015, 37 (02)
[9]   A trustworthy proof checker [J].
Appel, AW ;
Michael, N ;
Stump, A ;
Virga, R .
JOURNAL OF AUTOMATED REASONING, 2003, 31 (3-4) :231-260
[10]   Formal verification of security protocol implementations: a survey [J].
Avalle, Matteo ;
Pironti, Alfredo ;
Sisto, Riccardo .
FORMAL ASPECTS OF COMPUTING, 2014, 26 (01) :99-123