Contact emails
Spec
https://tools.ietf.org/html/draft-davidben-tls-grease-01
Summary
The TLS protocol provides several extension “joints” which we exercise on occasion to add new features. These typically are lists of opaque 16-bit code points (such as cipher suites) that the client offers and the server selects. For these extension points to work, servers must correctly ignore unknown values.
However, bugs may cause a server to reject unknown values. These broken servers will interoperate with existing clients, so the mistake may spread through the ecosystem unnoticed. Later, when new values are defined, updated clients will discover that the joint has rusted shut and that the new values cannot be deployed without interoperability failures.
(For those more familiar with HTTP or JS, imagine if sites broke on unexpected HTTP headers or JS attributes and we didn’t add new ones often enough to prevent this.)
GREASE (Generate Random Extensions And Sustain Extensibility) is a proposal to reserves some currently unused values for clients to advertise at random. Correct server implementations will ignore these values and interoperate. Servers that do not tolerate unknown values will fail to interoperate with existing clients, revealing the mistake before it is widespread.
We intend to apply GREASE to TLS cipher suites, extensions, and ECDH curves, hopefully expanding to other fields in the future.
Motivation
There is a baseline compatibility risk when making any TLS change that we will discover one of these intolerances. This is particularly problematic for joints which we exercise very rarely. GREASE’s goal is to decrease this baseline risk for future changes by keeping our joints well-oiled.
Interoperability and Compatibility Risk
Each of the categories being GREASEd have been added to relatively recently, so we expect the ecosystem is currently tolerant to new values. Rather we hope to reduce compatibility risk in the future with this change.
We can always safely remove this if needed. GREASE values don’t do anything, so, barring some creatively catastrophic server bugs, no server can depend on their presence.
Finally, we are burning 16 code points, but 16 is a much much smaller number than 65536.
Ongoing technical constraints
None.
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes.
OWP launch tracking bug
Link to entry on the feature dashboard
https://www.chromestatus.com/feature/6475903378915328
Requesting approval to ship?
Yes
Is this a joke? This sounds like a joke
No, but it is a very convenient acronym.[[TODO: How do I write IANA instructions to reserve all ALPN identifiers that begin with "ignore/"? Perhaps it would be better to reserve a concrete handful of identifiers instead.]]
The way to do it is likely to say "This document updates the registration procedures in <whateverdocumentthatis> to prohibit registration of values starting with "ignore/"".
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
I like this :-)What's the status of the IETF document (which still has the values as TBD)?
Note on the IETF document:[[TODO: How do I write IANA instructions to reserve all ALPN identifiers that begin with "ignore/"? Perhaps it would be better to reserve a concrete handful of identifiers instead.]]The way to do it is likely to say "This document updates the registration procedures in <whateverdocumentthatis> to prohibit registration of values starting with "ignore/"".
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+unsubscribe@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAF8qwaA%3D-qy7T%2BMz5OwdZHw75sHUGK9fsMcMZHnhKUxaS78_0w%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
Are vendors likely to hardcode the GREASEy values, and continue to
break when confronted with future extensions?
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
[[TODO: How do I write IANA instructions to reserve all ALPNidentifiers that begin with "ignore/"? Perhaps it would be better to reserve a concrete handful of identifiers instead.]]
lgtm3