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

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

In passato, i certificati scadevano spesso perché dovevano essere aggiornati manualmente. La gente semplicemente dimenticava di farlo. Con l'arrivo di Let's Encrypt e di procedure di aggiornamento automatiche, il problema sembrerebbe risolto. Ma un recente episodio con Firefox mostra che in realtà è ancora attuale. Sfortunatamente, i certificati continuano a scadere.

Se qualcuno ha 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 guasto di massa è avvenuto perché a Mozilla è scaduto il certificato, utilizzato per firmare le estensioni. Pertanto, sono state contrassegnate come "non valide" e non superavano il controllo (dettagli tecnici). Nei forum è stato consigliato come soluzione alternativa di disabilitare il controllo delle firme delle estensioni in about:config o di modificare l'orologio di sistema.

Mozilla ha rapidamente rilasciato la patch Firefox 66.0.4, che risolve il problema del certificato non valido, e tutte le estensioni torneranno alla normalità. Gli sviluppatori raccomandano di installarla e di non utilizzare alcuna soluzione alternativa per aggirare il controllo delle firme, poiché potrebbero entrare in conflitto con la patch.

Nonostante ciò, questa storia dimostra ancora una volta che la scadenza dei certificati rimane un problema attuale anche oggi.

A questo proposito, è interessante considerare il modo piuttosto originale con cui i sviluppatori del protocollo DNSCrypthanno affrontato questo compito. La loro soluzione può essere suddivisa in due parti. In primo luogo, ci sono i certificati a breve termine. In secondo luogo, c'è l'avviso agli utenti riguardo alla scadenza dei certificati a lungo termine.

DNSCrypt

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una scadenza di 24 oreDNSCrypt è un protocollo di crittografia del traffico DNS. Protegge le comunicazioni DNS da intercettazioni e attacchi di tipo MiTM, oltre a consentire di aggirare le restrizioni a livello di richieste DNS.

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

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

Come funziona DNSCrypt? In breve, il client prende la chiave pubblica del provider scelto e la usa per verificare i suoi certificati. Qui ci sono chiavi pubbliche a breve termine per la sessione e un identificatore del set di cifratura. Si consiglia ai client di generare una nuova chiave per ogni richiesta, mentre ai server di cambiare le chiavi ogni 24 ore. Durante lo scambio delle chiavi viene applicato l'algoritmo X25519, per la firma — EdDSA, per la cifratura a blocchi — XSalsa20-Poly1305 o XChaCha20-Poly1305.

Uno degli sviluppatori del protocollo, Frank Denis scrive, ha dichiarato che la sostituzione automatica ogni 24 ore ha risolto il problema dei certificati scaduti. In linea di principio, il client di riferimento dnscrypt-proxy accetta certificati con qualsiasi scadenza, ma genera un avviso "Il periodo delle chiavi dnscrypt-proxy per questo server è troppo lungo", se è valido per più di 24 ore. Contemporaneamente è stata rilasciata un'immagine Docker, in cui è stata implementata una rapida sostituzione delle chiavi (e dei certificati).

In primo luogo, questo è estremamente utile per la sicurezza: se il server è compromesso o la chiave è trapelata, il traffico di ieri non può essere decrittato. La chiave è già cambiata. Probabilmente questo costituirà un problema per l'applicazione della "legge Yarovaya", che costringe i provider a conservare tutto il traffico, compreso quello crittografato. Si presume che in seguito possa essere decrittato all'occorrenza, richiedendo la chiave al sito. Ma in questo caso, il sito semplicemente non sarà in grado di fornire la chiave, poiché utilizza chiavi temporanee, eliminando quelle vecchie.

Ma soprattutto, scrive Denis, le chiavi a breve termine costringono i server fin dal primo giorno a impostare l'automazione. Se un server si connette alla rete e gli script di cambio chiavi non sono impostati o non funzionano, questo verrà immediatamente rilevato.

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

Allo stesso tempo, se l'automazione è configurata correttamente, non importa quanto spesso avvenga la sostituzione delle 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 all'immagine Docker pronta che lo implementa, ha ridotto efficacemente il numero di server con certificati scaduti, migliorando al contempo la sicurezza.

Tuttavia, alcuni provider hanno deciso per motivi tecnici di impostare la durata dei certificati a più di 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 di maggiore gravità 7 giorni prima della scadenza e un messaggio critico se ci sono meno di 24 ore di validità rimaste sul certificato. Questo si applica solo ai certificati originariamente dotati di una lunga durata.

Tali messaggi offrono agli utenti la possibilità di notificare agli operatori DNS l'imminente scadenza del certificato, prima che sia troppo tardi.

Forse, se tutti gli utenti di Firefox avessero ricevuto un tale messaggio, qualcuno l'avrebbe sicuramente segnalato agli sviluppatori e loro non avrebbero permesso la scadenza del certificato. "Non ricordo alcun server DNSCrypt della lista dei server DNS pubblici che abbia avuto un certificato scaduto negli ultimi due o tre anni", scrive Frank Denis. In ogni caso, è probabilmente meglio avvertire prima gli utenti, piuttosto che disabilitare le estensioni senza preavviso.

Come DNSCrypt ha risolto il problema dei certificati scaduti introducendo una scadenza 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