آشنایی با Apollo: چطور بدون دردسر، اطلاعاتمون رو از دست نره و به کسی هم لو نره!

Fall Back

خب رفیق، بیا راجع به یه ایده خیلی باحال حرف بزنیم که تو حوزه امنیت اطلاعات و بازگردانی رمز (یا همون ریکاوری) حسابی سَر و صدا کرده. یه کم فنی به نظر میاد اما قول می‌دم جوری توضیح می‌دم که کامل قِلق کار دستت بیاد!

فرض کن اطلاعات مهمت رو تو یه سیستم نگهداری می‌کنی که بهش میگن “والت” (Wallet یا Vault — منظورش همون صندوقچه اطلاعاتیه که مثلاً رمز یا کلید خصوصی کریپتو رو توش میزاری).

حالا اگه رمز یادت بره یا گوشی‌ات گم شه، چی کار می‌کنی؟ اکثر سیستم‌ها اومدن یه راه گذاشتن به اسم “Social Key Recovery”. یعنی بازیابی رمز یا کلید با کمک چند تا آدم مورد اعتمادت. تو این مدل، علی و مریم و ناهید مثلاً هرکدوم یه تیکه از اطلاعات ریکاوری رو دارن و اگه لازم داشتی با جمع کردن کمک ازشون، دوباره به اطلاعاتت دسترسی پیدا می‌کنی.

اما اینجا چندتا مشکل بزرگ هست: اول اینکه باید یادت بمونه به کی چی دادی، یا کلاً کیا دوستات و مورد اعتمادان که بشه سر فرصت کمک گرفت. دوم اینکه خیلی وقتا این داده ها (که بهشون “متادیتا” میگن — یعنی اطلاعات در مورد اینکه چی دست چه کسیه و چطور باید بازیابی بشه) خودش یه جور اطلاعات لو دهنده‌س. اگر یکی بفهمه کیا trustee هستن (یعنی اونایی که کلید رو دارن)، می‌تونه واسه حمله برنامه‌ریزی کنه. خلاصه، حفظ حریم شخصی یا همون “Metadata Privacy” توش مهم میشه.

حالا اینجاست که سیستم Apollo وارد میشه! اسم قشنگی داره واقعاً :).
روش Apollo اومده این مشکلات رو با یه نوآوری حل کنه. چطوری؟ با استفاده از یه حقه باحال: اطلاعات بازگردانی رو طوری پخش می‌کنه بین جمع دوستا و آشنایای کاربر که هیچ‌کس نتونه بفهمه trustee واقعیه کیه و کی فقط داده شانسی داره.
یعنی چی؟ یعنی مثلاً به ۱۰ نفر هرکدوم یه تیکه اطلاعات می‌دی ولی فقط ۳ نفرشون trusteeواقعین، بقیه داده الکی گرفتن! اینطوری اونی که دنبال trustee می‌گرده، گیج میشه و نمی‌تونه تشخیص بده.

به این کار میگن “anonymity set” یعنی مجموعه ناشناس‌ها؛ تو عالم حریم شخصی خیلی باحاله چون آدم بدا نمی‌تونن راحت رد بگیرن.

یکی دیگه از چیزای جذاب Apollo اینه که کاری می‌کنه کاربرها اصلاً نیاز نباشه چیزی حفظشون بمونه. یعنی لازمه متادیتا یا همون دستور العمل ریکاوری یادت باشه نمی‌خواد. به جای اینکه مثلاً اسم ۵ نفر trustee رو یادت بمونه، فقط از بین دوستات هرکدوم حاضر باشن باهاشون هماهنگ می‌کنی و تیکه‌های داده رو جمع می‌کنی.

یه کار خفن دیگه Apollo کرده اینه که برای اینکه تو گروهای بزرگ و افراد زیاد هم بشه همین نظم رو حفظ کرد و مدیریت کرد (بدون اینکه داده های تصادفی خیلی زیادی بین غیر trustee ها پخش کنه) از یه تکنیک خاص به اسم “multi-layered secret sharing” استفاده کرده. خیلی ساده بگم: این یه روشیه برای اینکه اطلاعات رو بین چند لایه مختلف پخش کنن تا هم سرعت خوب باشه هم حجم داده‌های الکی کنترل بشه و سیستم برای تعداد زیاد از دوستا هم جواب بده.

راستی تیم Apollo اومدن یه پروتوتایپ هم ساختن (یعنی نسخه اولیه واسه تست) و نتایج رو منتشر کردن. جالبیش اینه که سیستم‌شون احتمال اینکه یه آدم شیطون بتونه سوءاستفاده کنه و اطلاعاتتو ریکاوری کنه بین 0.005٪ تا 1.8٪ رسیده! یعنی تقریباً خیلی خیلی کمه، بستگی به این داره که اون فرد خراب‌کار چقدر زور بزنه یا تونسته باشه چندتا trustee رو گیر بندازه.

تو بحث کارایی و سرعت هم گفتن با سیستم لایه‌ای که درست کردن (همون multi-layered design)، سرعت به شدت بهتر شده؛ یعنی نسبت به حالت معمولی (تک-لایه)، سرعت بین 1.1 برابر تا 740,000 برابر سریع‌تر شده!! این عدد آخری عجیبه ولی بستگی داره که چندبار بخوای دوباره وصل بشی و داده جمع کنی.

خلاصه کلام: Apollo پیشنهاد داده که بشه vault و اطلاعات مهم رو با کمک دوستا راحت‌تر -بدون نیاز به حفظ کردن داده اضافه- و با حریم خصوصی خیلی قوی‌تر بازیابی کرد. تو این روش، حتی سیستم نمی‌ذاره کسی بفهمه trustee تو دقیقا کیه، احتمال هک‌شدن هم فوق‌العاده کم میشه، سرعت بازیابی هم حسابی بالا میره. اگه دنبال یه روش ساده و امن واسه بازگردانی کلید یا اطلاعاتت هستی که به دادت می‌رسه، این ایده Apollo رو از دست نده!

اگه دلت می‌خواد بیشتر درمورد این موضوعات بدونی: “Social key recovery” یعنی همون بازگردانی کلید یا رمز با کمک دوستا (به جای تکیه صرف به خودت یا یه نفر) و “metadata privacy”، یعنی مخفی نگه داشتن اطلاعاتِ پشت پرده بازیابی – که رسماً فاز امنیت رو خیلی بالا می‌بره. مدل multi-layered secret sharing هم همون پخش هوشمند داده تو گروه‌های مختلفیه که کار رو هم سریع‌تر می‌کنه هم امن‌تر. پس دفعه بعدی که راجع به امنیت اطلاعاتت فکر کردی، این ایده‌ها رو یادت باشه!

منبع: +