GnuPG

محققان امنیتی یک آسیب‌پذیری حیاتی را در یک کتابخانه رمزنگاری GnuPG کشف کرده‌اند که با بهره‌برداری از آن می‌توانند  RSA-1024 را کاملاً بشکنند و به‌طور موفقیت‌آمیز کلید RSA ایمن را برای رمزگشایی داده‌ها استخراج کنند.

Gnu Privacy Guard که به GnuPG یا GPG نیز معروف است یک نرم‌افزار رمزنگاریِ منبعِ بازِ معروف است[۱] که توسط بسیاری از سیستم‌عامل‌ها شامل لینوکس، FreeBSD، ویندوز و macOS X مورد استفاده قرار می‌گیرد.

این همان نرم‌افزاری است که توسط کارمند سابق NSA یعنی Edward Snowden مورد استفاده قرار گرفته بود تا ارتباطات خود را از مراجع قانونی محفوظ بدارد.

این آسیب‌پذیری که CVE-2017-7526 نام‌گذاری شده است[۲]، در کتابخانه رمزنگاری Libgcrypt قرار داشته که توسط GnuPG استفاده می‌شود که نسبت به حمله کانال جانبی(۱) FLUSH+RELOAD محلی آسیب‌پذیر است.

یک تیم از محققان از دانشگاه فنی آیندهوون، دانشگاه ایلینویز، دانشگاه پنسیلوانیا، دانشگاه مریلند و دانشگاه آدلاید دریافتند که روش left-to-right sliding window که توسط کتابخانه libgcrypt و به‌منظور پیش بردن محاسبات ریاضی رمزنگاری مورد استفاده قرار می‌گیرد، به‌طور قابل‌ملاحظه‌ای اطلاعات بیشتری را درباره exponent bits نبست به right-to-left افشا می‌کند و امکان بازیابی کامل کلید RSA را فراهم می‌کند.

این محققان در مقاله‌ای که منتشر کرده‌اند این‌گونه نوشته‌اند [۳]: “در این مقاله، ما یک شکستن کامل RSA-1024 را ثابت کردیم که در Libgcrypt پیاده‌سازی شده است. حمله ما از این واقعیت اساسی بهره برده است که Libgcrypt از روش left-to-right برای محاسبه بسط sliding-window استفاده می‌کند. الگوی squarings و multiplications در left-to-right sliding windows به‌طور قابل‌توجهی اطلاعات بیشتری را درباره exponent نسبت به right-to-left افشا می‌کند. ما نشان دادیم که چگونه الگوریتم Heninger-Shacham برای بازسازی کلید جزئی گسترش می‌یابد تا از این اطلاعات استفاده کرده و یک بازیابی کلید کامل و کارآمد برای RSA-1024 به دست ‌آید.”

حمله کانال جانبی L3 Cache نیازمند این است که مهاجم یک نرم‌افزار دلخواه را بر روی سخت‌افزاری که کلید RSA خصوصی استفاده می‌شود، اجرا کند.

این حمله به مهاجم اجازه می‌دهد تا کلید رمزگذاری ایمن را از سیستم و با استفاده از آنالیز کردن الگوی استفاده از حافظه(۲) یا خروجی‌های الکترومغناطیسی دستگاه که در هنگام فرآیند رمزگشایی منتشر می‌شوند، استخراج کند.

در گزارش منتشر شده توسط Libgcrypt آمده است[۴]: “البته در عمل، روش‌های ساده‌تری برای دستیابی به کلیدهای خصوصی نسبت به حمله کانال جانبی وجود دارد. بااین‌حال، در دستگاه‌هایی که ماشین‌های مجازی وجود دارند، این حمله می‌تواند توسط یک ماشین مجازی و برای دزدیدن کلیدهای خصوصی از یک ماشین مجازی دیگر مورد استفاده قرار گیرد.”

محققان همچنین به مدارکی دست یافتند که نشان می‌دهد حمله کانال جانبی علیه RSA-2048 نیز کار می‌کند که نیازمند محاسبات نسبتاً بیشتری از RSA-1024 است.

این مقاله تحقیقاتی با عنوان Sliding right into disaster: Left-to-right sliding windows leak توسط Bernstein و همکاران نوشته شده است.

Libgcrypt با انتشار نسخه ۱٫۷٫۸ برای Debian و Ubuntu و به‌روزرسانی کتابخانه این سیستم‌عامل‌ها این مشکل را برطرف کرده است[۵و۶].

بنابراین به کاربران شدیداً توصیه می‌شود که سیستم‌عامل‌های توزیع لینوکس خود را بررسی کنند تا آخرین نسخه از کتابخانه Libgcrypt بر روی آن‌ها نصب شده باشد.

منابع

[۱] http://thehackernews.com/2015/02/gnupg-email-encryption-project-relies.html

[۲] https://lists.gnupg.org/pipermail/gnupg-announce/2017q2/000408.html

[۳] https://eprint.iacr.org/2017/627.pdf

[۴] https://lists.gnupg.org/pipermail/gnupg-announce/2017q2/000408.html

[۵] https://www.debian.org/security/2017/dsa-3901

[۶] https://www.ubuntuupdates.org/package/core/zesty/main/updates/libgcrypt20-dev

[۷] http://thehackernews.com/2017/07/gnupg-libgcrypt-rsa-encryption.html


(۱) side-channel
(۲) memory utilization