7 ms·
That's an awesome feature, although it doesn't seem to be complete. I did some research whether it is possible to stop fingerprinting using a browser extension
by codedokode 4y ago
That's an awesome feature, although it doesn't seem to be complete.
I did some research whether it is possible to stop fingerprinting using a browser extension that patches JS environment before loading the page, and it turns out that it is difficult or impossible. Because first of all, there is no API for patching a JS environment from an extension.
I think that many of new HTML standards are poorly designed in regards to privacy. For example, WebGL reports the video card that you use. Who needs that? Well, maybe there is a tiny percentage of sites that use this information to detect bugs but main use of this feature is a reliable unforgeable signal for fingerprinting a device. Most of sites do not need WebGL at all.
It seems that browser vendors hurry to push forward as many features as possible without much thinking about user's privacy.
So basically today we have lots of standards that provide signals for fingerprinting (Web Audio, WebGL, Canvas API, WebRTC, port scanning via fetch or websocket, probing extensions list) and zero APIs or settings that allow to control it or block (unless you are ready to patch a browser).
- rosmax_1337 4y ago>It seems that browser vendors hurry to push forward as many features as possible without much thinking about user's privacy. Vendors in plural makes it sound like the market isn't a monopoly of Google at this point. Google naturally loves to be able to fingerprint people based on as many metrics as possible, for their ads.
- shadowgovt 4y agoLast I checked, Google still adheres to w3c standards on these things. And they haven't captured the w3c process itself... We need to be holding the w3c accountable for considering privacy as they refine new rfcs for apis.
- dmitriid 4y ago> Last I checked, Google still adheres to w3c standards on these things. It adheres to web standards that it primarily writes and pushes through. > We need to be holding the w3c accountable for considering privacy as they refine new rfcs for apis. You know, when w3c does that HN is ablaze with "Safari is the new IE" and "Firefox is irrelevant". See all of hardware APIs (Bluetooth, Serial, HID etc.) that are rejected by both Safari and Firefox primarily on privacy issues.
- MomoXenosaga 4y agoHow did that saying go? It Is Difficult to Get a Man to Understand Something When His Salary Depends Upon His Not Understanding It Follow the money, people in tech get their paychecks from companies that do not respect privacy. And I don't mean that as an accusation: in capitalism it is your duty to do whatever you can get away with.
- satao 4y agoWho do you think proposose the standards?
- pmoriarty 4y ago"We need to be holding the w3c accountable for considering privacy as they refine new rfcs for apis." How do we do that?
- losingom 4y agoIt's actually the WHATWG you need to watch[0], not the W3C. The latter has had basically no power for some time now and only endorses what the WHATWG propose[1]. [0] https://github.com/whatwg/sg https://github.com/whatwg/sg [1] https://www.w3.org/2019/04/WHATWG-W3C-MOU.html https://www.w3.org/2019/04/WHATWG-W3C-MOU.html
- 0xy 4y agoYou know Google literally writes the specifications that are subsequently used by advertisers to fingerprint users, right? For example, the AudioContext API allows websites with zero audio to query sensitive personalized information about your audio equipment, with no permission. It was written by a Google employee, and implemented first in Chrome, then abused throughout DoubleClick's (owned by Google) display advertising network.
- shadowgovt 4y agoThat's what I mean by "holding them accountable." So Safari and Firefox should implement that API behind a privacy-check flag (same as we get for location services, etc.). If Google complains it's not to spec, tell Google to fix the spec. Don't rubber stamp specs that aren't privacy-conscious; Apple, Mozilla, and Microsoft are WHATWG standards members too.
- codedokode 4y agoIndeed, the WebGL extension that leaks videocard and driver name [1] is written by Google's employee. [1] https://www.khronos.org/registry/webgl/extensions/WEBGL_debug_renderer_info/ https://www.khronos.org/registry/webgl/extensions/WEBGL_debu...
- mmis1000 4y agoI think you do need driver or video card name if you need to make it work (or have a usable performance) in every vendor. Video cards behaves wildly different between vendors. Some shader runs smoothly in one vendor while lag like hell in another. And some don't even run correctly under certain vendor. Without knowing the vendor, it is not possible to patch them up to get a usable program. They share the same API doesn't mean they behave identical.
- cozzyd 4y agoSure but most websites don't need this, and if they do they can ask nicely.
- notriddle 4y agoThere is no way you can expect a non-technical user to understand the full implications of a prompt like that.
- codedokode 4y agoThen this feaure should be disabled so that nobody relies on it.
- cozzyd 4y agoSomething like: "This web site is requesting access to 3D acceleration. This is required for fancy 3D graphics, but can also give the web site more information about your computer than it would otherwise, which may be used to track you, so only say yes if you are expecting fancy 3D graphics and you trust this web site" seems usable?
- satao 4y agoYes... And people keep bashing at the Safari team for holding the web development back. I mean, it's clear that the Safari team also has their own agenda, regarding competition with the App Store. But the stuff that Google is pushing is just more ways for them to track you in the end.
- mmis1000 4y agoThe things safari lack isn't even relevant to privacy. They are more about buggy layout (not the shiny grid layout or style worker, it doesn't even works correctly with css2 a lot of time), incorrectly implemented API (not the 'not implemented due to privacy' one, they are those implemented but reporting wrong result). Firefox also rejects a lot of proposal due to security reasons. But for every one it supported, it works correctly. Instead of work in funny way and require devs to guess the browser and insert ransom workaround just to make it not using the improper result safari gives and breaking the page. Fun fact: Safari doesn't even handle the full ISO8601 correctly until very recent version. A timestamp without timezone will be parsed into incorrect timezone. A timestamp without colon in the middle of timezone don't even be parsed(which is unfortunately go's default output format).
- codedokode 4y agoRegarding timezones, this seems to be a fault of ISO standard. Why do they allow several representations of the same thing?
- greiskul 4y ago> Google naturally loves to be able to fingerprint people based on as many metrics as possible, for their ads. I guess that's why they have a explicit policy of prohibiting browser fingerprinting in all their ad business. https://digiday.com/media/googles-opaque-practices-to-restrict-fingerprinting-create-confusion-among-its-ad-tech-partners/amp/ https://digiday.com/media/googles-opaque-practices-to-restri...
- anothernewdude 4y agoIt is actually. They want their system to do it, but not the people who buy ads from them, so their advertisers become reliant on google's user segmentation.
- codedokode 4y agoAlso what I don't like that enabling this feature disables page zoom. This is inconvenient because you have to choose between using zoom and fingerprint protection. Actually I think that when zoom is less than 100% (i.e. the page is made smaller) it is possible to report to the page original window size rather than scaled up size. Many sites today use gigantic font sizes and they are difficult to read without zoom or high-DPI display.
- wintermutestwin 4y agoPage zoom is mandatory for me as it seems that most web devs love to use tiny text. Here is a blatant example: http://www.aaronsw.com/weblog/ http://www.aaronsw.com/weblog/ Are you fricking kidding me with that? Sure 30 year old me could have read that as is, but why would I want to?
- deleted 4y ago[deleted]
- account42 4y ago12px is not tiny. A bit small for body text considering the narrow font, but not unreadable. If you consider that text tiny then you should configure your browser (or OS) to enable DPI scaling (effectively zoom by default) instead of demanding all websites have giant text.
- JadeNB 4y ago> Also what I don't like that enabling this feature disables page zoom. This is inconvenient because you have to choose between using zoom and fingerprint protection. I don't think it does disable page zoom; I have privacy.resistFingerprinting set to true and can still zoom just fine. (It does disable per-site zoom settings, but you can still zoom any site to whatever size you want each time you visit—which is certainly inconvenient, but, well, the state of the web is such that you can choose convenience or privacy; Firefox giving you that choice does not mean that the necessity of choosing is their fault.)
- ajvs 4y ago
- shadowgovt 4y ago> WebGL reports the video card that you use. Who needs that? Basically anybody trying to do a high performance game in webgl. Even today, the quirks of individual cards are enough that a game relying on sufficient feature capabilities is going to need a quirks list of cards to substitute implementations on. There's nothing to be done about it if a card just lies about its capabilities in the gestalt API or has an honest to God bug that you have to work around in the shader. But, if an API like that isn't behind a permission allow dialogue and is instead on by default, that's a major privacy mistake.
- codedokode 4y agoI am not sure that it would work because it is unlikely that you can test your application with all existing videocards (and yet to be released cards). And even if you do that the performance might depend on other factors (OS, CPU model, RAM type and size, driver version). Instead game developers should provide an option to select graphic settings: more textures, less textures, more shaders, less shaders and so on, and display a FPS counter so that the user is able to decide what is better for them. Or automatically switch to lower settings if fps falls below cetrain threshold.
- moron4hire 4y agoIt's not just about performance. There are bugs in certain GPUs and drivers that can crash the browser or even produce fundamentally wrong results. It's not just "scale graphics quality", in some cases specific work-arounds with completely different semantics are needed.
- midislack 4y agoLike which ones?
- moron4hire 4y agoOne particular one I've struggled with only appears on macOS with Intel Iris Xe GPUs in which the texture sampling in my default, high-performance, seamless skybox renderer bugs out and only makes one face of the cube render correctly. I have to fall back to physical geometry to fix it, which is not as efficient, causes ugly seams at the edges of the cube, and also overcomplicates handling transparent images and image alignment if I'm not very, very careful. And my app isn't even all that complex. There are so many bugs to handle, but luckily Three.js handles the vast majority of them for me. You can't count on even very basic apps to be completely compatible across all devices.
- Enginerrrd 4y agoAt this point, what's really needed is an additional layer of abstraction. The site needs to run in a virtual computer within the browser, identical to all others, and every interaction where any information from the user is needed for the site needs to go through a filter that will sufficiently randomize and sanitize identifying inputs to make it much much harder to fingerprint. That will probably break some content like games and whatnot, but the reality is, as much as everyone loves their web-apps, it really is a tiny fraction of web-browsing.
- codedokode 4y agoThe sandbox provided by Javascript (or WASM) engine is already like a virtual machine. The problem is that browser vendors leak important information into this sandbox.
- magicalist 4y ago> For example, WebGL reports the video card that you use. Who needs that? Well, maybe there is a tiny percentage of sites that use this information to detect bugs but main use of this feature is a reliable unforgeable signal for fingerprinting a device. Most of sites do not need WebGL at all. WEBGL_debug_renderer_info is an optional extension to webgl specifically so it can be denied to the page at the browser's discretion. And Firefox's privacy.resistFingerprinting (the subject of this article) disables it: https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info#sect1 https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug...
- codedokode 4y agoIf it is enabled in standard configuration of major browsers, it is not optional anymore. Sites become dependent on it.
- stefan_ 4y agoAnd disabling it now becomes a tracking bit. Profit!