Está en la página 1de 7

INTRODUCCIN. HTTPS. HTTPS es la versin segura del protocolo HTTP, inventada en 1996 por Netscape Communications Corporation.

No es un protocolo separado de HTTP. Se trata de una combinacin de este ltimo con un mecanismo de transporte SSL o TLS, garantizando una proteccin razonable durante la comunicacin cliente-servidor. Es ampliamente utilizado en la red mundial (WWW o World Wide Web) para comunicaciones como transacciones bancarias y pago de bienes y servicios. El servicio utiliza el puerto 443 por TCP para realizar las comunicaciones (la comunicacin normal para HTTP utiliza el 80 por TCP). El esquema URI (Uniform Resource Identifier o Identificador Uniforme de Recursos) es, comparando sintaxis, idntico al de HTTP (http:), utilizndose como https: seguido del subconjunto denominado URL (Uniform Resource Locator o Localizador Uniforme de Recursos). Ejemplo: https://www.abraham.home.net/

Acerca de RSA. RSA, acrnimo de los apellidos de sus autores, Ron Rivest, Adi Shamir y Len Adleman, es un algoritmo para el ciframiento de claves pblicas que fue publicado en 1977, patentado en EE.UU. en 1983 por el Instituto Tecnolgico de Michigan (MIT). RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrnico. RSA es el primer y ms utilizado algoritmo de este tipo y es vlido tanto para cifrar como para firmar digitalmente. La seguridad de este algoritmo radica en el problema de la factorizacin de nmeros enteros. Los mensajes enviados se representan mediante nmeros, y el funcionamiento se basa en el producto, conocido, de dos nmeros primos grandes elegidos al azar y mantenidos en secreto. Actualmente estos primos son del orden de 10200, y se prev que su tamao aumente con el aumento de la capacidad de clculo de los ordenadores. Como en todo sistema de clave pblica, cada usuario posee dos claves de cifrado: una pblica y otra privada. Cuando se quiere enviar un mensaje, el emisor busca la clave pblica del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada. Acerca de SSL

SSL proporciona autenticacin y privacidad de la informacin entre extremos sobre Internet mediante el uso de criptografa. Habitualmente, slo el servidor es autenticado (es decir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar; la autenticacin mutua requiere un despliegue de z SSL implica una serie de fases bsicas: Negociar entre las partes el algoritmo que se usar en la comunicacin Intercambio de claves pblicas y autenticacin basada en certificados digitales Cifrado del trfico basado en cifrado simtrico

Durante la primera fase, el cliente y el servidor negocian qu algoritmos criptogrficos se van a usar. Cmo funciona El protocolo SSL intercambia registros; opcionalmente, cada registro puede ser comprimido, cifrado y empaquetado con un cdigo de autenticacin del mensaje (MAC). Cada registro tiene un campo de content_type que especifica el protocolo de nivel superior que se est usando. Cuando se inicia la conexin, el nivel de registro encapsula otro protocolo, el protocolo handshake, que tiene el content_type 22. El cliente enva y recibe varias estructuras handshake:

Enva un mensaje ClientHello especificando una lista de conjunto de cifrados, mtodos de compresin y la versin del protocolo SSL ms alta permitida. ste tambin enva bytes aleatorios que sern usados ms tarde (llamados Challenge de Cliente o Reto). Adems puede incluir el identificador de la sesin. Despus, recibe un registro ServerHello, en el que el servidor elige los parmetros de conexin a partir de las opciones ofertadas con anterioridad por el cliente. Cuando los parmetros de la conexin son conocidos, cliente y servidor intercambian certificados (dependiendo de las claves pblicas de cifrado seleccionadas). Estos certificados son actualmente X.509, pero hay tambin un borrador especificando el uso de certificados basados en OpenPGP. El servidor puede requerir un certificado al cliente, para que la conexin sea mutuamente autenticada. Cliente y servidor negocian una clave secreta (simtrica) comn llamada master secret, posiblemente usando el resultado de un intercambio Diffie-Hellman, o simplemente cifrando una clave secreta con una clave pblica que es descifrada con la clave privada de cada uno. Todos los datos de claves restantes son derivados a partir de este master secret

(y los valores aleatorios generados en el cliente y el servidor), que son pasados a travs una funcin pseudoaleatoria cuidadosamente elegida. TLS/SSL poseen una variedad de medidas de seguridad:

Numerando todos los registros y usando el nmero de secuencia en el MAC. Usando un resumen de mensaje mejorado con una clave (de forma que solo con dicha clave se pueda comprobar el MAC). Proteccin contra varios ataques conocidos (incluyendo ataques man-in-the-middle), como los que implican un degradado del protocolo a versiones previas (por tanto, menos seguras), o conjuntos de cifrados ms dbiles. El mensaje que finaliza el protocolo handshake (Finished) enva un hash de todos los datos intercambiados y vistos por ambas partes. La funcin pseudo aleatoria divide los datos de entrada en 2 mitades y las procesa con algoritmos hash diferentes (MD5 y SHA), despus realiza sobre ellos una operacin XOR. De esta forma se protege a s mismo de la eventualidad de que alguno de estos algoritmos se revelen vulnerables en el futuro.

Acerca de OpenSSL. OpenSSL es una implementacin libre, de cdigo abierto, de los protocolos SSL (Secure Sockets Layer o Nivel de Zcalo Seguro) y TLS (Transport Layer Security, o Seguridad para Nivel de Transporte). Est basado sobre el extinto proyecto SSLeay, iniciado por Eric Young y Tim Hudson, hasta que stos comenzaron a trabajar para la divisin de seguridad de EMC Corporation. Acerca de mod_ssl. Mod_ssl es un mdulo para el servidor HTTP Apache, el cual provee soporte para SSL versiones 2 y 3 y TLS versin 1. Es una contribucin de Ralf S. Engeschall, derivado del trabajo de Ben Laurie. INSTALACIN Es necesario disponer de una direccin IP pblica para cada sitio de red virtual que se quiera configurar con soporte SSL/TLS. Debido a la naturaleza de los protocolos SSL y TLS, no es posible utilizar mltiples sitios de red virtuales con soporte SSL/TLS utilizando una misma direccin IP. Cada certificado utilizado requerir una direccin IP independiente en el anfitrin virtual. El paquete mod_ssl instala el fichero /etc/httpd/conf.d/ssl.conf, mismo que no es necesario modificar, puesto que se utilizarn ficheros de inclusin, con extensin *.conf, dentro del directorio /etc/httpd/conf.d/, a fin de respetar la configuracin predeterminada y poder contar con la misma, que es funcional, brindando un punto de retorno en el caso de que algo saliera mal.

Equipamiento lgico necesario. Instalacin a travs de yum. Si se utiliza de CentOS 5 o 6, o bien Red Hat Enterprise Linux 5 o 6, ejecute lo siguiente: yum -y install mod_ssl Procedimientos. Generando firma digital y certificado. Acceda al sistema como el usuario root. Acceda al directorio /etc/pki/tls/. cd /etc/pki/tls Se debe crear una clave con algoritmo RSA de 2048 octetos y estructura x509, la cual se cifra utilizado Triple DES (Data Encryption Standard), almacenado en formato PEM de modo que sea interpretable como texto ASCII. Se solicitar una clave de acceso para asignar a la firma digital, por lo que se recomienda utilizar una muy buena clave de acceso, la cual, mientras ms complicada y difcil sea, mejor. openssl genrsa -des3 -out private/abraham.home.net.key 2048 Si se utiliza este fichero (abraham.home.net.key) para la configuracin del sitio virtual, se requerir de interaccin del administrador cada vez que se tenga que iniciar, o reiniciar, el servicio httpd, ingresando la clave de acceso de la firma digital. Este es el procedimiento ms seguro, sin embargo, debido a que resultara poco prctico tener que ingresar una clave de acceso cada vez que se inicie el servicio httpd, resulta ms conveniente generar una firma digital RSA, la cual permita iniciar normalmente y sin interaccin alguna, al servicio httpd. openssl rsa -in private/abraham.home.net.pem private/abraham.home.net.key -out

El fichero abraham.home.net.pem ser el que se especifique ms adelante como valor del parmetro SSLCertificateKeyFile en la configuracin de Apache. A continuacin, genere el fichero CSR (Certificate Signing Request), el cual es el fichero de solicitud que se hace llegar a una RA (Registration Authority o Autoridad de Registro), como Verisign, quienes, tras el correspondiente pago, envan de vuelta un certificado (para ser utilizado como el fichero abraham.home.net.crt) firmado por dicha autoridad certificadora.

Openssl req new certs/abraham.home.net.csr

-key

private/abraham.home.net.key

-out

Lo anterior solicitar se ingresen varios datos: Cdigo de dos letras para el pas. Estado o provincia. Ciudad. Nombre de la empresa o razn social. Unidad o seccin. Nombre del anfitrin. Debe ser el nombre con el que se acceder hacia el servidor, y dicho nombre deber estar resuelto en un DNS. SI lo desea, puede utilizar tambin *.abraham.home.net. Direccin de correo electrnico vlida del administrador del sistema. De manera opcional se puede aadir otra clave de acceso y nuevamente el nombre de la empresa. Poco recomendado, a menos que quiera ingresar sta cada vez que se inicie o reinicie el servicio httpd.

La salida devuelta sera similar a la siguiente: Si requiere un certificado auto-firmado, en lugar de un certificado firmado por un RA, puede generarse ste utilizando el fichero de peticin CSR (abraham.home.net.csr). En el ejemplo a continuacin, se crea un certificado con estructura X.509 en el que se establece una validez por 730 das (dos aos). openssl x509 -req -days 730 -in certs/abraham.home.net.csr private/abraham.home.net.key -out certs/abraham.home.net.crt -signkey

Con la finalidad de que solo el usuario root pueda acceder a los ficheros creados, se deben cambiar los permisos de stos a solo lectura para root. chmod 400 private/abraham.home.net.key private/abraham.home.net.pem chmod 400 certs/abraham.home.net.csr certs/abraham.home.net.crt Configuracin de Apache. Crear la estructura de directorios para el anfitrin virtual. mkdir -p /var/www/abraham.home.net/

De todos directorios creados, solo /var/www/abraham.home.net/html, /var/www/abraham.home.net/etc y /var/www/abraham.home.net/cgi-bin pueden pertenecer a un usuario sin privilegios, quien administrar este anfitrin virtual. Crear el fichero /etc/httpd/conf.d/dominio.conf con el siguiente contenido, donde a.b.c.d corresponde a una direccin IP, y abraham.home.net corresponde al nombre de dominio a configurar para el anfitrin virtual:

A fin de que surtan efecto los cambios, es necesario reiniciar el servicio httpd. service httpd restart Lo anterior deber de proceder sin solicitar la clave de acceso de la firma digital (la que asign cuando se cre abraham.home.net.key). En caso contrario, significa que estableci abraham.home.net.key como valor del parmetro SSLCertificateKeyFile en la configuracin de Apache. Comprobacin. Solo basta dirigir cualquier navegador HTTP hacia https://www.abraham.home.net/ a fin de verificar que todo est trabajando correctamente. Tras aceptar el certificado, en el caso de que ste no haya sido firmado por un RA, deber poderse observar un signo en la barra de estado del navegador, el cual indica que se trata de una conexin segura.