Како је ДНСЦрипт решио проблем истеклих сертификата увођењем периода важења од 24 сата

Како је ДНСЦрипт решио проблем истеклих сертификата увођењем периода важења од 24 сата

У прошлости су сертификати често истекли јер су морали да се обнављају ручно. Људи су једноставно заборавили да то ураде. Са појавом Лет'с Енцрипт и аутоматске процедуре ажурирања, чини се да би проблем требало решити. Али недавно Фајерфокс прича показује да је, заправо, и даље актуелна. Нажалост, сертификати и даље истичу.

У случају да сте пропустили причу, у поноћ 4. маја 2019. године, скоро сва проширења за Фирефок изненада су престала да раде.

Како се испоставило, до масовног квара дошло је због чињенице да је Мозилла сертификат је истекао, који је коришћен за потписивање екстензија. Стога су означени као „неважећи“ и нису верификовани (технички детаљи). На форумима, као заобилазно решење, препоручено је да се онемогући провера потписа екстензије у абоут: цонфиг или мењање системског сата.

Мозилла је брзо објавила закрпу за Фирефок 66.0.4, која решава проблем са неважећим сертификатом, а сва проширења се враћају у нормалу. Програмери препоручују да га инсталирају и немојте користити нема заобилазних решења за заобилажење верификације потписа јер могу бити у сукобу са закрпом.

Међутим, ова прича још једном показује да је истицање сертификата и данас горуће питање.

С тим у вези, занимљиво је погледати на прилично оригиналан начин како су се програмери протокола носили са овим задатком ДНСЦрипт. Њихово решење се може поделити на два дела. Прво, ово су краткорочни сертификати. Друго, упозоравање корисника о истеку дугорочних.

ДНСЦрипт

Како је ДНСЦрипт решио проблем истеклих сертификата увођењем периода важења од 24 сатаДНСЦрипт је ДНС протокол за шифровање саобраћаја. Штити ДНС комуникацију од пресретања и МиТМ, а такође вам омогућава да заобиђете блокирање на нивоу ДНС упита.

Протокол обавија ДНС саобраћај између клијента и сервера у криптографску конструкцију, која ради преко УДП и ТЦП транспортних протокола. Да би га користили, и клијент и ДНС разрешивач морају да подржавају ДНСЦрипт. На пример, од марта 2016. године омогућено је на његовим ДНС серверима и у претраживачу Иандек. Неколико других провајдера је такође најавило подршку, укључујући Гоогле и Цлоудфларе. Нажалост, нема их много (152 јавна ДНС сервера су наведена на званичном сајту). Али програм днсцрипт-проки може се инсталирати ручно на Линук, Виндовс и МацОС клијентима. Постоје имплементације сервера.

Како је ДНСЦрипт решио проблем истеклих сертификата увођењем периода важења од 24 сата

Како функционише ДНСЦрипт? Укратко, клијент узима јавни кључ изабраног провајдера и користи га за верификацију својих сертификата. Краткорочни јавни кључеви за сесију и идентификатор пакета шифри су већ ту. Клијенти се подстичу да генеришу нови кључ за сваки захтев, а сервери се подстичу да промене кључеве свака 24 сата. Приликом размене кључева користи се алгоритам Кс25519, за потписивање - ЕдДСА, за шифровање блока - КССалса20-Поли1305 или КСЦхаЦха20-Поли1305.

Један од програмера протокола Франк Денис пишеда је аутоматска замена свака 24 сата решила проблем истеклих сертификата. У принципу, референтни клијент днсцрипт-проки прихвата сертификате са било којим периодом важења, али издаје упозорење „Период днсцрипт-проки кључа за овај сервер је предугачак“ ако важи дуже од 24 сата. Истовремено је објављена Доцкер слика у којој је имплементирана брза промена кључева (и сертификата).

Прво, изузетно је корисно за безбедност: ако је сервер компромитован или кључ процури, јучерашњи саобраћај се не може дешифровати. Кључ се већ променио. Ово ће вероватно представљати проблем за примену закона Иароваиа, који приморава провајдере да чувају сав саобраћај, укључујући и шифровани саобраћај. Импликација је да се касније може дешифровати ако је потребно захтевањем кључа са сајта. Али у овом случају, сајт једноставно не може да га обезбеди, јер користи краткорочне кључеве, бришући старе.

Али што је најважније, пише Денис, краткорочни кључеви приморавају сервере да поставе аутоматизацију од првог дана. Ако се сервер повеже на мрежу, а скрипте за промену кључа нису конфигурисане или не раде, то ће бити одмах откривено.

Када аутоматизација мења кључеве сваких неколико година, на њу се не може поуздати, а људи могу заборавити на истек сертификата. Ако кључеве мењате свакодневно, то ће се одмах открити.

У исто време, ако је аутоматизација нормално конфигурисана, онда није важно колико често се кључеви мењају: сваке године, сваке четвртине или три пута дневно. Ако све ради дуже од 24 сата, радиће заувек, пише Френк Денис. Према његовим речима, препорука дневне ротације кључева у другој верзији протокола, заједно са готовим Доцкер имиџом који то имплементира, ефективно је смањио број сервера са истеклим сертификатима, уз истовремено побољшање безбедности.

Међутим, неки провајдери су ипак одлучили, из неких техничких разлога, да одреде период важења сертификата на више од 24 сата. Овај проблем је у великој мери решен са неколико линија кода у днсцрипт-проки: корисници добијају информативно упозорење 30 дана пре истека сертификата, другу поруку са вишим нивоом озбиљности 7 дана пре истека и критичну поруку ако сертификат има преосталог рок важења.мање од 24 сата. Ово се односи само на сертификате који у почетку имају дуг период важења.

Ове поруке дају корисницима могућност да обавесте ДНС оператере о предстојећем истеку сертификата пре него што буде прекасно.

Можда када би сви корисници Фајерфокса добили такву поруку, онда би неко вероватно обавестио програмере и они не би дозволили да сертификат истекне. „Не сећам се ни једног ДНСЦрипт сервера на листи јавних ДНС сервера коме је истекао сертификат у последње две или три године“, пише Френк Денис. У сваком случају, вероватно је боље да прво упозорите кориснике него да онемогућите екстензије без упозорења.

Како је ДНСЦрипт решио проблем истеклих сертификата увођењем периода важења од 24 сата


Извор: ввв.хабр.цом

Додај коментар