13. Seguridad en IIS 6 - SSL

1.1 Introducción

La enorme ventaja que supone Internet en cuanto a difusión y acceso a la información puede convertirse en inconveniente cuando manejamos información sensible que requiere de ciertas garantías de seguridad.

Algunos conceptos fundamentales a este respecto son:

    • Confidencialidad: asegurarnos de sólo el destinatario va a tener acceso a la información.
    • Autenticidad: garantizar la procedencia de la información.
    • Integridad: la información no ha sido manipulada durante su tránsito.

 

1.2 Claves y cifrados

Los certificados emplean un sistema de claves para encriptar la información.

  • Una clave es una secuencia de datos empleada en el proceso de cifrado.
  • Un mecanismo de cifrado es un algoritmo matemático que, empleando claves, es capaz de encriptar y desencriptar información.

 

1.3 Cifrado con claves simétricas

  • Se emplea la misma clave para encriptar y desencriptar la información
  • Es un mecanismo eficiente, ya que se considera segura una clave de 128 bits.
  • proporciona un cierto nivel de seguridad, ya que el destinatario debe conocer la clave, pero si ésta se ve comprometida, cualquiera puede encriptar datos (y por lo tanto suplantar al emisor de la información) y desencriptarlos.

 

1.4 Cifrado con claves asimétricas

  • Se emplean 2 claves: una pública que se distribuye libremente y otra privada, de tal manera que lo que se cifra con una de ellas sólo se puede descifrar con la otra. De esta manera un servidor utiliza su clave privada para encriptar la información y el cliente utiliza la clave pública para desencriptarla y comprobar al mismo tiempo la autenticidad de la procedencia del mensaje.
  • Es un mecanismo menos eficiente: hoy en día se considera segura una clave de 1024 bits.
  • Los algoritmos de cifrado de este tipo que emplea IIS son DH (por Diffie-Hellman) y RSA (por Rivest, Shamir y Adleman). Éste último es el más popular.

Nota: Este tipo de cifrado con clave pública está cada vez más extendido y se emplea en los esquemas de seguridad corporativos, apareciendo así el concepto de PKI: Public Key Infraestructure.

 

1.5 Hash

Una función Hash nos permite obtener un resumen a partir de un mensaje.

Dicho resumen:

    • es mucho más pequeño que el mensaje original (entre 128 y 160 bits).
    • no permite la reconstrucción del mensaje original a partir de él
    • y cualquier mínima variación en el mensaje original genera un hash distinto.

 

1.6 Firmas digitales

La finalidad de la firma digital es la de poder garantizar la autoría y la integridad de los datos firmados, y puede expresarse como producto de la combinación de 2 de las técnicas que acabamos de describir. Si a una cierta información:

      1. Le aplicamos una función hash.
      2. Ciframos dicho resumen o hash con nuestra clave privada.

y enviamos en un mensaje la información junto con el hash encriptado (nuestra firma), obtenemos un mensaje cuyo hash cualquiera, con nuestra clave pública, puede desencriptar –verificando así la autoría del mensaje- y con el hash comprobar la integridad de la información recibida.

 

1.7 Certificados y CAs

Un certificado es esencialmente una clave pública y un identificador, firmados digitalmente por una autoridad certificadora (CA: Certificate Authority), y su utilidad es demostrar que una clave pública pertenece a un usuario concreto.

El formato de certificado X.509 es el más común y extendido en la actualidad.

Estos certificados se estructuran de forma jerárquica, de tal forma que nosotros podemos verificar la autenticidad de un certificado comprobando la firma de la autoridad que lo emitió, que a su vez tendrá otro certificado expedido por otra autoridad de rango superior. De esta forma vamos subiendo en la jerarquía hasta llegar al nivel mas alto, a la llamada entidad emisora de certificados raíz , que deberá estar ocupado por un certificado que goce de la confianza de toda la comunidad.

 

1.8 Tipos de certificados

IIS 6 emplea certificados digitales para proporcionar la seguridad necesaria a través del protocolo SSL (Secure Socket Layer).

Algunos de los tipos más comunes de certificados digitales empleados en Internet son:

    • Certificados de servidor: proporcionan mecanismos de encriptación para la transmisión de información y autentican al servidor.
    • Certificados personales: empleados para identificar a los usuarios, por ejemplo desde un navegador web, en un correo electrónico o mediante una tarjeta digital.
    • Certificados para firma de código: empleados para firmar digitalmente el software y verificar la autenticidad de su origen.
    • Certificados de entidades emisoras: son los que identifican a las propias compañías emisoras de certificados.

 

1.9 Entidades emisoras de certificados

Algunas entidades emisoras de certificados comerciales que cobran por emitir certificados y ofrecen a cambio responder de la veracidad de nuestra clave pública son:

    • Verisign
    • GeoTrust
    • GlobalSign
    • Thawte
    • IT Institute

 

2.1 Instalar una entidad emisora de certificados.

Dentro de los componentes de Windows 2003, encontramos Servicios de Certificate Server, que nos permiten emitir certificados.

Podemos instalar una CA de 2 tipos:

    1. De empresa: requiere directorio activo y está orientada a proporcionar certificados para su uso en intranets, ya que propaga su certificado al almacén de certificados Entidad emisora de certificados raíz de confianza para todos los usuarios y equipos que integran el dominio.
    2. Independiente: no requiere directorio activo y se suele emplear para emitir certificados para su uso en Internet.

Dentro de cada uno de estos tipos, una entidad emisora puede ser:

    • Raíz: en la estructura jerárquica de emisores de certificados que forman parte de una misma entidad, es el elemento único superior, y el único que se certifica a sí mismo. Normalmente, sólo se emplea para emitir certificados para CAs subordinadas.
    • Subordinada: la que ha recibido un certificado de otra CA de la organización. Puede emitir certificados para usos específicos (de servidor, de cliente,…) y para otras CAs subordinadas.

 

2.2 Proceso de emisión de un certificado

Cómo se emite un certificado

  1. Generación de la clave: Quien solicita la certificación (el solicitante, no la entidad emisora) genera pares de claves públicas y privadas.
  2. Coincidencia de información de directivas: El solicitante empaqueta la información adicional necesaria para que la entidad emisora emita el certificado (como prueba de identidad, número de identificación fiscal, dirección de correo electrónico, etc.). La definición precisa de esta información es responsabilidad de la Entidad emisora de certificados.
  3. Enviar las claves públicas y la información: El solicitante envía las claves públicas y la información (a menudo, se cifra con la clave pública de la entidad emisora) a la Entidad emisora de certificados.
  4. Comprobación de la información: La Entidad emisora de certificados aplica las reglas de directivas que necesite para comprobar que el solicitante debe recibir un certificado.
  5. Creación del certificado: La Entidad emisora de certificados crea un documento digital que contiene la información apropiada (clave pública, fecha de caducidad y otros datos) y lo firma con la clave privada de la entidad emisora.
  6. Enviar y publicar el certificado: La Entidad emisora de certificados puede enviar el certificado al solicitante o publicarlo si resulta más apropiado.
  7. El certificado se carga en el equipo de una persona.

 

2.3 Solicitar un certificado para un sitio web (I): generación de la solicitud.

  • Desde el Administrador de IIS, accedemos a las propiedades del sitio web.
  • En Seguridad de directorios, pulsamos Certificado de servidor…
  • Seleccionamos Crear un certificado nuevo
  • Elegimos Preparar la petición ahora, pero enviarla más tarde (la opción de Enviar la solicitud inmediatamente… sólo está disponible para entidades emisoras de certificados de empresa, y requiere directorio activo).
  • Elegimos un nombre y una longitud en bits para la clave.
  • Introducimos información de la organización.
  • Introducimos el nombre del sitio web (importante que coincida exactamente).
  • Introducimos información geográfica.
  • Seleccionamos dónde se guardará la petición como archivo de texto.

 

2.4 Solicitar un certificado para un sitio web (II): envío a la entidad emisora.

  • Enviamos nuestra solicitud, los datos y la documentación que se requiera (según la entidad emisora) a la entidad emisora de certificados.
    • En el caso de Windows 2003 actuando como entidad emisora de certificados, nos conectamos a http://nombre_del_servidor/CertSrv y tramitamos la solicitud, siguiendo las instrucciones.
    • Como CA, desde Herramientas administrativas > Entidad emisora de certificados gestionamos las solicitudes pendientes, pudiendo emitir o denegar cada petición recibida.
  • Seguimos los trámites necesarios y obtenemos nuestro certificado.

 

2.5 Solicitar un certificado para un sitio web (III): instalación del certificado.

Una vez obtenido el certificado de la entidad emisora:

  1. Accedemos a las propiedades del sitio web > Seguridad de directorios > Certificado de servidor…
  2. Seleccionamos Procesar la petición pendiente e instalar el certificado.
  3. Seleccionamos el archivo correspondiente al certificado emitido.
  4. Indicamos el puerto SSL asociado, teniendo en cuenta que este valor, al contrario que ocurría con el puerto TCP, no puede ir asociado a un encabezado de host, luego debe ser único en el servidor.
  5. Debemos instalar en nuestro servidor –si no existían ya- los certificados de la cadena de entidades emisoras que han intervenido en la emisión de nuestro certificado.

 

2.6 Encriptación mediante SSL

  • IIS 6, a través de SSL, nos proporciona mecanismos para acceder de forma segura a sitios web.
  • Obteniendo un certificado, podremos emplear nuestro sistema de clave pública-clave privada para encriptar la información y garantizar una comunicación segura.
  • Dado que la encriptación con clave simétrica es mucho más eficiente, con SSL:
    • se emplea el cifrado con clave asimétrica en la fase inicial de la conexión entre el cliente y el servidor (handshaking).
    • se genera entre ambos una clave simétrica confidencial (más pequeña e igualmente eficaz, y con menor penalización en el rendimiento) que emplearán en el resto de la sesión.

 

2.7 Caducidad de certificados

  • Tiempo de vida de claves
    • Una clave nunca debería usarse por tiempo indefinido. Debe tener una fecha de caducidad, por las siguientes razones:
    • Cuanto más tiempo se usa una clave, aumenta la probabilidad de que se comprometa (la pérdida de una clave por medios no criptoanalíticos se denomina compromiso).
    • Cuanto más tiempo se usa una clave, mayor será el daño si la clave se compromete, ya que toda la información protegida con esa clave queda al descubierto.
    • Cuanto más tiempo se usa una clave, mayor será la tentación de alguien para intentar desbaratarla.
    • En general es más fácil realizar criptoanálisis con mucho texto cifrado con la misma clave.
  • Por este motivo, los certificados emitidos rara vez suelen superar los 5 años de validez, y en la mayoría de los casos se emiten por un período de 1 a 3 años.

 

2.8 Exportación de certificados

  • Para exportar un certificado de servidor:
    • Desde las propiedades del sitio web en el que está el certificado, elegimos Seguridad de directorios > Certificado de servidor… y seleccionamos Exportar el certificado actual a un archivo .pfx.
    • Es preciso tener en cuenta que en este archivo se encuentran tanto el certificado como la clave privada, por lo que hay que tomar las medidas de seguridad pertinentes.
  • Para exportar un certificado personal:
    • Primeramente, un certificado personal será exportable sólo si se solicitó que lo fuese en el momento de su creación. Para ello, es preciso elegir en IIS 6 la solicitud avanzada de certificado y activar la casilla Marcar claves como exportables.
    • Ejecutando mmc, añadimos el complemento Certificados con la opción de usuario actual, y en la categoría Personal, seleccionamos Todas las tareas > Exportar… sobre el certificado.

 

3. Revocación de certificados

  • Una entidad emisora de certificados (C.A.) puede tener que revocar un certificado emitido, de manera que no sea válido a partir de ese momento.
  • Por esta razón, las CAs publican periódicamente CRLs (Certificate Revocation List) en las que anuncian los certificados que han sido revocados.
  • En el caso de IIS, para publicar las CRLs se emplea el directorio http://nombre_del_servidor/CertEnroll, creado en el Sitio Web Predeterminado al instalar los Servicios de Certificate Server.
    • IIS permite publicar CRLs completas e incrementales.
    • Estas opciones se configuran en Herramientas administrativas > Entidad emisora de certificados > Certificados revocados > Propiedades
    • Se puede publicar manualmente la lista en Certificados revocados > Todas las tareas > Publicar

 

Fichero pdf para descargar aquí.

vidalmb_admin – Mar, 22/08/2006 – 13:11