La nuova opzione tls-crypt di OpenVPN

3

Ho letto le nuove opzioni tls-crypt per OpenVPN 2.4, ma non sono sicuro di averlo capito correttamente.

Ho letto le pagine di manuale e la panoramica sulla sicurezza di OpenVPN (che sembra manchi l'opzione tls-crypt ) ed è così che l'ho capita.

In modalità TLS con l'utilizzo di tls-crypt , la connessione tra i due peer viene stabilita, crittografata e autenticata con l'uso del file chiave definito con l'opzione tls-crypt . Quindi i certificati vengono utilizzati per autenticare i peer, in caso di esito positivo le chiavi HMAC e criptare / decrittografare vengono generate e scambiate tramite la connessione TLS stabilita. Tutto ciò avviene ancora tramite la connessione crittografata / autenticata con il file di chiavi tls-crypt .

E la privacy e la protezione aggiuntive contro l'identificazione del tunnel OpenVPN si ottengono perché la connessione TLS del canale di controllo è crittografata dalla chiave tls-crypt statica.

La mia comprensione dell'opzione tls-crypt è corretta?

    
posta SaAtomic 13.02.2017 - 11:09
fonte

1 risposta

2

La risposta tl; dr è: Sì, la tua comprensione è corretta.

In modalità TLS, OpenVPN stabilisce una sessione TLS per eseguire uno scambio di chiavi su quella sessione TLS per ottenere le chiavi utilizzate per crittografare / autenticare i dati del payload del tunnel. Questa è una normale sessione TLS, proprio come se tu avessi aperto un sito Web HTTPS nel tuo browser, tranne che non eseguirà solo l'autenticazione del server ma anche l'autenticazione del client e quindi il client richiederà anche un certificato con chiave privata. / p>

Lo scambio di sessioni TLS su se stesso dovrebbe essere sicuro, dopo tutto è tutto quello che hai quando visiti un sito di banking online, ad esempio, ma questa è solo la teoria. In pratica ogni protocollo ha punti deboli e anche se il protocollo non ne ha, l'implementazione del protocollo può avere anche dei punti deboli. Per rendere ancora più difficile per un utente malintenzionato utilizzare tali punti deboli, è possibile utilizzare tls-crypt, che crittograferà e autentificherà i pacchetti TLS utilizzando le chiavi da un file di chiavi statico. Ora un utente malintenzionato dovrebbe anche mettere le mani su una copia di quel file chiave, altrimenti potrebbe anche conoscere un attacco utilizzabile e avere la possibilità di rimuoverlo (ad esempio, essere in grado di monitorare il traffico o eseguire un attacco man-in-the-middle ) non lo aiuterà.

Con tls-crypt, tutti i dati in esecuzione sul "canale TLS" sono crittografati e autenticati con gli stessi algoritmi dei dati del carico utile del tunnel e con le chiavi dal file delle chiavi statiche. Per i dati del carico utile TLS (autenticazione dell'utente, scambio di chiavi, push di configurazione, ecc.) Questo significa che questi dati vengono crittografati e autenticati due volte. Una volta da tls-crypt e una volta dalla stessa sessione TLS, una stessa sessione TLS viene utilizzata per crittografare e autenticare i dati e, naturalmente, anche se tls-crypt non viene utilizzato, l'autenticazione dell'utente, lo scambio di chiavi e la configurazione push deve essere crittografato e autenticato; altrimenti come sarebbe sicuro l'intero protocollo se non fosse il caso?

Nonostante l'aggiunta di ulteriore sicurezza per l'amministratore paranoico della VPN (anche se, considerando gli orribili bug SSL / TLS trovati negli ultimi due anni, queste persone appaiono molto meno paranoiche come una volta), ha anche un altro effetto positivo: previene un certo tipo di attacchi denial of service. Anche se un utente malintenzionato non può penetrare nella VPN, potrebbe comunque provare ad aprire migliaia di sessioni TLS contemporaneamente. Non essendo in grado di fornire un certificato valido, tutte queste sessioni non riusciranno alla fine, ma fino a quando non sarà così (per impostazione predefinita saranno necessari 60 secondi), un oggetto sessione TLS può utilizzare una quantità significativa di risorse di memoria per un piccolo dispositivo incorporato e l'apertura di migliaia di questi può portare rapidamente un dispositivo del genere. Con tls-crypt, già il primo pacchetto inviato non autentica / decrittografa correttamente e quindi viene immediatamente scartato. In questo caso non è nemmeno necessario creare un oggetto di sessione TLS.

    
risposta data 27.08.2018 - 18:09
fonte

Leggi altre domande sui tag