<div style="display:none"> # Методика тестирования ### Подготовка Подготовка При тестировании не обязательно использовать прокси/сокс, достаточно будет PPTP/VPN/WireGuard. Запускаем Google Chrome, переходим по chrome://settings/help, обновляем до последней версии если это нужно. Обязательно отключаем все расширения (extensions). Записываем версию в таблицу. Открываем антидетект, создаем три профиля под ту систему на которой запущен антинтидетект. Если антидетект запущен на Windows - создаем профили под Windows, если на MacOs - создаем профили под MacOs. Для каждого параметра который в профиле можно рандомизировать или подменить - включаем/выставляем подмену. Если в браузер устанавливаются какие-либо расширения - то отключаем их. Также переходим по chrome://settings/help и записываем версию в таблицу. Запускаем все три созданных профиля. Копируем ссылку на тест и открываем ссылку во всех бразерах по очереди, в начале в Google Chrome, затем в каждом из трех созданных браузеров. Результаты тестов записываем в таблицу. Для того чтоб быстро найти хеш на странице - копируешь отсюда название хеша (оно выделено в тексте вот так), затем нажимаешь в браузере горячие клавиши поиска по странице Control + F (Command + F для Macos) и ищешь по названию хеша. ### Тесты 1. CreepJS, https://abrahamjuliot.github.io/creepjs/ - CreepJS - известная библиотека для тестирования браузеров и обнаружения ботов с огромным набором тестов на javascript - нам интересен только параметр `trust score` который у реального Google Chrome будет около 66,5% - записываем этот процент в таблицу Trust Score у Google Chrome: ![creepjs_chrome](https://hackmd.io/_uploads/rkex5xX50.png) Trust Score не у Google Chrome: ![cheepjs_not_chrome](https://hackmd.io/_uploads/SJzVceQqC.png) --- 2. WorkerGlobalScope, https://abrahamjuliot.github.io/creepjs/tests/workers.html - WorkerGlobalScope - это что-то по типу отдельного раздела или "комнаты" в браузере в которой отдельно исполняется javascript код, не мешая обработке основного приложения. Исполняют javascript код в этой "комнате" WebWorkers (веб воркеры) в фоновом режиме, что позволяет исполнять скрипты асинхронно, то есть не по очереди, один за другим, а все одновременно. Технология создана для того чтоб улучшить производительность браузера, увеличить скорость обработки данных и избежать "зависаний" - в Google Chrome хеши для основного окна браузера и веб-воркеров будет одинаковы, поэтому если браузер сообщает что он Google Chrome, но при этом веб-воркеры вычисляют отличные от основного окна хеши - значит браузер не Google Chrome - тест **открываем три раза в каждом браузере**, три раза в Google Chrome и три раза в каждом из браузеров в антике - если хеши совпадают - в таблицу записываем `passed`, если хеши **хотя бы раз не совпадают** - в таблицу записываем `not passed` WebWorkers в Google Chrome, хеш 2ce72005 одинаков: ![workers_chrome](https://hackmd.io/_uploads/S1D2peQ9A.png) WebWorkers не в Google Chrome, хеш 478c5d63 не одинаков: ![workers_not_chrome](https://hackmd.io/_uploads/SyPTTx7c0.png) --- 3. WebRTC, https://privacycheck.sec.lrz.de/active/fp_wrtc/fp_webrtc.html - WebRTC - технология позволяющая сайтам и приложениям захватывать аудио и видео с браузера пользователя, идентификаторы установленных и подключенных медиаустройств (микрофоны, динамики, вебкамеры) совместно с включенными и поддерживаемыми функциями WebRTC формируют уникальный отпечаток браузера - нам интересен хеш для `WebRTC Fingerprint without permissions` - записываем этот хеш в таблицу ![webrtc](https://hackmd.io/_uploads/B1DxN-m5C.png) --- 5. WebGL - WebGL- набор методов для отрисовки 3d графики, анимации и сложных визуальных эффектов прямо в браузере (например в онлайн играх) без использования стороннего софта или плагинов. WebGL задействует в свой работе видеокарту (GPU) в отличии от Canvas который чаще использует процессор (CPU) - нас интересует какой будет хеш без включения в него информации о видеокарте (Unmasked Renderer и Unmasked Vendor) которые подменяются в большинстве антидетектов - первый тест проводим тут https://privacycheck.sec.lrz.de/active/fp_wg/fp_webgl.html - ищем хеш для `Your WebGL Image Fingerprint`, записываем в таблицу ![webgl](https://hackmd.io/_uploads/SkK5tZdqR.png) - второй тест проходим тут https://scrapfly.io/web-scraping-tools/webgl-fingerprint - выписываем хеши для двух значений, записываем в таблицу ![webgl_2](https://hackmd.io/_uploads/HJJLj-O5C.png) --- 6. WebGPU, https://browserleaks.com/webgpu - WebGPU - технология возникшая в процессе эволюции WebGL, позволяет создавать в браузере еще более сложную графику чем WebGL используя видеокарты. По сути это улучшенная версия WebGL - более производительная, с использованием асинхронности (параллельных вычислений), использует максимально современные графические API (Direct3D 12, Metal, Vulkan), и, как следствие, требует от разработчиков больших усилий, сложных настроек и сложного програмного кода. - нас интересует `WebGPU Report Hash`, записываем в таблицу ![webgpu](https://hackmd.io/_uploads/Skzjgfd9R.png) --- 7. ClientRects, https://privacycheck.sec.lrz.de/active/fp_gcr/fp_getclientrects.html - getClientRects - это функция в Javascript для получения информации о расположении и размерах различных элементов на странице, по сути способ узнать где именно на дисплее находится элемент и сколько места он занимает. Отпечаток getClientRects - хешированная информация о множестве различных элементов на странице с различными трансформациями и преобразованиями в ходе которых используются мощности GPU - находим `Your getClientRects Fingerprint`, записываем в таблицу ![getClientRect](https://hackmd.io/_uploads/HJffEGu9A.png) --- 8. Canvas Fonts, https://privacycheck.sec.lrz.de/active/fp_cf/fp_canvas_font.html - Canvas Fonts - метод обнаружения поддерживаемых браузером шрифтов, но с использованием Canvas. Через Canvas API методом measureText вызывается несуществующий фейковый шрифт которого точно нет в системе и далее с ним сравниваются существующие в системе шрифты. Метод аналогичен отпечатку Canvas, но при этом более скрытен - он не извлекает данные отрисовываемые с помощью Canvas, а это означает что подмена или блокирование Canvas не может изменить отпечаток полученный методом Canvas Fonts. От обнаружения спасает только полное отключение Canvas API или глубокая модификация метода measureText из этого API - нас интересует хеш из `Your canvas font fingerprint`, записываем в таблицу ![canvasFont](https://hackmd.io/_uploads/BykskXu9R.png) --- 9. AudioContext, https://privacycheck.sec.lrz.de/active/fp_ac/fp_audiocontext.html - этим методом анализируется обработка и экранирование аудиосигналов браузером и системой пользователя, одна и та же система будет обрабатывать аудио одинаково - ищем на странице кнопку `Click here to start the Test` - нас интересует `Overall AudioContext Fingerprint`, записываем в таблицу ![audioContext](https://hackmd.io/_uploads/H1xdKQucR.png) --- 10. Feature Detection, https://privacycheck.sec.lrz.de/active/fp_fd/fp_feature_detection.html - обнаружение функций браузера предназначено для разработчиков сайтов и web приложений и предназначено для определения возможностей браузера. В различных браузерах доступный функционал реализован по разному, в каких-то есть по умолчанию, в каких-то вобще не поддерживается, а в каких-то нужны дополнительные расширения или плагины. На основе обнаружения функций браузера можно точно определить название и версию браузера, его настройки, установленные расширения и плагины. В предложеном тесте определяется функционал по 298 параметрам, но на данный момент общее количество функционала браузера, который может быть определен с помощью js, в разы больше - нас интересует `Feature Support Hash`, записываем в таблицу ![feature](https://hackmd.io/_uploads/Sk-U1kYq0.png) --- 11. MIME Types canPlayType, https://privacycheck.sec.lrz.de/active/fp_cpt/fp_can_play_type.html - метод HTMLMediaElement.canPlayType определяет возможно ли воспроизвести указаный медифайл и создается ли для него буфер в браузере. Предложенный тест определяет какие типы медиафайлов и кодеков поддерживает браузер и может их воспроизвести, при тонкой настройке теста можно точно определять название и версию браузера. Тест делает проверку поддержки 797 типов медиафайлов, но на данный момент их общее количество в разы больше - нас интересует `Your canPlayType Fingerprint`, записываем в таблицу ![canPlay](https://hackmd.io/_uploads/HkX-7kFqA.png) --- 12. Emoji, https://privacycheck.sec.lrz.de/active/fp_e/fp_emoji.html - эмоджи по разному отрисовываются в различных браузерах, часть эмоджи тот или иной браузер вобще не сможет отрисовать, наглядно это можно увидеть на следующей странице https://unicode.org/emoji/charts/full-emoji-list.html - в предложеном тесте используется хешированая информация об отображении 2575 эмоджи, на текущий момент "введено в эксплуатацию" 3782 эмоджи https://unicode.org/emoji/charts/emoji-counts.html - нас интересует `Your Emoji Fingerprint`, записываем в таблицу </div>