هک کردن گوشی خاطرهانگیز T-Mobile Sidekick پس از دو دهه و اجرای کدهای سفارشی — Hacking the T-Mobile Sidekick, 20 Years Too Late
خلاصه
یک توسعهدهنده با فاکتور کردن کلید رمزنگاری منسوخ RSA-512 و شبیهسازی سیستمعامل DangerOS روی مرورگر، توانسته است پس از سالها به گوشی کلاسیک T-Mobile Sidekick نفوذ کند و کدهای سفارشی را روی سختافزار واقعی و وب اجرا نماید. این پروژه تلاشی جذاب برای زنده کردن سختافزارهای قدیمی و سرویسهای ابری ازدسترفته است.
مقدمه و زمینه تاریخی
گوشی Danger Hiptop که بیشتر با نام T-Mobile Sidekick شناخته میشود، در سال ۲۰۰۲ با یک کیبورد کامل QWERTY، پشتیبانی از مسنجرهای محبوب و قابلیت پوش ناتیفیکیشن (Push Notifications) عرضه شد. در آن دوران بیشتر گوشیها حتی در ارسال ساده پیامک هم مشکل داشتند. تمامی بخشهای این دستگاه روی DangerOS (سیستمعامل مبتنی بر جاوا ساخت شرکت Danger) اجرا میشد.
ساختار این گوشی به شکل یک کلاینت سبک (Thin Client) طراحی شده بود و تمام اطلاعات کاربران شامل مخاطبان، پیامها و تصاویر روی سرورهای ابری Danger ذخیره میشد. پس از خرید شرکت Danger توسط مایکروسافت در سال ۲۰۰۸ و بروز یک فاجعه از دست رفتن دادهها در سال ۲۰۰۹، این سرویس برای همیشه در سال ۲۰۱۱ خاموش شد و گوشیهای سایدکیک عملاً بیسرور و از کار افتاده شدند.
چالش امنیتی و مدل مجوزها
برای اجرای کدهای سفارشی روی Sidekick، نویسنده پروژه به سراغ فایلهای SDK قدیمی موجود در Archive.org رفت و با ابزار JADX کدهای جاوا را دیکامپایل کرد تا نحوه کار سیستمعامل را کشف کند. سیستمعامل DangerOS تنها اجازه اجرای کارهایی را میداد که توسط خود شرکت یا اپراتور امضا شده بودند. توسعهدهندگان در زمان حیات این گوشی از طریق یک «کلید توسعهدهنده» (Developer Key) به حالت Developer Mode میرفتند که امکان اجرای اپلیکیشن از طریق USB و دسترسی به کنسول دیباگ htconsole را فراهم میکرد.
با تعطیلی برنامههای توسعهدهندگان Danger در سال ۲۰۱۰، دیگر هیچ مرجعی برای صدور این کلیدها وجود نداشت؛ بنابراین نویسنده تصمیم گرفت کلید خودش را بسازد.
شکستن کلید ۵۱۲ بیتی RSA
کلید توسعهدهنده سایدکیک شامل یک تنظیم پیکربندی (lock_to_imei_0) و یک امضای دیجیتال از سوی Danger بود. با بررسی ایمیجهای کارخانهای موجود در ابزارهای فلش قدیمی، یک گواهی خودامضا شده با کلید عمومی 512-bit RSA کشف شد که توسط تمامی نسلهای سایدکیک مورد اعتماد بود.
در سال ۲۰۰۳ شکستن چنین کلیدی دشوار بود، اما امروزه با استفاده از ابزار متنباز CADO-NFS (پیادهسازی الگوریتم General Number Field Sieving)، این کار به یک پروژه چندساعته تبدیل شده است. نویسنده با راهاندازی یک کلاستر توزیعشده با ۲۲۰ هسته پردازشی (۴۳۶ ترد) روی ۷ ماشین مختلف، توانست فاکتورهای اول کلید را استخراج کرده و کلید خصوصی را بازسازی کند. با نوشتن یک اسکریپت امضاساز پایتون، کلیدهای توسعهدهنده معتبری تولید شد که گوشی آنها را بدون خطا پذیرفت.
شبیهسازی در مرورگر و پروژه Re:Danger
علاوه بر کار روی سختافزار واقعی، این پروژه شامل یک مفسر جاوا نوشته شده با JavaScript است که کل DangerOS را بدون تغییر در داخل مرورگر اجرا میکند. از آنجا که شبیهساز اصلی دسکتاپ قادر به پخش موزیکهای MP3 نبود (چون سایدکیک پردازش صوت را به سختافزار خود میسپرد)، نسخه مرورگر این مشکل را با استفاده از دیکدر صوتی داخلی مرورگر حل کرده است.
پروژه موازی دیگری به نام Re:Danger نیز برای بازسازی سرورهای ابری این گوشی آغاز شده است:
- ساعت سیستم: همگامسازی زمان پس از فرآیند Handshake و Login.
- پیامرسانی: پل زدن پیامها به بستر Discord به جای سرویسهای منسوخ AIM و Yahoo.
- وبپروکسی: بازسازی پروکسی سرور برای خواندن وبسایتهایی مانند Hacker News روی نمایشگر قدیمی گوشی.
در آینده نزدیک، اجرای یک شبکه GSM محلی با استفاده از نرمافزارهای تعریفشده رادیویی (SDR) و ابزار Osmocom برای اتصال سختافزار واقعی به سرور Re:Danger در دستور کار قرار دارد.
دیدگاه جامعه هکرنیوز
در بحثهای شکلگرفته پیرامون این مقاله در Hacker News، کاربران به طراحی ماندگار و جذاب سایدکیک اشاره کردند و این پرسش مطرح شد که آیا با تلاش فراوان میتوان نسخهای از اندروید را روی این سختافزار قدیمی اجرا کرد یا محدودیتهای سختافزاری مانع از آن خواهد شد. همچنین برخی کاربران تجربیات خود را از مشکلات بازیابی و فلش کردن گوشیهای قدیمی اندرویدی به اشتراک گذاشتند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل