-
Notifications
You must be signed in to change notification settings - Fork 62
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
Only reveal labels of devices user has given permission to #640
Comments
Privacy-by-default flow: Initially site has access to no devices or device labels
|
I like this flow. Sadly, I do not think this is web-compatible anymore for camera/mic given the current widespread usage of camera/mic pickers in websites. A few thoughts:
|
(Speaking to the subject, not the justification) To be more private than Chrome, Firefox needs those labels for in-content device selection.
To me, the headline here is: "Only grant device user has given permission to". Unless the spec can reign in Chrome's model, I see no net privacy gains from making it harder for user agents to make more private choices, only harm.
Are you saying all browsers need to implement this, or are these hoops only for those that do? Mozilla argued for this 7+ years ago and lost. |
Some use-cases that can benefit from getting the full list of devices:
|
Yes, knowing if there are more devices to ask for; some limited version of Some storable |
(With my co-chair hat off) I like this flow too. Mozilla would be supportive if the PING wants to pursue this and mandate it for all browsers. The WebRTC WG long ago went with in-content camera/mic selection over in-chrome picker designs championed by Firefox. In hindsight, this may have been a mistake given the fingerprinting abuse it's received. The privacy climate has changed as well. More recent picker-based APIs like |
If we are able to make progress there, we probably also need to think of how to handle grouped devices (groupID concept), for instance a camera or headset also having a microphone. |
and
Yes, the goal is to make this mandatory behavior in the spec, so that it would be consistent across implementors. The goal isn't to make life harder for folks already trying to protect privacy, but to make sure that correctly and throughly implementing the spec itself ensures a privacy-preserving environment (w/o having to resort to additional, non-standardized behaviors).
I'm not familiar with this, but if I can be helpful in coming up with a privacy-friendly approach here, please let me know; happy to help however i can |
We should assign this issue to somebody. Most browsers use labels given by the OS. We could probably mention in the spec what Firefox (and Safari now) are doing for some labels, i.e. sanitise them so that they do not leak important user information. |
Apologies for possible redundancy, but given that there are several similar issues going around, I wanted to clarify before further comment: Is this issue now being used to track what labels are available:
|
For 1, the spec is clear: no label is leaked. In addition to in-chrome picker, we are also looking at breaking useful information out of label, see https://github.com/w3c/mediacapture-main/issues/698. |
Thanks much @youennf , this is all terrific!
Thats fantastic! Is that whats covered by "browsing context did not capture" in the second paragraph in section 9.2.1? If so, thats great, I just did not realize "did not capture" was ~= "no permission for any device".
I think that'd be great, especially if there was specific guidance that could be shared from vendor experience so far. FWIW, Brave will be adding some mild randomness to these labels, in such a way that we think will fluxom at least naive fingerprinting scripts, but still be useful to people (we haven't implemented yet since we're still looking to see the final state of this spec). Also, just to say again, I appreciate that you all are partially constrained by web compat concerns, and how willing the WG has been to work through privacy-preserving solutions given those difficulties / constraints.
Thats terrific. Is there a place PING or other interested parties could support in the in-chrome picker work, to help raise and address privacy concerns earlier in the process? |
If understand this Issue correctly the only way for this to be applicable is for the devices to be presented at This specification needs to be honest and transparent about the fact that |
A combination of Firefox |
The above solution requires Media Capture and Streams to officially acknowledge that capturing only microphone and camera while being the original design pattern, is obsolete, or at least needs to be updated to conform what is really occurring in the field, and to not force users to create workarounds #693 (comment) to achieve the expected result. |
When |
A minimal example of a UI which provides a means to select multiple devices, in this case applications to be added to an panel, and to move the item up or down on the selection list using basic arrow icons for buttons. The current prompt is based on selecting 1 video and, or 1 audio, yet |
@pes10k It's not; it's stricter: You must be actively capturing to see labels now. Persistent permission is insufficient. This avoids web compat issues we'd otherwise see on revisits from the dominant browser implicitly persisting permission. I've filed crbug 1101860 on Chrome over this. The Firefox bug is here. |
I think thats great @jan-ivar . I appreciate that this issue, and the surrounding ones, have been a lot of work, but i think its gotten to a really good place. Thanks to you all for working all this stuff out :) |
I'm curious of what kind of sanitization is or will be done, and whether there should be some guidance on what's reasonable. Specifically:
Thanks. |
@q-alex-zhao Most sites show previews on their ⚙️ page, which seems like the best way to be sure the right camera is chosen and points the right way (I don't memorize my cameras' 8-digit Chrome codes) - Some modern devices (e.g airPods) let users rename them in the OS, something I think we'll see more of with IoT, so this seems solveable outside the web platform.
Specs necessarily take the long view, and we want to get away from overloading labels, because they're bad for web compat and privacy. If sites end up relying on their own banlists to do basic camera work, then we're doing something wrong. |
Evidently the only way to achieve consistency on the front-end is for the front-end to create a uniform UI.
Is that possible without executing |
@jan-ivar That's fine. Then I think maybe the spec should clarify that the label is for display purposes only and there is no guarantee that the label is tied to the "real" name of the device. Thanks. |
Can we close this issue? It seems we could try providing some guidance on potential device label sanitization. |
We will present this issue at TPAC 2020 meeting with PING and explain why we feel it's done. |
Presented and closed. Long-term solution for removal of labels in |
@jan-ivar one thing that came up during that conversation is for more details on whats needed by "sanitization", and more generally what implementors should do in response to "clarify label is for display purposes; don’t rely on == model/manufacturer." Pointing to some satisfactory or guiding examples or existing implementations of "sanitization" functions / tools would be a great way to clarify and finish the issue up i think |
(the text below assumes that by default sites get no labels until permission, as that issues is already being addressed here: w3cping/tracking-issues#10)
Currently, sites get access to either all devices and all labels (Chrome) or the "granted" device and all labels (Firefox) (not sure what others do).
As device labels are, at the least, high value FP vectors, and may possibly be even more sensitive (prototype devices, "adult" cameras and devices, etc etc etc), sites should only have access to the labels of devices that the user has given permission to.
i.e. if the site requests access to a webcam, and the user has two plugged in but grants access to just one, the site should learn only one label, not all.
This is an important aspect of not letting the site pierce browser isolation except for the minimal set of information / access needed to achieve user goals
The text was updated successfully, but these errors were encountered: