TLS-ում խոցելիություն, որը թույլ է տալիս բանալիների որոշում DH ծածկագրերի վրա հիմնված միացումների համար

Բացահայտվել է տեղեկություններ նորի մասին խոցելիություններ (CVE-2020-1968) TLS արձանագրության մեջ, ծածկագրված
Ռաքուն և հազվագյուտ դեպքերում թույլ է տալիս որոշել նախնական առաջնային բանալին (նախատիրապետում), որը կարող է օգտագործվել TLS կապերը, ներառյալ HTTPS-ը, գաղտնազերծելու համար տարանցիկ երթևեկությունը (MITM): Նշվում է, որ հարձակումը շատ բարդ է գործնական իրականացման համար եւ ավելի շատ կրում է տեսական բնույթ։ Հարձակում իրականացնելու համար անհրաժեշտ է TLS սերվերի հատուկ կոնֆիգուրացիա և սերվերի մշակման ժամանակը շատ ճշգրիտ չափելու հնարավորություն:

Խնդիրն առկա է ուղղակիորեն TLS բնութագրում և ազդում է միայն DH բանալիների փոխանակման արձանագրության վրա հիմնված գաղտնագրերի վրա (Diffie-Hellman, TLS_DH_*») միացումների վրա: ECDH ծածկագրերի դեպքում խնդիրը չի առաջանում, և դրանք մնում են ապահով: Միայն մինչև 1.2 տարբերակի TLS արձանագրությունները խոցելի են, TLS 1.3-ի վրա խնդիրը չի ազդում: Խոցելիությունը տեղի է ունենում TLS իրականացումներում, որոնք կրկին օգտագործում են DH գաղտնի բանալին տարբեր TLS միացումների միջոցով (այս վարքագիծը տեղի է ունենում Alexa Top 4.4M սերվերների մոտավորապես 1%-ի վրա):

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» արժեքները՝ հարձակվողը կարող է սերվերի պատասխանի հետաձգումների փոփոխությունների վերլուծության միջոցով որոշել այն արժեքները, որոնք հանգեցնում են առաջնային բանալիների ստացմանը զրոյից սկսած: Նման արժեքներ որոշելով՝ հարձակվողը կարող է ստեղծել մի շարք հավասարումներ լուծումներ թաքնված թվերի խնդիրներ և հաշվարկեք սկզբնական հիմնական բանալին:

TLS-ում խոցելիություն, որը թույլ է տալիս բանալիների որոշում DH ծածկագրերի վրա հիմնված միացումների համար

OpenSSL խոցելիություններ նշանակված վտանգի ցածր մակարդակ, և շտկումը կրճատվել է 1.0.2w թողարկման խնդրահարույց ծածկագրերը տեղափոխելու համար «TLS_DH_*» պաշտպանվածության անբավարար մակարդակով ծածկագրերի կատեգորիա («թույլ-ssl-ciphers»), որն անջատված է լռելյայնորեն: . 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 փաթեթում՝ հարձակումն ավելի իրատեսական դարձնելով: Մասնավորապես, հայտնաբերվել են սարքերի վարքագծի շեղումներ՝ առաջնային բանալու սկզբում զրոյական բայթի առկայության դեպքում, որը կարելի է օգտագործել հաշվարկների ճշգրիտ ուշացումը չափելու փոխարեն։

Source: opennet.ru

Добавить комментарий