U prošlosti su certifikati često isticali jer su se morali ručno obnavljati. Ljudi su to jednostavno zaboravili učiniti. Dolaskom Let’s Encrypta i postupka automatskog ažuriranja, čini se da bi problem trebao biti riješen. Ali nedavno
Ako ste propustili priču, u ponoć 4. svibnja 2019. gotovo sve ekstenzije za Firefox odjednom su prestale raditi.
Kako se ispostavilo, masovni kvar dogodio se zbog činjenice da je Mozilla
Mozilla je promptno objavila zakrpu za Firefox 66.0.4 koja rješava problem s nevažećim certifikatom, a sve ekstenzije se vraćaju u normalu. Programeri preporučuju da ga instalirate i
No, ova priča još jednom pokazuje da je istek certifikata i danas gorući problem.
U tom smislu, zanimljivo je pogledati prilično originalan način na koji su se razvijači protokola nosili s ovim zadatkom
DNSCrypt
DNSCrypt je protokol za šifriranje DNS prometa. Štiti DNS komunikaciju od presretanja i MiTM-a, a također vam omogućuje zaobilaženje blokiranja na razini DNS upita.
Protokol omotava DNS promet između klijenta i poslužitelja u kriptografsku konstrukciju, radeći preko UDP i TCP transportnih protokola. Da biste ga koristili, i klijent i DNS rezolver moraju podržavati DNSCrypt. Na primjer, od ožujka 2016. omogućen je na svojim DNS poslužiteljima i u pregledniku Yandex. Nekoliko drugih pružatelja također je najavilo podršku, uključujući Google i Cloudflare. Nažalost, nema ih puno (na službenoj stranici navedena su 152 javna DNS poslužitelja). Ali program
Kako radi DNSCrypt? Ukratko, klijent preuzima javni ključ odabranog pružatelja usluga i njime provjerava svoje certifikate. Kratkoročni javni ključevi za sesiju i identifikator skupa šifri već su tu. Klijenti se potiču da generiraju novi ključ za svaki zahtjev, a poslužitelji se potiču da mijenjaju ključeve svaka 24 sata. Prilikom razmjene ključeva koristi se algoritam X25519, za potpisivanje - EdDSA, za blok enkripciju - XSalsa20-Poly1305 ili XChaCha20-Poly1305.
Jedan od programera protokola Frank Denis
Prvo, iznimno je koristan za sigurnost: ako je poslužitelj ugrožen ili je ključ procurio, jučerašnji promet ne može se dešifrirati. Ključ je već promijenjen. To će vjerojatno predstavljati problem za provedbu zakona Yarovaya, koji tjera pružatelje da pohranjuju sav promet, uključujući šifrirani promet. Implikacija je da se kasnije može dešifrirati ako je potrebno traženjem ključa sa stranice. Ali u ovom slučaju, stranica to jednostavno ne može pružiti, jer koristi kratkoročne ključeve, brišući stare.
Ali što je najvažnije, piše Denis, kratkoročni ključevi tjeraju poslužitelje da postave automatizaciju od prvog dana. Ako se poslužitelj spoji na mrežu, a skripte za promjenu ključa nisu konfigurirane ili ne rade, to će se odmah otkriti.
Kada automatizacija mijenja ključeve svakih nekoliko godina, na nju se ne može pouzdati i ljudi mogu zaboraviti na istek certifikata. Ako svakodnevno mijenjate ključeve, to će se odmah otkriti.
U isto vrijeme, ako je automatizacija konfigurirana normalno, tada nije važno koliko se često ključevi mijenjaju: svake godine, svakog kvartala ili tri puta dnevno. Ako sve radi više od 24 sata, radit će zauvijek, piše Frank Denis. Prema njegovim riječima, preporuka svakodnevne rotacije ključeva u drugoj verziji protokola, zajedno s već gotovim Docker imageom koji to implementira, učinkovito je smanjila broj poslužitelja s isteklim certifikatima, a istovremeno poboljšala sigurnost.
Međutim, neki su pružatelji ipak odlučili, iz tehničkih razloga, postaviti rok valjanosti certifikata na više od 24 sata. Ovaj je problem uvelike riješen s nekoliko redaka koda u dnscrypt-proxyju: korisnici dobivaju informativno upozorenje 30 dana prije isteka certifikata, drugu poruku s višom razinom ozbiljnosti 7 dana prije isteka i kritičnu poruku ako ima još certifikata valjanost.manje od 24 sata. Ovo se odnosi samo na certifikate koji inicijalno imaju dugo razdoblje valjanosti.
Ove poruke korisnicima daju priliku da obavijeste DNS operatere o skorom isteku certifikata prije nego što bude prekasno.
Možda kad bi svi korisnici Firefoxa primili takvu poruku, onda bi netko vjerojatno obavijestio programere i oni ne bi dopustili da certifikat istekne. "Ne sjećam se niti jednog DNSCrypt poslužitelja na popisu javnih DNS poslužitelja kojemu je certifikat istekao u posljednje dvije ili tri godine", piše Frank Denis. U svakom slučaju, vjerojatno je bolje prvo upozoriti korisnike nego onemogućiti proširenja bez upozorenja.
Izvor: www.habr.com