Perché dovrei usare easy-rsa quando uso OpenVPN?

4

Leggendo questa guida su come impostare un server OpenVPN su un Raspberry Pi, ho visto questa linea:

4) You don’t want anyone who finds your VPN server address to be able to connect. So next, we’re going to make a key for the server address. It’s just like keeping the door to your house locked.

Non sono sicuro di cosa significhi. Se qualcuno trova il mio server VPN, avrebbe bisogno del nome utente e della password di uno degli utenti per utilizzare comunque la mia VPN, quindi che senso ha usare easy-rsa per generare le chiavi?

Attualmente sto usando il appliance virtuale OpenVPN ESXi e non è stato necessario configurare nulla di tutto ciò. Questo significa che il mio server VPN non è sicuro come potrebbe essere?

    
posta user1301428 13.01.2015 - 17:56
fonte

1 risposta

10

Perché l'autenticazione basata su chiave è molto più sicura dell'autenticazione basata su nome utente / password perché è quasi impossibile da bruteforce. Con bruteforce intendo, prova tutte le possibilità fino a trovare quella corretta che ti consente di accedere. Generalmente più è difficile trovare la giusta combinazione nome utente / password, più sicuro è il tuo sistema.

Ad esempio:

Usi un nome utente come: aH # 398x * t $
E usi una password come:% ygo74Xg2 &

Quindi entrambi sono 10 caratteri, completamente casuali. Usi lettere minuscole, maiuscole, numeri e caratteri speciali, quindi per ogni carattere ci sono 95 possibilità (ASCII). Ciò renderebbe la complessità di bruteforce il nome utente 95 ^ 10, per rinforzare sia il nome utente che la password la complessità sarebbe 95 ^ 20. Quindi 95 ^ 20 = 3,58 * 10 ^ 39.

Se si utilizza l'autenticazione basata su chiave standard con chiavi RSA a 2048 bit (2 ^ 2048 equivale approssimativamente a 10 ^ 616), questo significa che se si deve eseguire il bruteforce, è necessario provare tutte le possibili chiavi RSA. Ciò significa efficacemente provare tutti i numeri primi di dimensione 1024 bit. Puoi stimare approssimativamente quanti numeri primi ci sono con la seguente formula: n / ln (n)

2 ^ 1024 / ln (2 ^ 1024) equivale approssimativamente a 10 ^ 310.

Quindi, se un utente malintenzionato vuole attaccare il tuo sistema, avrebbe bisogno di potenziare le possibilità 10 ^ 39 o 10 ^ 310. Supponiamo che un attaccante sia in grado di attaccare offline, quindi un videocard abbastanza normale è già in grado di provare 10 miliardi di possibilità al secondo. Molto spesso è possibile scoprire quale sia il nome utente, quindi avrebbe solo bisogno di bruteforce 10 ^ 19 password.

10 ^ 19/10 ^ 10 = 10 ^ 9 secondi = 31 anni con un computer desktop medio.

Quindi è possibile che un aggressore rompa questo in un breve lasso di tempo se ha abbastanza computer disponibili.

Ma il 10 ^ 310 è quasi impossibile alla forza bruta perché il numero è così grande. Per ottenere la stessa sicurezza avresti bisogno di una password casuale lunga circa 156 caratteri. (10 ^ 310 = 95 ^ x)

Quindi questo è il motivo per cui quasi sempre si consigliano le chiavi per vpn / ssh. È su un livello di sicurezza completamente diverso rispetto alle password.

EasyRSA è uno strumento incluso con openvpn per rendere più facile la generazione di chiavi RSA. Ma le chiavi RSA generate con OpenSSL o altri strumenti di crittografia funzioneranno perfettamente anche con openvpn.

Questa risposta StackOverflow spiega la quantità di numeri primi nelle chiavi RSA ancora: link

Una nota di lato più matematicamente precisa: 10 ^ 310 è semplicemente il numero di numeri primi in quello spazio chiave. Esistono algoritmi più efficienti rispetto alla mera forza bruta che cercano tutti i numeri primi. Il metodo di factoring attualmente più veloce è GNFS .

exp (((64/9) ^ (1/3)) (log (2 ^ 2048)) ^ (1/3) (log (registro (2 ^ 2048)) ^ (2/3)))

512: 63,9 bit
1024: 86,7 bit
2048: 116,8 bit
4096: 156,5 bit
8192: 208,4 bit
16384: 276,5 bit

Quindi per un numero primo a 2048 bit, invece di avere una complessità di 1029 bit (2 ^ 1029 = 10 ^ 310), dovresti solo attaccare 116.8 bit.

10 ^ 116.8 = 95 ^ x - > x = 59

Quindi una password casuale di 59 caratteri avrebbe una sicurezza equivalente a una chiave RSA a 2048 bit con i metodi di fattorizzazione correnti.

    
risposta data 13.01.2015 - 20:17
fonte

Leggi altre domande sui tag