Hur DNSCrypt löste problemet med förÄldrade certifikat genom att införa en giltighetstid pÄ 24 timmar

Hur DNSCrypt löste problemet med förÄldrade certifikat genom att införa en giltighetstid pÄ 24 timmar

Tidigare gick certifikat ofta ut eftersom de behövde uppdateras manuellt. Folk glömde helt enkelt att göra det. Med Let’s Encrypt och en automatisk uppdateringsprocedur borde problemet vara löst. Men den senaste historien med Firefox visar att det faktiskt fortfarande Ă€r aktuellt. TyvĂ€rr fortsĂ€tter certifikat att löpa ut.

Om nÄgon missade denna historia, sÄ slutade nÀstan alla Firefox-tillÀgg att fungera vid midnatt den 4 maj 2019.

Som det visade sig uppstod det en massiv driftstörning pÄ grund av att Mozilla hade ett certifikat som varit giltigt, vilket anvÀndes för att signera tillÀgg. DÀrför markerades de som "ogiltiga" och passerade inte kontrollen (tekniska detaljer). PÄ forumen rekommenderade man som en tillfÀllig lösning att stÀnga av kontrollen av tillÀggens signaturer i about:config eller Àndra systemklockan.

Mozilla slÀppte snabbt en patch för Firefox 66.0.4, som löser problemet med det ogiltiga certifikatet, och alla tillÀgg ÄterstÀlldes till det normala. Utvecklarna rekommenderar att installera det och inte anvÀnda nÄgra tillfÀlliga lösningar för att kringgÄ signaturkontroller, eftersom de kan kollidera med patchen.

Denna historia visar ÀndÄ Äterigen att certifikatens utgÄng kvarstÄr som ett aktuellt problem Àven idag.

I detta sammanhang Àr det intressant att titta pÄ ett ganska originellt sÀtt som utvecklarna av protokollet DNSCrypthar löst detta problem. Deras lösning kan delas upp i tvÄ delar. För det första, korttidscertifikat. För det andra, att meddela anvÀndarna om utgÄngen av lÄngtidscertifikat.

DNSCrypt

Hur DNSCrypt löste problemet med förÄldrade certifikat genom att införa en giltighetstid pÄ 24 timmarDNSCrypt Àr ett protokoll för kryptering av DNS-trafik. Det skyddar DNS-kommunikation frÄn avlyssning och MiTM, samt gör det möjligt att kringgÄ blockeringar pÄ DNS-frÄgenivÄ.

Protokollet kapslar in DNS-trafik mellan klienten och servern i en kryptografisk konstruktion och fungerar över transportprotokollen UDP och TCP. För att anvÀnda det mÄste bÄde klienten och DNS-upplösaren stödja DNSCrypt. Till exempel har Yandex aktiverat det pÄ sina DNS-servrar och i sin webblÀsare sedan mars 2016. Flera andra leverantörer, inklusive Google och Cloudflare, har ocksÄ meddelat sitt stöd. TyvÀrr Àr de inte sÄ mÄnga (det finns 152 offentliga DNS-servrar listade pÄ den officiella webbplatsen). Men programmet dnscrypt-proxy manuellt installeras pÄ klienter under Linux, Windows och MacOS. Det finns ocksÄ serverimplementationer.

Hur DNSCrypt löste problemet med förÄldrade certifikat genom att införa en giltighetstid pÄ 24 timmar

Hur fungerar DNSCrypt? Kort sagt, klienten tar den offentliga nyckeln frĂ„n den valda tjĂ€nsteleverantören och kontrollerar dess certifikat med hjĂ€lp av den. DĂ€r finns kortvariga offentliga nycklar för sessionen och en identifierare för chiffersatsen. Det rekommenderas att klienter genererar en ny nyckel för varje begĂ€ran, och servrar bör byta nycklar var 24:e timme. Vid nyckelutbyte anvĂ€nds algoritmen X25519, för signering – EdDSA, för blockkryptering – XSalsa20-Poly1305 eller XChaCha20-Poly1305.

En av protokollutvecklarna, Frank Denis skriver, sade att den automatiska bytet var 24:e timme löste problemet med utgÄngna certifikat. I grund och botten accepterar referensklienten dnscrypt-proxy certifikat med vilken giltighetstid som helst, men ger en varning "Periode av dnscrypt-proxy nycklar för denna server Àr för lÄng" om den Àr giltig lÀngre Àn 24 timmar. Samtidigt slÀpptes en Docker-bild dÀr snabb nyckelbyten (och certifikat) implementerades.

För det första Àr det oerhört anvÀndbart för sÀkerheten: om servern har blivit komprometterad eller nyckeln har lÀckt, kan gÄrdagens trafik inte avkodas. Nyckeln har redan bytts ut. Detta kommer sannolikt att bli ett problem för tillÀmpningen av "Yarovaya-lagen", som tvingar tjÀnsteleverantörer att lagra all trafik, inklusive krypterad trafik. Det förutsÀtts att den senare kan avkodas vid behov genom att begÀra nyckeln frÄn webbplatsen. Men i det hÀr fallet kan webbplatsen helt enkelt inte tillhandahÄlla den, eftersom den anvÀnder kortvariga nycklar och raderar gamla.

Men huvudpunkten, skriver Denis, Àr att kortvariga nycklar tvingar servrar att automatisera frÄn första dagen. Om servern ansluter till nÀtverket, och skripten för nyckelbyten inte Àr instÀllda eller inte fungerar, kommer det att upptÀckas omedelbart.

NÀr automatisering byter nycklar nÄgra Är, kan man inte lita pÄ den, och mÀnniskor kan glömma utgÄngsdatumet för certifikatet. Vid daglig nyckelbyte kommer detta att upptÀckas omedelbart.

Samtidigt, om automatiseringen Àr korrekt instÀlld, spelar det ingen roll hur ofta nycklar byts: varje Är, kvartalsvis eller tre gÄnger om dagen. Om allt fungerar i mer Àn 24 timmar, kommer det att fortsÀtta fungera för alltid, skriver Frank Denis. Enligt honom har rekommendationen att byta nycklar dagligen i den andra versionen av protokollet tillsammans med en fÀrdig Docker-bild som genomför detta effektivt minskat antalet servrar med utgÄngna certifikat, samtidigt som sÀkerheten förbÀttrades.

Men vissa leverantörer har ÀndÄ valt av tekniska skÀl att sÀtta giltighetstiden för certifikat till mer Àn 24 timmar. Detta problem löstes i huvudsak med hjÀlp av nÄgra rader kod i dnscrypt-proxy: anvÀndarna fÄr en informationsvarning 30 dagar innan certifikatets utgÄng, ett annat meddelande med högre allvarlighet 7 dagar innan utgÄng och ett kritiskt meddelande om det finns mindre Àn 24 timmar kvar pÄ certifikatet. Detta gÀller endast certifikat som frÄn början har en lÀngre giltighetstid.

Dessa meddelanden ger anvÀndarna möjlighet att informera DNS-operatörerna om det kommande utgÄngsdatumet för certifikatet, innan det Àr för sent.

Kanske, om alla Firefox-anvÀndare hade fÄtt ett sÄdant meddelande, skulle nÄgon sÀkert ha informerat utvecklarna sÄ att de inte skulle lÄta certifikatet gÄ ut. "Jag minns inget DNSCrypt-server frÄn de offentliga DNS-servrarna som har haft utgÄngna certifikat de senaste tvÄ eller tre Ären," skriver Frank Denis. I vilket fall som helst, kanske det Àr bÀttre att först varna anvÀndarna Àn att stÀnga av tillÀgg utan förvarning.

Hur DNSCrypt löste problemet med förÄldrade certifikat genom att införa en giltighetstid pÄ 24 timmar


KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster