Тепловая карта в шейдере: как она палит класс GPU даже без явного fingerprint
Браузерное окружение передает больше данных, чем кажется: при рендеринге тепловой карты через fragment shader всплывают различия в ALU, пропускной способности памяти и точности интерполяции. На уровне пикселя это не «красота графика», а измеримый профиль железа, который можно свернуть в сигнатуру.
Критичные точки измерения:
— время выполнения однотипных проходов с разной плотностью выборки;
— поведение при высоком коэффициенте билинейной/трилинейной фильтрации;
— артефакты квантизации в градиентах и кластерах значений;
— стабильность результатов при повторном прогоне на том же контексте.
Если карта строится из небольшого числа семплов, шум маскирует различия. Но при росте нагрузки тепловой рисунок начинает отражать не только вычисления шейдера, но и особенности драйвера, планировщика GPU и внутренней точности промежуточных буферов. Разбираем сигнатуру на уровне syscall: важен не только итоговый цвет, но и распределение задержек между кадрами.
Практика проста: сравнивать нужно не один heatmap, а серию прогонов, нормализованных по разрешению, числу итераций и типу WebGL-контекста. Любая дрожь в паттерне — это либо деградация точности, либо попытка среды имитировать шум. Анализируем энтропию параметров.
Тепловая карта полезна только как часть ансамбля признаков: сама по себе она редко дает точную атрибуцию, но хорошо вскрывает аномалии и слабые места маскировки. Скрытность — это не отсутствие следов, это шум, сливающийся с фоном.
Fingerprint-кузница
@fingerprint_forge_ubt
Тепловая карта в шейдере: как она палит класс GPU даже без явного fingerprint
Этот пост опубликован в Telegram-канале Fingerprint-кузница. Подписаться можно по ссылке: @fingerprint_forge_ubt.