Google

У него постоянно прерывались наушники, и тогда он изучил код AliExpress

У него постоянно прерывались наушники, и тогда он изучил код AliExpress

Один разработчик выяснил, почему его Bluetooth-наушники постоянно глушили воспроизведение музыки, и разгадка крылась на главной странице AliExpress. Издание The Register опубликовало об этом материал в понедельник, опираясь на рассказ самого разработчика и комментарии инженера Firefox.

Коннор Джонс (Connor Jones), написавший материал для The Register, отмечает, что издание обратилось к Alibaba с просьбой о комментарии.

Что заметил Мэтт Каллаган

Каллаган использует наушники с поддержкой многоточечного подключения (multipoint), сопряженные одновременно с ПК и телефоном. О произошедшем он рассказал в своем блоге 20 августа.

«Обычно я слушаю музыку на телефоне, но если на ПК воспроизводятся уведомления или YouTube, всё работает стабильно до тех пор, пока я не открою страницу AliExpress в Firefox или Chrome», — написал он.

Звук с телефона прекращался вскоре после загрузки главной страницы. Закрытие вкладки сразу же решало проблему. Отключение звука для вкладки, в браузере или в самом Windows ни к чему не приводило, при этом на странице не было видно ни видео, ни музыки.

Что он проверил в первую очередь

Каллаган стал искать скрытый медиаконтент. Он проверил наличие аудио- и видеоэлементов, вызовов HTMLMediaElement.play(), активных метаданных Media Session, медиазапросов и внедренных фреймов.

Ничего из этого обнаружено не было. Статус воспроизведения оставался нулевым. Однако одна деталь привлекла внимание: проблема возникала только после того, как страница оставалась бездействующей в течение нескольких секунд.

Что он обнаружил на самом деле

Он перехватил конструктор AudioContext, чтобы фиксировать создание контекста обработки звука на странице, а также перехватил метод connect, чтобы посмотреть, что именно поступает на аудиовыход.

Главная страница создала два объекта AudioContext. Оба перешли в рабочее состояние. Оба подключили узлы к аудиовыходу, хотя на странице по-прежнему не было медиаэлементов, вызовов воспроизведения и какого-либо слышимого звука.

Трассировка стека указала на два скрипта: collina.js и fireyejs.js, оба из которых загружались из директории AWSC на медиадомене Alibaba. Каллаган написал, что они «похоже, являются частью инструментов безопасности браузера и защиты от злоупотреблений Alibaba».

Устройство аудиографа

Судя по его описанию, оба скрипта создают одинаковую цепочку. Генератор пилообразного сигнала передает данные в узел анализатора, затем в процессор сценариев, затем в узел усиления (gain node), установленный на ноль, и далее на аудиовыход.

Генератор создает известную форму волны. Анализатор измеряет то, что выходит с другой стороны реализации аудио в браузере. Усиление находится на нуле, поэтому ничего не слышно.

При этом граф всё равно достигает системного аудиовыхода, из-за чего браузер обрабатывает его. «Здесь нет медиаэлемента, который мог бы остановить стандартный элемент управления отключением звука во вкладке браузера», — написал Каллаган. «С точки зрения страницы, она выполняет обработку звука в реальном времени».

Что еще измеряют скрипты

Каллаган перечисляет отрисовку холста (canvas), информацию о рендерере WebGL и точность шейдеров, размеры экрана и области просмотра, соотношение пикселей устройства, аппаратную многопоточность, объем памяти устройства, установленные плагины, поддерживаемые медиаформаты, поведение WebRTC, показатели производительности, события мыши, касания, фокуса и прокрутки, движение и ориентацию устройства, а также свойства, связанные с автоматизацией браузера.

Он также описывает код, который сериализует и шифрует результаты перед отправкой их в службы телеметрии Alibaba. Всё это он называет «весьма исчерпывающим слепком (дактилоскопией) браузера и устройства».

Касательно дальнейшего развития событий он прямо говорит о пределах того, что может увидеть: «Я не могу видеть, что именно AliExpress делает с полученными данными после того, как они попадают на их серверы».

Ответ инженера Firefox

Том Риттер (Tom Ritter), работающий над Firefox, в тот же день опубликовал заметку с продолжением темы. Его главный вывод заключается в том, что создание цифровых отпечатков (fingerprinting) браузеров повсеместно распространено, но конкретно этот метод — нет.

Начиная с версии 118, выпущенной в сентябре 2023 года, компания Firefox сделала свой вывод WebAudio постоянным в рамках первого этапа защиты от создания цифровых отпечатков. Риттер говорит, что в настоящее время 99,24% пользователей попадают в одно из трех значений, а 0,76% возвращают ноль из-за сбоя измерения.

Эти три значения сводятся к процессорам. Одно охватывает чипы x86 и x64 без инструкций FMA (fused multiply-add), второе охватывает чипы x64 с ними, а третье охватывает чипы ARM с использованием NEON.

48 пользователей

Риттер сообщает о длинном хвосте распределения. Еще двадцать три значения приходятся на 48 пользователей по всему миру, что делает каждого из них индивидуально идентифицируемым с помощью этого измерения.

«Это очень досадно, поскольку делает этих пользователей совершенно уникальными, но в то же время это не такая уж редкость», — написал он. Возможными причинами он называет сбои памяти, баг процессора или необычную архитектуру.

Его вывод звучит резко: «Но в конечном счете создание цифровых отпечатков WebAudio практически бесполезно».

Что сказали разработчики браузеров

Представители Firefox опубликовали в X сообщение о том, что их технология защиты от создания цифровых отпечатков справляется с этой задачей, и сослались на пост Риттера. Компания Brave также опубликовала заявление, в котором говорится, что она защищает пользователей уже шесть лет.

«Brave внедряет случайные данные в вывод браузера, благодаря чему вы показываете разные цифровые отпечатки разным сайтам», — написали в компании. Там также добавили, что по умолчанию блокируют эти конкретные скрипты.

Safari использует третий подход, внедряя ошибки в аудиобуфер, а не объединяя пользователей в группы. Риттер написал, что у Chrome и Safari «вероятно, есть защита от этого».

Какова позиция Chrome

The Register отмечает, что Chrome не ведет активную защиту пользователей от создания цифровых отпечатков, ссылаясь на заявление эксперта по конфиденциальности Александра Ханффа (Alexander Hanff), сделанное ранее в этом году.

«В Chrome прямо сейчас, сегодня, пока вы это читаете, работает по меньшей мере тридцать различных методов дактилоскопии», — написал Ханфф. Он охарактеризовал их не как лабораторные эксперименты, а как «реальные рабочие методы, развернутые на миллионах веб-сайтов».

Кроме того, Google собирается отключить uBlock Origin и другие расширения на базе Manifest V2 в Chrome. Собственное решение Каллагана заключается в использовании пары правил фильтрации uBlock Origin, которые блокируют эти два скрипта.

Во что обходится блокировка

Каллаган сообщает, что главная страница по-прежнему корректно отображается при блокировке обоих скриптов, а аудиоконтексты не появляются. Существующие вкладки приходится закрывать, поскольку блокировка скрипта не завершает работу уже созданного им контекста.

Он добавляет предупреждение. Поскольку скрипты, судя по всему, связаны с системами предотвращения мошенничества, их блокировка «может привести к появлению дополнительных CAPTCHA или проблемам при входе в систему и оформлении заказа».

Компания Cloudflare работает с Chrome, Firefox и Edge над протоколом защиты от ботов, призванным отличать людей от автоматизированных систем без использования подобных измерений.

Общий контекст

В июле ЕС оштрафовал AliExpress на 550 млн евро в соответствии с Законом о цифровых услугах (Digital Services Act). Редакция освещала <этот штраф> в то время.

В этом месяце выяснилось, что функция Apple Private Relay тремя способами раскрывает IP-адреса, о чем редакция писала как о нарушении конфиденциальности. Компания Comcast начала превращать домашние роутеры в датчики движения.

Тикет об ошибке в Firefox, затрагивающий аудиоповедение, был открыт еще до этих событий. Каллаган дал на него ссылку в обновлении к своему посту.

Опубликовано 24 августа 2026 - 07:49 Наверх