GithubHelp home page GithubHelp logo

accelerometer's People

Contributors

anssiko avatar dontcallmedom avatar druhin13 avatar foolip avatar himorin avatar honry avatar imgbotapp avatar juhavainio avatar miketaylr avatar plehegar avatar rakuco avatar reillyeon avatar riju avatar saschanaz avatar tidoust avatar xfq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

accelerometer's Issues

Integration in Permission API

The spec (as the 2 other specs) defines a new permission name ("accelerometer"), which I understand needs to be added to the Permission API.

Also, the link to "permission name" is broken (no matching anchor).

device calibration of accelerometers may reveal precise hardware fingerprint

This paper focuses on orientation sensors, but also notes a similar risk in accelerometer sensors for at least some devices:
Zhang, Jiexin, Alastair R. Beresford, and Ian Sheret. “SensorID: Sensor Calibration Fingerprinting for Smartphones.” In 2019 IEEE Symposium on Security and Privacy (SP), 638–55. San Francisco, CA, USA: IEEE, 2019. https://doi.org/10.1109/SP.2019.00072.

High-resolution reporting of accelerometer values may provide an attacker access to the factory-set calibration of the sensor, which is a persistent, cross-origin identifier allowing for device fingerprinting. This is a serious privacy concern.

Based on related concerns noted in device orientation, specifying a particular rounding threshold for this API may mitigate the threat for all (or almost all) devices. Paul Jensen recommends rounding to 0.1 m/s^2. Currently the spec doesn't speak to precision, except through use of the double datatype.

This is a separate attack from the AccelPrint work that's already been cited in the Generic Sensor API, but it's possible the attack and potential mitigations are related. (The AccelPrint paper doesn't seem to quite get into what all the sources of the fingerprint are or what methods are sufficient mitigation.)

Image fallback code fails very badly if *both* images error

On many of your SVG images, you have code like:

<img src="foo.svg" onerror="this.src='foo.png'">

The obvious intention here is that, for ancient browsers that don't understand SVG images, you fall back to the PNG version.

However, if the PNG version also fails (such as, for example, if I've pulled the .bs file locally and am rendering it by itself, without the rest of the repository...), then the image just forever cycles and the page is never allowed to finish loading. What's worse, at least on Chrome, the image itself constantly resets between "broken" and "loading", which changes its height (from the height of the broken-image icon to 0x0, then back again), so the entire spec following the first such image is rapidly shifting up and down forever.

This functionality probably isn't important to keep (I haven't seen it anywhere else, and browsers that don't understand SVG are ancient at this point, and not worth targetting for the audience of "people that read specs"), but if it is, could you instead abstract it out to a <script> block and make it more robust, perhaps with something like:

<script>
function pngOnError(img) {
  this.src = this.src.slice(0,-3) + "png";
  this.onerror = null;
}
</script>
<img src="foo.svg" onerror=pngOnError>

Include Known Accelerometer Privacy Exposures in Accelerometer Document

At the review of the Sensors API at TPAC 2017, PING and the Sensors WG discussed including known privacy exposures for a given sensor, e.g. the use of the gyroscope as a microphone, in the W3C specification for that specific sensor as opposed to incorporating the exposure by reference. The goal of doing so is that an implementer of the specific sensor API would see the specific privacy exposure — and mitigations — for a sensor in the spec for that sensor API.

In the case of accelerometer, that would entail incorporating a reference to the fingerprinting risk that accelerometers pose, e.g. http://synrg.csl.illinois.edu/papers/AccelPrint_NDSS14.pdf. For mitigations, the proposed mitigations in the Generic Sensor API specification could be brought over or referenced.

Explain how the implementation separates gravity from linear acceleration

In the interest of helping someone in the future produce a greenfield implementation, it would be good if this specification explained or linked to an explanation of how raw sensor values are combined or split into separate linear acceleration vs gravity values. General relativity would seem to imply that such a separation is impossible, but clearly it's been done. 🙃

Disable Accelerometer use while Vibration API is in use

The accelerometer could be used to fingerprint people if it is used at the same time as the vibration API. This could be prevented by having the accelerometer disabled or collecting data at a lower accuracy when the vibration API is in use.

"includesGravity" vs "includeGravity"

readonly attribute boolean includesGravity;

boolean includeGravity = true;

The includeGravity parameter is not consistent. Is it intentional design?

No way to get isolated gravity

If you want to do a real magnetic compass then you need the magnetic field and the gravity vector (or even better, isolated gravity data). The only way to get this is to includeGravity and then do a low pass filter (say with alpha value 0.8). (see intel/websensor-compass@3d92ff1)

That is doable but not efficient, plus Android already exposes a way to get isolated gravity, so it kind of feels foolish.

Why unrestricted double for acceleration readings?

When the spec was switched from separate reading interface to include it in the main one, the types of the x, y, z attributes were switched to **unrestricted** double - what is the reasoning behind the change? I didn't find anything related to Infinity in the spec, nor did I easily find any supporting model consideration in the generic sensor spec, nor in the motion sensors spec.

if there is a good reason, I think it should be documented, possibly in the 3 docs; if there isn't,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.