[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Wrapper groups
From: |
Libor Polčák |
Subject: |
Wrapper groups |
Date: |
Thu, 12 Aug 2021 15:15:52 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.8.1 |
Hello,
to simplify the configuration of the extension, I think we should create
categories of wrappers. See below the proposed categories and proposed
configuration values that will be displayed to the user.
Wrappers of proposed group Fake fingerprint values:
parent_object: "navigator.getBattery",
parent_object: "navigator.deviceMemory",
parent_object: "HTMLCanvasElement.prototype",
parent_object_property: "toDataURL",
parent_object: "CanvasRenderingContext2D.prototype",
parent_object_property: "getImageData",
parent_object: "HTMLCanvasElement.prototype",
parent_object_property: "toBlob",
parent_object: "OffscreenCanvas.prototype",
parent_object_property: "convertToBlob",
parent_object: "CanvasRenderingContext2D.prototype",
parent_object_property: "isPointInPath",
parent_object: "CanvasRenderingContext2D.prototype",
parent_object_property: "isPointInStroke",
parent_object: "window",
parent_object_property: "name",
parent_object: "navigator",
parent_object_property: "hardwareConcurrency",
parent_object: "MediaDevices.prototype",
parent_object_property: "enumerateDevices",
parent_object: "navigator",
parent_object_property: "plugins",
parent_object: "AudioBuffer.prototype",
parent_object_property: "getChannelData",
parent_object: "AudioBuffer.prototype",
parent_object_property: "copyFromChannel",
parent_object: "AnalyserNode.prototype",
parent_object_property: "getByteTimeDomainData",
parent_object: "AnalyserNode.prototype",
parent_object_property: "getFloatTimeDomainData",
parent_object: "AnalyserNode.prototype",
parent_object_property: "getByteFrequencyData",
parent_object: "AnalyserNode.prototype",
parent_object_property: "getFloatFrequencyData",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getSupportedExtensions",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getSupportedExtensions",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getActiveAttrib",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getActiveAttrib",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getExtension",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getExtension",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getActiveUniform",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getActiveUniform",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getUniformLocation",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getUniformLocation",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getAttribLocation",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getAttribLocation",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getVertexAttribOffset",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getVertexAttribOffset",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "readPixels",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "readPixels",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property:
"getFramebufferAttachmentParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property:
"getFramebufferAttachmentParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getBufferParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getBufferParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getProgramParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getProgramParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getRenderbufferParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getRenderbufferParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getShaderParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getShaderParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getVertexAttrib",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getVertexAttrib",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getUniform",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getUniform",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getTexParameter",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getTexParameter",
parent_object: "WebGLRenderingContext.prototype",
parent_object_property: "getShaderPrecisionFormat",
parent_object: "WebGL2RenderingContext.prototype",
parent_object_property: "getShaderPrecisionFormat",
Proposed configuration values: off/white lies/on
Wrappers of proposed group Data upload:
parent_object: "window.XMLHttpRequest", (This was added
as experimental, do we want to keep
the wrapper because the same behaviour coud be achieved
by calling unwrapped fetch API and
other APIs. If we want to keep the protection, do we
use Web Request API instead. What about
manifest v3?)
parent_object: "navigator.sendBeacon",
Proposed configuration values: off/on
Wrappers of proposed group Microarchitectual attack protection:
parent_object: 'window.DataView',
parent_object: 'window',
parent_object_property: ''Uint8Array', 'Int8Array',
'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',
'Float32Array', 'Float64Array'',
parent_object: "window",
parent_object_property: "SharedArrayBuffer",
parent_object: "window",
parent_object_property: "Worker",
Proposed configuration values: off/medium/high
Wrappers of proposed group Precise time: (Do we want to merge with other
groups?)
parent_object: "window",
parent_object_property: "Date",
parent_object: "Performance.prototype",
parent_object_property: "now",
parent_object: "PerformanceEntry",
parent_object_property: "prototype",
Proposed configuration values: full precision/medium precision/low precision
Wrappers of proposed group Real-world location precision:
parent_object: "navigator",
parent_object_property: "geolocation",
Proposed configuration values: provide accurate data/hundreds of
meters/kilometers/tens of
kilometers/hundreds of kilometers/location services off
Additional functionality to display in the redesigned pop up:
Network boundary shield (on/off)
Fingeprinting detection (off/low/medium/high)
Open issues:
* Do we want to let the user configure what a specific level means. Like does
XHR
protection on means no XHR or ask before each XHR?
* What about wrappers that do not support white lies - do we want to display
medium protection
instead?
Please let me know your thoughts.
Best
Libor