Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una durata di 24 ore

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una durata di 24 ore

In passato, i certificati scadevano spesso perché dovevano essere aggiornati manualmente. Le persone semplicemente dimenticavano di farlo. Con l'arrivo di Let’s Encrypt e delle procedure di aggiornamento automatiche, il problema sembra essere risolto. Ma la recente storia con Firefox dimostra che, in realtà, è ancora attuale. Sfortunatamente, i certificati continuano a scadere.

Se qualcuno si è perso questa storia, a mezzanotte del 4 maggio 2019, quasi tutte le estensioni di Firefox hanno smesso di funzionare all'improvviso.

Come si è scoperto, il malfunzionamento di massa è stato causato dal fatto che Mozilla ha lasciato scadere un certificato, utilizzato per firmare le estensioni. Pertanto, venivano contrassegnate come «non valide» e non superavano la verifica (dettagli tecnici). Nei forum, come soluzione alternativa, si consigliava di disattivare il controllo delle firme delle estensioni in about:config o di cambiare l'ora di sistema.

Mozilla ha rapidamente rilasciato la patch Firefox 66.0.4, che risolve il problema del certificato non valido, e tutte le estensioni tornano alla normalità. Gli sviluppatori consigliano di installarla e di non utilizzare non ci sono scorciatoie per bypassare il controllo delle firme, poiché potrebbero confliggere con la patch.

Tuttavia, questa vicenda dimostra ancora una volta che la scadenza dei certificati rimane un problema attuale anche oggi.

A tal proposito, è interessante osservare un modo piuttosto originale in cui i creatori del protocollo hanno affrontato questo compito. DNSCrypt. La loro soluzione può essere divisa in due parti. In primo luogo, ci sono certificati a breve termine. In secondo luogo, un avviso per gli utenti riguardo la scadenza dei certificati a lungo termine.

DNSCrypt

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una durata di 24 oreDNSCrypt è un protocollo di crittografia del traffico DNS. Protegge le comunicazioni DNS da intercettazioni e attacchi MiTM, permettendo anche di eludere i blocchi a livello di richieste DNS.

Il protocollo incapsula il traffico DNS tra il client e il server in una struttura crittografica, funzionando attraverso i protocolli di trasporto UDP e TCP. Per utilizzarlo, sia il client che il risolutore DNS devono supportare DNSCrypt. Ad esempio, dal marzo 2016 è stato attivato sui suoi server DNS e nel browser "Yandex". Anche alcuni altri fornitori, tra cui Google e Cloudflare, hanno annunciato supporto. Sfortunatamente, non sono molti (sul sito ufficiale sono elencati 152 server DNS pubblici). Ma il programma dnscrypt-proxy può essere installato manualmente su client con Linux, Windows e MacOS. Ci sono anche implementazioni server.

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una durata di 24 ore

Come funziona DNSCrypt? In breve, il client utilizza la chiave pubblica del fornitore scelto per verificare i suoi certificati. In quel caso, ci sono chiavi pubbliche a breve termine per la sessione e un identificatore del set di cifrature. Si consiglia ai client di generare una nuova chiave per ogni richiesta, mentre i server dovrebbero cambiare le chiavi ogni 24 ore. Nello scambio delle chiavi, viene utilizzato l'algoritmo X25519, per la firma — EdDSA, per la crittografia a blocchi — XSalsa20-Poly1305 o XChaCha20-Poly1305.

Uno degli sviluppatori del protocollo, Frank Denis scrive, l'auto-sostituzione ogni 24 ore ha risolto il problema dei certificati scaduti. In linea di principio, il client standard di dnscrypt-proxy accetta certificati con qualsiasi durata, ma emette un avviso "Il periodo delle chiavi dnscrypt-proxy per questo server è troppo lungo" se è valido per più di 24 ore. È stata rilasciata anche un'immagine Docker che implementa un cambio rapido delle chiavi (e dei certificati).

In primo luogo, ciò è estremamente utile per la sicurezza: se il server viene compromesso o la chiave trapelata, il traffico di ieri non può essere decifrato. La chiave è già cambiata. Questo potrebbe rappresentare un problema per l'attuazione della "legge Yarovaya", che costringe i fornitori a conservare tutto il traffico, comprese le comunicazioni criptate. Si presume che in seguito possa essere decifrato all'occorrenza, richiedendo la chiave al sito. Ma in questo caso il sito non potrà semplicemente fornirla, poiché utilizza chiavi a breve termine, eliminando quelle vecchie.

Ma la cosa principale, scrive Denis, è che le chiavi a breve termine costringono i server a impostare l'automazione fin dal primo giorno. Se il server si connette alla rete e gli script di cambio chiave non sono configurati o non funzionano, questo verrà immediatamente rilevato.

Quando l'automazione cambia le chiavi ogni pochi anni, non ci si può fare affidamento, e le persone possono dimenticare la scadenza del certificato. Con il cambio quotidiano delle chiavi, questo verrà scoperto immediatamente.

Allo stesso tempo, se l'automazione è impostata correttamente, non ha importanza quanto frequentemente si cambi le chiavi: ogni anno, ogni trimestre o tre volte al giorno. Se tutto funziona per più di 24 ore, continuerà a funzionare per sempre, scrive Frank Denis. Secondo lui, la raccomandazione di cambiare le chiavi quotidianamente nella seconda versione del protocollo, insieme a un'immagine Docker pronta che implementa questo, ha ridotto in modo efficace il numero di server con certificati scaduti, migliorando al contempo la sicurezza.

Tuttavia, alcuni provider hanno deciso, per ragioni tecniche, di impostare un periodo di validità del certificato superiore alle 24 ore. Questa problematica è stata principalmente risolta con alcune righe di codice in dnscrypt-proxy: gli utenti ricevono un avviso informativo 30 giorni prima della scadenza del certificato, un altro messaggio con un livello di serietà maggiore 7 giorni prima della scadenza e un messaggio critico se rimangono meno di 24 ore. Questo si applica solo ai certificati che inizialmente hanno una lunga durata.

Tali messaggi danno agli utenti la possibilità di informare gli operatori DNS sulla prossima scadenza del certificato, prima che sia troppo tardi.

Forse, se tutti gli utenti di Firefox ricevessero un messaggio del genere, qualcuno lo segnalerebbe agli sviluppatori e non permetterebbe la scadenza del certificato. «Non ricordo alcun server DNSCrypt della lista pubblica di server DNS il cui certificato sia scaduto negli ultimi due o tre anni», scrive Frank Denis. In ogni caso, è meglio avvertire prima gli utenti piuttosto che disabilitare le estensioni senza preavviso.

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una durata di 24 ore


Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster