TLS-ийн эмзэг байдал нь DH шифр дээр суурилсан холболтын түлхүүрийг тодорхойлох боломжийг олгодог

Илчилсэн шинэ тухай мэдээлэл эмзэг байдал (CVE-2020-1968) код нэртэй TLS протоколд
Элбэнх мөн ховор тохиолдолд дамжин өнгөрөх урсгалыг (MITM) саатуулах үед HTTPS зэрэг TLS холболтын шифрийг тайлахад ашиглаж болох урьдчилсан үндсэн түлхүүрийг (premaster) тодорхойлох боломжийг олгодог. Энэ дайралт нь практикт хэрэгжүүлэхэд маш хэцүү бөгөөд онолын шинж чанартай болохыг тэмдэглэв. Халдлага үйлдэхийн тулд TLS серверийн тодорхой тохиргоо, серверийн боловсруулалтын хугацааг маш нарийн хэмжих чадвар шаардлагатай.

Асуудал нь TLS-ийн тодорхойлолтод шууд байгаа бөгөөд зөвхөн DH түлхүүр солилцох протокол (Diffie-Hellman, TLS_DH_*") дээр суурилсан шифр ашиглан холболтод нөлөөлдөг. ECDH шифрүүдийн хувьд асуудал гарахгүй бөгөөд тэдгээр нь аюулгүй хэвээр байна. Зөвхөн TLS протоколууд 1.2 хүртэлх хувилбарууд эмзэг байдаг; TLS 1.3 нь асуудалд өртөхгүй. Энэ эмзэг байдал нь DH нууц түлхүүрийг өөр TLS холболтууд дээр дахин ашигладаг TLS хэрэгжүүлэлтүүдэд тохиолддог (энэ үйлдэл нь Alexa Top 4.4M серверүүдийн ойролцоогоор 1% дээр тохиолддог).

OpenSSL 1.0.2e болон өмнөх хувилбаруудад SSL_OP_SINGLE_DH_USE сонголтыг тодорхой заагаагүй бол DH үндсэн түлхүүрийг бүх серверийн холболтод дахин ашигладаг. OpenSSL 1.0.2f-ээс хойш DH үндсэн түлхүүрийг зөвхөн статик DH шифр ("DH-*", жишээлбэл "DH-RSA-AES256-SHA") ашиглах үед л дахин ашигладаг. Энэ салбар нь DH үндсэн түлхүүрийг ашигладаггүй бөгөөд статик DH шифр ашигладаггүй тул эмзэг байдал нь OpenSSL 1.1.1-д харагдахгүй байна.

DH түлхүүр солилцох аргыг ашиглах үед холболтын хоёр тал нь санамсаргүй хувийн түлхүүрүүдийг (цаашид "a" түлхүүр ба "b" түлхүүр) үүсгэдэг бөгөөд үүнд үндэслэн нийтийн түлхүүрүүдийг (ga mod p ба gb mod p) тооцоолж илгээдэг. Тал бүр нийтийн түлхүүрийг хүлээн авсны дараа сессийн түлхүүрүүдийг үүсгэхэд ашигладаг нийтлэг үндсэн түлхүүрийг (gab mod p) тооцдог. Элбэнх халдлага нь TLS-ийн 1.2 хувилбар хүртэлх үзүүлэлтүүд нь үндсэн түлхүүрийн бүх тэргүүлэх хоосон байтуудыг түүнтэй холбоотой тооцоолол хийхээс өмнө устгахыг шаарддаг тул хажуугийн сувгийн шинжилгээгээр үндсэн түлхүүрийг тодорхойлох боломжийг танд олгоно.

Таслагдсан үндсэн түлхүүрийг оруулаад өөр өөр өгөгдөл боловсруулах үед өөр өөр саатал бүхий хэш функц дээр суурилдаг сессийн түлхүүр үүсгэх функцэд дамждаг. Серверийн гүйцэтгэсэн гол үйлдлүүдийн цаг хугацааг нарийн хэмжих нь халдагчид үндсэн түлхүүрийг эхнээс нь эхэлж байгаа эсэхийг шүүж болох сэжүүрүүдийг (oracle) тодорхойлох боломжийг олгодог. Жишээлбэл, халдагчид үйлчлүүлэгчийн илгээсэн нийтийн түлхүүрийг (ga) таслан зогсоож, сервер рүү дахин дамжуулж, тодорхойлох боломжтой.
үүссэн үндсэн түлхүүр тэгээс эхэлж байгаа эсэх.

Түлхүүрийн нэг байтыг тодорхойлох нь өөрөө юу ч өгөхгүй боловч холболтын хэлэлцээрийн явцад үйлчлүүлэгчийн дамжуулсан "ga" утгыг таслан зогсоосноор халдагчид "ga"-тай холбоотой бусад утгуудын багцыг үүсгэж, тэдгээрийг илгээж болно. серверийг салангид холболтын хэлэлцээрт . Халдагчид "gri*ga" утгыг үүсгэж илгээснээр серверийн хариу саатлын өөрчлөлтөд дүн шинжилгээ хийснээр тэгээс эхлэн үндсэн түлхүүрүүдийг хүлээн авахад хүргэдэг утгыг тодорхойлж чадна. Ийм утгыг тодорхойлсны дараа халдагч нь тэгшитгэлийн багц үүсгэж болно шийдэл далд тооны асуудал болон анхны үндсэн түлхүүрийг тооцоол.

TLS-ийн эмзэг байдал нь DH шифр дээр суурилсан холболтын түлхүүрийг тодорхойлох боломжийг олгодог

OpenSSL-ийн эмзэг байдал томилогдсон аюулын түвшин бага, 1.0.2w хувилбарын асуудалтай “TLS_DH_*” шифрийг хамгаалалтын түвшин хангалтгүй (“сул-ssl-шифрүүд”) гэсэн ангилалд шилжүүлж, өгөгдмөлөөр идэвхгүй болгосон. . Mozilla хөгжүүлэгчид ижил зүйлийг хийсэн. унтраасан Firefox-д ашигладаг NSS номын сан, DH болон DHE шифрийн багцууд. Firefox 78 хувилбарын хувьд асуудалтай шифрүүдийг идэвхгүй болгосон. DH-д зориулсан Chrome-ын дэмжлэгийг 2016 онд зогсоосон. BearSSL, BoringSSL, Botan, Mbed TLS болон s2n номын сан нь DH шифр болон DH шифрийн статик хувилбаруудыг дэмждэггүй тул асуудалд өртөхгүй.

Нэмэлт асуудлуудыг тусад нь тэмдэглэв (CVE-2020-5929) F5 BIG-IP төхөөрөмжүүдийн TLS стек дэх халдлагыг илүү бодитой болгож байна. Ялангуяа анхдагч түлхүүрийн эхэнд тэг байт байгаа тохиолдолд төхөөрөмжүүдийн үйл ажиллагааны хазайлтыг тодорхойлсон бөгөөд үүнийг тооцооллын хоцролтыг яг хэмжихийн оронд ашиглаж болно.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх