Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MediaCapabilities API extended to WebRTC #619

Open
drkron opened this issue Mar 14, 2022 · 4 comments
Open

MediaCapabilities API extended to WebRTC #619

drkron opened this issue Mar 14, 2022 · 4 comments

Comments

@drkron
Copy link

drkron commented Mar 14, 2022

Request for Mozilla Position on an Emerging Web Specification

Other information

This is an extension to the existing MediaCapabilities API to support the type webrtc for queries to both decodingInfo and encodingInfo.
This was first proposed at the WebRTC WG Virtual Interim that took place on December 2, 2020.

@jan-ivar
Copy link
Member

jan-ivar commented Mar 14, 2022

I believe we're generally in favor? @padenot, @martinthomson, @jesup, @karlt, @bwc

I believe this is mostly a code move (w3c/webrtc-extensions#95) from today's RTCRtpSender.getCapabilities() (bug 1531460) and RTCRtpReceiver.getCapabilities (bug 1531460) APIs to MediaCapabilities.

The most sensitive part is probably w3c/webrtc-extensions#54, which I think was the motivator for moving this to MediaCapabilities, since that API already exposes similar info, to consolidate where this information is available.

Not sure who else on the security team to rope in on that.

@martinthomson
Copy link
Member

Yes, but ... This describes an API that exposes a fairly large amount of fingerprinting information. It depends this on several grounds.

  1. The information is already available. This is generally not a good reason if the information was simply available through other means, but I think that the assessment is somewhat more complex than that. If we want to continue to allow permission-less media playback, then exposing this information might be unavoidable. A clearer analysis of that already of this is probably needed in the spec.
  2. The fingerprinting entropy is much less than it seems. This is claimed, but no analysis (empirical or otherwise) is offered in support of this.

It would be good to understand the general trends here. Is the fingerprinting surface getting smaller or larger? What are browsers able to do to influence this? When we expose this information, what do users gain?

All of this probably leads to us getting supportive still, but some aspects of the design (HDR in particular right now, but what is special might change over time) seem to generate very strong fingerprinting signals and I would like to understand how we might manage that problem better.

@drkron
Copy link
Author

drkron commented Mar 16, 2022

There are different ways the fingerprinting entropy can be reduced. The Chromium implementation uses buckets to reduce the number of valid input configurations (resolution, framerate). In particular the code that responds to WebRTC queries is very restrictive and quantizes the input configuration into 1 out of 8 buckets per codec profile. The amount of information that is exposed will be tracked but I don't have any data at the moment.

Some of the fields such as HDR is not applicable to WebRTC at the moment. I will prepare a PR to clarify this, this is tracked in this issue w3c/media-capabilities#187.

@jan-ivar
Copy link
Member

See also #184

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Unscreened
Development

No branches or pull requests

3 participants