Giter VIP home page Giter VIP logo

Comments (14)

Thorin-Oakenpants avatar Thorin-Oakenpants commented on June 20, 2024 3

Nice. I need to take a closer look at this

Aww come on :) Don't you remember marveling at my sheer genius when I sped up font enumeration by doing a single pass on windows/mac (by comparing to to base font MS Shell Dlg \\32 on windows and -apple-system on mac) instead of three passes (base fonts as monospace, sans-serif, serif) - and for three passes, I bailed if already found (most fonts if used will be detected against the first base font)

And this was further sped up by limiting the characters used in the font string - arkenfox/TZP#216

from creepjs.

Thorin-Oakenpants avatar Thorin-Oakenpants commented on June 20, 2024 1

However, there is no font that is only available on Windows or macOS

not really .... say hello to my little friends .... can I introduce you to MS Shell Dlg, MS Shell Dlg 2 (aka MS Shell Dlg \\32) ... -apple-system. Now, it's feasible that an OS/browser can subtitute/alias those, but super highly unlikely

I have been looking into FontSubtitutes in windows. We also have the same thing in linux when fonts like Courier, Arial, Times New Roman are aliased, and mac does something similar which I am looking at next

detection of a change in measurements vs the control (base font) does not mean you have the font, it means the browser changed the font used (as per OS, browser settings) - and that size is in itself the entropy - e.g. a japanese windows install maps MS Shell Dlg differently to all other window installs. A Japanese system local adds unique aliases. An arabic system locale does the same.

edit

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024 1

MS Shell Dlg, MS Shell Dlg 2

Nice. I need to take a closer look at this.

@igor-lemon I will reconsider this and keep you posted on changes.

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024

This is okay as long as it's not a standard desktop font shipped with Windows 10 or 11 here.

from creepjs.

igor-lemon avatar igor-lemon commented on June 20, 2024

This is the wrong approach, because, for example, I did not install any extra fonts but I have Papyrus, Rockwell, Tw Cen MT. You will not find these fonts in the lists for the Windows version but will find them in the common fonts list.
It's strange that you don't want to fix this bug.

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024

update

I appreciate your interest in the code.

Futura Bold on Windows is classified as trash because it is a very rare font (0.0024643283% of Windows users) that makes the browser fingerprint unique and identifiable. The trash feature detects such uncommon features that can compromise privacy. More details are available in the documentation.

The font lists are based on data and reflect the most common and typical font configurations. Including every rare font in the list would make the trash feature less effective. Therefore, a data-driven approach is used to determine which fonts are trash and which are not.

This is how CreepJS works, and it is not a bug. The feedback is appreciated, but there is no issue with the code or the logic behind it. The issue is closed, but it can be re-opened, and code changes can be suggested if there is a better idea on how to handle rare fonts. Thank you for using CreepJS. 😊

from creepjs.

igor-lemon avatar igor-lemon commented on June 20, 2024

It's a strange approach because Windows can have this font, albeit rarely. It's strange to consider it garbage and yet define the system as macOS. Especially when there are many other fonts that are unique to macOS. I would just replace this font with something that 100% doesn't exist on Windows.

from creepjs.

ttttmr avatar ttttmr commented on June 20, 2024

A small suggestion, maybe changing to the font scoring method can improve this problem, for example, if there are more than 3 default fonts, it will be marked as the corresponding operating system

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024

The suggestions are good to consider. However, there is no font that is only available on Windows or macOS. The closest thing is the System UI CSS font, which can change depending on the operating system, but that is a different aspect of fingerprinting.

The current focus is on the data from CreepJS, which shows a wide range of font combinations between macOS and Windows users. In every case, these combinations are rare and affect less than 1% of users.

Changing fonts can have a significant impact on the fingerprinting training process. Therefore, it is important to evaluate the pros and cons of such changes and prioritize the most common scenarios over the edge cases.

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024

...define the system as macOS

At some point, we may change the label to like macOS or like Windows as discussed below. But it's not critical.

from creepjs.

igor-lemon avatar igor-lemon commented on June 20, 2024

...define the system as macOS

At some point, we may change the label to like macOS or like Windows as discussed below. But it's not critical.

I don't know, but you say that my fonts are suspicious, but it's not true.
image

The problem is that you took a font that can be on both OS, even though there are many unique ones that are only for macOS and only for Windows. Futura Bold can be on both operating systems. And I want to make the point that it's weird to define a system by that font.

from creepjs.

igor-lemon avatar igor-lemon commented on June 20, 2024

@abrahamjuliot If you need I can give you some macOS-only fonts since 10.14

from creepjs.

abrahamjuliot avatar abrahamjuliot commented on June 20, 2024

I'm way behind on trying that out. I might drop the use of Font Face API at some point. It's easily spoofed and unreliable.

from creepjs.

Thorin-Oakenpants avatar Thorin-Oakenpants commented on June 20, 2024

I don't bother, since it seems to be blocked in TB and the results would be duplicitous IIUIC

from creepjs.

Related Issues (20)

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.