Skip to content

Fonts fingeprinting & fp collector #12

Description

@teocns

There have been several changes in the fakebrowser javascript evasions library pack focused on fonts. All tests were mainly conducted on CreepJS:

image

Fakebrowser core

This was an easy eye slip: this fork implements the Environment data model which stores canvas and system font salts under src/core/.fakebrowser.env.json. This means that if you were running a bare clone of the repository, fakebrowser would always load pre-warmed fonts salts from that file.

Javascript: FontFaceSet WEB API

Some minor changes to the FontFaceSet target prototype predicate has brought the injection back to life: CreepJS and others lately adopted document.fonts as target, besides globalThis. The latter is now accessed in service workers, and both fakebrowser and our forks were only targeting globalThis.

There's more context in the discord thread

Google Chrome vs master fakebrowser
image

Here's a side-by-side comparison on fonts loaded by Google Chrome vs Fakebrowser - which is hiding the MacOS fonts that only Chrome does load.

Font Family Category
MuktaMahee Regular Both
Noto Sans Canadian Aboriginal Regular Both
Noto Sans Gunjala Gondi Regular Both
Noto Sans Masaram Gondi Regular Both
Noto Serif Yezidi Regular Both
STIX Two Math Regular Both
STIX Two Text Regular Both
American Typewriter Semibold Chrome only
Apple SD Gothic Neo ExtraBold Chrome only
Futura Bold Chrome only
Galvji Chrome only
Geneva Chrome only
Helvetica Neue Chrome only
InaiMathi Bold Chrome only
Kohinoor Devanagari Medium Chrome only
Luminari Chrome only
PingFang HK Light Chrome only
SignPainter-HouseScript Semibold Chrome only

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions