Anksčiau sertifikatų galiojimas dažnai pasibaigdavo, nes juos tekdavo atnaujinti rankiniu būdu. Žmonės tiesiog pamiršo tai padaryti. Atsiradus Let’s Encrypt ir automatinio atnaujinimo procedūrai, atrodo, kad problema turėtų būti išspręsta. Bet neseniai
Jei praleidote istoriją, 4 m. gegužės 2019 d. vidurnaktį beveik visi „Firefox“ plėtiniai staiga nustojo veikti.
Kaip paaiškėjo, didžiulė gedimas įvyko dėl to, kad „Mozilla“.
„Mozilla“ nedelsdama išleido „Firefox 66.0.4“ pataisą, kuri išsprendžia problemą dėl netinkamo sertifikato ir visi plėtiniai grįžta į normalią būseną. Kūrėjai rekomenduoja jį įdiegti ir
Tačiau ši istorija dar kartą parodo, kad sertifikato galiojimo laikas ir šiandien išlieka aktuali problema.
Šiuo atžvilgiu įdomu gana originaliai pažvelgti į tai, kaip protokolo kūrėjai susidorojo su šia užduotimi
DNSCrypt
DNSCrypt yra DNS srauto šifravimo protokolas. Jis apsaugo DNS ryšius nuo perėmimų ir MiTM, taip pat leidžia apeiti blokavimą DNS užklausos lygiu.
Protokolas sujungia DNS srautą tarp kliento ir serverio į kriptografinę konstrukciją, veikiančią per UDP ir TCP perdavimo protokolus. Norėdami jį naudoti, ir klientas, ir DNS sprendėjas turi palaikyti DNSCrypt. Pavyzdžiui, nuo 2016 m. kovo mėn. ji buvo įjungta jos DNS serveriuose ir „Yandex“ naršyklėje. Keletas kitų paslaugų teikėjų taip pat paskelbė apie palaikymą, įskaitant „Google“ ir „Cloudflare“. Deja, jų nėra daug (oficialioje svetainėje išvardyti 152 viešieji DNS serveriai). Bet programa
Kaip veikia DNSCrypt? Trumpai tariant, klientas paima pasirinkto teikėjo viešąjį raktą ir naudoja jį savo sertifikatams patikrinti. Jau yra trumpalaikiai viešieji seanso raktai ir šifravimo rinkinio identifikatorius. Klientai raginami generuoti naują raktą kiekvienai užklausai, o serveriai – keisti raktus kas 24 valandas. Keičiant raktus naudojamas X25519 algoritmas, pasirašymui - EdDSA, bloko šifravimui - XSalsa20-Poly1305 arba XChaCha20-Poly1305.
Vienas iš protokolo kūrėjų Frankas Denisas
Pirma, tai itin naudinga saugumui: jei serveris pažeistas arba nutekėjo raktas, vakarykštis srautas negali būti iššifruotas. Raktas jau pakeistas. Tai greičiausiai sukels problemų įgyvendinant Yarovaya įstatymą, kuris verčia paslaugų teikėjus saugoti visą srautą, įskaitant šifruotą srautą. Tai reiškia, kad vėliau, jei reikia, jį galima iššifruoti, paprašius rakto iš svetainės. Tačiau šiuo atveju svetainė tiesiog negali to pateikti, nes naudoja trumpalaikius raktus, ištrina senus.
Tačiau svarbiausia, rašo Denisas, kad trumpalaikiai raktai priverčia serverius nuo pat pirmos dienos nustatyti automatizavimą. Jei serveris prisijungia prie tinklo ir rakto keitimo scenarijai nesukonfigūruoti arba neveikia, tai bus nedelsiant aptikta.
Kai automatika pakeičia raktus kas kelerius metus, ja negalima pasikliauti ir žmonės gali pamiršti apie sertifikato galiojimo pabaigą. Jei raktus keisite kasdien, tai bus aptikta akimirksniu.
Tuo pačiu metu, jei automatika sukonfigūruota įprastai, tada nesvarbu, kaip dažnai keičiami raktai: kas metus, kas ketvirtį ar tris kartus per dieną. Jei viskas veiks ilgiau nei 24 valandas, tai veiks amžinai, rašo Frank Denis. Anot jo, antroje protokolo versijoje esanti kasdienio raktų sukimo rekomendacija kartu su paruoštu jį įgyvendinančiu „Docker“ atvaizdu efektyviai sumažino serverių, kurių sertifikatai pasibaigę, skaičių, o kartu pagerino saugumą.
Tačiau kai kurie paslaugų teikėjai dėl techninių priežasčių vis tiek nusprendė nustatyti sertifikato galiojimo laikotarpį, ilgesnį nei 24 valandos. Ši problema iš esmės buvo išspręsta naudojant kelias dnscrypt-proxy kodo eilutes: vartotojai gauna informacinį įspėjimą likus 30 dienų iki sertifikato galiojimo pabaigos, kitą aukštesnio sunkumo pranešimą likus 7 dienoms iki galiojimo pabaigos ir kritinį pranešimą, jei sertifikate yra likučių. galiojimo laikas mažiau nei 24 valandos. Tai taikoma tik tiems sertifikatams, kurie iš pradžių galioja ilgą laiką.
Šie pranešimai suteikia vartotojams galimybę pranešti DNS operatoriams apie artėjantį sertifikato galiojimo laiką, kol dar nevėlu.
Galbūt jei visi Firefox vartotojai gautų tokį pranešimą, tai tikriausiai kas nors informuotų kūrėjus ir jie neleistų baigti sertifikato. „Neprisimenu nė vieno DNSCrypt serverio viešųjų DNS serverių sąraše, kurio sertifikatas pasibaigė per pastaruosius dvejus ar trejus metus“, – rašo Frankas Denisas. Bet kokiu atveju tikriausiai geriau pirmiausia įspėti vartotojus, o ne išjungti plėtinius be įspėjimo.
Šaltinis: www.habr.com