TY - JOUR
T1 - A messy state of the union: taming the composite state machines of TLS
AU - Beurdouche, Benjamin
AU - Bhargavan, Karthikeyan
AU - Delignat-Lavaud, Antoine
AU - Fournet, Cédric
AU - Kohlweiss, Markulf
AU - Pironti, Alfredo
AU - Strub, Pierre-Yves
AU - Zinzindohoue, Jean Karim
PY - 2017/1/23
Y1 - 2017/1/23
N2 - The Transport Layer Security (TLS) protocol supports various authentication modes, key exchange methods, and protocol extensions. Confusingly, each combination may prescribe a different message sequence between the client and the server, and thus a key challenge for TLS implementations is to define a composite state machine that correctly handles these combinations. If the state machine is too restrictive, the implementation may fail to interoperate with others; if it is too liberal, it may allow unexpected message sequences that break the security of the protocol. We systematically test popular TLS implementations and find unexpected transitions in many of their state machines that have stayed hidden for years. We show how some of these flaws lead to critical security vulnerabilities, such as FREAK. While testing can help find such bugs, formal verification can prevent them entirely. To this end, we implement and formally verify a new composite state machine for OpenSSL, a popular TLS library.
AB - The Transport Layer Security (TLS) protocol supports various authentication modes, key exchange methods, and protocol extensions. Confusingly, each combination may prescribe a different message sequence between the client and the server, and thus a key challenge for TLS implementations is to define a composite state machine that correctly handles these combinations. If the state machine is too restrictive, the implementation may fail to interoperate with others; if it is too liberal, it may allow unexpected message sequences that break the security of the protocol. We systematically test popular TLS implementations and find unexpected transitions in many of their state machines that have stayed hidden for years. We show how some of these flaws lead to critical security vulnerabilities, such as FREAK. While testing can help find such bugs, formal verification can prevent them entirely. To this end, we implement and formally verify a new composite state machine for OpenSSL, a popular TLS library.
U2 - 10.1145/3023357
DO - 10.1145/3023357
M3 - Article
SN - 0001-0782
VL - 60
SP - 99
EP - 107
JO - Communications of the ACM
JF - Communications of the ACM
IS - 2
ER -