Сравнение
Согласие частей одного отпечатка
Что площадка читает разом
Отпечаток это не один ответ, а набор ответов. Площадка спрашивает не о том, какое значение редкое, а о том, складываются ли эти значения в одну машину.
Редкое значение само по себе всего лишь редкое. Пара, которой не бывает ни у одной машины, это уже ответ.
Пары обязаны сходиться
Видеокарта и архитектура
Карта, которую ставят к одному семейству процессоров, рядом с подсказкой архитектуры другого.
Экран и плотность пикселей
Перемножьте одно на другое: должна получиться панель, которую кто-то и правда делает.
Задержка и вид связи
Браузер выводит вид связи из задержки, поэтому спорящая пара пришла со стороны.
Заявленная память и предел кучи
Предел, который читает страница, браузер считает от памяти, о которой сообщила машина.
Откуда берётся набор
Готового устройства нигде не лежит. Профиль собирает его заново при каждом запуске из своих же настроек, поэтому один профиль это одна машина, а два профиля две разные.
Части подобраны друг под друга, а не поодиночке. Ядра и память профиль берёт у того семейства, к которому принадлежит его видеокарта, а у телефонного профиля экран, коэффициент, карта и шрифты приходят от одного аппарата.
Значения по правилам самого браузера
Часть показаний выдумывать нельзя. Настоящий браузер огрубляет время отклика, режет скорость потолком и выводит вид связи из обоих, поэтому правдоподобное на вид число, которого он не отдаёт, выдало бы профиль первой же проверкой.
То же и с пределом кучи, который читает страница. Он идёт за памятью, заявленной профилем.
Время отклика и скорость
Огрублены и срезаны так, как это делает сам движок, а не так, как выглядит правдоподобно.
Вид связи
Профиль выводит его из задержки, а не тянет жребием: настоящий браузер делает так же.
Восемь способов по одной оси
Таблица читается как границы работы, а не как оценка. Способ не становится хуже оттого, что не трогает того, чего не обещал.
Последняя строка наша, и любую её клетку вы можете проверить: она либо из кода, который можно открыть, либо из замера на готовом движке.
| Что меняется в показаниях | Кто держит части в согласии | Где такой набор спорит сам с собой | |
|---|---|---|---|
| Обычный браузер как есть | Ничего | Сама машина | Нигде: это одна честная машина |
| Режим инкогнито | Ничего в показаниях устройства | Сама машина | Нигде в устройстве |
| Отдельные профили того же браузера | Ничего в показаниях устройства | Сама машина | Нигде в устройстве |
| Расширение, подменяющее значения в странице | Свойства из его собственного списка | Тот, кто писал этот список | Там, где ту же вещь читают второй дорогой |
| VPN | Только адрес выхода | Никто: устройство не тронуто | Между страной выхода и часами машины |
| Виртуальная машина на аккаунт | Вся гостевая система | Сама гостевая система | Внутри гостя они сходятся, а гость это одна машина на все свои аккаунты |
| Отдельное железо на аккаунт | Ничего: это вторая машина | Сама машина | Нигде |
| Браузер с правкой самого движка | Весь набор, выведенный из номера профиля | Генератор собирает устройство как одну машину | Проверяется связями, а не значениями |
Чтение обратно в браузере
Согласие на бумаге это ещё не согласие в окне. Каждое значение мы читаем обратно в настоящем профиле, в том числе из невидимого кадра и из фонового потока, и без этого сборка к вам не выходит.
Короткая часть того же чтения идёт на этом сайте. Она задаёт вашему браузеру те же вопросы и никуда ничего не отправляет.

Чего это сравнение не утверждает
- Не утверждает, что согласованное устройство сохранит аккаунт. Поведение, платёжные данные и история аккаунта читаются тоже, и их не трогает ни один браузер.
- Не описывает ни одного названного изделия. Здесь сравниваются способы работы, а мерить чужую сборку мы не берёмся.
- Не утверждает, что знает проверки каждой площадки. Этого никто не печатает, а пары выше просто те, которые браузер обязан держать в согласии сам.
- Не каждое показание отвечает сегодня изнутри движка. Чего сборка не объявила, то по-прежнему поправляется из страницы.
- Числа приёмки сняты на одной сборке и одной машине. Другая сборка и другая машина дадут другие строки.
Как это проверить
За каждым утверждением выше стоит файл, а за большинством ещё и стенд, который исполняет код, а не перечитывает его.
- Всё устройство выводится из номера профиля, и части тянутся друг за другом
- packages/shared/src/index.js
- Согласие проверяется прогоном генератора по сотням профилей, а не чтением исходника
- apps/desktop/test/fingerprint-consistency.js
- Каждое значение читается обратно в запущенном браузере, в том числе из кадра и из потока
- apps/desktop/src/lib/fpAudit.js · apps/desktop/test/audit-on-builtin.js · apps/desktop/test/fingerprint-realms.js
- Отчёт приёмки собранного движка хранит и ожидаемое, и прочитанное
- engine/приёмка-отчёт.json
Вопросы
- Почему одно подменённое значение бывает хуже, чем ни одного?
- Потому что подмена обязана сойтись со всем, чего не тронули. Значение, которого настоящий браузер не отдаёт, или вторая дорога к той же картинке, спорящая с первой, это уже ответ, а не догадка.
- Получит ли профиль новое устройство после обновления?
- Нет. Профиль остаётся в том поколении, в котором заведён, а более широкий набор машин предлагается новым профилям.
- Что происходит со значением, выбранным рукой?
- Оно сильнее жребия. Значение, которое выбранному шаблону не принадлежит, программа отбросит и назовёт вам отброшенное, а не оставит на экране закрепление, которое уже не работает.
- Можно ли сперва посмотреть свои значения?
- Да. Проверка на этом сайте снимает 12 показаний прямо в вашем браузере и никуда их не отправляет.
Читать дальше
Страница, расширение или движок
Те же восемь способов по глубине, на которой идёт правка.
Отпечаток браузера
Из чего состоит набор и как он складывается.
Энтропия
Почему редкое значение сужает толпу вокруг вас.
Отпечаток и его редактор
Что можно выбрать рукой и чего это стоит.
Окно шире экрана
Одно противоречие, которое находит одна строка скрипта.
Сперва прочтите свои значения
Проверка снимает 12 показаний в вашем браузере и никуда их не отправляет.