Web Audio API — это мощный инструмент для работы со звуком в браузере, предоставляющий возможности обработки, синтеза и анализа аудиосигналов. Изначально созданная для создания интерактивных звуковых эффектов, игр и музыкальных приложений, технология нашла применение в антифрод-системах, где её возможности позволяют выявлять уникальные характеристики устройств. #### История создания и предназначение Web Audio API Web Audio API была представлена как часть спецификации HTML5 в начале 2010-х годов. Её разработка велась для замены устаревших технологий, таких как Flash, обеспечивая высокую производительность и универсальность в создании аудиоконтента. Первую реализацию технологии представила компания Google в браузере Chrome в 2011 году. К 2014 году Web Audio API стала стандартом, поддерживаемым всеми современными браузерами. Основное назначение Web Audio API — это создание и обработка аудио в реальном времени, включая генерацию звуков, добавление эффектов и анализ звуковых данных. Однако, как и в случае с Canvas, одна из неожиданных сфер применения Web Audio API — это антифрод-системы, где её возможности используются для уникализации устройств пользователей. #### Технологические возможности Web Audio API Web Audio API предоставляет разработчикам обширный набор инструментов для работы со звуком: - **Генерация звуков.** Создание простых и сложных звуковых сигналов, включая синтезаторные эффекты. - **Обработка аудио.** Возможность применять эффекты, такие как реверберация, фильтры и эквализация. - **Анализ звуковых данных.** Web Audio API позволяет анализировать аудиосигналы в реальном времени, получая данные о частотных характеристиках и амплитуде. Эти возможности делают Web Audio API универсальным инструментом для веб-разработки, используемым в играх, мультимедиа и интерактивных приложениях. #### Web Audio API и антифрод: защита от мошенников Антифрод-системы используют Web Audio API для создания аудиофингерпринта (audio fingerprinting) — цифрового отпечатка устройства, который помогает уникализировать пользователя. #### Как Web Audio API помогает идентифицировать пользователя? Когда браузер генерирует звук или анализирует аудиосигнал, каждое устройство обрабатывает звук немного по-разному. Это связано с особенностями аппаратного и программного обеспечения: - Различия в цифровых сигнальных процессорах (DSP). - Использование разных драйверов аудиокарт. - Особенности реализации Web Audio API в браузерах. Эти факторы приводят к тому, что одно и то же аудио, обработанное разными устройствами, содержит уникальные характеристики, которые можно зафиксировать. Антифрод-системы используют эти особенности для создания отпечатка устройства, анализируя аудиосигналы на уровне частотных и временных характеристик. #### Методы подмены отпечатков Web Audio Злоумышленники, пытаясь обойти антифрод-системы, применяют различные методы для подмены аудиофингерпринта: - **Искажение сигналов.** Встраивание небольших изменений в аудиосигнал, чтобы отпечаток устройства выглядел уникальным. Это может быть изменение амплитуды, фазы или добавление шума. - **Использование предзаписанных данных.** Заранее подготовленные аудиосигналы могут подменить реальный рендеринг звука, выдавая поддельные данные. Такой подход усложняет выявление подмены, так как сигналы выглядят корректными. - **Эмуляция аудиооборудования.** Программы-эмуляторы могут создавать аудиофингерпринт, идентичный настоящему устройству, обходя проверку. #### Как антифрод-системы выявляют подмену отпечатков? Антифрод-системы применяют различные подходы для выявления фальсификаций: - **Анализ частотных характеристик.** Сравнивая спектрограммы аудиосигналов, системы могут выявить аномалии, характерные для искусственно изменённых данных. - **Генерация динамических сигналов.** Создание аудиосигналов в реальном времени, с последующим анализом их обработки. Такие тесты сложнее подделать, так как они требуют быстрой реакции от устройства. - **Сравнение с эталонными данными.** Система сравнивает результаты обработки сигнала с ожидаемыми характеристиками, оценивая отклонения. #### Динамические аудиосигналы Динамические тесты, включающие изменение звуковых характеристик (например, частоты или амплитуды), усложняют задачу для мошенников. Эти тесты позволяют оценить производительность устройства в реальном времени и выявить несовпадения в обработке сигнала. #### Анализ отпечатка WebAudio Посмотрим, какие данные можно получить о пользователе с помощью Web Audio API, откроем на страницу browserleaks.com/javascript в нашем браузере Chrome:  Откроем страницу в нашем антидетект-браузере:  Этот сайт получает небольшое количество информации с помощью технологии Web Audio API. Откроем нашу тестовую страницу test-webapi.tech/audiofull на компьютере Intel в браузере Chrome:  На этой странице в разделе Media Devices мы получаем информацию об устройстве. В разделе Audio Fingerprint (HEX) мы получаем длину результатов двух вычислений с разными заданиями для проверки возможностей устройства (Fingerprint Length) и результат MD5 Hash от кодирования результатов вычислений и значений параметров устройства. В разделе Audio Context Data мы видим параметры устройства, полученные с помощью Web Audio API и их значения. Откроем эту страницу в антидетект-браузере без применения шума:  Можем заметить, что результаты Audio Fingerprint (HEX) совпадают, наш антидетект-браузер не подменяет результаты вычислений. Но оказывается странным, что в нашем профиле антидетект-браузера нет устройств для вывода звука в разделе Media Devices. Повторим проверку с наложением шума аудио в антидетект-браузере:  Мы видим, что длина строки с результатами вычислений значительно увеличилась, а значение MD5 Hash изменилось. Можем сделать вывод: антидетект-браузер успешно изменяет отпечаток Аудио. Чтобы понять как Антифрод системы могут реагировать на такое изменение, проверим результаты на других десктоп устройствах. Компьютер AMD:  Ноутбук AMD:  Ноутбук Intel:  Отметим, что на десктоп устройствах мы получили одинаковый отпечаток Аудио. Продолжим проверку на мобильных устройствах:    Для мобильных устройств отличия в отпечатках Аудио встречаются чаще, чем на десктоп устройствах, но стоить заметить, что длина значения Fingerprint Length для разных типов устройств изменяется незначительно, в отличии от длины строки результатов в антидетект-браузере с наложением шума. #### Определение шума Web Audio API По результатам тестов, которые мы привели ранее, можно заметить, что при наложении шума размер строки с результатами увеличивается на значительную величину, что уже может быть расценено антифрод-системами, как несоответствие ожидаемым результатам. Попробуем разобраться, какими способом антифрод-системы могут более точно определять использование шума в отпечатке Аудио. Откроем нашу тестовую страницу test-webapi.tech/audiotamper на компьютере в браузере Chrome:  Откроем эту же страницу в антидетект-браузере без наложения шума:  Повторим тест с использованием шума в отпечатке аудио:  В этом тесте мы использовали следующий метод определения шума: мы проверяем части отпечатка, которые не должны изменяться на разных устройствах и сравниваем их с эталонными значениями. При использовании шума, изменяется часть значений таких участков в отпечатке, и это делает определение подмены отпечатка простой задачей. Ещё одним способом определения подмены может служить получение реальных значений характеристик аудио и сравнение с заявленными характеристиками в свойствах браузера. Попробуем провести этот тест, откроем страницу test-webapi.tech/audiodetect в браузере Chrome:  Запустим тест  Откроем эту же страницу в антидетект-браузере без использования шума:  Повторим тест в антидетект-браузере с наложением шума:  Подобные тесты позволяют выявить подмену значений свойств аудио с помощью измерения разницы значений и сравнения с допустимыми значениями для конкретных тестов. #### Заключение В этой статье мы рассмотрели каким образом отпечаток Аудио используется в антифрод-системах. Web Audio API не является уникальным, и с его помощью антифрод-системы не могут точно идентифицировать пользователя. В то же время использование шума в отпечатке Аудио определяется достаточно просто и пользователей, использующих подмену, антифрод-системы могут легко идентифицировать. В следующей статье мы продолжим разбор технологий браузера, используемых в антифрод-системах. *Bannykh M.V.*