ما هو Audio Fingerprinting؟ كيف يتتبعك AudioContext
المتصفح والجهاز

ما هو Audio Fingerprinting؟ كيف يتتبعك AudioContext

تعرّف على كيفية استخدام Web Audio API لمعالجة إشارة صامتة تُنتج معرّفاً فريداً لجهازك — بدون ميكروفون أو أذونات.

7 دقائق قراءة·

Audio fingerprinting هو أسلوب تتبع في المتصفح يستخدم Web Audio API لتصيير إشارة صامتة في الذاكرة وقياس الاختلافات الدقيقة جداً في النقطة العائمة (floating-point) في المخرجات — اختلافات فريدة لتركيبة أجهزتك وبرامجك. لا يُشغَّل أي صوت، ولا يُصل إلى أي ميكروفون، ولا تُطلب أي أذونات. يمكنك التحقق من بصمة متصفحك، بما في ذلك إشارات الصوت، الآن على whatsmy.fyi.

ملخص سريع

ينشئ audio fingerprinting مهمة تصيير صوتية صغيرة داخل ذاكرة متصفحك تماماً، ثم يقرأ النتيجة العددية. نظراً لأن كل تركيبة من وحدة المعالجة المركزية (CPU) ونظام تشغيل الصوت وموجة المتصفح تعالج الرياضيات العشرية بشكل مختلف قليلاً، تكون النتيجة رقماً مستقراً يُعرّف جهازك بشكل فريد — وينجو من وضع التصفح المتخفي وحذف الكوكيز وحتى تغيير المتصفح على المتصفحات القائمة على Chromium.

ما هو Audio Fingerprinting؟

يستغل audio fingerprinting OfflineAudioContext — واجهة برمجة تطبيقات مصممة أصلاً لتصيير الصوت بأسرع من الوقت الفعلي للمعالجة والمزج والتصدير. تُعيد نصوص البصمة توظيفها لتصيير شكل موجي محدد رياضياً دون جهاز إخراج، ثم تقيس كيفية تعامل المنصة مع الحساب. النتيجة هي رقم واحد — مثل 124.0434488 على جهاز ما أو 79.59 على آخر — يعمل كمعرّف جهاز.

على خلاف canvas fingerprinting، الذي يختبر مسار تصيير ثنائي الأبعاد لـ GPU، يختبر audio fingerprinting مسار معالجة الإشارة الرقمية (DSP) لـ CPU. يلتقطان طبقات مختلفة تماماً من أجهزتك، مما يجعلهما إشارات تكميلية عند نشرهما معاً. عادةً ما تجمع منصات البصمة التجارية مثل Fingerprint.com كلتا الإشارتَين جنباً إلى جنب مع أكثر من 100 إشارة أخرى.

كيف يعمل Audio Fingerprinting؟

تعمل العملية في خيط خلفي في أقل من 50 ملّيثانية وتتبع أربع خطوات واضحة.

الخطوة الأولى — إنشاء OfflineAudioContext

يُنشئ النص OfflineAudioContext بعدد قنوات وعينات وتردد عينة محدد — عادةً قناة واحدة و5,000 عينة بـ 44,100 هرتز. "Offline" تعني أنه يُصيَّر كلياً في الذاكرة: لا أجهزة صوت، لا جهاز إخراج مطلوب، ولا صوت يُنتج.

الخطوة الثانية — توليد شكل موجي

يُكوَّن OscillatorNode لإنتاج موجة مثلثية بتردد 10,000 هرتز. هذا شكل موجي دقيق رياضياً ومتكرر — لا عشوائية في المدخلات. أي اختلاف في المخرجات يأتي إذن كلياً من سلسلة معالجة المنصة، وليس من الإشارة نفسها.

الخطوة الثالثة — تطبيق DynamicsCompressor

تُوجَّه إشارة المذبذب عبر DynamicsCompressorNode مُعيَّن لعتبة وركبة ونسبة وهجوم وإطلاق محددة. يطبق الضاغط منحنى كسب غير خطي — مما يعني أن الرياضيات تتضمن قسمة وتربيعاً، وليس مجرد جمع. العمليات غير الخطية تُركّم أخطاء التقريب العشري عبر المنصات، وهذا بالضبط سبب استخدام الضاغط: يُضخّم الفروق الدقيقة بين بنى CPU وتطبيقات مجموعة الصوت إلى قيمة مستقرة وقابلة للقياس.

الخطوة الرابعة — قراءة المخرجات وتجزئتها

بعد اكتمال التصيير، يُعيد buffer.getChannelData(0) مصفوفة Float32Array من 5,000 قيمة. يجمع النص عادةً القيم المطلقة للعينات 4,500–5,000 لإنتاج عدد عشري واحد. يصبح ذلك العدد — أو تجزئة المصفوفة الكاملة — بصمة الصوت.

// AudioContext fingerprinting — مثال عمل أدنى
async function getAudioFingerprint() {
  const AudioCtx =
    window.OfflineAudioContext || window.webkitOfflineAudioContext;

  // 1. إنشاء سياق في الذاكرة — بدون أجهزة، بدون أذونات
  const ctx = new AudioCtx(1, 5000, 44100);

  // 2. مذبذب — موجة مثلثية بـ 10 كيلوهرتز (مدخل محدد)
  const osc = ctx.createOscillator();
  osc.type = 'triangle';
  osc.frequency.setValueAtTime(10000, ctx.currentTime);

  // 3. DynamicsCompressor — الرياضيات غير الخطية تُضخّم فروق المنصة
  const comp = ctx.createDynamicsCompressor();
  comp.threshold.setValueAtTime(-50, ctx.currentTime);
  comp.knee.setValueAtTime(40, ctx.currentTime);
  comp.ratio.setValueAtTime(12, ctx.currentTime);
  comp.attack.setValueAtTime(0, ctx.currentTime);
  comp.release.setValueAtTime(0.25, ctx.currentTime);

  osc.connect(comp);
  comp.connect(ctx.destination);
  osc.start(0);

  // 4. التصيير والقراءة — يعمل خارج الخيط الرئيسي
  const buffer = await ctx.startRendering();
  const data = buffer.getChannelData(0);

  // مجموع آخر 500 عينة — النتيجة تختلف حسب الجهاز/نظام التشغيل/المتصفح
  // Chrome macOS: ~101.46  |  Safari: ~79.59  |  Firefox: ~80.95
  return data.slice(4500).reduce((acc, v) => acc + Math.abs(v), 0);
}

لماذا يبدو كل جهاز مختلفاً صوتياً؟

التباين متجذّر في كيفية تطبيق كل منصة لحسابات الأعداد العشرية وفق IEEE 754 لمعالجة الصوت. ثلاث طبقات تُسهم في ذلك:

  • بنية CPU وتعليمات SIMD: تستخدم معالجات x86 تعليمات متجهية SSE2 أو AVX2؛ وتستخدم معالجات ARM نظام NEON. تُنتج نفس عملية الضرب بتاً مختلفاً في الرتبة الأدنى حسب مجموعة التعليمات المستخدمة. آلاف العمليات عبر تصيير 5,000 عينة تُنتج مجموعاً مختلفاً بشكل قابل للقياس.
  • مجموعة صوت نظام التشغيل وإصدار برنامج التشغيل: يستخدم Chrome تطبيق FFT داخلي مختلف على macOS مقارنةً بـ Windows وLinux. يُنتج Android 9 وAndroid 10 قيماً مختلفة يمكن قياسها على نفس الجهاز الفعلي لأن تحديث نظام التشغيل غيّر مسار معالجة الصوت.
  • تباين محرك المتصفح: Blink وWebKit وGecko تشترك جذوراً في قاعدة WebKit لجوجل 2011 لكنها تراكمت أكثر من عقد من التعديلات المستقلة على رمز معالجة الصوت. يُعيد Firefox قيمة مختلفة عن Chrome على نفس أجهزة macOS.

خاصية لافتة تُميّز audio fingerprinting عن canvas: على المتصفحات القائمة على Blink (Chrome وEdge وOpera وBrave)، يُعيد نفس الجهاز نفس بصمة الصوت بغض النظر عن متصفح Blink المستخدم. هذا يعني أن جهاز تتبع يمكنه متابعتك عبر المتصفحات — وليس فقط عبر علامات التبويب — على نفس الجهاز، وهو ما لا يستطيع canvas fingerprinting فعله بشكل موثوق.

ما مدى تفرّد بصمة الصوت؟

audio fingerprinting ليست أعلى إشارة إنتروبيا بمعزل عنها، لكنها تتميز بالاستقرار — وهذا الاستقرار هو ما يجعلها قيّمة في أنظمة البصمة متعددة الإشارات.

النتيجةالقيمةالمصدر
إنتروبيا بصمة الصوت (بمعزل عنها)~4.8 بتarXiv 2107.14201 (2021)
إنتروبيا بصمة canvas (للمقارنة)~5.7 بتEFF Cover Your Tracks
المواقع ضمن أفضل 100,000 في Alexa تستخدم نصوص البصمة~10%دراسة قياس أكاديمية، 2021
دقة بصمة DynamicsCompressor مقابل طريقة FFTطريقة DC أكثر استقراراًarXiv 2107.14201 (2021)
دقة البصمة المجمّعة (100+ إشارة تشمل الصوت)حتى 99.6%Fingerprint.com
حماية حقن الضوضاء في Safari 17 تُتجاوز بمتوسط العينات40,000 عينةأبحاث تجاوز Fingerprint.com، 2023

القوة الحقيقية لبصمة الصوت ليست الإنتروبيا بل الثبات. تتغير فقط عند ترقية نظام التشغيل أو تحديث محرك المتصفح أو تغيير الأجهزة. يمكن أن تتحول بصمات canvas وWebGL مع تحديثات برامج تشغيل GPU؛ أما بصمة الصوت فهي راسخة في طبقة أعمق وأبطأ تغيّراً من المجموعة. تستخدمها المنصات التجارية كـ"إشارة ارتكاز" مستقرة تُبقي هوية الجهاز ثابتة حتى عندما تتدهور الإشارات الأعلى إنتروبيا.

من يستخدم Audio Fingerprinting في العالم الواقعي؟

منصات كشف الاحتيال

الوقاية من الاحتيال هي حالة الاستخدام المشروعة السائدة. تستخدم منصات مثل Fingerprint.com وDataDome وThreatMetrix وSift بصمة الصوت كإحدى الإشارات العديدة للكشف عن عمليات استيلاء الحسابات وحشو بيانات الاعتماد وحركة البوتات.

شبكات الإعلانات عبر المواقع

مع إيقاف الكوكيز من الطرف الثالث عبر المتصفحات الرئيسية، تسارع شركات التكنولوجيا الإعلانية في الاستثمار في البصمة لحل هوية المستخدم. بصمة الصوت جذابة لأنها لا تتطلب تخزيناً على الجهاز.

تطبيق الجدار المدفوع

يستخدم الناشرون بصمة الصوت للتعرف على المستخدمين الذين يحذفون الكوكيز لتجاوز حدود المقالات. نظراً لأن البصمة محسوبة من الأجهزة وليس من البيانات المخزنة، فإنها تظل سارية عبر حذف الكوكيز وجلسات التصفح الخاص.

هل Audio Fingerprinting قانوني؟

تشددت الحالة القانونية بشكل ملحوظ منذ 2020. بموجب GDPR، تُشكّل بصمة الصوت التي يمكنها تحديد شخص بعينه بيانات شخصية بموجب المادة 4، بصرف النظر عما إذا كان الاسم مرفقاً. يغطي الآن توجيه ePrivacy المادة 5(3)، كما وضحته مبادئ EDPB لعام 2024، بصمة الجهاز صراحةً — وليس الكوكيز التقليدية فقط.

كيف تحمي نفسك من Audio Fingerprinting؟

  • متصفح Tor (الأقوى): يُعطّل Tor الـ Web Audio API كلياً (dom.webaudio.enabled = false). لا شيء للبصمة. المقايضة هي أن أي موقع يستخدم Web Audio بشكل مشروع — تطبيقات الموسيقى والوسائط التفاعلية والألعاب — سيتعطل.
  • متصفح Brave — Farbling (أفضل توازن للاستخدام اليومي): Farbling من Brave يضرب قيم مخزن الصوت بعامل عشوائي صغير مشتق من بذرة لكل جلسة ولكل موقع. الاضطراب متسق داخل الجلسة لذا يعمل تشغيل الصوت بشكل طبيعي، لكنه يتغير بين الجلسات ويختلف بين المواقع — مما يجعل التتبع عبر المواقع والجلسات غير موثوق.
  • Firefox privacy.resistFingerprinting: تمكين هذا الإعداد في about:config يجعل Firefox يُعيد قيم صوتية موحدة مشتركة بين جميع المستخدمين الذين لديهم نفس الإعداد. ليس مُمكَّناً افتراضياً وقد يتسبب في مشكلات توافق.
  • Safari 17+ في وضع التصفح الخاص: يُحقن Safari ضوضاء صغيرة (حجم 0.001) في قيم مخزن الصوت. هذه الحماية الأضعف — أثبت Fingerprint.com تجاوزها بمتوسط 40,000 عينة مُصيَّرة، مما يُلغي الضوضاء ويستعيد قيمة البصمة الجوهرية الحقيقية.
  • وضع التصفح الخاص/المتخفي القياسي — لا حماية: يُعيد Chrome وFirefox وEdge في وضع التصفح المتخفي بصمات صوتية مطابقة للوضع العادي. تحقق من إشاراتك الأخرى المكشوفة على whatsmy.fyi.

الأسئلة الشائعة

هل يستخدم audio fingerprinting الميكروفون؟

لا. يستخدم audio fingerprinting الـ OfflineAudioContext API، الذي يُصيّر الصوت كلياً في الذاكرة دون الوصول إلى أي جهاز إدخال. لا يتطلب أذونات، ولا ينتج صوتاً، ولا يظهر في أي مطالبات أذونات المتصفح أو مؤشراتها. الـ Web Audio API مواصفة منفصلة عن Media Capture API (getUserMedia) التي تتحكم في الوصول إلى الميكروفون.

هل يعمل في وضع التصفح المتخفي؟

نعم، تماماً. يمنع وضع التصفح المتخفي متصفحك من حفظ سجل التصفح والكوكيز والبيانات المحلية على القرص — لكن بصمة الصوت محسوبة من خصائص الأجهزة والبرامج، وليس من البيانات المخزنة.

هل يمكن لـ VPN الحماية من audio fingerprinting؟

لا. يغيّر VPN عنوان IP الخاص بك ويُشفّر حركة مرورك، لكنه لا يؤثر على كيفية معالجة متصفحك لرياضيات الصوت العشرية. بصمة الصوت مشتقة كلياً من أجهزتك وبرامجك المحلية. تحقق مما إذا كان VPN الخاص بك يخفي IP فعلياً على whatsmy.fyi.

لماذا يجعل DynamicsCompressor بصمة الصوت أكثر فعالية؟

يطبق DynamicsCompressorNode منحنى كسب غير خطي — الرياضيات تتضمن أسساً وقسمات، وليس مجرد جمع. العمليات غير الخطية تُركّم أخطاء تقريب الفاصلة العائمة عبر آلاف العينات بشكل أكبر بكثير مما تفعله العمليات الخطية. فرق صغير خاص بالمنصة في ضرب واحد يتتالى عبر سلسلة معالجة الضاغط إلى قيمة نهائية مستقرة ومميّزة بشكل قابل للقياس. بدون الضاغط، ستُنتج مخرجات المذبذب البسيطة تبايناً أقل بكثير في المنصة.

مقالات ذات صلة

تحقق من عنوان IP وموقعك ودرجة الخصوصية — فوراً.

صفر سجلات. صفر تتبع. صفر APIs خارجية.

ابدأ الفحص الآن →

مقالات ذات صلة

ما هو Audio Fingerprinting؟ كيف يتتبعك AudioContext | whatsmy.fyi