Publication | Open Access
A Messy State of the Union: Taming the Composite State Machines of TLS
212
Citations
20
References
2015
Year
Unknown Venue
Cryptographic PrimitiveEngineeringInformation SecurityVerificationState Machine BugsCorrect State MachinesCryptographic ProtocolCommunicationSoftware AnalysisFormal VerificationHardware SecuritySecure ComputingSecure ProtocolPublic Key InfrastructureComputer EngineeringData PrivacyTransport Layer SecurityComputer ScienceData SecurityCryptographyTrustworthy ComputingComposite State MachinesCryptographic ProtectionFormal MethodsSecurityMessy State
TLS implementations must support many protocol versions, extensions, authentication modes, and key‑exchange methods, each prescribing distinct message sequences, and bugs arise when these individually correct state machines are incorrectly composed. The authors aim to design a robust composite state machine that correctly multiplexes between the various TLS protocol modes. They systematically test popular open‑source TLS libraries for state‑machine bugs, uncovering long‑hidden vulnerabilities, and provide the first verified C implementation of a composite TLS state machine that covers all supported cipher suites. The study reveals critical security flaws—including the FREAK attack—that allow attackers to break authenticated TLS connections, underscoring the necessity of formal verification and demonstrating that mechanized proofs are achievable for mainstream TLS implementations.
Implementations of the Transport Layer Security (TLS) protocol must handle a variety of protocol versions and extensions, authentication modes, and key exchange methods. Confusingly, each combination may prescribe a different message sequence between the client and the server. We address the problem of designing a robust composite state machine that correctly multiplexes between these different protocol modes. We systematically test popular open-source TLS implementations for state machine bugs and discover several critical security vulnerabilities that have lain hidden in these libraries for years, and have now finally been patched due to our disclosures. Several of these vulnerabilities, including the recently publicized FREAK flaw, enable a network attacker to break into TLS connections between authenticated clients and servers. We argue that state machine bugs stem from incorrect compositions of individually correct state machines. We present the first verified implementation of a composite TLS state machine in C that can be embedded into OpenSSL and accounts for all its supported cipher suites. Our attacks expose the need for the formal verification of core components in cryptographic protocol libraries, our implementation demonstrates that such mechanized proofs are within reach, even for mainstream TLS implementations.
| Year | Citations | |
|---|---|---|
Page 1
Page 1