Уразлівасць у TLS, якая дапускае вызначэнне ключа для злучэнняў на базе шыфраў DH

Раскрыты звесткі аб новай уразлівасці (CVE-2020-1968) у пратаколе TLS, якая атрымала кодавае імя
Янот і якая дазваляе пры рэдкім збегу акалічнасцяў вызначыць папярэдні першасны ключ (pre-master), які можна выкарыстоўваць для расшыфроўкі 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 загадваецца адкідаць усе пачатковыя нулявыя байты першаснага ключа перад вылічэннямі з яго ўдзелам.

У тым ліку зрэзаны першасны ключ перадаецца ў функцыю генерацыі сесійнага ключа, заснаваную на хэш-функцыях з адрознымі затрымкамі пры апрацоўцы розных дадзеных. Дакладнае вымярэння часу выкананых серверам аперацый з ключом дазваляе атакаваламу вызначыць падказкі (oracle), якія даюць магчымасць судзіць аб тым, пачынаецца першасны ключ з нуля ці не. Напрыклад, атакавалы можа перахапіць адпраўлены кліентам адчынены ключ (ga), пераадправіць яго на сервер і вызначыць
ці пачынаецца з нуля выніковы першасны ключ.

Само па сабе вызначэнне аднаго байта ключа нічога не дае, але перахапіўшы перададзенае пры ўзгадненні злучэння кліентам значэнне "ga" атакуючы можа сфарміраваць набор іншых значэнняў, звязаных з "ga" і адправіць іх на сервер у асобных сеансах узгаднення злучэння. Фармуючы і адпраўляючы значэнні "gri*ga", атакавалы можа праз аналіз змены затрымак у адказе сервера вызначыць значэнні, якія прыводзяць да атрымання першасных ключоў, якія пачынаюцца з нуля. Вызначыўшы падобныя значэнні атакавалы, можа скласці набор раўнанняў для рашэння праблемы утоеных лікаў і вылічыць зыходны першасны ключ.

Уразлівасць у TLS, якая дапускае вызначэнне ключа для злучэнняў на базе шыфраў DH

У OpenSSL уразлівасці прысвоены нізкі ўзровень небяспекі, а выпраўленне звялося да перасоўвання ў выпуску 1.0.2w праблемных шыфраў "TLS_DH_*" у адключаную па змаўчанні катэгорыю шыфраў з недастатковым узроўнем абароны ("weak-ssl-ciphers"). Аналагічна паступілі распрацоўшчыкі Mozilla, якія адключылі у бібліятэцы NSS, выкарыстоўванай у Firefox, наборы шыфраў DH і DHE. Пачынальна з Firefox 78 праблемныя шыфры адключаныя. У Chrome падтрымка DH была спынена яшчэ ў 2016 годзе. Бібліятэкі BearSSL, BoringSSL, Botan, Mbed TLS і s2n праблеме не схільныя, бо не падтрымліваюць шыфры DH ці статычныя варыянты шыфраў DH.

Асобна адзначаюцца дадатковыя праблемы (CVE-2020-5929) у TLS-стэку прылад F5 BIG-IP, якія робяць атаку больш рэалістычнай. У прыватнасці, былі выяўлены адхіленні ў паводзінах прылад пры наяўнасці нулявога байта ў пачатку першаснага ключа, якія можна выкарыстоўваць замест вымярэння дакладнага часу затрымкі пры вылічэннях.

Крыніца: opennet.ru

Дадаць каментар