SSL es un sistema de cifrado utilizado en servidores para asegurar la privacidad en la transmisión de información por la Web. Los servidores que tienen habilitado SSL cifran datos importantes en texto cifrado antes de enviarlo a los clientes, evitando que terceros lean los datos incluso aunque se intercepten a mitad de camino. Los clientes reciben los datos del servidor y los descifran para poderlos leer. El uso de SSL en un servidor Web ayuda a asegurar que la información transmitida entre dos clientes, como un navegador web y un servidor (como un servidor Web), permanece privada, y permite a los clientes comprobar la identidad del servidor.
Para que cliente y servidor puedan utilizar SSL para comunicaciones seguras, el servidor ha de tener una pareja de claves pública-privada y un certificado. El servidor utiliza sus claves privadas para firmar los mensajes a los clientes. El servidor envía su clave pública a los clientes para que puedan comprobar que los mensajes firmados son realmente del servidor y para que puedan cifrar mensajes hacia el servidor, que el servidor descifrará con su clave privada.
Para enviar la clave pública a los clientes, el servidor necesita un certificado emitido por una autoridad de certificados (certification authority - CA). El certificado contiene la clave pública del servidor, el nombre distintivo asociado al certificado del servidor, el número de serie o fecha de emisión del certificado y la fecha de caducidad del mismo.
Una certification authority (CA) es una tercera parte verificada (o un ente autorizado interno designado) que emite certificados. La CA comprueba la identidad del servidor y firma el certificado digitalmente con su clave privada; su clave pública se puede utilizar para asegurar que el certificado es válido. Un certificado firmado enlaza la identidad del servidor con una pareja de claves electrónicas que se pueden utilizar para el cifrado y la firma digital de información. El certificado en sí mismo está firmado con la clave privada de la certification authority para comprobar que el servidor es quien dice ser.
Para trabajar con un servidor web en modalidad de seguridad SSL, antes hay que obtener un certificado firmado para su sistema por parte de una certification authority. VeriSign, Inc. es una de las empresas que actúan como certification authority. No obstante, puede utilizar un certificado firmado del formato adecuado de cualquier certification authority.
Cuando configure conexiones seguras, la clave pública debe estar asociada con un certificado firmado digitalmente por parte de una autoridad de certificación (CA) que haya sido designada como CA fiable en el servidor.
Iniciación a las conexiones seguras
Para aprender más sobre certificados - http://digitalid.verisign.com/
Este apartado proporciona una visión general sobre los conceptos de seguridad.
El rápido crecimiento del comercio electrónico en Internet nos ha llevado a aumentar la demanda de las comunicaciones seguras en la red. Además, las comunicaciones en una empresa en redes privadas contienen a menudo información confidencial que es necesario proteger.
Una comunicación segura de red tiene las características siguientes:
Los recursos se pueden proteger y dar acceso sólo a personas autorizadas. La restricción del acceso en base a contraseñas, direcciones IP, nombres de sistemas principales o autentificación de clientes SSL asegura el control de acceso.
Consiste en saber con quién se está hablando y si es de fiar. La autentificación, utilizando firmas y certificados digitales, asegura la autenticidad.
Los mensajes no han de ser alterados en la transmisión. Si no hay integridad en la información, no se tiene la garantía de que el mensaje enviado coincide con el mensaje recibido. La firma digital asegura la integridad.
La información enviada de una parte a otra durante una transacción se mantiene privada y no se puede leer incluso si cae en manos equivocadas. El cifrado asegura la privacidad y la confidencialidad.
El cifrado, en su forma más sencilla, es alterar un mensaje de forma que pueda ser leído hasta que el receptor lo recomponga. El remitente utiliza un patrón algorítmico (o clave) para alterar (o cifrar) el mensaje. El receptor tiene la clave de cifrado. El cifrado asegura la privacidad y confidencialidad en transmisiones a través de Internet.
Hay dos tipos de claves que pueden utilizarse para cifrado:
Con las claves asimétricas, se crea una pareja de claves. Esta pareja está compuesta de una clave pública y otra privada, que son distintas. La clave privada tiene más parte del patrón de cifrado secreto que la clave pública. La clave privada no ha de compartirse con nadie.
El servidor utiliza sus claves privadas para firmar los mensajes a los clientes. El servidor envía su clave pública a los clientes para que puedan cifrar mensajes hacia el servidor, que los descifrará con su clave privada. Sólo usted puede descifrar un mensaje que ha sido cifrado con su clave pública, ya que sólo usted tiene la clave privada. Las parejas de claves se almacenan en una base de datos de claves que está protegida por una contraseña.
Las claves simétricas siguen un modelo antiguo en el que el emisor y el receptor comparten algún tipo de patrón. Este mismo patrón lo utiliza en emisor para cifrar el mensaje y el receptor para descifrarlo.
El riesgo que este tipo de claves comporta es que hay que buscar un método seguro de transporte para compartir la clave secreta con las personas con que quiere comunicarse.
El protocolo Capa de Sockets Seguros (Secure Sockets Layer - SSL) utiliza intercambio de claves tanto simétrico como asimétrico. Las claves asimétricas se utilizan para el protocolo de enlace de SSL. Durante este protocolo de enlace, la clave maestra, cifrada con la clave pública del receptor, se pasa del cliente al servidor. El cliente y el servidor hacen sus propias claves de sesión utilizando la clave maestra. Las claves de sesión se utilizan para cifrar y descifrar los datos del resto de la sesión. El intercambio de claves simétricas se utiliza durante el intercambio de la especificación de cifrado (o nivel de cifrado) utilizado.
Para enviar su clave pública a los clientes, el servidor necesita de un certificado digital. Este certificado lo emite una certificate authority (CA) que comprueba la identidad del servidor.
Información relacionada:
La autentificación es el proceso utilizado para verificar la identidad, y estar seguro de que los demás son quienes dicen ser. Hay dos formas en las que el servidor utiliza la autentificación:
Una firma digital es una firma exclusiva calculada matemáticamente que se asegura la responsabilidad. Una firma digital es parecido a una tarjeta de crédito en la que se estampa la firma. Para verificar la identidad de la persona que el envía un mensaje, se comprueba el certificado digital del remitente.
Un certificado digital (o ID digital), es como una tarjeta de crédito con una foto de familia con el presidente del banco. Cualquier comercio se fiará más de usted, pues ya no sólo parece usted como una foto en la tarjeta de crédito sino que, además, el presidente del banco también se fía de usted.
La confianza que se tiene sobre la autenticidad del remitente es la que se tenga sobre el tercero (persona física o empresa) que certifica al mismo. El tercero que emite el certificado digital se denomina certificate authority (CA) o certificate signer (emisor de firmas certificadas).
Un certificado digital tiene:
Se especifica el nombre distintivo como parte de la petición de certificado. El certificado firmado digitalmente no sólo incluye su propio nombre distintivo, sino que también incluye el nombre distintivo del CA.
Puede solicitar uno de los certificados siguientes:
Las CA emiten sus claves públicas y sus nombres distintivos empaquetados para que la gente los añada a sus servidores y navegadores Web como certificados CA fiables. Cuando se designa el certificado y la clave pública de una CA para que sea un certificado CA fiable, quiere decir que el servidor se fiará de todo aquel que tenga un certificado con esa CA. Se pueden tener varios CA fiables como parte del servidor. HTTP Server incluye varios certificados CA fiables por omisión. Se pueden añadir o eliminar las CA fiables según sea necesario, mediante el uso del programa de utilidad de gestión de claves de IBM (IBM Key Management Utility) incluido con su servidor.
Para establecer una comunicación segura, el receptor de una transmisión ha de fiarse de la CA que ha emitido el certificado del remitente. Esto es así tanto si el receptor es un servidor como si es un navegador web. Cuando un emisor envía un mensaje, el receptor ha de tener el certificado firmado CA correspondiente y la clave pública designada como certificado CA fiable.
Información relacionada:
Una infraestructura de claves públicas (Public Key Infrastructure - PKI) es un sistema de certificados digitales, autoridades de certificados, autoridades de registro, servicios de gestión de certificados y directorios X.500 que comprueban la identidad y autoridad de cada parte implicada en cualquier transacción en Internet. Estas transacciones pueden ser financieras o implicar cualquier operación en la que sea obligatoria la comprobación de la identidad, como la confirmación del origen de presupuestos o el autor de mensajes de correo electrónico.
Una PKI da soporte para el uso de listas de revocación de certificados (certificate revocation lists - CRL). Una lista de revocación de certificados es una lista de los certificados que han sido revocados. Las CRL proporcionan un sistema más global para la autentificación de la identidad de un cliente mediante certificados, y también se puede utilizar para verificar la validez de certificados CA fiables.
Las CRL y los certificados CA fiables se almacenan y recuperan en un servidor de directorios X.500. Los protocolos que se utilizan para el almacenamiento y recuperación de la información de un servidor de directorios X.500 son Directory Access Protocol (DAP) y Lightweight Directory Access Protocol (LDAP). HTTP Server da soporte a LDAP.
La información se puede distribuir en varios servidores de directorios de Internet o de intranets, permitiendo así que una empresa gestione certificados, políticas de seguridad y las CRL bien desde la ubicación central, bien de forma distribuida. Esto hace que la política de seguridad sea más dinámica, ya que se pueden añadir o suprimir CA fiables de una red de servidores seguros sin tener que volver a configurar cada servidor.
Información relacionada:
El protocolo Capa de Sockets Seguros (Secure Sockets Layer - SSL) lo desarrolló Netscape Communications Corporation. SSL garantiza que los datos transferidos entre un cliente y un servidor sean privados. Permiten al cliente autentificar la identidad del servidor. Es necesaria la versión 3 de SSL para autentificar la identidad de un cliente.
Una vez que el servidor tiene un certificado digital, los navegadores con SSL habilitado, como Netscape Navigator y Microsoft Internet Explorer pueden comunicarse de forma segura con su servidor utilizando SSL. Con SSL, puede establecer fácilmente un sitio Web con habilitación de seguridad en Internet o en su propia intranet. Un navegador que no tenga soporte HTTP sobre SSL no podrá hacer peticiones de URL utilizando HTTPS. A los navegadores que no tengan SSL no se les permite el envío de formularios que tengan que transmitirse de forma segura.
SSL utiliza un protocolo de enlace de seguridad para iniciar una conexión segura entre el cliente y el servidor. Durante el protocolo de enlace, el cliente y el servidor acuerdan las claves de seguridad que van a utilizar durante la sesión y los algoritmos de cifrado que se van a usar. El cliente autentifica al servidor; opcionalmente, el servidor puede pedir el certificado del cliente. Después del protocolo de enlace, se utiliza SSL para cifrar y descifrar toda la información de las peticiones de https y de las respuestas del servidor, incluyendo:
HTTPS es un protocolo exclusivo que combina SSL y HTTP. Es necesario especificar https:// como ancla en documentos HTML que tengan enlace a documentos con protección SSL. Un usuario cliente también puede abrir una URL especificando https:// para solicitar un documento con protección SSL.
Como HTTPS (HTTP + SSL) y HTTP tienen protocolos diferentes y utilizan puertos distintos (443 y 80 respectivamente), se pueden ejecutar peticiones con SSL y sin SSL a la vez. Así, se puede elegir entre proporcionar información a todos los usuarios sin tener en cuenta la seguridad, e información específica sólo a navegadores que realicen peticiones seguras. Así es como una empresa que venda productos en Internet permite acceso sin condiciones de seguridad a los artículos que vende, pero para rellenar el formulario de pedido y enviar los números de la tarjeta de crédito, es necesario utilizar las herramientas de seguridad.
Información relacionada: