Kuidas DNSCrypt lahendas aegunud sertifikaatide probleemi, kehtestades 24-tunnise kehtivusaja

Kuidas DNSCrypt lahendas aegunud sertifikaatide probleemi, kehtestades 24-tunnise kehtivusaja

Varem aegusid sertifikaadid sageli seetõttu, et neid tuli käsitsi uuendada. Inimesed lihtsalt unustasid seda teha. Tundub, et Let's Encrypti tulekuga ja automaatse värskendamise protseduuriga peaks probleem lahenema. Aga hiljuti Firefoxi lugu näitab, et see on tegelikult endiselt asjakohane. Kahjuks aeguvad sertifikaadid jätkuvalt.

Juhuks, kui lugu jäi vahele, lakkasid 4. mai 2019 südaööl ühtäkki peaaegu kõik Firefoxi laiendused töötamast.

Nagu selgus, tekkis tohutu rike seetõttu, et Mozilla sertifikaat on aegunud, mida kasutati laienduste allkirjastamiseks. Seetõttu märgiti need kehtetuks ja neid ei kinnitatud (tehnilised detailid). Foorumites soovitati lahendusena keelata laienduse allkirja kontrollimine about: config või süsteemi kella muutmine.

Mozilla andis kiiresti välja Firefox 66.0.4 paiga, mis lahendab kehtetu sertifikaadi probleemi ja kõik laiendused naasevad normaalseks. Arendajad soovitavad selle installida ja ära kasuta allkirja kontrollimisest mööda hiilimiseks pole mingeid lahendusi, kuna need võivad plaastriga vastuolus olla.

See lugu näitab aga veel kord, et sertifikaadi aegumine on tänapäevalgi pakiline probleem.

Sellega seoses on huvitav vaadata üsna originaalset viisi, kuidas protokolli arendajad selle ülesandega hakkama said DNSCrypt. Nende lahenduse võib jagada kaheks osaks. Esiteks on need lühiajalised sertifikaadid. Teiseks kasutajate hoiatamine pikaajaliste aegumise eest.

DNSCrypt

Kuidas DNSCrypt lahendas aegunud sertifikaatide probleemi, kehtestades 24-tunnise kehtivusajaDNSCrypt on DNS-i liikluse krüpteerimisprotokoll. See kaitseb DNS-sidet pealtkuulamiste ja MiTM-i eest ning võimaldab ka DNS-päringu tasemel blokeerimisest mööda minna.

Protokoll mähib kliendi ja serveri vahelise DNS-liikluse krüptograafilisse konstruktsiooni, mis töötab UDP ja TCP transpordiprotokollide kaudu. Selle kasutamiseks peavad nii klient kui ka DNS-i lahendaja toetama DNSCrypti. Näiteks alates 2016. aasta märtsist on see lubatud DNS-serverites ja Yandexi brauseris. Toest on teatanud ka mitmed teised pakkujad, sealhulgas Google ja Cloudflare. Kahjuks pole neid palju (ametlikul veebisaidil on loetletud 152 avalikku DNS-serverit). Aga programm dnscrypt-puhverserver saab käsitsi installida Linuxi, Windowsi ja MacOS-i klientidele. Samuti on olemas serverite juurutused.

Kuidas DNSCrypt lahendas aegunud sertifikaatide probleemi, kehtestades 24-tunnise kehtivusaja

Kuidas DNSCrypt töötab? Lühidalt öeldes võtab klient valitud pakkuja avaliku võtme ja kasutab seda oma sertifikaatide kontrollimiseks. Seansi lühiajalised avalikud võtmed ja šifrikomplekti identifikaator on juba olemas. Kliente julgustatakse looma iga päringu jaoks uus võti ja servereid julgustatakse võtmeid muutma iga 24 tunni järel. Võtmete vahetamisel kasutatakse algoritmi X25519, allkirjastamiseks - EdDSA, plokkrüptimiseks - XSalsa20-Poly1305 või XChaCha20-Poly1305.

Üks protokolli arendajatest Frank Denis kirjutabet automaatne asendamine iga 24 tunni järel lahendas aegunud sertifikaatide probleemi. Põhimõtteliselt aktsepteerib dnscrypt-puhverserveri viiteklient mis tahes kehtivusajaga sertifikaate, kuid annab hoiatuse "Selle serveri dnscrypt-puhverserveri võtme periood on liiga pikk", kui see kehtib kauem kui 24 tundi. Samal ajal ilmus Dockeri pilt, milles rakendati võtmete (ja sertifikaatide) kiiret vahetust.

Esiteks on see turvalisuse seisukohalt ülikasulik: kui server on rikutud või võti lekib, siis eilset liiklust dekrüpteerida ei saa. Võti on juba muutunud. See tekitab tõenäoliselt probleeme Yarovaya seaduse rakendamisel, mis sunnib teenusepakkujaid salvestama kogu liikluse, sealhulgas krüptitud liikluse. See tähendab, et selle saab hiljem vajadusel dekrüpteerida, küsides saidilt võtit. Kuid sel juhul ei saa sait seda lihtsalt pakkuda, kuna see kasutab lühiajalisi võtmeid, kustutades vanad.

Kuid mis kõige tähtsam, kirjutab Denis, lühiajalised võtmed sunnivad servereid seadistama automatiseerimist alates esimesest päevast. Kui server loob ühenduse võrguga ja võtme muutmise skriptid pole konfigureeritud või ei tööta, tuvastatakse see kohe.

Kui automaatika vahetab võtmeid iga paari aasta tagant, ei saa sellele loota ja inimesed võivad sertifikaadi aegumise unustada. Kui vahetate võtmeid iga päev, tuvastatakse see kohe.

Samas, kui automaatika on normaalselt konfigureeritud, siis pole vahet, kui tihti võtmeid vahetatakse: igal aastal, kord kvartalis või kolm korda päevas. Kui kõik töötab üle 24 tunni, töötab see igavesti, kirjutab Frank Denis. Tema sõnul vähendas protokolli teises versioonis olev igapäevase võtmete pööramise soovitus koos seda rakendava valmis Dockeri pildiga tõhusalt aegunud sertifikaatidega serverite arvu, parandades samal ajal turvalisust.

Mõned pakkujad otsustasid siiski tehnilistel põhjustel seada sertifikaadi kehtivusajaks kauemaks kui 24 tundi. See probleem lahendati suures osas mõne koodireaga dnscrypt-puhverserveris: kasutajad saavad informatiivse hoiatuse 30 päeva enne sertifikaadi aegumist, teise kõrgema raskusastmega teate 7 päeva enne aegumist ja kriitilise teate, kui sertifikaati on alles jäänud kehtivusaeg vähem kui 24 tundi. See kehtib ainult sertifikaatide kohta, millel on esialgu pikk kehtivusaeg.

Need sõnumid annavad kasutajatele võimaluse teavitada DNS-i operaatoreid eelseisvast sertifikaadi aegumisest, enne kui on liiga hilja.

Võib-olla kui kõik Firefoxi kasutajad saaksid sellise teate, siis ilmselt keegi teavitaks sellest arendajaid ja nad ei lase sertifikaadil aeguda. "Ma ei mäleta avalike DNS-serverite loendis ühtegi DNSCrypti serverit, mille sertifikaat oleks viimase kahe või kolme aasta jooksul aegunud," kirjutab Frank Denis. Igal juhul on ilmselt parem kasutajaid esmalt hoiatada, selle asemel, et laiendusi hoiatamata keelata.

Kuidas DNSCrypt lahendas aegunud sertifikaatide probleemi, kehtestades 24-tunnise kehtivusaja


Allikas: www.habr.com

Lisa kommentaar