Ready for Trial: TLS ClientHello extension permutation

Skip to first unread message

David Adrian

Aug 25, 2022, 12:40:34 PM8/25/22

Contact emails


Design docs


Randomize the order of TLS ClientHello extensions, to reduce ossification.

Blink component


TAG review

TAG review status

Not applicable


Interoperability and Compatibility

It is possible that Chrome’s ClientHello extension ordering is already ossified. This change may cause compatibility issues with middleboxes or other network monitoring software. We will do a slow rollout and monitor breakage.

Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:


n/a, not developer facing


n/a, not developer facing


Using a fixed extension order can encourage server implementers to fingerprint Chrome and then assume specific implementation behavior. This can limit ecosystem agility when Chrome implements future modifications to TLS, if the server implementations are not prepared for Chrome to change its ClientHello. Chrome will randomly order extensions, subject to the pre_shared_key constraint in the RFC. This will reduce the risk of server and middleboxes fixating on details of our current ClientHello. This should make the TLS ecosystem more robust to changes.

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?

Goals for experimentation

Monitor breakage and complaints, if any.

Ongoing technical constraints

It is possible that the extension ordering is already ossified. This change may cause compatibility issues with middleboxes. We will do a slow rollout and monitor breakage.


n/a, inner function of TLS stack

Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?


Is this feature fully tested by web-platform-tests?


Flag name

Requires code in //chrome?


Tracking bug

Estimated milestones

DevTrial on desktop106
DevTrial on Android106

Link to entry on the Chrome Platform Status

This intent message was generated by Chrome Platform Status.

Dennis Jackson

Sep 6, 2022, 11:47:13 AM9/6/22
to blink-dev
We (Mozilla) are supportive of this experiment and are looking at doing something similar in Firefox. This work is tracked in 1789436.

Kind regards,

David Adrian

Nov 17, 2022, 12:07:48 PM11/17/22
to blink-dev
Updating this to say:

1) I screwed up and this really should have been an Intent to Experiment.
2) We've been experimenting behind Finch / staged rollouts, and have seen no change in overall metrics, and no increase in SSL errors, from Canary/Dev, through Beta and 1% Stable.

We also heard off-thread from the folks who run, and they are aware of and working around the change in ClientHello structure.

I plan to send an Intent to Ship later today.

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
To view this discussion on the web visit
Reply all
Reply to author
0 new messages