Spec: Define sensitive information and user intent by toji · Pull Request #757 · immersive-web/webxr · GitHub
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

Spec: Define sensitive information and user intent #757

Merged
merged 4 commits into from
Jul 8, 2019
Merged

Conversation

toji
Copy link
Member

@toji toji commented Jul 3, 2019

Pulls a lot of text directly out of privacy-security-explainer.md to
define some of the various terms necessary to discuss user consent and
the data that it protects. This PR does not include several things from
the privacy explainer such as the restrictions on pose data and data
mitigation strategies. I expect to address them in a follow-up PR.

Pulls a lot of text directly out of privacy-security-explainer.md to
define some of the various terms necessary to discuss user consent and
the data that it protects.
@toji toji changed the base branch from feature-spec to master July 3, 2019 20:53
@toji toji requested a review from NellWaliczek July 3, 2019 20:54
@toji toji added this to the June 2019 milestone Jul 3, 2019
index.bs Show resolved Hide resolved
index.bs Show resolved Hide resolved
index.bs Outdated Show resolved Hide resolved
index.bs Show resolved Hide resolved
index.bs Outdated Show resolved Hide resolved
index.bs Outdated Show resolved Hide resolved
index.bs Outdated Show resolved Hide resolved
Copy link
Member

@NellWaliczek NellWaliczek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Looking forward to the algorithmic updates for the other sections!

@toji toji merged commit 412baf8 into master Jul 8, 2019
@toji toji deleted the consent-spec branch July 8, 2019 22:52
Copy link
Contributor

@johnpallett johnpallett left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments below. There are some specific requirements in the privacy & security explainer around user profiling and fingerprinting data protections, wasn't sure whether you wanted to include those here or in a new PR?

index.bs Outdated

In the context of XR, <dfn>sensitive information</dfn> includes, but is not limited to, user configurable data such as interpupillary distance (IPD) and sensor-based data such as {{XRPose}}s. All {{XRSessionMode/"immersive-vr"}} and {{XRSessionMode/"immersive-ar"}} sessions will expose some amount of sensitive data, due to the user's pose being necessary to render anything. However, in some cases, the same sensitive information will also be exposed via {{XRSessionMode/"inline"}} sessions.

Trustworthy Documents and Origins {#trustworthy-documents}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TIL that the term "potentially trustworthy" has an established meaning within secure contexts. Any concerns about using similar terminology in WebXR? Sorry @NellWaliczek that I didn't catch this before.

index.bs Show resolved Hide resolved
@@ -2128,7 +2171,7 @@ Also, to prevent CORS-related vulnerabilities each page will see a new instance
Fingerprinting {#fingerprinting-security}
--------------

Given that the API describes hardware available to the user and its capabilities it will inevitably provide additional surface area for fingerprinting. While it's impossible to completely avoid this, steps can be taken to mitigate the issue. This spec limits reporting of available hardware to only a single device at a time, which prevents using the rare cases of multiple headsets being connected as a fingerprinting signal. Also, the devices that are reported have no string identifiers and expose very little information about the devices capabilities until an XRSession is created, which may only be triggered via user activation in the most sensitive case.
Given that the API describes hardware available to the user and its capabilities it will inevitably provide additional surface area for fingerprinting. While it's impossible to completely avoid this, user agents should take steps to mitigate the issue. This spec limits reporting of available hardware to only a single device at a time, which prevents using the rare cases of multiple headsets being connected as a fingerprinting signal. Also, the devices that are reported have no string identifiers and expose very little information about the devices capabilities until an XRSession is created, which requires additional protections when [=sensitive information=] will be exposed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are explicit requirements for user agents to anonymize values which may be unique to the device. Do you want to call out those scenarios here? For reference, those requirements apply to:

  • XRPose data, when based on underlying raw sensor data (to avoid fingerprinting sensor calibration data)
  • Factory-configured data including IPD or screen geometry data
  • User-configured data including IPD, viewer height, or display locations for CAVE systems

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, sensitive data that could be used for user profiling does not appear to be addressed. Will that be in a different PR?

Sensitive Information {#sensitive-information-header}
---------------------

In the context of XR, <dfn>sensitive information</dfn> includes, but is not limited to, user configurable data such as interpupillary distance (IPD) and sensor-based data such as {{XRPose}}s. All {{XRSessionMode/"immersive-vr"}} and {{XRSessionMode/"immersive-ar"}} sessions will expose some amount of sensitive data, due to the user's pose being necessary to render anything. However, in some cases, the same sensitive information will also be exposed via {{XRSessionMode/"inline"}} sessions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to include information about data that could be used to profile the user (e.g. viewer height, IPD data?)

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

Successfully merging this pull request may close these issues.

3 participants