Security Analysis of Crypto-based Java Programs using Automated Theorem Provers

Jan Jurjens
2006 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06)  
Determining the security properties satisfied by software using cryptography is difficult: Security requirements such as secrecy, integrity and authenticity of data are notoriously hard to establish, especially in the context of cryptographic interactions. Nevertheless, little attention has been paid so far to the verification of such implementations with respect to the secure use of cryptography. We propose an approach to use automated theorem provers for first-order logic to formally verify
more » ... ypto-based Java implementations, based on control flow graphs. It supports an abstract and modular security analysis by using assertions in the source code. Thus large software systems can be divided into small parts for which a formal security analysis can be performed more easily and the results composed. The assertions are validated against the program behavior in a run-time analysis. Our approach is supported by the tool JavaSec available as open-source and validated in an application to a Java Card implementation of the Common Electronic Purse Specifications and the Java implementation Jessie of SSL.
doi:10.1109/ase.2006.60 dblp:conf/kbse/Jurjens06 fatcat:eg7yuimfgreqdp2polhzo7jgxi