Contact emails
phan...@microsoft.com, h...@chromium.org

Specification
https://datatracker.ietf.org/doc/rfc8446

Summary

Randomize the order of DTLS ClientHello extensions, to reduce potential
ecosystem brittleness.


This is a WebRTC specific follow-up to
https://groups.google.com/a/chromium.org/g/blink-dev/c/bYZK81WxYBo/m/lKLrZ_P2BwAJ
which
launched successfully a while back.


WebRTC uses DTLS (datagram TLS over UDP) multiplexed with STUN and RTP and
also uses a SRTP specific extension (use_srtp defined in RFC 5764) to
negotiate encryption keys.

Middleboxes might expect the use_srtp flag in a certain position which
changes with this feature.


Blink component
Blink>WebRTC
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EWebRTC>

TAG review
None

TAG review status
Not applicable

Risks


Interoperability and Compatibility

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


*Gecko*: Positive (https://github.com/mozilla/standards-positions/issues/709)
Applied to TLS and DTLS equally

*WebKit*: No signal (https://github.com/WebKit/standards-positions/issues/92
)

*Web developers*: No signals

*Other signals*:

Ergonomics

n/a, not developer facing


Activation

n/a, not developer facing


Security

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
DTLS, 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 DTLS 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?*

None


Debuggability

n/a, inner function of TLS stack. Possible to inspect using tools like
Wireshark


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

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?
No

Flag name on chrome://flags
None

Finch feature name
WebRTC-PermuteTlsClientHello

Requires code in //chrome?
False

Tracking bug
https://bugs.chromium.org/p/webrtc/issues/detail?id=15467

Estimated milestones
Shipping on desktop 120


Anticipated spec changes

*Open questions about a feature may be a source of future web compat or
interop issues. Please list open issues (e.g. links to known github issues
in the project for the feature specification) whose resolution may
introduce web compat/interop risk (e.g., changing to naming or structure of
the API in a non-backward-compatible way).*
None

Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5191245718880256

This intent message was generated by Chrome Platform Status
<https://chromestatus.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+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADxkKi%2BWEyR_PRHcAfNNR0w1SECOZ%2B3PqVN3x%3DGcYjK10tE6sg%40mail.gmail.com.

Reply via email to