DH shifrlari asosida ulanishlar uchun kalitlarni aniqlash imkonini beruvchi TLSdagi zaiflik

Ochilgan yangi haqida ma'lumot zaifliklar (CVE-2020-1968) kod nomi bilan atalgan TLS protokolida
Rakun va kamdan-kam hollarda tranzit trafigini (MITM) ushlab turganda TLS ulanishlari, shu jumladan HTTPS shifrini ochish uchun ishlatilishi mumkin bo'lgan dastlabki asosiy kalitni (pre-master) aniqlash imkonini beradi. Ta'kidlanishicha, hujum amaliy amalga oshirish uchun juda qiyin va ko'proq nazariy xarakterga ega. Hujumni amalga oshirish uchun TLS serverining o'ziga xos konfiguratsiyasi va serverni qayta ishlash vaqtini juda aniq o'lchash qobiliyati talab qilinadi.

Muammo to'g'ridan-to'g'ri TLS spetsifikatsiyasida mavjud va faqat DH kalit almashish protokoli (Diffie-Hellman, TLS_DH_*") asosidagi shifrlardan foydalangan holda ulanishlarga ta'sir qiladi. ECDH shifrlari bilan muammo yuzaga kelmaydi va ular xavfsiz bo'lib qoladi. Faqat 1.2 versiyasigacha bo'lgan TLS protokollari zaif; TLS 1.3 muammoga ta'sir qilmaydi. Zaiflik turli xil TLS ulanishlarida DH maxfiy kalitini qayta ishlatadigan TLS ilovalarida yuzaga keladi (bu xatti-harakat Alexa Top 4.4M serverlarining taxminan 1 foizida uchraydi).

OpenSSL 1.0.2e va oldingi versiyalarida, agar SSL_OP_SINGLE_DH_USE opsiyasi aniq belgilanmagan bo'lsa, DH asosiy kaliti barcha server ulanishlarida qayta ishlatiladi. OpenSSL 1.0.2f dan boshlab, DH asosiy kaliti faqat statik DH shifrlaridan foydalanilganda qayta ishlatiladi ("DH-*", masalan, "DH-RSA-AES256-SHA"). Zaiflik OpenSSL 1.1.1 da ko'rinmaydi, chunki bu filial DH asosiy kalitidan foydalanmaydi va statik DH shifrlaridan foydalanmaydi.

DH kalit almashinuvi usulidan foydalanganda ulanishning har ikki tomoni tasodifiy shaxsiy kalitlarni (keyingi o'rinlarda “a” kaliti va “b” kaliti) hosil qiladi, ular asosida ochiq kalitlar (ga mod p va gb mod p) hisoblab chiqiladi va yuboriladi. Har bir tomon ochiq kalitlarni olgandan so'ng, sessiya kalitlarini yaratish uchun ishlatiladigan umumiy asosiy kalit (gab mod p) hisoblanadi. Rakun hujumi 1.2 versiyasigacha bo'lgan TLS spetsifikatsiyalari birlamchi kalitning barcha yetakchi null baytlarini u bilan bog'liq hisob-kitoblardan oldin olib tashlashni talab qilishiga asoslanib, yon kanal tahlili orqali asosiy kalitni aniqlash imkonini beradi.

Shu jumladan kesilgan asosiy kalit turli ma'lumotlarni qayta ishlashda turli kechikishlarga ega xesh-funksiyalarga asoslangan seans kalitini yaratish funktsiyasiga o'tkaziladi. Server tomonidan bajariladigan asosiy operatsiyalarning vaqtini aniq o'lchash tajovuzkorga asosiy kalit noldan boshlanadimi yoki yo'qligini aniqlashga imkon beradigan maslahatlarni (oracle) aniqlash imkonini beradi. Masalan, tajovuzkor mijoz tomonidan yuborilgan ochiq kalitni (ga) ushlab, uni serverga qayta yuborishi va aniqlashi mumkin.
olingan asosiy kalit noldan boshlanadimi.

O'z-o'zidan kalitning bir baytini aniqlash hech narsa bermaydi, lekin ulanish bo'yicha muzokaralar paytida mijoz tomonidan uzatiladigan "ga" qiymatini ushlab, tajovuzkor "ga" bilan bog'liq bo'lgan boshqa qiymatlar to'plamini yaratishi va ularni yuborishi mumkin. serverni alohida ulanish muzokaralari seanslarida. "Gri*ga" qiymatlarini yaratish va yuborish orqali tajovuzkor server javobidagi kechikishlardagi o'zgarishlarni tahlil qilish orqali noldan boshlab asosiy kalitlarni olishga olib keladigan qiymatlarni aniqlashi mumkin. Bunday qiymatlarni aniqlab, tajovuzkor uchun tenglamalar to'plamini yaratishi mumkin echimlar yashirin raqamlar bilan bog'liq muammolar va asl asosiy kalitni hisoblang.

DH shifrlari asosida ulanishlar uchun kalitlarni aniqlash imkonini beruvchi TLSdagi zaiflik

OpenSSL zaifliklari tayinlangan past darajadagi xavf va tuzatish 1.0.2w versiyasidagi muammoli “TLS_DH_*” shifrlarini himoya darajasi yetarli bo‘lmagan (“zaif-ssl-shifrlar”) toifasiga ko‘chirishga qisqartirildi, bu sukut bo‘yicha o‘chirib qo‘yilgan. . Mozilla ishlab chiquvchilari ham xuddi shunday qilishdi, o'chirilgan Firefox-da ishlatiladigan NSS kutubxonasida, DH va DHE shifr to'plamlarida. Firefox 78-dan boshlab muammoli shifrlar o'chirib qo'yilgan. DH uchun Chrome qo'llab-quvvatlashi 2016 yilda to'xtatilgan. BearSSL, BoringSSL, Botan, Mbed TLS va s2n kutubxonalari muammoga ta'sir qilmaydi, chunki ular DH shifrlarini yoki DH shifrlarining statik variantlarini qo'llab-quvvatlamaydi.

Qo'shimcha muammolar alohida qayd etilgan (CVE-2020-5929) F5 BIG-IP qurilmalarining TLS stekida, hujumni yanada realroq qiladi. Xususan, birlamchi kalitning boshida nol bayt mavjud bo'lganda qurilmalarning xatti-harakatlaridagi og'ishlar aniqlangan, ular hisob-kitoblarning aniq kechikishini o'lchash o'rniga ishlatilishi mumkin.

Manba: opennet.ru

a Izoh qo'shish