-
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
Move enumerateDevices behind permission #612
Comments
@pallab-gain @karthikbr82 Please take a look |
enumerateDevices has a "device-info" permission (https://w3c.github.io/permissions/#dom-permissionname-device-info). This permission is granted when getUserMedia is granted. This permission controls exposure of device labels currently, not exposure of devices. Safari goes a bit further by obfuscating most information about devices if 'device-info' is not granted: it obfuscates most devices. This is probably somehow similar to what Mozilla is experimenting and @guido is mentioning (empty device IDs). Another approach would be to prompt in case enumerateDevices is called and "device-info" permission is not granted. This seems harder to deploy given how enumerateDevices is used currently. The prompt user message might be also more difficult to understand than the getUserMedia message. The additional use case to consider is for a webpage to monitor whether there is any camera/microphone at all, and update its UI accordingly. |
One possibility discussed on the mailing list is:
|
Adding some more filtering in #632 |
Uploaded #641 to remove "device-info" permission. |
@youennf i'm trying to follow the implications of this. Does this mean that the site can enumerate all devices after the user gives access to any device? If so, that would seem to conflict hard with the reduce-label-exposure topics we're discussing elsewhere. (and if not, can you say a bit more about the flow here? I might just be being dense…) |
By default, a site page will not be able to enumerate any device even if the site has persistent access to the camera/microphone. The fact that all devices are leaked after one getUserMedia call should be/is already treated as a separate issue. |
Tracked at #640. |
Closing this issue. @snyderp, please reopen if you think that would be useful. |
Currently websites can enumerate hardware capabilities with enumerateDevices(). Querying device capabilities is the kind of pseudo-identifier that allow users to be passively identified / fingerprinted. To prevent this, websites should, to the greatest degree possible, need user permission to query device capabilities. Websites should therefor need permission to access enumerateDevices().
Related: the Moz efforts discussed at the bottom of this comment : #607 (comment)
The text was updated successfully, but these errors were encountered: