1. Introducción
Hoy en día, Internet es la herramienta más utilizada a nivel mundial debido al auge de los servicios y transacciones virtuales; se han desarrollado e incorporado una serie de elementos que contribuyen directamente al control de la seguridad, destacándose en ella los mecanismos seguros que son implementados para proveer confidencialidad, integridad y disponibilidad, brindando confianza a los clientes que se benefician de estos servicios. No obstante, las amenazas son cada vez más frecuentes y complejas, en este sentido los distintos protocolos establecidos para las transacciones web están basados en tecnología antigua, a pesar de haberse actualizado con mejoras, es posible que, estas no aporten el resultado esperado en toda la dimensión requerida de seguridad y sea necesario estudiar nuevos mecanismos de seguridad para las transacciones web.
Para este nivel de necesidades, el protocolo de seguridad TLS (Transport Layer Security) y SSL (Secure Socket Layer) son protocolos criptográficos que operan por debajo de la capa de aplicación y proporcionan cifrado de extremo a extremo a la seguridad de un gran número de protocolos, incluidos HTTPS, IMAPS, SMTP (Ordean & Giurgiu, 2010)(Durumeric & Kasten, 2013). SSL creada por la empresa Netscape Communication, famosa por la creación del navegador web Netscape Navigator, logró con SSL estandarizar un procedimiento para proporcionar comunicaciones seguras en la red (Clark & Van Oorschot, 2013)(Mu, Zhang, Du, & Lin, 2011).
Actualmente no existen estudios previos registrados en bases de datos científicas sobre el uso de certificados digitales gratuitos, por lo que el aporte del presente artículo es de gran importancia. Se plantea la siguiente pregunta investigativa ¿Se puede asegurar la trasmisión de datos con los certificados digitales SSL/TLS gratuitos en los servidores de aplicación?, para dar respuesta a esta pregunta se realiza las siguientes fases: Una fase de análisis en el que se determina las amenazas más comunes en los servidores de aplicación utilizando la herramienta Kali Linux v2.0; se determina las características técnicas que debe cumplir un certificado digital para que sea seguro, en base a una revisión sistemática basada en la metodología propuesta por Bárbara Kitchenham; y una fase de implementación en el que se selecciona e implementa el certificado digital basado en una comparativa de las Autoridades Certificadoras (AC) gratuitas con los parámetros obtenidos en la fase de análisis. Se comprueba las vulnerabilidades contrarrestadas. El escenario de prueba son los servidores de aplicación de la Universidad Nacional de Loja.
2. Metodología
En todo proceso investigativo es necesario seguir una secuencia de fases que conforman una metodología con el fin de ejecutar ordenadamente los procesos, la cual se compone de tres fases: análisis, diseño e implementación.
Análisis.- Se utiliza la herramienta Kali Linux v2.0 con el fin de analizar, explotar y comprobar las amenazas existentes dentro del servidor de aplicaciones, también se realiza una revisión sistemática de literatura aplicando la metodología propuesta de acuerdo el artículo de Bárbara Kitchenham (Kitchenham, 2004), con el fin de obtener las características relevantes que debe cumplir un certificado digital para que sea seguro.
Diseño.- Se selecciona la Autoridad Certificadora (AC) a utilizar, esta debe cumplir con aspectos claves como las características relevantes que debe cumplir un certificado digital para que sea seguro y cubrir las vulnerabilidades encontradas.
Implementación. - Se realiza la implementación de la seguridad con los certificados emitidos por la AC propuesta en la fase de diseño, realizando las pruebas respectivas de las mismas.
3. Resultados
Se presenta el proceso para determinar las vulnerabilidades, características y selección de la Autoridad Certificadora (AC) con el fin de implementar los certificados digitales SSL/TLS gratuitos.
3.1. Análisis de Vulnerabilidades
En esta sección se determina las debilidades contra los servidores de aplicación, analizando sobre un servidor web público de pruebas brindado por la Universidad Nacional de Loja, cumpliendo la estructura mostrada en la Figura 1.
3.1.1. Selección de Herramienta
Para poder realizar la explotación de amenazas, es necesario tomar las herramientas adecuadas, como se muestra en la Tabla 1, la cual se realiza una comparativa especificando criterios como la fácil instalación de la herramienta, el tipo de licencia, el tipo de función que cumple y el consumo de recursos que realiza.
Se selecciona Kali Linux v2.0, como una de las mejoras herramientas para la fase de explotación, debido a sus principales características en la que permite incorporar herramientas extras para detectar y explotar las amenazas.
3.1.2. Explotación de vulnerabilidades
Se procede a determinar las vulnerabilidades en los servidores de aplicación mediante la herramienta Kali Linux v2.0.
3.1.2.1. Hombre en el medio (Main he Middle)
Según el autor M. Markovi en su artículo de investigación define “Main the middle como su nombre indica, un ataque de hombre en el medio ocurre cuando alguien entre dos usuarios intercepta la comunicación supervisando, capturando y controlando la comunicación sin el conocimiento de los usuarios. Por ejemplo, un agresor puede negociar claves de cifrado con ambos usuarios y cada usuario envía datos cifrados al atacante, que puede descifrar los datos con las claves públicas y privadas” (Markovi, 2007). La mayoría de los protocolos criptográficos incluyen alguna forma de autentificación de extremos específicamente para prevenir los ataques Hombre en el medio (siglas en ingles MITM), un ejemplo sería SSL que autentica al servidor web mediante una autoridad de certificación de confianza.
Para la ejecución del ataque y comprobar la existencia de la amenaza en la capa de transporte, se la realiza mediante las herramientas como SslStrip, que permite filtrar todo acceso por HTTPS a HTTP y Ettercap en la que se intercepta los paquetes seleccionando la tarjeta de red, ambas vienen integradas en Kali Linux v2.0.
Como se puede notar en la Figura 2, se captura el usuario y clave del sitio “estudiantes.unl.edu.ec”, mostrando una gran deficiencia en el cifrado de datos al inicio de sesión de usuarios.
3.1.2.2. Denegación de Servicios (DoS)
De acuerdo al autor M. Markovi en su artículo de investigación define “A diferencia de muchos otros ataques, la denegación de servicio proviene de enviar datos no validos a aplicaciones o redes, haciendo que las aplicaciones y los servicios cierren o funcionen de manera anormal”(Markovi, 2007). Enviar una inundación de paquetes se lo realiza hasta que se apague un servicio o una red entera bloqueando el tráfico, lo que resulta en una pérdida de accesos a los recursos de red por parte de los usuarios.
Mediante la utilización de la herramienta Slowloris que permite implementar en Kali Linux 2.0, se comprueba que existen servidores públicos que son vulnerables a este tipo de ataques. Es necesario simular el ataque con múltiples peticiones hacia un servicio, para ello utilizamos la herramienta Slowloris el mismo que permite enviar múltiples peticiones por milisegundo, simulando a varias peticiones en diferentes maquinas; el tiempo que colapsa el servidor dependerá del hardware computacional del servidor. La Figura 3 muestra el sitio web colapsado.
3.1.2.3. Suplantación de Identidad (Phishing)
En su artículo el autor M. P. Subías define “El Phishing es el término utilizado para un fraude en Internet, consistente en falsificar una página web y lanzar un e-mail masivo para ver si el receptor de ese correo “pica” y entra en la página falsa creyendo que es la original y suministra sus credenciales de acceso, las cuales caen inmediatamente en manos del defraudador” (Subías, n.d.).
Para la ejecución y validación de la amenaza, se utiliza la herramienta Setoolkit y Ettercap que vienen integradas en Kali Linux 2.0 y provee mayor eficacia en la intercepción de las peticiones DNS.
Para la ejecución del ataque Phishing, se inicia presentando algunas opciones de diferentes métodos con los que cuenta la herramienta Setoolkit, como se muestra en la Figura 4, seleccionando la opción de Ataques de Ingeniería Social, que es el grupo al cual pertenece el ataque denominado Phishing. Luego seleccionamos la opcion 2 (Website Attack Vectors), y opción 3 (Credential Harvester Attack Method), con ello obtenemos el siguiente resultado mostrado en la figura 5.
Seleccionamos “Site Cloner” e ingresamos la dirección IP de la maquina atacante y el dominio al cual se va a clonar, como se muestra en la Figura 6.
Para poder apreciar la web clonada, se introduce en el navegador la dirección IP de la maquina atacante, esta página clonada es idéntica a la real, por lo que es más sencillo engañar a los usuarios que desconozcan de este tipo de ataques, como se muestra en la Figura 7.
Después de haber clonado el sitio web, para hacerlo más efectivo, con la herramienta Ettercap se atrapa las solicitudes DNS de la víctima y así cuando se realice la conexión al dominio, se redirigirá la petición a la página falsa que es similar a la real.
Todo intento de inicio de sesión será capturado por la maquina atacante. Es una manera sencilla de ejecutar esta vulnerabilidad ya que el usuario puede ser fácilmente engañado, capturando sus credenciales de acceso a los sitios web de la institución.
3.1.2.4. Descifrado de Contraseñas
El autor M. Markovi en su artículo de investigación define “El acceso a los recursos de una computadora y de la red se determina mediante un nombre de usuario y una contraseña. Las versiones anteriores de los componentes del sistema operativo no siempre protegían la información de identidad, ya que se pasaba a través de la red para su validación. Esto podría permitir que un espía determine un nombre de usuario y una contraseña válidos y los use para obtener acceso a la red haciéndose pasar por un usuario válido”(Markovi, 2007). Los ataques de descifrado de contraseñas por lo general se realizan bajo protocolos como SSH, HTTP, FTP o sobre todo acceso que tenga un sistema de login de usuarios que no se ha controlado en base al número de intentos por acceder a su sistema web.
Para la ejecución de esta técnica, se requiere de un diccionario de datos teniendo en cuenta las combinaciones de letras, números y signos, con el fin de efectuar las combinaciones necesarias, hasta descubrir usuarios y contraseñas correctas.
Como se puede observar en la Figura 8 el ataque fue efectivo capturando claves con nombre de usuario de un servidor como se muestra en la línea de color verde, también se puede visualizar varios intentos fallidos obtenidos al momento que la herramienta Hydra comienza a ejecutar múltiples combinaciones como se muestra en las líneas de color Gris. Se recalca que el tiempo de duración del ataque puede tomar varias horas o días.
3.2. Selección del Certificado Digital
Se realiza la comparativa de las autoridades certificadoras gratuitas como Let’s Encrypt, Start SSL y GoDaddy, las características técnicas tomadas en cuenta para la comparativa se obtuvo de dos partes, la primera se basó en una revisión sistemática de literatura SRL (Enrique et al., n.d.) y la segunda se basó en proformas realizadas a las autoridades certificadoras de paga como: Symantec, GeoTrust y Thawte.
Como se puede observar en la Tabla 2, de acuerdo a las características analizadas se deduce que la autoridad certificadora idónea para la utilización de los certificados digitales gratuitos es con la AC de Let’s Encrypt ya que permite actualizar constantemente sus certificados a diferencia de las otras dos AC que solo ofrecen sus certificados gratuitos por un año, además la multiplicidad que ofrece nos provee la facilidad de generar un certificado multi-dominio y por último es soportada por dispositivos móviles.
3.3. Implementación de seguridad con los certificados digitales
3.3.1. Proceso para la implementación de los certificados SSL/TLS en los servidores web
Se especifica los pasos para la implementación de los certificados digitales en servidores de aplicación apache y nginx.
3.3.1.1. Proceso de implementación de certificados SSL/TLS en Apache
Para implementar los certificados digitales en servidor web sobre apache, se realiza los siguientes pasos:
Actualizar el sistema operativo existen con el fin de evitar conflictos de incompatibilidad por desactualización de paquetes por parte del servidor.
Instalar la extensión Git con el fin de clonar desde un repositorio web el proyecto Let’s Encrypt hacia el servidor web local.
Clonar desde el repositorio web, el cliente de Let’s Encrypt con la extensión Git
Generar los certificados digitales con el nombre del dominio y correo del administrador del sitio web.
Generar un grupo Diffie-Hellman seguro para el intercambio de claves.
Configurar el servidor web para implementar los certificados digitales SSL/TLS.
Comprobar la validez del certificado digital SSL/TLS
3.3.1.2. Proceso de implementación de certificados SSL/TLS en Nginx
Para implementar los certificados digitales en servidor web sobre nginx, se realiza los siguientes pasos:
Actualizar el sistema operativo existen con el fin de evitar conflictos de incompatibilidad por desactualización de paquetes por parte del servidor.
Instalar la extensión Git con el fin de clonar desde un repositorio web el proyecto Let’s Encrypt hacia el servidor web local.
Implementar el cliente certbot para la implementación de los certificados digitales con Let’s Encrypt.
Generar los certificados digitales con el nombre del dominio y correo del administrador del sitio web con el cliente certbot.
Configurar el servidor web para implementar los certificados digitales SSL/TLS.
Configurar la seguridad adicional para robustecer el servidor web
Comprobar la validez del certificado digital SSL/TLS
Después de haber implementado los certificados digitales SSL/TLS, se obtiene el candado verde de navegación por HTTPS, como se muestra en la siguiente Figura 9.
Como se puede observar el certificado digital SSL/TLS del sitio muestra los siguientes aspectos como: el nombre del sitio web para el cual fue emitido, la AC que lo emite y por último la fecha de validez del certificado, que por lo general es de tres meses hasta su próxima actualización.
4. Discusión
Los resultados obtenidos dan respuesta positiva a la pregunta principal de investigación demostrando que se puede brindar seguridad con la utilización de los certificados digitales gratuitos emitidos por Let's Encrypt. Si bien los límites del presente artículo investigativo abarcan hasta una pequeña parte en el ámbito de seguridad de la información en la web, con la configuración e implementación de los certificados digitales SSL/TLS, se comprueba que se puede dar comunicación segura con certificados gratuitos, contrarrestando ataques como hombre en el medio (main the middle), phishing.
Cabe indicar que el ataque DoS y de Fuerza bruta no fue contrarrestado, para esto se requiere certificados de paga como Symantec.
Como se mencionó en la sección de resultados los ataques que han sido explotados se contrastan con varios autores, donde definen los ataques más comunes que se realizan en los servidores de aplicación, como se muestra en la Tabla 3.
Las amenazas coinciden con las explotadas mostradas en las figuras 2, 3, 7 y 8 como las más comunes existentes dentro la comunicación cliente-servidor.
De los resultados obtenidos en esta investigación, se puede deducir que para la selección del certificado digital, como lo indica la tabla 2, debe tener las siguientes características: robustez de Cifrado no menos de 2048 bits, utilizar el estándar X.509; y los certificados SSL/TLS V 1.2 mejorado. Aunque algunos sitios web públicos utilizan el algoritmo SHA-1, en la actualidad este algoritmo es obsoleto por sus bits de cifrado que son menores a 160 bits, mientras que el algoritmo SHA-2 ofrece sus bits de cifrado mayor a 160.
Otro aspecto a considerar en la selección del certificado digital es el tipo de validación y puede ser: tipo OV (validación de la Organización), DV (Validación de Dominio) y EV (Validación Extendida). Siendo los certificados SSL EV de mejor seguridad por su tipo de tipo de emisión y validación que va más allá del dominio sino también de la organización, brindado más confianza al usuario que visita el sitio web.
Para la utilización de los Certificados SSL/TLS y su correcto funcionamiento se deben considerar aspectos como: los servidores deben admitir las extensión SSL/TLS; validar la fecha de caducidad de los certificados digitales; ser emitido por una AC de confianza para ser reconocida por los navegadores web y evitar que se revoquen los certificados por un aviso de incompatibilidad de dominio.
5. Conclusiones
Al usar certificados SSL/TLS contrarresta ataques como: hombre en el medio (main in the middle), phishing, ataques con diccionario de datos, lo que proporciona a los servidores confidencialidad, integridad y autenticidad. SSL/TLS no ofrece seguridad en la disponibilidad del Servidor especialmente en ataques Negación de servicio (DoS) y otros ataques como XSS Cross-Site Scripting, backdoor.
Para tener una conexión segura con los certificados digitales SSL/TLS se deben cumplir con ciertas características claves que son: primero utilizar el algoritmo SHA-2 e ignorar algoritmos de cifrado obsoletos, segundo la robustez del cifrado no tiene que ser menor a 2048 bits, como tercera característica se tiene que utilizar el certificado estándar X.509, como cuarta característica se debe utilizar las versiones más actuales de los certificados digitales que son SSL/TLS V 1.2.
Al realizar la comparativa de ACs, se determina la utilización de los certificados SSL/TLS emitidos por Let’s Encrypt, los cuales cumplen con los requerimientos de seguridad como son: el SHA-2, 2048 bits de cifrado, certificado estándar X.509 y SSL/TLS V 1.2 y permite la actualización del certificado cada tres meses, siendo una de las mayores ventajas con respecto a otras Entidades certificadoras.
Una desventaja de los certificados gratuitos con Let’s Encrypt es que solo emite un tipo de archivo con extensión DV mientras que otras ACs de paga como Thawte, emiten sus certificados con los tres tipos de extensiones como son OV, DV y EV, ofreciendo mejor seguridad al validar la organización(OV) y el dominio(DV).
Para la implementación de los certificados digitales en el servidor Apache se utilizó el cliente de Let’s Encrypt por defecto, mientras que para Nginx se utilizó el cliente certbot que permitió implementar estos certificados.
6. Recomendaciones
Utilizar los certificados digitales SSL/TLS gratuitos emitidos por Let’s Encrypt para plataformas que manejan informaciones educativas, PYMEs, y empresas que posean servidores en zonas DMZ y no cuenten con un presupuesto para la adquisición certificados digitales pagados.
Se debe realizar un script en el servidor de aplicación para facilitar la actualización de los certificados digitales SSL/TLS gratuitos emitidos por Let’s Encrypt.
Ampliar el estudio con el fin de testear de manera más profunda a los certificados digitales SSL/TLS gratuitos, en ambientes de empresas bancarias.