این مشکل مستقیماً در مشخصات 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"، مهاجم می تواند از طریق تجزیه و تحلیل تغییرات تاخیر در پاسخ سرور، مقادیری را تعیین کند که منجر به دریافت کلیدهای اولیه از صفر می شود. با تعیین چنین مقادیری، مهاجم می تواند مجموعه ای از معادلات را ایجاد کند
آسیب پذیری های OpenSSL
مشکلات اضافی به طور جداگانه ذکر شده است (
منبع: opennet.ru