¿Por qué debo usar easy-rsa cuando uso OpenVPN?

4

Leer esta guía sobre cómo configurar un servidor OpenVPN en una Raspberry Pi, vi esta línea:

  

4) No quieres que nadie que encuentre la dirección de tu servidor VPN pueda conectarse. A continuación, vamos a hacer una clave para la dirección del servidor. Es como mantener cerrada la puerta de su casa.

No estoy seguro de lo que esto significa. Si alguien encuentra mi servidor VPN, necesitaría el nombre de usuario y la contraseña de uno de los usuarios para usar mi VPN de todos modos, ¿cuál es el punto de usar easy-rsa para generar las claves?

Actualmente estoy usando OpenVPN ESXi virtual appliance y no hubo necesidad de configurar nada de esto. ¿Esto significa que mi servidor VPN no es tan seguro como podría ser?

    
pregunta user1301428 13.01.2015 - 17:56
fuente

1 respuesta

10

Debido a que la autenticación basada en claves es mucho más segura que la autenticación basada en nombre de usuario / contraseña porque es casi imposible de fuerza bruta. Por fuerza bruta, quiero decir, prueba todas las posibilidades hasta que encuentres la correcta que te permita iniciar sesión. Generalmente, cuanto más difícil es encontrar la combinación correcta de nombre de usuario y contraseña, más seguro está su sistema.

Por ejemplo:

Utiliza un nombre de usuario como: aH # 398x * t $
Y usas una contraseña como:% ygo74Xg2 &

Así que ambos son 10 caracteres, completamente al azar. Utiliza minúsculas, mayúsculas, números y caracteres especiales, por lo que para cada personaje hay 95 posibilidades (ASCII). Esto haría que la complejidad de utilizar el nombre de usuario 95 ^ 10 sea bruta, que la complejidad sería de 95 ^ 20. Entonces 95 ^ 20 = 3.58 * 10 ^ 39.

Si utiliza la autenticación estándar basada en clave con claves RSA de 2048 bits (2 ^ 2048 aproximadamente es igual a 10 ^ 616), esto significa que si tiene que aplicar fuerza bruta, deberá probar todas las claves RSA posibles. Esto significa efectivamente intentar todos los números primos de tamaño 1024 bit. Puede estimar aproximadamente cuántos números primos hay con la siguiente fórmula: n / ln (n)

2 ^ 1024 / ln (2 ^ 1024) aproximadamente es igual a 10 ^ 310.

Por lo tanto, si un atacante quiere atacar su sistema, tendrá que utilizar la fuerza bruta en 10 ^ 39 o 10 ^ 310 posibilidades. Digamos que un atacante es capaz de un ataque sin conexión, entonces una tarjeta de video promedio ya es capaz de intentar 10 billones de posibilidades por segundo. Muy a menudo es posible averiguar cuál es el nombre de usuario, por lo que solo tendrá que utilizar las contraseñas de bruteforce 10 ^ 19.

10 ^ 19/10 ^ 10 = 10 ^ 9 segundos = 31 años con una computadora de escritorio promedio.

Por lo tanto, es factible que un atacante resuelva esto en poco tiempo si tiene suficientes computadoras disponibles.

Pero 10 ^ 310 es casi imposible para la fuerza bruta porque el número es tan grande. Para obtener la misma seguridad, necesitaría una contraseña aleatoria de aproximadamente 156 caracteres. (10 ^ 310 = 95 ^ x)

Esta es la razón por la que casi siempre se aconsejan claves para vpn / ssh. Se encuentra en un nivel de seguridad completamente diferente al de las contraseñas.

EasyRSA es una herramienta que se incluye con openvpn para facilitar la generación de claves RSA. Pero las claves RSA generadas con OpenSSL u otras herramientas de cifrado también funcionarán perfectamente bien con openvpn.

Esta respuesta de stackoverflow explica un poco más la cantidad de números primos en las claves RSA: enlace

Una nota lateral más precisa matemáticamente: 10 ^ 310 es simplemente el número de números primos en ese espacio clave. Hay algoritmos más eficientes que simplemente la fuerza bruta que intenta todos los números primos. El método de factorización más rápido conocido actualmente es GNFS .

exp ((((64/9) ^ (1/3)) (log (2 ^ 2048)) ^ (1/3) (log (log (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

Entonces, para un número primo de 2048 bits, en lugar de tener una complejidad de 1029 bits (2 ^ 1029 = 10 ^ 310), solo tendrías que atacar 116.8 bits.

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

Entonces, una contraseña aleatoria de 59 caracteres tendría una seguridad equivalente a una clave RSA de 2048 bits con los métodos de factorización actuales.

    
respondido por el sukosevato 13.01.2015 - 20:17
fuente

Lea otras preguntas en las etiquetas