Cryptographically Verified Implementations for TLS
The authors intend to narrow the gap between concrete implementations of cryptographic protocols and their verified models. They develop and verify a small functional implementation of the Transport Layer Security protocol (TLS 1.0). They make use of the same executable code for interoperability testing against mainstream implementations, for automated symbolic cryptographic verification, and for automated computational cryptographic verification. They rely on a combination of recent tools, and they also develop a new tool for extracting computational models from executable code. They obtain strong security guarantees for TLS as used in typical deployments.