Тепловая карта шейдера не врёт, но легко маскирует GPU по деталям рендера
Браузерное окружение передает больше данных, чем кажется: через fragment shader можно снять карту отклика на координаты, тайминги и точность интерполяции. Для fingerprint это полезно не самим изображением, а микроскопическими расхождениями в вычислениях между архитектурами.
Анализируем энтропию параметров. На практике смотрят на:
— ошибки квантования в градиентах и banding;
— поведение при highp/mediump и денормалах;
— артефакты фильтрации, LOD и precision loss;
— стабильность при разных размерах framebuffer и scaling.
Если шейдерная теплокарта строится на статичной сцене, она часто выдает слишком «чистый» сигнал: драйвер агрессивно оптимизирует путь, и часть различий исчезает. Если же вносятся псевдослучайные координаты, шум, смена порядка операций и контрольные повторы, сигнатура становится устойчивее, но растет риск смешать GPU-след с особенностями компилятора и браузерного пайплайна.
Разбираем сигнатуру на уровне syscall: важна не только картинка на выходе, но и то, как долго и с какой погрешностью шейдер исполняется. Сильная теплокарта должна давать одинаковый паттерн при повторе, а не просто высокий контраст. Слабое место — кэш, термостабильность и асинхронная загрузка контекста; именно они ломают воспроизводимость.
Скрытность — это не отсутствие следов, это шум, сливающийся с фоном. Для оценки точности теплокарты фиксируйте повторяемость, а не визуальную «красоту»: если сигнал плавает между прогонами, он годится для демонстрации, но плохо подходит для идентификации.
Fingerprint-кузница
@fingerprint_forge_ubt
Тепловая карта шейдера не врёт, но легко маскирует GPU по деталям рендера
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.