چگونه اپلیکیشنهای پیامرسان مخاطبان شما را پیدا میکنند بدون آنکه دفترچه تلفنتان لو برود؟
سازوکارهای کشف خصوصی مخاطبان، از هشسازی که به راحتی قابل بازگشت است تا انکلاوهای سختافزاری و ایده آل رمزنگاری شده «اشتراک مجموعه خصوصی».
به قلم کیان راد
این خبر را به اشتراک بگذارید
- رمزنگاران و حامیان سرسخت حریم خصوصی
- طرفدار حریم خصوصی اثبات شده ریاضیاتی به جای اعتماد مبتنی بر سختافزار.
- مهندسان پلتفرم
- تمرکز بر اقتصاد عملی و تأخیر عملیات در مقیاس یک میلیارد کاربر.
- محققان امنیتی
- تمرکز بر نقصهای پیادهسازی و افشای فرادادهها در سیستمهای موجود.
هنگامی که یک کاربر جدید، اپلیکیشن پیامرسانی را نصب میکند، نرمافزار بلافاصله با یک مشکل ریاضی مواجه میشود: باید حدود ۱۰۰۰ شماره تلفن موجود در دفترچه تلفن کاربر را با پایگاه داده جهانی شامل بیش از یک میلیارد حساب کاربری ثبتشده مقایسه کند، بدون اینکه هیچ یک از این دو لیست برای طرف مقابل فاش شود. این فرآیند که به عنوان «کشف مخاطب» شناخته میشود، سازوکار اساسی نمودارهای اجتماعی موبایلی است. سالها، استاندارد صنعتی صرفاً آپلود کل دفترچه تلفن در یک سرور مرکزی بود؛ رویهای که عملاً ارتباطات اجتماعی میلیاردها نفر را که حتی هرگز آن اپلیکیشن را نصب نکرده بودند، نقشهبرداری میکرد. با تغییر انتظارات حریم خصوصی، مکانیسمهای یافتن دوستان توسط اپلیکیشنها از هشسازی ساده به انکلاوهای سختافزاری و اکنون به سمت ایدهآلهای رمزنگاری شدهای تکامل یافتهاند که همچنان به دلیل پهنای باند موبایل با مشکل مواجه هستند.[1]
اولین تلاش برای کشف مخاطب با حفظ حریم خصوصی، شامل هشسازی رمزنگاری شده بود. به جای آپلود شماره تلفنهای خام، اپلیکیشن یک هش SHA-256 از هر مخاطب محاسبه میکرد و آن هشها را برای سرور میفرستاد. سپس سرور آنها را با پایگاه داده هششده خود از کاربران ثبتشده مقایسه میکرد. این مکانیسم در ظاهر ایمن به نظر میرسد، اما در برابر واقعیت ریاضی شماره تلفنها شکست میخورد. یک شماره تلفن استاندارد حاوی آنتروپی بسیار کمی است—در سطح جهانی تنها چند میلیارد ترکیب معتبر وجود دارد. یک سرور مدرن میتواند هشهای مربوط به هر شماره تلفن ممکن را در عرض میلیثانیه محاسبه کند و یک جدول جستجوی از پیش محاسبه شده (جدول رنگینکمان) ایجاد کند که فوراً هر لیست مخاطب هششده را به شمارههای خام بازگرداند.[4]
آسیبپذیری رویکرد هشسازی مستقیماً از همین کمبود آنتروپی ناشی میشود. یک شماره تلفن استاندارد E.164 حداکثر ۱۵ رقم دارد. اگر یک مهاجم کشور خاصی را جدا کند، مجموعه شمارههای معتبر به شدت کاهش مییابد. به عنوان مثال، کشوری با ۵۰ میلیون نفر ممکن است تنها ۱۰۰ میلیون شماره تلفن فعال داشته باشد. یک پردازنده گرافیکی (GPU) مصرفی مدرن میتواند هشهای SHA-256 را برای ۱۰۰ میلیون ترکیب در کسری از ثانیه محاسبه کند. این بدان معناست که یک مهاجم—یا یک ارائهدهنده خدمات کنجکاو—میتواند یک جدول جستجوی از پیش محاسبه شده برای هر هش شماره تلفن ممکن ایجاد کند. هنگامی که اپلیکیشن هشهای «ناشناسشده» دفترچه تلفن شما را ارسال میکند، سرور فوراً آنها را به ارقام خام بازمیگرداند.[4]
پیامدهای این رویکرد صرفاً تئوری نیستند. در اواخر سال ۲۰۲۵، محققان امنیتی نقصی را در نقطه پایانی کشف مخاطب واتساپ نشان دادند که دقیقاً بر این رفتار تطبیق متکی بود. با خودکارسازی و مقیاسدهی پرسوجوها به سرویس کشف، آزمایشکنندگان، پروبهای غیرقابل شناسایی را به یک فهرست قابل جستجو تبدیل کردند و شماره تلفنها و دادههای پروفایل قابل مشاهده تخمین زده شده ۳.۵ میلیارد کاربر در سراسر جهان را استخراج (Scraping) کردند. این حادثه محدودیت اساسی تطبیق سمت سرور را برجسته کرد: اگر سرور عمل مقایسه را انجام دهد، ذاتاً متوجه میشود که چه کسی در مورد چه کسی پرسوجو میکند، و یک ردپای فراداده ایجاد میکند، حتی اگر محتوای پیامها رمزگذاری سرتاسری باقی بماند.[4]
برای حل مشکل دید سرور، اپلیکیشنهای متمرکز بر حریم خصوصی مانند سیگنال (Signal) رویکردی مبتنی بر سختافزار را با استفاده از محیطهای اجرای مورد اعتماد (TEEs)، به ویژه افزونههای محافظت نرمافزاری اینتل (Intel Software Guard Extensions یا SGX)، اتخاذ کردند. در این معماری، سرویس کشف مخاطب در داخل یک انکلاو امن و رمزگذاری شده سختافزاری روی سرور اجرا میشود. اپلیکیشن کلاینت یک هش کوتاه شده از مخاطبان خود را محاسبه کرده و آن را از طریق یک کانال امن مستقیماً به داخل انکلاو منتقل میکند. انکلاو عمل اشتراکگیری را در برابر پایگاه داده کاربران ثبتشده انجام میدهد، نتیجه را رمزگذاری کرده و به کلاینت بازمیگرداند. از آنجا که حافظه انکلاو در سطح سختافزار رمزگذاری شده است، اپراتور سرور—حتی با دسترسی فیزیکی به دستگاه—نمیتواند پرسوجوها یا نتایج را ببیند.[1]
در این معماری، سرویس کشف مخاطب در داخل یک انکلاو امن و رمزگذاری شده سختافزاری روی سرور اجرا میشود.
برای کاهش خطر حملات کانال جانبی (Side-channel attacks) بر روی این انکلاوهای سختافزاری، مهندسان از حافظه دسترسی تصادفی بیتوجه (Oblivious RAM یا ORAM) استفاده میکنند. هنگامی که انکلاو SGX دفترچه تلفن شما را پردازش میکند، یک ناظر که حافظه سرور را زیر نظر دارد ممکن است متوجه شود که کدام بلوکهای خاص از پایگاه داده کاربران ثبتشده در حال دسترسی هستند، و بدین ترتیب استنباط کند که شما در حال بررسی چه کسی هستید. ORAM این الگوهای دسترسی را به هم میریزد و تضمین میکند که هر خواندن حافظه برای دستگاه میزبان یکسان به نظر برسد. این کار سربار محاسباتی قابل توجهی اضافه میکند، اما سپر نرمافزاری حیاتی است که از انکلاو سختافزاری در برابر میزبان خود دفاع میکند.[1][3]
در حالی که انکلاوهای SGX از جمعآوری غیرفعال دادهها جلوگیری میکنند، اما کاربر را ملزم میکنند که به پیادهسازی سختافزاری اینتل اعتماد کند، که ثابت شده است نفوذپذیر است. انکلاوها از لحاظ تاریخی در برابر حملات کانال جانبی و نقصهای ایمنی حافظه آسیبپذیر بودهاند. در آگوست ۲۰۲۶، شرکت امنیتی V12 دو آسیبپذیری مربوط به طول عمر شیء (object-lifetime) را در سرویس کشف مخاطب سیگنال افشا کرد که به یک میزبان غیرقابل اعتماد اجازه میداد از انکلاو خارج شود و کلیدهای خصوصی آن را استخراج کند، و به طور موقت تضمین محرمانگی را از بین ببرد. این نقصها وصله شدند، اما شکنندگی اتکا به مرزهای فیزیکی سختافزاری برای محافظت از نمودارهای اجتماعی جهانی را برجسته کردند.[3]
راهحل نهایی برای کشف مخاطب، سرور را به طور کامل از معادله حذف میکند و از یک پروتکل رمزنگاری به نام «اشتراک مجموعه خصوصی» (Private Set Intersection یا PSI) استفاده مینماید. در تبادل PSI، دو طرف اشتراک مجموعهدادههای خود را محاسبه میکنند به گونهای که هیچ یک از طرفین چیزی فراتر از عناصر منطبق را یاد نگیرند. سرور هرگز دفترچه تلفن کلاینت را نمیبیند، و کلاینت نیز چیزی در مورد پایگاه داده سرور به جز مخاطبان خاصی که مطابقت دارند، نمیآموزد. برخلاف SGX، پروتکل PSI صرفاً بر ریاضیات تکیه دارد تا سختافزار مورد اعتماد، و خطر حملات کانال جانبی یا خروج از انکلاو را از بین میبرد.[2]
با وجود مزایای امنیتی، PSI برای رسیدن به مقیاس تولید در اپلیکیشنهای مصرفی بزرگ به دلیل حجم عظیم دادههای درگیر، با مشکل مواجه شده است. پیادهسازیهای آکادمیک، مانند مواردی که در سمپوزیوم امنیتی یوزنیکس (USENIX) ارائه شدند، PSI را برای دستگاههای موبایل بهینه کردهاند، به طوری که یک گوشی هوشمند میتواند ۱۰۰۰ مخاطب را در برابر یک پایگاه داده یک میلیارد کاربری در کمتر از سه ثانیه بررسی کند. مانع محاسباتی حل شده است. مانع باقیمانده، پهنای باند است. برای انجام اشتراکگیری به صورت محلی، کلاینت باید یک نمایش فشرده و رمزگذاری شده از کل پایگاه داده کاربران را دانلود کند—که اغلب به صورت فیلتر بلوم (Bloom filter) یا فیلتر کوکو (Cuckoo filter) ساختار یافته است. برای شبکهای با یک میلیارد کاربر، این فیلتر فشرده میتواند از یک گیگابایت فراتر رود.[5]
ارائه یک پایگاه داده با حجم یک گیگابایت به میلیاردها کلاینت هر ۴۸ ساعت—که فاصله زمانی همگامسازی معمول برای اپلیکیشنهای مدرن است—هزینه شبکه تحویل محتوا (CDN) را به شکلی اقتصادی غیرقابل تحمل افزایش میدهد. در حالی که شبکههای کوچکتر میتوانند این سربار را جذب کنند، پلتفرمهای بزرگتر مجبور به مصالحه هستند. تا زمانی که هزینههای پهنای باند کاهش یابد یا تکنیکهای فشردهسازی ریاضی جدیدی ظهور کنند، صنعت همچنان بین افشای فرادادهها در تطبیق متمرکز و آسیبپذیریهای سختافزاری انکلاوهای امن گرفتار مانده است، و کشف مخاطب رمزنگاری شده واقعی را به یک مسئله ریاضی حل شده تبدیل کرده است که منتظر یک شبکه ارزانتر است.[5]
نکات کلیدی
- کشف مخاطب به اپلیکیشنهای پیامرسان اجازه میدهد بدون نیاز به وارد کردن دستی نام کاربری، دوستان شما را پیدا کنند.
- روشهای اولیه، دفترچههای تلفن خام را آپلود میکردند یا از هشهای ساده استفاده میکردند که به راحتی قابل بازگشت هستند.
- سیگنال از انکلاوهای سختافزاری Intel SGX برای پردازش امن مخاطبان استفاده میکند، اگرچه آسیبپذیریهای سختافزاری همچنان باقی هستند.
- اشتراک مجموعه خصوصی (PSI) حریم خصوصی کاملاً ریاضی را بدون اتکا به سختافزار مورد اعتماد ارائه میدهد.
- پذیرش PSI در حال حاضر به دلیل پهنای باند عظیمی که برای دانلود پایگاه دادههای فشرده کاربران لازم است، با مشکل مواجه شده است.
اصطلاحات کلیدی
- کشف مخاطب
- فرآیندی که طی آن یک اپلیکیشن پیامرسان دفترچه تلفن شما را با پایگاه داده خود مقایسه میکند تا بفهمد کدام یک از دوستان شما از آن اپلیکیشن استفاده میکنند.
- Intel SGX
- یک ویژگی سختافزاری در پردازندههای اینتل که یک «انکلاو» امن و رمزگذاری شده ایجاد میکند تا دادهها بدون دیده شدن توسط سیستم عامل میزبان، در آن پردازش شوند.
- اشتراک مجموعه خصوصی (PSI)
- یک پروتکل رمزنگاری که به دو طرف اجازه میدهد عناصر مشترک در مجموعهدادههای خود را پیدا کنند بدون اینکه عناصر غیرمشترک فاش شوند.
- جدول رنگینکمان
- فهرستی از پیش محاسبه شده از هشهای رمزنگاری شده که برای بازگرداندن سریع دادههای هششده استفاده میشود، به ویژه در برابر دادههای کم آنتروپی مانند شماره تلفنها مؤثر است.
- حافظه دسترسی تصادفی بیتوجه (ORAM)
- یک تکنیک رمزنگاری که الگوهای دسترسی به حافظه یک برنامه را پنهان میکند و از حدس زدن دادههای در حال پردازش توسط مهاجمان جلوگیری مینماید.
منابع
[1]Signalمهندسان پلتفرمTechnology Preview: Private Contact Discovery for Signal
مطالعه در Signal →
[2]OpenMinedرمزنگاران و حامیان سرسخت حریم خصوصیPrivate Set Intersection Explained
مطالعه در OpenMined →
[3]CyberKendraمحققان امنیتیVulnerabilities Disclosed in Signal's Contact Discovery Service
مطالعه در CyberKendra →
[4]Kagi Newsمحققان امنیتیWhatsApp contact discovery tool exposed 3.5 billion phone numbers
مطالعه در Kagi News →
[5]تیم سردبیری کوهستانمهندسان پلتفرمتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
بیشتر در فناوری
مشاهده همه →مدلهای همزمانی
حلقه رویداد در برابر مسدودسازی رشته: تفاوت عملکرد در ورودی/خروجی همزمان و ناهمزمان
7 منبع
فناوری نمایشگر
تفاوت ماهوی بین GtG و MPRT: چرا زمان پاسخ ۱ میلیثانیه لزوماً به معنای وضوح حرکت نیست؟
5 منبع
سیستمهای پیشرانش
مقایسه چرخههای موتور موشک: بدهبستانها در نیروی رانش، بازدهی و پیچیدگی
6 منبع
فناوری باتری
چرا باتریهای حالت جامد اتصال کوتاه میکنند و چگونه تنش مکانیکی و لایههای میانی جلوی دندریتهای لیتیومی را میگیرند
6 منبع
هر زاویه. هر روز.
دریافت فناوری اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





