از این به بعد صدایت میکنم... در حال محاسبه. صفحه را دوباره بارگذاری کن. کوکیها را پاک کن. به VPN وصل شو. باز هم همان هستی. حالا سایت را روی گوشی یا دستگاه دیگری باز کن؛ لقبت فرق میکند و همانقدر هم پایدار است. در حالت ناشناس فرق میکند؟ خوب است. اما همیشه یکسان میماند؟ خبر بد است.
این را تصور کن: بیشتر سایتهایی که میبینی پول میگیرند تا تبلیغ نشان دهند و بیآنکه خودت بدانی اسکریپت من را اجرا میکنند؛ اسکریپتی که به من میگوید تو چه کسی هستی. میتوانم از آن استفاده کنم تا تصمیم بگیرم چه تبلیغی ببینی. اما مهمتر از آن، اگر در آن سایت حساب کاربری ساخته باشی، میتوانم پیشنهاد بخرم که دادهات را بفروشی — هر چیزی که بر اساس سیاست حریم خصوصیشان مجاز باشد: نام، فعالیت، گفتوگوها با هوش مصنوعی و بیشتر.
خیلی زود درباره تو بیشتر از دوستانت میدانم؛ شاید بیشتر از خودت.
«خب که چی؟» میگویی. «چیزی برای پنهان کردن ندارم و ترجیح میدهم تبلیغها مرتبط باشند؛ گاهی دقیقاً چیزی را نشانم میدهند که لازم دارم. تازه دادهها هم ناشناس میشوند.»
ببین، موضوع اصلاً تو نیستی. دیگر حتی موضوع تبلیغ هم نیست. هیچکس به تو اهمیت نمیدهد. و اگر پلیس یا دولت تو اتفاقاً اهمیت بدهد، با کمال میل پول آنها را هم میگیرم.
من به همه این دادهها نگاه میکنم و آدمها را نمیبینم؛ الگوها را میبینم. الگوهایی که از دل الگوها بیرون میآیند. یک وضعیت فراکتال زنده و دیجیتال از اقتصاد، جامعه و روان آدمی. گوی بلورین قرن بیستویکم، ساختهشده از سیلیکون. این همان محصول است. و به بالاترین پیشنهاد قیمت میرود.
پس تو چه هستی؟ یک چرخدنده؟ یک گاو؟ یک داوطلب؟
اثر انگشت، کوکی جدید است
یادت هست چه هیاهویی درباره کوکیهای شخص ثالث بود؟ آنقدر بزرگ بود که اتحادیه اروپا یکی از بزرگترین اختراعهایش را رو کرد: بنرهای رضایت. اگر اروپا سریعتر از شرکتهای فناوری حرکت میکند، این فقط یک معنا دارد: آن شرکتها دست روی دست گذاشتهاند. و یکی از همان شرکتها اتفاقاً دو سوم بازار مرورگر را در اختیار دارد.
طرح چه بود؟ بیایید به گوگل — بزرگترین شرکت تبلیغاتی جهان — ادای احترام کنیم.
پرده اول، فشار: «حریم خصوصی در همه کارهای ما اولویت دارد.» سال ۲۰۱۹ است و کوکیها هنوز داغاند. از نظر روابط عمومی بد شده و Safari و Firefox پیشتر آنها را بلاک کردهاند. یک سال بعد گوگل وعده میدهد: کوکیها را نابود میکنیم و دورهای نو و حریمخصوصیمحور بنا میکنیم.
پرده دوم، حواسپرتی: «بهجای حذف کوکیهای شخص ثالث، تجربه جدیدی معرفی میکنیم.» پنج سال بعد، مردم درگیر نگرانیهای بسیار بزرگتری از کوکی شدهاند و راهحلهایی که گوگل ساخت (Privacy Sandbox) چنگی به دل نمیزنند، نگرانیهای ضدانحصاری ایجاد کردهاند و کسی از آنها استفاده نمیکند. نتیجه: «میدانی چیه؟ بگذار همان کوکیها بمانند. ولی آدرس IPات را پنهان میکنیم — فقط در حالت ناشناس و در حالی که احراز هویت شده باشی، و در نهایت حتی به همان هم پایبند نماندند.»
پرده سوم، شتاب: «حالا میتوانید از اثر انگشت دستگاه در محصولات تبلیغاتی ما استفاده کنید.» به این ترتیب روش بهتری برای فهمیدن اینکه کی کیست پیدا شد.
اثر انگشت چطور کار میکند؟
شما سایتی را باز میکنید. مرورگر درخواستی به سرور میفرستد و سرور کدی برمیگرداند تا مرورگر اجرا کند. همان درخواست اطلاعاتی درباره شما لو میدهد: چه مرورگری استفاده میکنید، به چه زبانی است، چه سیستم عاملی آن را اجرا میکند و آدرس IPتان چیست — چیزی که سرور برای ارسال پاسخ لازم دارد و اغلب موقعیت مکانی شما را هم نشان میدهد.
بعد کد اجرا میشود. ما در امن کردن مرور پیشرفت تمدنی زیادی کردهایم؛ روزهایی که گرفتن ویروس فقط با باز کردن یک سایت نگرانی روزمره بود گذشته است. مشکل اینجاست که تعریف امنیت بسته به اینکه از چه کسی بپرسی فرق میکند. اجماع عمومی در «جداسازی» تمام میشود: کد یک سایت نمیتواند دادههای ذخیرهشده سایتهای دیگر را ببیند و بدون اجازه به فایلها یا برنامههای دیگر دسترسی ندارد. Chrome و Edge همینجا میایستند. Safari (بهویژه در iOS و macOS جدید) و Firefox این تعریف را به حریم خصوصی گسترش میدهند، اما باز هم شما را بهطور کامل از اثر انگشتگیری محافظت نمیکنند. Brave و Tor پیشتاز مرورگرهای حریمخصوصیمحورند و مرورگر نوپای Mullvad هم در راه است.
کد روی سختافزار شما اجرا میشود و سختافزار را میتوان به شکلهایی اندازه گرفت که خوانشهای یکدست و یگانه بسازند. واقعاً کار زیادی نمیشود برای این کار کرد؛ تنها دو راهحل جا افتاده وجود دارد: کمی نویز اینجا و آنجا تزریق کن — که به آن farbling میگویند و Brave همین کار را میکند تا اثر انگشت شما ناپایدار شود؛ یا همه چیز را همیشه یکسان نشان بده تا کاربران قابل تفکیک نباشند — رویکردی که Tor و Mullvad اتخاذ کردهاند.
خب، بیایید یک اثر انگشت بسازیم. دو منبع داده برای ساختن اثر انگشت وجود دارد: درخواست شبکه و محیط کد.
در سطح شبکه، دادهها عموماً شکننده یا عمومیاند: آدرس IP؛ در مسیر خوشبینانهای که یک نفر همیشه از یک IP استفاده میکند، ممکن است تنها داده لازم باشد. اما معمولاً مردم بخش زیادی از گشتوگذارشان را روی شبکه موبایل انجام میدهند، وایفای را با دیگران شریک میشوند، از VPN استفاده میکنند یا اپراتور IP شبکه خانگیشان را عوض میکند. پس شکننده است. سرآیندهایی مثل User-Agent یا Accept-Language نیز مرورگر، سیستم عامل، نسخهها و زبان شما را لو میدهند.
وقتی میتوانید کدی روی دستگاه اجرا کنید، راههایی برای سنجش ویژگیهای سختافزاری دارید — بدون هیچ درخواست مجوزی — و اینها بهشکلی غافلگیرکننده پایدارند: پردازنده گرافیکی (رفتار، سازنده، درایور)، پردازنده مرکزی (رفتار، سازنده، تعداد رشتهها)، حجم حافظه، داده نمایشگر (رزولوشن، نسبت پیکسل، نرخ تازهسازی)، پردازش صدا و مدل دستگاه. در سطح نرمافزار هم فونتهای نصبشده، افزونهها و اطلاعات سیستم.
میلیونها دستگاه از آخرین نسخه Chrome استفاده میکنند، میلیونها مک با تراشه M4 وجود دارد و میلیونها مرورگر به زبان فرانسه کار میکنند. اما وقتی به دستگاههایی نگاه کنید که آخرین Chrome را با زبان فرانسه روی M4 اجرا میکنند، آن عدد بهشدت افت میکند. اگر سنجشهای سختافزاری را هم اضافه کنید، عدد آنقدر پایین میآید که عملاً یگانه میشود. اثر انگشت لازم نیست واقعاً و در مقیاس جهانی یگانه باشد؛ فقط باید بهاندازهای یگانه باشد که در اندازه نمونه شما افراد را از هم جدا کند. یک کد پستی (استنتاجشده از IP)، یک تاریخ تولد (که در جایی دادهاید) و جنسیت (که همهجا پر میکنید) روی هم برای شناسایی یگانه بیش از ۶۰ درصد آمریکاییها کافی است. همیشه میتوانید متغیر دیگری بیفزایید تا استخر نامزدها کوچکتر شود.
آنتروپی اطلاعات
تا حالا آکیناتور بازی کردهاید؟ شخصیتی را در ذهن میگیرید، یک غول چند پرسش میپرسد و بهطرز عجیبی آن را میفهمد. این دقیقاً اثر انگشتگیری است، با این تفاوت که مرورگر شما خودش به پرسشها پاسخ میدهد. وقتی آنتروپی اطلاعات را بفهمید، جادوی آکیناتور به یک ترفند ساده تبدیل میشود.
بیایید ساده کنیم با همان بازی حدس شخصیت روی یک صفحه، آن هم با پرسشهایی مثل «شخصیت من مرد است؟» اگر «بله» بگویم و نیمی از شخصیتهای روی صفحه مرد باشند، اکنون فقط نیمی از نامزدها را در نظر میگیرید. پس میتوان گفت پاسخ من log₂(۱۰۰/۵۰) = log₂(۲) = ۱ بیت اطلاعات داد، چون استخر نامزدها را نصف کرد.
بیتهایی که از یک پاسخ میگیرید «تعجببرانگیزی» آن نام دارد: هرچه پاسخ نادرتر باشد، بیشتر به شما میگوید. ویژگیای که یک نفر از هر دو نفر دارد ۱ بیت ارزش دارد (مرد بودن)، یک نفر از هشت نفر ۳ بیت دارد (سبیل داشتن) و یک نفر از ۱۲۸ نفر ۷ بیت دارد (تکچشم بودن).
تعجببرانگیزی ارزش پاسخ را کمّی میکند و آنتروپی ارزش پرسش را. اگر یک نفر از هر ۱۲۸ نفر تکچشم باشد، پرسیدن آن در ۱۲۷ بار از ۱۲۸ بار پاسخ «نه» میدهد. با جمع کردن سهم هر پاسخ ممکن، خودِ پرسش حدود ۰.۰۶۶ بیت آنتروپی ارزش دارد — یعنی میانگین بیتهایی که از یک پاسخ به دست میآورید.
وقتی ویژگیهای مستقل را ترکیب میکنیم، بیتهایشان را جمع یا نسبتهایشان را ضرب میکنیم؛ پس مردی با سبیل و یک چشم یعنی ۱۱ بیت، یا یک نفر از ۲۰۴۸. اما همانطور که توماس بیز میگفت، در عمل هیچچیز اینقدر ساده نیست. سبیل پیشتر نشانگر قوی مرد بودن است و مرد احتمالاً بیشتر در معرض تکچشمی است. ویژگیها مستقل نیستند، پس بیتها واقعاً جمع نمیشوند.
چند کاربرد جالب این نوع استدلال: در تشخیص پزشکی، نتیجه مثبت یک آزمایش با دقت ۹۹ درصد برای بیماریای که ۰.۰۱ درصد جمعیت را درگیر میکند، حدود ۱۰۰ برابر بیشتر احتمال دارد اشتباه باشد تا اینکه شما آن بیماری را داشته باشید؛ به شواهد بیشتری نیاز دارید. در رمزنگاری، گذرواژهای ساختهشده از چهار واژه تصادفی بهقدر هشت کاراکتر تصادفی صفحهکلید قوی است، اما بهمراتب راحتتر به یاد میماند. در علوم جنایی، جدا کردن یک نفر در شهری یکمیلیونی حدود ۲۰ بیت میخواهد؛ توصیف شاهدی که به یک نفر از هزار نفر میخورد فقط ۱۰ بیت میدهد و هنوز هزار مظنون باقی میگذارد.
پس من چه میتوانم بکنم؟
مرورگرت را تست کن: coveryourtracks.eff.org نشان میدهد اثر انگشتت چقدر یگانه است، همراه با آنتروپی هر دادهای که اندازهگیری میشود. اگر از Chrome استفاده میکنی، عملاً با یک کارت شناسایی روی پیشانی راه میروی. Safari و Firefox تا حدی محافظت میکنند، اما همچنان برای ردیابهای پیشرفته قابل شناسایی هستی. Brave، Tor و مرورگر Mullvad تنها مرورگرهای بزرگی هستند که در حال حاضر محافظتهای پیشرفته در برابر اثر انگشتگیری دارند.
اگر حال تغییر مرورگر نداری، درکت میکنم؛ خودم طرفدار بزرگ Arc هستم و متأسفانه متوقف شده و هرگز ویژگی حریم خصوصی نخواهد داشت. افزونههایی مثل JShelter وجود دارند که با رهگیری فراخوانیهای API مرورگر، اسکریپتهای اثر انگشتگیری را مختل میکنند، اما بعضی سایتها را هم خراب میکنند. همین مشکل درباره قابلیت Resist Fingerprinting در Firefox هم هست. واقعیت طعنهآمیز این است که افزونههای حریم خصوصی شما را یگانهتر میکنند، چون افراد کمتری آنها را دارند. پس یک ردیاب باهوش میتواند این را تشخیص دهد، سیگنالهایی را که افزونه مختل کرده نادیده بگیرد و روی بقیه تمرکز کند. هیچ افزونهای بهقدر محافظت سطح موتور که در خود مرورگر تعبیه شده مؤثر نیست؛ پس اگر نمیخواهی ردیابی شوی، باید متعهد شوی.
روشهای استفادهشده در همین صفحه
من فقط از چند اندازهگیری دستگاه شما یک هش میسازم. هر کدام از اینها تغییر کند، هش هم فرق میکند. کاربردهای حرفهای بسیار پیچیدهترند و میتوانند وقتی یک متغیر تنها تغییر میکند، خط شناسایی را حفظ کنند. نمونههایی از این سنجشها: OfflineAudioContext که یک تن کوتاه را بدون پخش از یک فشردهساز رد میکند و تفاوتهای ریز اعشار در نتیجه به موتور صوتی مرورگر و پردازنده شما بستگی دارد. WebGL که سازنده و مدل کارت گرافیک، پشتیبانیهای آن و درایورش و پیکسلهای یک مثلث کوچک رندرشده را میخواند. Canvas که متنی با چند فونت، ایموجی و یک گرادیان میکشد و پیکسلها را بازمیخواند؛ چون ضدلبهدندانیسازی و رندر فونت به سیستم عامل، کارت گرافیک و فونتهای شما بستگی دارد. و Intl که منطقه زمانی و تنظیمات تاریخ و اعداد شما را میخواند؛ VPN موقعیت IP را عوض میکند، اما منطقه زمانی را نه.