FlexTLS is a tool for rapidly prototyping and testing implementations of the Transport Layer Security (TLS) protocol. FlexTLS is built upon miTLS, a verified implementation of TLS, and hence protocol scenarios written in FlexTLS can benefit from robust libraries for messaging and cryptography. Conversely, attack scripts in FlexTLS can be used to evaluate and communicate the impact of new protocol vulnerabilities.
FlexTLS was used to discover recent attacks on TLS implementations, such as SKIP and FREAK, as well as to program the first proof-of-concept demos for FREAK and Logjam. It is also being used to experiment with proposed designs of the upcoming version 1.3 of TLS. Our goal is to create a common platform where protocol analysts and practitioners can easily test TLS implementations and share protocol designs, attacks or proofs. Here is an overview of the modular architecture of FlexTLS: