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

Fingerprinting section could be improved #238

Open
youennf opened this issue May 11, 2021 · 3 comments
Open

Fingerprinting section could be improved #238

youennf opened this issue May 11, 2021 · 3 comments
Labels
editorial changes to wording, grammar, etc that don't modify the intended behavior privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response.

Comments

@youennf
Copy link
Contributor

youennf commented May 11, 2021

The specification has a privacy section which mentions issues like fingerprinting based on capabilities and identifying underlying codecs. The specification does not provide much guidelines for mitigations except to piggy-back on a 'privacy budget' which is not really specified. It seems additional efforts and thoughts could be put on fingerprinting removal/mitigation strategies.

Also the spec says that: 'Much of this profile is already exposed by existing APIs'.
This is not really true. For instance we are trying to remove leaks from WebRTC specs (see w3c/webrtc-stats#550 for instance) and some implementations do not expose values for that very reason.
WebCodec is also currently exposing hardware/software which is not exposed in Media Capabilities (powerEfficient != hardware acceleration).

There are other potential fingerprinting issues that should probably be described and discussed:

  • Timing information might further allow identify user behavior (side channel information, especially with SW codecs)
  • A web page in the background might be able from time to time to try encoding/decoding video and see whether it can get access to hardware codecs. If it is not able to get hardware capabilities, it might mean the user is in a call.
  • If encoders/decoders use buffer pools with a max size, retaining video samples might allow getting that information which might be hardware/OS specific

It would be desirable for the spec to exhaustively list fingerprinting issues and potential mitigations.
It would be desirable to set some goals on what to achieve in terms of fingerprinting. Neutral would be great.
It would for instance be desirable to be able to implement this API with the necessary mitigations so that this API does not help differentiating devices like Mac mini vs. MacPro vs. MacBookPro.

@youennf
Copy link
Contributor Author

youennf commented May 11, 2021

Some specs do use markup to identify potential fingerprinting, for instance https://www.w3.org/TR/webrtc-stats/#dom-rtcinboundrtpstreamstats-decoderimplementation

@chcunningham
Copy link
Collaborator

Some of these are covered in separate issues filed after our recent discussion w/ PING

@youennf, for the issues that are not covered, can you open separate sub issues? This helps to have more focused discussions.

Also the spec says that: 'Much of this profile is already exposed by existing APIs'.
This is not really true. For instance we are trying to remove leaks from WebRTC specs (see w3c/webrtc-stats#550 for instance) and some implementations do not expose values for that very reason.
WebCodec is also currently exposing hardware/software which is not exposed in Media Capabilities (powerEfficient != hardware acceleration).

I is not my intent to convey that WebCodecs introduces nothing new, but I think its important to highlight new vs overlap. If other APIs change to not overlap we can update the text (seems early at this point). For MC, in practice powerEfficient will often = hardware accelerated and it is easy enough for an attacker to understand where that will be true on a per implementation basis.

It would be desirable for the spec to exhaustively list fingerprinting issues and potential mitigations.

Happy to do so. My intent with the existing text was to cover everything I had identified so far.

It would for instance be desirable to be able to implement this API with the necessary mitigations so that this API does not help differentiating devices like Mac mini vs. MacPro vs. MacBookPro.

The mitigation mentioned at the top should go along way here. That is: expose a common baseline set of capabilities. For separate concerns (e.g. timing attacks), lets discuss in their separate issues.

@chcunningham chcunningham added the editorial changes to wording, grammar, etc that don't modify the intended behavior label May 12, 2021
@chcunningham
Copy link
Collaborator

Triage note: marking 'editorial', as this requests additions to privacy considerations. Note: As mentioned above, I still think this should probably be split into sub issues.

@aboba aboba added privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. privacy-needs-resolution Issue the Privacy Group has raised and looks for a response on. and removed privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. labels May 8, 2024
@plehegar plehegar added privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. and removed privacy-needs-resolution Issue the Privacy Group has raised and looks for a response on. labels Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
editorial changes to wording, grammar, etc that don't modify the intended behavior privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response.
Projects
None yet
Development

No branches or pull requests

4 participants