22.1 SMACK
In 2015, a group of French security researchers with Benjamin Beurdouche systematically tested the then-popular open source TLS implementations for state-machine-related bugs and uncovered multiple critical security vulnerabilities that have been dormant in these libraries for years [28]. They called these vulnerabilities State Machine Attacks on TLS (SMACK).
In several previous chapters, for example, in Chapter 6 Transport Layer Security at a Glance, Chapter 8 Elliptic Curves, Chapter 12 Secrets and Keys in TLS 1.3, and Chapter 18 TLS Cipher Suites, we learned that TLS supports a variety of protocol versions, authentication modes, key exchange alternatives, and protocol extensions.
TLS implementations typically consist of functions for parsing and generating messages, and for performing cryptographic operations. The message sequence – which message to expect or which message to generate as a response – is managed by the TLS peer’...