OpenVPN

Funcionamiento de OpenVPN

Indice

Qué es la criptografía

Qué es una red privada virtual

Qué es OpenVPN

Claves privadas y públicas

Conclusiones

Referencias

Contenido

En esta nota voy a explicarles a grandes rasgos qué es la
criptografía, para qué sirve, y cómo se usa para crear una red privada virtual – una red que solamente pueden usar las personas autorizadas y que encripta los datos de manera que nadie, nadie, nadie, los pueda ver.

Qué es la criptografía

La criptografía es la práctica y el estudio de ocultar
información. Existe desde hace muchísimo tiempo. Hasta los romanos ya sabían la importancia de mandar mensajes secretos y habían inventado mecanismos ingeniosos
para escribir un mensaje y que no pueda ser entendido fácilmente. Con el advenimiento de las computadoras, se han mejorado mucho las técnicas de criptografía, se inventaron montones de algoritmos y existen muchos estudios académicos y proyectos comerciales de criptografía, todos con el objetivo de hacer que se pueda transmitir información que permanezca secreta y pueda ser conocida solamente por las personas autorizadas.

La criptografía se basa en tomar los datos originales y aplicarles una función para obtener datos codificados. La idea principal es que esta función es tal que es muy difícil calcular su función inversa, o sea, si bien se podría llegar a hacer un procedimiento matemático para leer datos codificados y obtener los datos originales, hacer ese procedimiento sin conocer la función que se usó originalmente puede tomar demasiado tiempo (siglos,milenios) para el poder de cá
lculo de las computadoras actuales. La criptografía actual, por ejemplo, podría quedar obsoleta al inventarse computadoras muchísimo más eficientes que las actuales, pero también, con ayuda de estas computadoras, se podrían calcular funciones muchísimo más complejas para que, otra vez, no sea práctico intentar calcular una función para descubrir los datos originales.

Qué es una red privada virtual

Una red privada virtual es una red segura que se construye sobre otra red que es insegura, por ejemplo, internet. La red segura usa criptografía para brindar seguridad, tanto para verificar que la persona que se conecta es quien dice ser, como para codificar la información de manera que no pueda ser entendida por extraños. Existen muchas implementaciones de red privada virtual
(más conocida por sus siglas en inglés "VPN", Virtual Private
Network), cada una tiene distintas ventajas y desventajas. Hay implementaciones que son terriblemente seguras pero que son tan difíciles de poner en práctica que se vuelven molestas. La solución que comentaré en esta nota es una solución basada en SSL – es la misma tecnología que usan los sitios web de
comercio electrónico, segura y suficientemente fácil de usar como para que sea práctica.

Qué es OpenVPN

OpenVPN es un software de red privada virtual de código abierto – es decir, su código fuente, su "Receta" de cómo funciona, está disponible en internet para que todos la estudien, o modifiquen de acuerdo a sus necesidades. Utiliza SSL, que como ya dije, es la misma técnica que usan los sitios web de comercio electrónico, que se basa en claves privadas y públicas.

En circunstancias normales, un programa por
ejemplo el Internet Explorer, vive en una computadora cliente y transmite sus datos a través de una conexión a internet. Del otro lado, un servidor recibe, y un software interpreta los datos enviados y envía la respuesta, la cual es a su vez mostrada en el explorador.

Diagrama de una red normal

 Con OpenVPN, el explorador se comunica con una conexión llamada "TUN", que lo que hace es enviar los datos recibidos a una aplicación, en este caso, el OpenVPN. Este se encarga de codificar los datos y transmitirlos a través de internet. Del otro lado, otro programa OpenVPN recibe los datos, los decodifica, y los transmite a otra conexión TUN. De esa conexión es
de donde los servidores finalmente recogen los datos y envían sus respuestas. Como se puede apreciar, todo el sistema de codificación y decodificación es "invisible" para las aplicaciones. La aplicación
del cliente solamente sabe que tiene que mandar sus datos a través de la conexión "10.10.0.10", y la aplicación del servidor recibe de la conexión "10.10.0.1". Todo lo demás es manejado por el sistema operativo y por la aplicación OpenVPN.

Diagrama red VPN

En el esquema SSL, cada uno de los clientes tiene un certificado que es generado por una "Autoridad de Certificación", que asegura la validez de
los certificados. En el caso de los sitios web de comercio electrónico, estas autoridades son empresas que se ocupan de vender ese servicio, como por ejemplo VeriSign, y luego, cada Internet Explorer del mundo tiene incorporado en su sistema de validación que todos los certificados
"firmados" por VeriSign son "confiables", y que el sitio es realmente quien dice ser. También se puede crear una autoridad de certificación propia, el sistema OpenVPN no requiere un certificdo de una autoridad de certificación "oficial", basta con crear una autoridad propia y copiar el certificado a todos los clientes que confiarán en esa autoridad.
Cada computadora cliente tiene instalado el certificado de la  autoridad de certificación, que se usó para firmar los
certificados. La confianza se asegura por el secreto de la clave de la autoridad de certificación, y por el hecho de que los certificados de cada cliente y del
servidor son examinados para ver si cuentan con la firma de la autoridad de certificación.

Claves Privadas y públicas

La infraestructura de claves públicas es un sistema muy ingenioso para asegurar que las claves que se usan para codificar y decodificar estén separadas, y nunca se transmita una clave que sirva para decodificar.

En el proceso de generación de las claves, la clave privada y la pública se generan al mismo tiempo. La clave pública está contenida en un certificado, que dice quién es el dueño de la clave, la empresa a la que pertenece, y su dirección de e-mail. Este certificado está firmado por la autoridad de certificación. Esa firma se puede calcular con la clave pública de la autoridad, que como ya dijimos, todos los clientes conocen, y así verificar la validez del certificado.

Interacciones en OpenVPN

En este dibujo se observa el intercambio de mensajes entre el servidor y el cliente. Cada cliente tiene guardado el certificado de la autoridad de certificación, que es la autoridad en que confían para firmar los certificados. Además se tienen la clave pública y privada, y el certificado que contiene la clave pública, firmada por la autoridad de certificación. Cuando se inicia la conexión, el cliente envía su certificado. El servidor verifica el certificado comparando la firma con la de la autoridad de certificación, que viene en su certificado. Si coinciden, admite el certificado como válido y permite que continúe la comunicación. El cliente a su vez hace lo mismo, verificando el certificado que
le envía el servidor. Esto permite al servidor verificar la identidad del cliente, y permite al cliente verificar la identidad del servidor. Luego, al enviar datos, los codifica con la clave pública del servidor que
recibió en el certificado. El servidor, los decodifica con la clave privada que tiene guardada. Para enviar datos al cliente, codifica esos datos con la clave pública del cliente que recibió en el certificado, y el cliente decodifica esos datos con su clave privada.

Haciendo una analogía con un sistema de envío de correspondencia, una persona, digamos Alice, le da a otra, llamémoslo Bob, un candado abierto, del cual Alice es la única que tiene la llave. Bob escribe su mensaje, lo guarda en una caja, y la cierra con ese candado. La caja cerrada con candado solamente
puede ser abierta por Alice, que es la que tiene la llave.

Conclusiones

OpenVPN es un software seguro, práctico,
y que permite dar seguridad a una comunicación a través de una red insegura como Internet. La infraestructura declaves públicas permite que se pueda codificar datos y decodificarlos sin que sea posible que un extraño pueda escuchar la comunicación, tanto en la verificación de la identidad como en la transmisión de datos.

1 Comment

Leave a Reply

Your email address will not be published.


*