RFC 8701 / START HERE
TLS GREASE, before the details
GREASE means Generate Random Extensions And Sustain Extensibility; TLS means Transport Layer Security.
TLS peers offer capabilities and choose compatible ones. GREASE adds deliberately unusable reserved values to certain offers, so peers must exercise the rule to ignore unknown options. The reserved values are probes, never algorithms to negotiate.
The idea in one picture
Offer a probe
Ignore unknown offers
Select a real choice
A simplified picture of the idea; the chapters explain the actual mechanisms.
Why it exists
An implementation may work with every familiar option yet fail on a new one. These unnoticed extensibility bugs can prevent new features from being deployed. RFC 8701 describes probes that expose that intolerance early, while preserving ordinary TLS message rules.
A familiar example
A client offers a reserved cipher-suite value beside a real supported suite. A cipher suite names a set of cryptographic algorithms. A correct server ignores the unknown offer and can choose the real suite. If it selects the reserved value instead, the client must fail. GREASE does not encrypt traffic, authenticate a peer or guarantee that two peers share a real capability.
Helpful background
You can start here without reading another RFC. If these ideas are unfamiliar, these short introductions may help.
What you’ll learn next
Begin with chapter one, or choose a topic.
- Recognize reserved values without giving them meaningGREASE reserves deliberately unusable values to exercise handling of unknown capabilities. A codepoint is a number identifying a protocol option.→
- Offer GREASE in a ClientHello and keep real choicesA cipher suite names a set of cryptographic algorithms. The client advertises capabilities in ClientHello, and the server must ignore unknown offers while trying the remaining parameters.→
- Apply the rule when the server advertises firstTLS 1.3 also has server-initiated offers. A CertificateRequest can include GREASE, and the client must keep real choices.→
- Vary probes while preserving valid message structureGREASE tests unknown-value tolerance inside otherwise valid messages. Random choices do not waive TLS syntax or extension rules.→
- Expose intolerance and reject invalid selectionsGREASE should reveal extensibility bugs rather than hide them behind automatic fallback. Valid negotiation still needs a real common parameter.→
This introduction explains RFC 8701 (2020). Read the original RFC ↗