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

The stats API allow hardware fingerprinting (encoder, powerEfficient) #675

Closed
henbos opened this issue Sep 13, 2022 · 6 comments
Closed
Labels
privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response.

Comments

@henbos
Copy link
Collaborator

henbos commented Sep 13, 2022

From #550:

decoderImplementation, the codec data point, etc. reveal information about the underlying hardware beyond what's identified by getUserMedia

For the codec issue, I filed #674 as a separate issue due to the tie with webrtc-pc.
In the most recent TPAC (yesterday) we talked about fingerprinting in the context of adding powerEfficientEncoder.
@youennf added to #550 after the meeting:

@henbos proposed during the meeting the possibility to only expose this kind of fingerprinting past some user validation (for instance if getUserMedia/getDisplayMedia was called successfully on the document).

Maybe there is a way to phrase it in a generic way, something like:
As this field is a fingerprinting vector, it MUST only be exposed to contexts that the user interacted with in a deep manner, for instance if https://w3c.github.io/mediacapture-main/#context-capturing-state returns true.

I like this way of phrasing it and think we should add this to encoderImplementation and decoderImplementation, as well as the recently proposed powerEfficientEncoder and powerEfficientDecoder (#666).

@henbos henbos added the privacy-tracker Group bringing to attention of Privacy, or tracked by the Privacy Group but not needing response. label Sep 13, 2022
henbos added a commit to henbos/webrtc-stats that referenced this issue Sep 13, 2022
@henbos
Copy link
Collaborator Author

henbos commented Sep 13, 2022

Relying on context-capture-state is not perfect but good enough to take us forward, and I like the phrase leaving the door open for other "deep user interactions". It resolves the immediate fingerprinting issue, though it does prevent exposure in some previously available use cases.

But if we have a good privacy baseline we could iterate and add other exposure triggers in the future if that becomes necessary.

@henbos
Copy link
Collaborator Author

henbos commented Sep 22, 2022

@pes10k thoughts?

@pes10k
Copy link

pes10k commented Sep 22, 2022

I think the general approach is appealing, but i dont think "in a deep manner" is specific enough guidance for implementors. It would be ideal to just comprehensively mention when the field should be available and when it shouldn't

@henbos
Copy link
Collaborator Author

henbos commented Sep 23, 2022

This particular vagueness was phrased by @youennf. Youenn what if we add a hardware mitigation algorithm section that we refer to, and for now we make it explicitly that you MUST have "context capture state = true". While this does not have any vagueness, we would have a go-to place in the spec if we want to add other steps in the future where it should also be allowed to expose a metric.

It would be nice if we could be in a state where we're over-protective instead of under-protective allowing more discussion when the time comes that we want to expose the metrics to more use cases.

I feel like we get stuck on trying to have something be perfect and then we don't progress. Better to be over-protective and revisit, I say, so we can unblock the PR.

@youennf
Copy link
Contributor

youennf commented Sep 23, 2022

Youenn what if we add a hardware mitigation algorithm section that we refer to, and for now we make it explicitly that you MUST have "context capture state = true".

This sounds good to me.

@henbos
Copy link
Collaborator Author

henbos commented Sep 26, 2022

Done: #670

@henbos henbos closed this as completed in 93df8b6 Sep 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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

3 participants