
Varem aegusid sertifikaadid sageli, kuna neid tuli käsitsi uuendada. Inimesed lihtsalt unustasid selle teha. Let’s Encrypt'i ja automaatsete uuendamisprotseduuride saabumisega paistab probleem olevat lahendatud. Kuid hiljutine näitab, et tegelikult on see ikka veel aktuaalne. Kahjuks aeguvad sertifikaadid jätkuvalt.
Kui keegi on selle loo vahele jätnud, siis 4. mai 2019. aasta südaöösel lakkasid töötamast peaaegu kõik Firefoxi laiendused.
Kuidas selgus, oli massiline rike põhjustatud sellest, et Mozillal , mida kasutati laienduste allkirjastamiseks. Seetõttu märgiti need "kehtetuks" ja ei läbinud kontrolli (). Foorumites soovitati lahenduseks keelata laienduste allkirjade kontrollimine about:config või muuta süsteemi kellaaega.
Mozilla avaldas kiiresti plaastri Firefox 66.0.4, mis lahendab kehtetu sertifikaadi probleemi ning kõik laiendused naasevad normaalsesse olekusse. Arendajad soovitavad selle paigaldada ja ei ole olemas ühtegi lahendust, mis võimaldaks allkirjade kontrollimise vältimist, kuna need võivad konfliktida plaastriga.
Kuid see lugu näitab jälle, et sertifikaatide aegumine on endiselt aktuaalne probleem ka tänapäeval.
Seega on huvitav, kuidas protokolli arendajad selle ülesandega üsna originaalsel viisil hakkama said. . Nende lahendus on jagatud kaheks osaks. Esiteks, lühiajalised sertifikaadid. Teiseks, kasutajate teavitamine pikaajaliste sertifikaatide aegumisest.
DNSCrypt
DNSCrypt on DNS-i liikluse krüpteerimise protokoll. See kaitseb DNS-i kommunikatsiooni pealtkuulamise ja MiTM-i eest ning võimaldab ületada DNS-päringute taseme blokeeringuid.
Protokoll ümbritseb DNS-i liiklust kliendi ja serveri vahel krüptograafilise konstruktsiooniga, töötades transportsüsteemide UDP ja TCP kaudu. Selle kasutamiseks peavad nii klient kui DNS-i lahendaja toetama DNSCrypt'i. Näiteks on sellest alates märtsist 2016 seda oma DNS-serverites ja brauseris 'Yandex' kasutanud. Toetuse on kuulutanud välja ka mõned muud teenusepakkujad, sealhulgas Google ja Cloudflare. Kahjuks ei ole neid palju (ametlikul veebisaidil on loetletud 152 avalikku DNS-serverit). Kuid programmi on võimalik käsitsi installida klientidesse Linuxi, Windowsi ja MacOS-i jaoks. Samuti on olemas .

Kuidas DNSCrypt töötab? Lühidalt, klient võtab valitud teenusepakkuja avaliku võtme ja kontrollib selle abil sertifikaate. Seal leiduvad lühiajalised avalikud võtmed sessiooni jaoks ja krüptovõtme komplekti identifikaator. Klientidele soovitatakse genereerida iga päringu jaoks uus võti, serveritele aga - vahetada võtmeid iga 24 tunni järel. Võtmete vahetamisel kasutatakse algoritmi X25519, allkirjastamiseks - EdDSA, plokkšifreerimiseks - XSalsa20-Poly1305 või XChaCha20-Poly1305.
Protokolli üks arendajatest on Frank Denis , et automaatne vahetus iga 24 tunni järel lahendab aegunud sertifikaatide probleemi. Üldiselt aktsepteerib dnscrypt-proxy viidatud klient sertifikaate, millel on mis tahes aegumistähtaeg, kuid annab hoiatuse "dnscrypt-proxy võtmete periood selle serveri jaoks on liiga pikk", kui see on kehtiv üle 24 tunni. Samal ajal väljastati Docker'i pilt, kus rakendatakse võtmete (ja sertifikaatide) kiiret vahetust.
Esiteks on see äärmiselt kasulik turvalisuse seisukohalt: kui server on kompromiteeritud või võti on lekitatud, ei saa eilset liiklust dekodeerida. Võti on juba muutunud. See võib tõenäoliselt tekitada probleeme "Jarovaya seaduse" täitmisega, mis sunnib teenusepakkujaid säilitama kogu liikluse, sealhulgas krüpteeritud. Eeldatakse, et hiljem saab seda vajadusel dekodeerida, küsides võtme saidilt. Kuid antud juhul ei saa sait lihtsalt seda esitada, kuna kasutatakse lühikese kehtivusega võtmeid, kustutades vanad.
Kuid peamine, kirjutab Denis, on see, et lühiajalised võtmed panevad serverid automaatika seadistama kohe esimesest päevast. Kui server ühendub võrku ja võtmevahetuse skriptid ei ole seadistatud või ei tööta, avastatakse see kohe.
Kui automaatika vahetab võtit iga paari aasta tagant, ei saa sellele loota ja inimesed võivad unustada sertifikaadi kehtivuse lõppemise. Igapäevase võtmevahetuse korral avastatakse see kohe.
Samas, kui automaatika on korralikult seadistatud, ei oma vahetuse sagedus tähtsust: olgu see siis kord aastas, kord kvartalis või kolm korda päevas. Kui see töötab üle 24 tunni, töötab see igavesti, kirjutab Frank Denis. Tema sõnul vähendas soovitus vahetada võtmeid igapäevaselt, koos valmis Docker-pildiga, mis seda realiseerib, efektiivselt serverite arvu, mille sertifikaadid olid aegunud, samas parandades turvalisust.
Kuid mõned teenusepakkujad on siiski otsustanud tehnilistel põhjustel seada väljalaske sertifikaadi kehtivusaeg pikemaks kui 24 tundi. Selle probleemi on peamiselt lahendatud dnscrypt-proxy-s mõne koodireaga: kasutajad saavad teavitusteate 30 päeva enne sertifikaadi aegumist, tõsisema sõnumi 7 päeva enne aegumist ja kriitilise teate, kui sertifikaadist on jäänud vähem kui 24 tundi. See kehtib ainult sertifikaatide kohta, mille algne kehtivusaeg on pikk.
Sellised teated annavad kasutajatele võimaluse teavitada DNS-i operaatorit sertifikaadi peatsest aegumisest, enne kui on liiga hilja.
Võib-olla, kui kõik Firefoxi kasutajad sellist teadet saaksid, oleks keegi kindlasti arendajatele teada andnud ja nemad ei oleks lubanud sertifikaadi kehtivuse lõppemise juhtuda. "Ma ei mäleta ühtegi DNSCrypt-serverit avalike DNS-serverite loendist, mille sertifikaadid oleksid viimase kahe või kolme aasta jooksul aegunud," kirjutab Frank Denis. Igatahes on ilmselt parem kõigepealt kasutajaid hoiatada, kui sulgeda laiendusi ilma ette teatamata.
Allikas: habr.com
