آسیب پذیری در TLS که امکان تعیین کلید برای اتصالات بر اساس رمزهای DH را فراهم می کند

آشکار شد اطلاعات در مورد جدید آسیب پذیری ها (CVE-2020-1968) در پروتکل TLS، با اسم رمز
راکون و در شرایط نادر، امکان تعیین یک کلید اولیه اولیه (پیش اصلی)، که می تواند برای رمزگشایی اتصالات TLS، از جمله HTTPS، هنگام رهگیری ترافیک حمل و نقل (MITM) مورد استفاده قرار گیرد. خاطرنشان می شود که این حمله برای اجرای عملی بسیار دشوار است و بیشتر جنبه تئوری دارد. برای انجام یک حمله، پیکربندی خاصی از سرور TLS و توانایی اندازه گیری بسیار دقیق زمان پردازش سرور مورد نیاز است.

این مشکل مستقیماً در مشخصات TLS وجود دارد و فقط بر اتصالات با استفاده از رمزهای مبتنی بر پروتکل تبادل کلید DH (Diffie-Hellman، TLS_DH_*") تأثیر می گذارد. با رمزهای ECDH مشکل رخ نمی دهد و امن باقی می مانند. فقط پروتکل های TLS تا نسخه 1.2 آسیب پذیر هستند؛ TLS 1.3 تحت تأثیر این مشکل قرار نمی گیرد. این آسیب‌پذیری در پیاده‌سازی‌های TLS رخ می‌دهد که از کلید مخفی DH مجدداً در اتصالات TLS مختلف استفاده می‌کنند (این رفتار تقریباً در 4.4٪ از سرورهای Alexa Top 1M رخ می‌دهد).

در OpenSSL 1.0.2e و نسخه‌های قبلی، کلید اصلی DH در همه اتصالات سرور دوباره استفاده می‌شود، مگر اینکه گزینه SSL_OP_SINGLE_DH_USE به صراحت تنظیم شده باشد. از OpenSSL 1.0.2f، کلید اولیه DH فقط در صورت استفاده از رمزهای DH ایستا ("DH-*"، به عنوان مثال "DH-RSA-AES256-SHA") دوباره استفاده می شود. این آسیب‌پذیری در OpenSSL 1.1.1 ظاهر نمی‌شود، زیرا این شاخه از کلید اصلی DH استفاده نمی‌کند و از رمزهای ثابت DH استفاده نمی‌کند.

هنگام استفاده از روش تبادل کلید DH، هر دو طرف اتصال کلیدهای خصوصی تصادفی (از این پس کلید "a" و کلید "b") تولید می کنند که بر اساس آن کلیدهای عمومی (ga mod p و gb mod p) محاسبه و ارسال می شوند. پس از اینکه هر طرف کلیدهای عمومی را دریافت کرد، یک کلید اولیه مشترک (gab mod p) محاسبه می شود که برای تولید کلیدهای جلسه استفاده می شود. حمله Raccoon به شما امکان می دهد کلید اصلی را از طریق تجزیه و تحلیل کانال جانبی تعیین کنید، بر اساس این واقعیت که مشخصات TLS تا نسخه 1.2 مستلزم آن است که قبل از محاسبات مربوط به کلید اصلی، تمام بایت های تهی اصلی کلید اصلی حذف شوند.

شامل کلید اولیه کوتاه شده به تابع تولید کلید جلسه منتقل می شود که بر اساس توابع هش با تاخیرهای مختلف هنگام پردازش داده های مختلف است. اندازه‌گیری دقیق زمان‌بندی عملیات کلیدی که توسط سرور انجام می‌شود به مهاجم اجازه می‌دهد تا سرنخ‌هایی (اوراکل) را تعیین کند که قضاوت در مورد شروع یا عدم شروع کلید اصلی را ممکن می‌سازد. به عنوان مثال، یک مهاجم می تواند کلید عمومی (ga) ارسال شده توسط مشتری را رهگیری کند، آن را دوباره به سرور ارسال کند و تعیین کند.
آیا کلید اصلی حاصل از صفر شروع می شود.

به خودی خود، تعریف یک بایت از کلید چیزی نمی دهد، اما با رهگیری مقدار "ga" ارسال شده توسط مشتری در طول مذاکره اتصال، مهاجم می تواند مجموعه ای از مقادیر دیگر مرتبط با "ga" را تولید کند و آنها را به سرور در جلسات مذاکره اتصال جداگانه. با تولید و ارسال مقادیر "gri*ga"، مهاجم می تواند از طریق تجزیه و تحلیل تغییرات تاخیر در پاسخ سرور، مقادیری را تعیین کند که منجر به دریافت کلیدهای اولیه از صفر می شود. با تعیین چنین مقادیری، مهاجم می تواند مجموعه ای از معادلات را ایجاد کند راه حل مشکلات شماره پنهان و کلید اصلی اصلی را محاسبه کنید.

آسیب پذیری در TLS که امکان تعیین کلید برای اتصالات بر اساس رمزهای DH را فراهم می کند

آسیب پذیری های OpenSSL اختصاص داده سطح پایین خطر، و رفع مشکل به انتقال رمزهای مشکل دار "TLS_DH_*" در نسخه 1.0.2w به دسته رمزهای با سطح حفاظت ناکافی ("ضعف-ssl-ciphers") کاهش یافت که به طور پیش فرض غیرفعال است. . توسعه دهندگان موزیلا همین کار را کردند، معلول در کتابخانه NSS مورد استفاده در فایرفاکس، مجموعه رمز DH و DHE. از فایرفاکس 78، رمزهای مشکل دار غیرفعال هستند. پشتیبانی کروم برای DH در سال 2016 متوقف شد. کتابخانه‌های BearSSL، BoringSSL، Botan، Mbed TLS و s2n تحت تأثیر این مشکل قرار نمی‌گیرند زیرا از رمزهای DH یا انواع استاتیک رمزهای DH پشتیبانی نمی‌کنند.

مشکلات اضافی به طور جداگانه ذکر شده است (CVE-2020-5929) در پشته TLS دستگاه های F5 BIG-IP، حمله را واقعی تر می کند. به طور خاص، انحراف در رفتار دستگاه ها در حضور بایت صفر در ابتدای کلید اصلی شناسایی شده است که می توان از آن به جای اندازه گیری تأخیر دقیق محاسبات استفاده کرد.

منبع: opennet.ru

اضافه کردن نظر