Kā DNSCrypt atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ, ievieÅ”ot 24 stundu derÄ«guma periodu

Kā DNSCrypt atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ, ievieÅ”ot 24 stundu derÄ«guma periodu

Agrāk sertifikātu derÄ«guma termiņŔ bieži beidzās, jo tie bija jāatjauno manuāli. Cilvēki vienkārÅ”i aizmirsa to izdarÄ«t. LÄ«dz ar Let's Encrypt parādÄ«Å”anos un automātiskās atjaunināŔanas procedÅ«ru, Ŕķiet, ka problēma bÅ«tu jāatrisina. Bet nesen Firefox stāsts liecina, ka patiesÄ«bā tas joprojām ir aktuāls. Diemžēl sertifikātu derÄ«guma termiņŔ joprojām beidzas.

Ja palaidāt garām stāstu, 4. gada 2019. maija pusnaktÄ« gandrÄ«z visi Firefox paplaÅ”inājumi pēkŔņi pārstāja darboties.

Kā izrādÄ«jās, masveida kļūme notika tāpēc, ka Mozilla sertifikātam ir beidzies derÄ«guma termiņŔ, kas tika izmantots paplaÅ”inājumu parakstÄ«Å”anai. Tāpēc tie tika atzÄ«mēti kā ā€œnederÄ«giā€ un netika pārbaudÄ«ti (tehniskas detaļas). Forumos kā risinājums tika ieteikts atspējot paplaÅ”inājuma paraksta verifikāciju about: config vai mainÄ«t sistēmas pulksteni.

Mozilla ātri izlaida Firefox 66.0.4 ielāpu, kas atrisina problēmu ar nederÄ«gu sertifikātu, un visi paplaÅ”inājumi atgriežas normālā stāvoklÄ«. Izstrādātāji iesaka to instalēt un Nelietojiet nav nekādu risinājumu, lai apietu paraksta verifikāciju, jo tie var bÅ«t pretrunā ar ielāpu.

Tomēr Å”is stāsts vēlreiz parāda, ka sertifikātu derÄ«guma termiņŔ joprojām ir aktuāls jautājums.

Å ajā sakarā ir interesanti aplÅ«kot diezgan oriÄ£inālu veidu, kā protokola izstrādātāji tika galā ar Å”o uzdevumu DNSCrypt. To risinājumu var iedalÄ«t divās daļās. Pirmkārt, tie ir Ä«stermiņa sertifikāti. Otrkārt, lietotāju brÄ«dināŔana par ilgtermiņa derÄ«guma termiņa beigām.

DNSCrypt

Kā DNSCrypt atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ, ievieÅ”ot 24 stundu derÄ«guma perioduDNSCrypt ir DNS trafika Å”ifrÄ“Å”anas protokols. Tas aizsargā DNS sakarus no pārtverÅ”anas un MiTM, kā arÄ« ļauj apiet bloÄ·Ä“Å”anu DNS vaicājuma lÄ«menÄ«.

Protokols ietver DNS trafiku starp klientu un serveri kriptogrāfiskā konstrukcijā, kas darbojas, izmantojot UDP un TCP transporta protokolus. Lai to izmantotu, gan klientam, gan DNS atrisinātājam ir jāatbalsta DNSCrypt. Piemēram, kopÅ” 2016. gada marta tas ir iespējots tā DNS serveros un Yandex pārlÅ«kprogrammā. Atbalstu ir paziņojuÅ”i arÄ« vairāki citi pakalpojumu sniedzēji, tostarp Google un Cloudflare. Diemžēl to nav daudz (oficiālajā vietnē ir norādÄ«ti 152 publiskie DNS serveri). Bet programma dnscrypt-starpniekserveris var manuāli instalēt Linux, Windows un MacOS klientiem. Tur ir arÄ« serveru implementācijas.

Kā DNSCrypt atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ, ievieÅ”ot 24 stundu derÄ«guma periodu

Kā darbojas DNSCrypt? ÄŖsāk sakot, klients paņem izvēlētā pakalpojumu sniedzēja publisko atslēgu un izmanto to, lai pārbaudÄ«tu savus sertifikātus. Sesijas Ä«stermiņa publiskās atslēgas un Å”ifrÄ“Å”anas komplekta identifikators jau ir tur. Klienti tiek mudināti katram pieprasÄ«jumam Ä£enerēt jaunu atslēgu, un serveri tiek mudināti mainÄ«t atslēgas ik pēc 24 stundām. Apmainoties ar atslēgām, tiek izmantots algoritms X25519, parakstÄ«Å”anai - EdDSA, bloku Å”ifrÄ“Å”anai - XSalsa20-Poly1305 vai XChaCha20-Poly1305.

Viens no protokola izstrādātājiem Frenks Deniss rakstaka automātiska nomaiņa ik pēc 24 stundām atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ. Principā dnscrypt-proxy atsauces klients pieņem sertifikātus ar jebkuru derÄ«guma termiņu, bet izdod brÄ«dinājumu "Dnscrypt-proxy atslēgas periods Å”im serverim ir pārāk garÅ”", ja tas ir derÄ«gs ilgāk par 24 stundām. Tajā paŔā laikā tika izlaists Docker attēls, kurā tika ieviesta ātra atslēgu (un sertifikātu) maiņa.

Pirmkārt, tas ir ārkārtÄ«gi noderÄ«gs droŔībai: ja serveris ir apdraudēts vai atslēga ir noplÅ«dusi, vakardienas trafiku nevar atÅ”ifrēt. Atslēga jau ir mainÄ«ta. Tas, iespējams, radÄ«s problēmas Yarovaya likuma Ä«stenoÅ”anā, kas liek pakalpojumu sniedzējiem saglabāt visu trafiku, tostarp Å”ifrēto trafiku. Tas nozÄ«mē, ka to vēlāk var atÅ”ifrēt, ja nepiecieÅ”ams, pieprasot atslēgu no vietnes. Bet Å”ajā gadÄ«jumā vietne to vienkārÅ”i nevar nodroÅ”ināt, jo izmanto Ä«stermiņa atslēgas, dzÄ“Å”ot vecās.

Bet pats galvenais, raksta Deniss, īstermiņa atslēgas liek serveriem iestatīt automatizāciju jau no pirmās dienas. Ja serveris izveido savienojumu ar tīklu un atslēgas maiņas skripti nav konfigurēti vai nedarbojas, tas tiks konstatēts nekavējoties.

Kad automatizācija ik pēc dažiem gadiem maina atslēgas, uz to nevar paļauties, un cilvēki var aizmirst par sertifikāta derīguma termiņu. Ja katru dienu maināt atslēgas, tas tiks konstatēts uzreiz.

Tajā paŔā laikā, ja automatizācija ir konfigurēta normāli, tad nav svarÄ«gi, cik bieži tiek mainÄ«ti atslēgas: katru gadu, katru ceturksni vai trÄ«s reizes dienā. Ja viss darbosies ilgāk par 24 stundām, tas darbosies mūžīgi, raksta Frenks Deniss. Pēc viņa teiktā, ieteikums par ikdienas atslēgu rotāciju protokola otrajā versijā kopā ar gatavu Docker attēlu, kas to realizē, efektÄ«vi samazināja serveru skaitu ar beidzies sertifikātiem, vienlaikus uzlabojot droŔību.

Tomēr daži pakalpojumu sniedzēji tehnisku iemeslu dēļ joprojām nolēma noteikt sertifikāta derÄ«guma termiņu, kas pārsniedz 24 stundas. Å Ä« problēma lielā mērā tika atrisināta, izmantojot dažas koda rindiņas programmā dnscrypt-proxy: lietotāji saņem informatÄ«vu brÄ«dinājumu 30 dienas pirms sertifikāta derÄ«guma termiņa beigām, citu ziņojumu ar augstāku nopietnÄ«bas pakāpi 7 dienas pirms derÄ«guma termiņa beigām un kritisku ziņojumu, ja sertifikātā ir atlikuÅ”i. derÄ«guma termiņŔ. mazāk nekā 24 stundas. Tas attiecas tikai uz sertifikātiem, kuriem sākotnēji ir ilgs derÄ«guma termiņŔ.

Šie ziņojumi sniedz lietotājiem iespēju informēt DNS operatorus par gaidāmo sertifikāta derīguma termiņu, pirms ir par vēlu.

Iespējams, ja visi Firefox lietotāji saņemtu Ŕādu ziņojumu, tad kāds droÅ”i vien informētu izstrādātājus un tie neļautu sertifikātam beigties. "Es neatceros nevienu DNSCrypt serveri publisko DNS serveru sarakstā, kuram pēdējo divu vai trÄ«s gadu laikā bÅ«tu beidzies sertifikāta derÄ«guma termiņŔ," raksta Frenks Deniss. Jebkurā gadÄ«jumā, iespējams, ir labāk vispirms brÄ«dināt lietotājus, nevis atspējot paplaÅ”inājumus bez brÄ«dinājuma.

Kā DNSCrypt atrisināja problēmu ar sertifikātiem, kuriem beidzies derÄ«guma termiņŔ, ievieÅ”ot 24 stundu derÄ«guma periodu


Avots: www.habr.com

Pievieno komentāru