مسئلہ براہ راست TLS تفصیلات میں موجود ہے اور صرف DH کلیدی ایکسچینج پروٹوکول (Diffie-Hellman, TLS_DH_*") پر مبنی سائفرز کا استعمال کرتے ہوئے کنکشن کو متاثر کرتا ہے۔ ECDH سائفرز کے ساتھ مسئلہ پیدا نہیں ہوتا اور وہ محفوظ رہتے ہیں۔ ورژن 1.2 تک صرف TLS پروٹوکول ہی کمزور ہیں؛ 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) کا حساب لگایا جاتا ہے، جو سیشن کیز بنانے کے لیے استعمال ہوتی ہے۔ ریکون حملہ آپ کو سائیڈ چینل تجزیہ کے ذریعے بنیادی کلید کا تعین کرنے کی اجازت دیتا ہے، اس حقیقت کی بنیاد پر کہ ورژن 1.2 تک کی TLS وضاحتیں اس بات کا تقاضہ کرتی ہیں کہ پرائمری کلید کے تمام اہم null بائٹس کو اس میں شامل حسابات سے پہلے ضائع کر دیا جائے۔
کٹی ہوئی پرائمری کلید کو سیشن کی جنریشن فنکشن میں منتقل کیا جاتا ہے، جو مختلف ڈیٹا پر کارروائی کرتے وقت مختلف تاخیر کے ساتھ ہیش فنکشنز پر مبنی ہوتا ہے۔ سرور کی طرف سے کی جانے والی کلیدی کارروائیوں کے وقت کی درست پیمائش حملہ آور کو سراغ (اوریکل) کا تعین کرنے کی اجازت دیتی ہے جس سے یہ فیصلہ کرنا ممکن ہو جاتا ہے کہ آیا بنیادی کلید شروع سے شروع ہوتی ہے یا نہیں۔ مثال کے طور پر، حملہ آور کلائنٹ کی طرف سے بھیجی گئی عوامی کلید (ga) کو روک سکتا ہے، اسے دوبارہ سرور پر منتقل کر سکتا ہے اور اس کا تعین کر سکتا ہے۔
آیا نتیجے میں آنے والی بنیادی کلید صفر سے شروع ہوتی ہے۔
بذات خود، کلید کے ایک بائٹ کی وضاحت کرنے سے کچھ حاصل نہیں ہوتا، لیکن کنکشن گفت و شنید کے دوران کلائنٹ کے ذریعے منتقل کی جانے والی "ga" ویلیو کو روک کر، حملہ آور "ga" سے وابستہ دیگر اقدار کا ایک سیٹ بنا سکتا ہے اور انہیں بھیج سکتا ہے۔ سرور علیحدہ کنکشن مذاکرات کے سیشنوں میں۔ "gri*ga" اقدار کو تخلیق اور بھیج کر، ایک حملہ آور، سرور کے جواب میں تاخیر میں ہونے والی تبدیلیوں کا تجزیہ کر کے، ان اقدار کا تعین کر سکتا ہے جو صفر سے شروع ہونے والی بنیادی کلیدوں کو حاصل کرنے کا باعث بنتی ہیں۔ ایسی اقدار کا تعین کرنے کے بعد، حملہ آور اس کے لیے مساوات کا ایک سیٹ بنا سکتا ہے۔
اوپن ایس ایس ایل کی کمزوریاں
اضافی مسائل کو الگ سے نوٹ کیا جاتا ہے (
ماخذ: opennet.ru