Hogyan oldotta meg a DNSCrypt a lejárt tanúsítványok problémáját, bevezetve a 24 órás lejárati időt

Hogyan oldotta meg a DNSCrypt a lejárt tanúsítványok problémáját, bevezetve a 24 órás lejárati időt

Korábban a tanúsítványok gyakran lejártak, mert azokat kézzel kellett frissíteni. Az emberek egyszerűen elfelejtették ezt megtenni. A Let’s Encrypt megjelenésével és az automatikus frissítési eljárásokkal a probléma megoldódni látszott. De a közelmúltban a Firefoxsal kapcsolatos történet megmutatja, hogy valójában ez még mindig aktuális. Sajnos a tanúsítványok továbbra is lejárnak.

Ha valaki lemaradt erről a történetről, 2019. május 4-én éjfélkor hirtelen szinte az összes Firefox kiegészítő leállt.

Ahogy kiderült, a tömeges hiba azért következett be, mert a Mozilla tanúsítványának lejárt a határideje, amelyet a kiegészítők aláírásához használtak. Ezért érvénytelennek lettek nyilvántartva, és nem mentek át az ellenőrzésen (technikai részletek). A fórumokon alternatívaként ajánlották a kiegészítők aláírásainak ellenőrzésének letiltását a about:config vagy a rendszerórák átállításával.

A Mozilla időben kiadta a Firefox 66.0.4-es javítását, amely megoldja az érvénytelen tanúsítvány problémáját, és minden kiegészítő visszatér a normális állapotába. A fejlesztők azt javasolják, hogy telepítsék ezt, és ne használjanak semilyen alternatív megoldást az aláírások ellenőrzésének megkerülésére, mivel ezek ütközhetnek a javítással.

Mindazonáltal ez a történet még egyszer megmutatja, hogy a tanúsítványok lejárata továbbra is aktuális probléma manapság.

Ebből a szempontból érdekes megnézni egy meglehetősen eredeti megoldást, amellyel a DNSCryptprotokoll fejlesztői megoldották ezt a feladatot. A megoldásuk két részre osztható. Először is, rövid távú tanúsítványok. Másodszor, figyelmeztetés a felhasználóknak a hosszú távú tanúsítványok lejáratáról.

DNSCrypt

Hogyan oldotta meg a DNSCrypt a lejárt tanúsítványok problémáját, bevezetve a 24 órás lejárati időtA DNSCrypt a DNS-forgalom titkosítását szolgáló protokoll. Védi a DNS kommunikációt az elfogással és MiTM támadásoktól, és lehetővé teszi a DNS-kérések szintjén lévő blokkok megkerülését.

A protokoll titkosított konstrukcióba csomagolja a DNS-forgalmat a kliens és a szerver között, UDP és TCP szállítási protokollok alapján működik. Az alkalmazásához mind a kliensnek, mind a DNS-rozolválónak támogatnia kell a DNSCryptet. Például 2016 márciusától a "Yandex" DNS szerverein és böngészőjében is bevezette. Továbbá néhány más szolgáltató, köztük a Google és a Cloudflare is bejelentette támogatását. Sajnos nem túl sokan vannak (a hivatalos weboldalon 152 nyilvános DNS-szolgáltatót soroltak fel). De a program dnscrypt-proxy Manuálisan telepíthető Linux, Windows és MacOS kliensgépeken. Vannak szerveroldali implementációk.

Hogyan oldotta meg a DNSCrypt a lejárt tanúsítványok problémáját, bevezetve a 24 órás lejárati időt

Hogyan működik a DNSCrypt? Röviden, a kliens a kiválasztott szolgáltató nyilvános kulcsát használja, és az alapján ellenőrzi a tanúsítványait. Ott találhatóak a rövid távú nyilvános kulcsok a munkamenetekhez és a titkosítási készlet azonosítói. A kliensek számára ajánlott, hogy minden kéréshez új kulcsot generáljanak, a szervereknek pedig rendszeresen cserélniük kell a kulcsokat. minden 24 órában. A kulcsok cseréjénél az X25519 algoritmus használatos, az aláíráshoz EdDSA, a blokknál pedig XSalsa20-Poly1305 vagy XChaCha20-Poly1305.

A protokoll egyik fejlesztője, Frank Denis Ki vezeti be az IPv6-ot, és mi lassítja annak fejlődését?, hogy a 24 óránkénti automatikus csere megoldotta az elavult tanúsítványok problémáját. Alapvetően a referencia-kliens, a dnscrypt-proxy bármilyen érvényességi idejű tanúsítványt elfogad, de figyelmeztetést ad ki, hogy „A dnscrypt-proxy kulcsok időtartama ennél a szervernél túl nagy”, ha az érvényes több mint 24 órán át. Ugyanakkor megjelent egy Docker kép, amely lehetővé tette a kulcsok (és tanúsítványok) gyors cseréjét.

Először is, ez rendkívül hasznos a biztonság szempontjából: ha a szerver kompromittálódik, vagy a kulcs kiszivárog, akkor a tegnapi forgalom nem dekódolható. A kulcs már megváltozott. Valószínűleg problémát jelent majd a „Jarov törvény” végrehajtása, amely arra kötelezi a szolgáltatókat, hogy tárolják az egész forgalmat, beleértve a titkosítottat is. Feltételezhető, hogy azt később dekódolni lehet a webhelytől kérve a kulcsot. De ebben az esetben a webhely egyszerűen nem tudja megadni, mert rövid távú kulcsokat használ, amelyekkel törlik a régieket.

De a legfontosabb, írja Denis, hogy a rövid távú kulcsok arra késztetik a szervereket, hogy már az első naptól állítsanak be automatizálást. Ha a szerver csatlakozik a hálózathoz, és a kulcscserére vonatkozó szkriptek nincsenek beállítva vagy nem működnek, azt azonnal észlelik.

Amikor az automatizálás több éven keresztül cseréli a kulcsokat, arra nem lehet támaszkodni, és az emberek elfelejthetik a tanúsítványok lejáratát. A napi kulcscsere esetén ezt azonnal észlelik.

Ugyanakkor, ha az automatizálás megfelelően van beállítva, nem számít, milyen gyakran történik a kulcsok cseréje: évente, negyedévente vagy naponta háromszor. Ha 24 órán keresztül működik, akkor örökre működni fog – írja Frank Denis. Szavai szerint a második verzió protokolljának javaslata, hogy napi kulcscserét végezzenek egy Docker kép révén, hatékonyan csökkentette az elévült tanúsítványokkal rendelkező szerverek számát, miközben javította a biztonságot.

Néhány szolgáltató azonban technikai okok miatt úgy döntött, hogy a tanúsítványok érvényességi ideje meghaladja a 24 órát. E problémát több sor kóddal a dnscrypt-proxyban oldották meg: a felhasználók értesítést kapnak a tanúsítvány lejárta előtt 30 nappal, egy másik, komolyabb figyelmeztetést 7 nappal az érvényességi idő vége előtt, és kritikus üzenetet, ha a tanúsítvány érvényességéhez kevesebb mint 24 óra maradt. Ez kizárólag a kezdetben hosszú érvényességi idejű tanúsítványokkal vonatkozik.

Ezek az üzenetek lehetőséget adnak a felhasználóknak, hogy tájékoztassák a DNS-üzemeltetőket a közelgő tanúsítvány-lejáratról, mielőtt túl késő lenne.

Talán, ha a Firefox minden felhasználója kapott volna egy ilyen üzenetet, akkor biztosan valaki tájékoztatta volna a fejlesztőket, és ők nem hagyták volna, hogy a tanúsítvány lejárjon. "Nem emlékszem egyetlen DNSCrypt szerverre sem a nyilvános DNS-szerverek listájából, amelynek tanúsítványa a múlt két vagy három évben lejárt" – írja Frank Denis. Mindenesetre talán jobb lenne először figyelmeztetni a felhasználókat, mint anélkül letiltani a bővítményeket.

Hogyan oldotta meg a DNSCrypt a lejárt tanúsítványok problémáját, bevezetve a 24 órás lejárati időt


Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster