یک توسعه‌دهنده که علت قطع‌نشدن پخش میان مرورگر دسکتاپ و گوشی در هدفون‌های مولتی‌پوینت را بررسی می‌کرد، روی صفحهٔ اصلی AliExpress یک جریان صوتی بی‌صدا یافت که برای گرفتن اثر انگشت صوتی سخت‌افزار طراحی شده بود.

چگونه یک صدای غیرقابل‌شنیدن اثر انگشت استخراج می‌کرد

اسکریپت‌هایی مانند collina.js و fireyejs.js گرافی از پردازش Web Audio می‌ساختند و موجی شناخته‌شده را از طریق گره‌های تبدیل عددی عبور می‌دادند تا الگوهای اجرایی وابسته به سخت‌افزار بیرون کشیده شود. تکنیک مبتنی بر تفاوت‌های ریز در محاسبات اعشاری واحدهای پردازش شناور، مجموعه‌دستورالعمل‌هایی مثل AVX یا ARM NEON، موتور میکس سیستم‌عامل و درایورهای صوتی است؛ این تفاوت‌ها به واریانس‌های فرکانسی مختص هر دستگاه می‌انجامد و در عمل امکان شناسایی پروفایل سخت‌افزاری را فراهم می‌کند.

const ctx = new (window.AudioContext || window.webkitAudioContext)();
const osc = ctx.createOscillator();
const compressor = ctx.createDynamicsCompressor();
const analyser = ctx.createAnalyser();
const gain = ctx.createGain();
gain.gain.value = 0.0;
osc.type = "triangle";
osc.frequency.setValueAtTime(10000, ctx.currentTime);
osc.connect(compressor);
compressor.connect(analyser);
compressor.connect(gain);
gain.connect(ctx.destination);
osc.start(0);
const buffer = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(buffer);

نکتهٔ کلیدی این است که هرچند gain.gain.value روی صفر تنظیم شده، گرهٔ Gain هنوز به ctx.destination متصل باقی می‌ماند؛ این رفتار باعث می‌شود سیستم‌عامل یک جریان صوتی «unmuted» در سطح سیستم ایجاد کند. پیامدهای عملی برای کاربر شامل جلوگیری از ورود دستگاه به حالت بیکاری صوتی یا عدم تغییر مسیر پخش در هدفون‌های بلوتوث مولتی‌پوینت است؛ در نتیجه هدفون‌ها قادر به واگذاری تمرکز پخش به دستگاه دیگر نیستند.

واکنش مرورگرها و روش‌های مقابله

مرورگرهای محافظت‌کننده از حریم خصوصی این بردار را شناسایی کرده و راهکارهای متفاوتی عرضه کرده‌اند تا اثرگذاری آن کاهش یابد.

راهکار Brave

Brave توضیح داده که علی‌اکسپرس محتوا را ضبط نمی‌کرد و در عوض صدای بی‌صدا را پخش می‌کرد تا نحوهٔ پردازش آن در دستگاه اندازه‌گیری شود و اثر انگشت استخراج شود. برای خنثی‌سازی این بردار، Brave با روش «farbling» نویز شبه‌تصادفیِ قطعی به بافرهای رندر صوتی تزریق می‌کند تا داده‌های فرکانسی بین جلسات مرورگر تغییر کند، بدون آن که عملکرد برنامه‌های صوتی وب مختل شود.

راهکار Mozilla

موزیلا با استفاده از تنظیماتی مانند privacy.resistFingerprinting دقت محاسبات صوتی را از طریق بسته‌بندی و نرمال‌سازی محدود می‌کند تا واریانس‌های مرتبط با سطح FPU کاهش یابد. این رویکردها از نظر فنی متفاوت‌اند اما هدف مشترکشان کاهش قابلیت استخراج اثر انگشت از پردازش صوتی است.

شکاف‌های مجوزی و نقاط کور معماری

مشکل بنیادی این است که ایجاد AudioContext نیازمند اجازهٔ صریح نیست، در حالی که APIهایی مانند getUserMedia یا موقعیت مکانی مجوز می‌خواهند. علاوه بر این، مرورگرها معمولاً نشانگر بصری فعالیت صوتی را وقتی گراف صوتی نمونه‌هایی با دامنهٔ صفر تولید می‌کند نشان نمی‌دهند. این ترکیب یک نقطه‌کور طراحی ایجاد کرده که هم تهدید حریم خصوصی و هم مشکلات فنی برای سخت‌افزارهای صوتی چندنقطه‌ای پدید می‌آورد.

نمایی از کد جاوااسکریپت و ابزارهای دیباگ برای تحلیل Web Audio

پیامدها برای توسعه‌دهندگان و سازمان‌ها

  • پلتفرم‌های تجارت الکترونیک در اجرای اسکریپت‌های ریسک‌سنجی سمت‌کلاینت باید تعادل میان امنیت و حریم خصوصی را بازبینی کنند و در اولویت قرار دادن متریک‌های سطح نرم‌افزار را مدنظر داشته باشند.
  • توسعه‌دهندگان وب هنگام بهره‌گیری از Web Audio برای تحلیل یا تله‌متری باید اعلان‌های شفاف به کاربر ارائه دهند، از الگوهای ایمن‌سازی پیروی کنند و از اتصال مستقیم گراف به ctx.destination مگر در صورت ضرورت پرهیز کنند.
  • سازندگان مرورگر باید نمایش بصری فعالیت‌های صوتی و کنترل‌های مجوزی دقیق‌تر را بررسی کنند تا از ایجاد سوگیری‌های نامرئی علیه حریم خصوصی جلوگیری شود.

اقدامات پیشنهادی برای کاربران

کاربران می‌توانند با به‌روزرسانی مرورگرها، فعال‌سازی تنظیمات ضداثر انگشتی در صورت وجود، بررسی افزونه‌های حریم خصوصی و محدودسازی دسترسی Web Audio ریسک را کاهش دهند. همچنین باید نسبت به رفتار غیرعادی سرویس‌های آنلاین هوشیار باشند و در صورت بروز مشکل صوتی مشکوک، با تنظیمات مرورگر یا راه‌اندازی مجدد دستگاه اقدام کنند.

نگاهی به آینده

این رخداد نشان می‌دهد ابزارهای وب می‌توانند بدون هشدارهای ظاهری به اطلاعات سخت‌افزاری دست یابند؛ بنابراین تعریف دقیق‌تر مجوزها و تدوین استانداردهای جدید برای کنترل دسترسی Web Audio و تله‌متری ضروری است. در غیاب تغییرات ساختاری، تعارض میان محافظت از پلتفرم‌ها و حفظ حریم خصوصی کاربران ادامه خواهد یافت و احتمالاً مرورگرها و نهادهای استاندارد‌ساز مجبور به ارائه راهکارهای فنی جدید خواهند شد.