Cual es el proceso de validación de un certificado SSL

En otras entradas, hemos hablado de los tipos de certificados que existen y como lo que se valida y el proceso de validación para cada uno de ellos es diferente. Resumo los tipos de certificados:

  1. DV o Validación de Dominio
  2. OV o Validación de Organización
  3. EV o Validación Extendida

El certificado de nivel más alto, incluye la validación requerida por el nivel anterior. Es decir, un certificado OV, requiere una validación de la organización pero también del dominio, y un EV, además de esa validación extendida, validará también la organización y el dominio. Por lo tanto, el proceso de validación de cualquier certificado antes de concederlo siempre será:

  • Se valida el dominio para el que se solicita el certificado. Esto es necesario para los certificados DV, OV y EV y suficiente para un SSL de tipo DV.
  • Se valida la organización para la que se solicita el certificado. Necesario para los certificados OV y EV y suficiente para un SSL de tipo OV
  • Se realizan validaciones adicionales sobre el solicitante del certificado para los SSL de tipo EV.

¿Cómo valido un dominio?

Para validar el dominio, la Autoridad Certificadora (CA) debe asegurarse de que tenemos acceso a la gestión del dominio.

Hay 3 tipos de validaciones: DNS, FILE o EMAIL:

  • Para la validación DNS tendrás que añadir una cadena concreta en un registro DNS.
  • En el caso de FILE, es similar: hay que subir un archivo en una ruta concreta del dominio.
  • Por EMAIL, se enviará un correo con un enlace a una dirección de email fija (admin@example.com…)

Lo normal es que todo este proceso sea transparente para ti si la gestión de las DNS y del certificado los tienes en el mismo hoster.

¿Cómo se valida la organización del certificado?

Al solicitar certificados OV y EV, se pide información completa de la organización y de un Contacto Administrativo dentro de la organziación que respodnerá por la validez de los datos. Con esa información la CA debe asegurarse que los datos son válidos y para ello utiliza la información de entidades y registros públicos, como puede ser el registro mercantil u otros registros similares (p.ej. Google Business o Páginas Amarillas).

Una vez la CA se ha asegurado de la existencia jurídica y operativa de la entidad se realiza una llamada telefónica al teléfono de contacto de la empresa para asegurarse de que todo es correcto.

Para validar una organización, entonces, lo que se se hace es:

  • La CA comprueba que la empresa está registrada y operativa consultando información de autoridades competentes (registro mercantil, etc.)
  • Se valida el domicilio fiscal de la organización
  • Se localiza un teléfono de esa organización y se realiza una llamada de comprobación
  • Se aseguran de que el dominio para el que se solicita el certificado pertenece a la organización

Aunque el proceso está automatizado en gran medida, la concesión del certificado no es inmediata (como puede ser la de un DV), y el proceso puede llevar varios días. Lo bueno es que no tendremos que pasar de nuevo por todo el proceso si solicitamos nuevos certificados para la misma organización: la organización se considera validada durante 27 meses.

Añado un par de enlaces para mostrar cómo hacen esta validación Digicert y Sectigo, dos de las mayores CA:

Y, ¿qué es eso de validación extendida? ¿Cómo se validan los EV?

Vale… me has pillado. Aquí simplemente se indica que las comprobaciones son «más exhaustivas» y yo me remito a lo que diga la guía de CA/Browser forum para la validación extendida (v 1.6.7), llámame cobarde si quieres.

¿Has dicho CA/Browser forum?

CA/Browser forum es el consorcio que agrupa a Autoridades Certificadoras, constructores de software (como Mozilla o Google) y otras entidades relacionadas con las certificaciones y que se encarga de emitir guías y requerimientos que son vinculantes para los miembros del foro.

Para qué sirve un certificado de tipo OV

Los certificados OV (Organization Validation) están entre los certificados DV (Domain Validation) y EV (Extended Validation), tenéis una definición en la entrada sobre los tipos de certificado de seguridad. Además del dominio, el certificado OV nos asegura que ese dominio pertenece a la organización que se indica. En principio no parece una utilidad loca, y los navegadores actuales no diferencian este tipo de certificado de ninguna forma particular.

El hecho de que el certificado valide también la organización, permite evitar algunos casos de phishing. Por ejemplo, yo puede solicitar un certificado de tipo DV para cualquier dominio, solo tengo que demostrar que la gestión del dominio es mía. Así, puedo contratar el dominio bancosantand.er (como curiosidad .er es el ccTLD de Eritrea ;), crear una página web lista para conseguir tus claves del banco, y poner un bonito certificado DV que me asegure que todo el tráfico entre el cliente y la página web está cifrado. Todo perfecto y «seguro» porque la web lleva candadito.

Esto no podría ocurrir con un certificado de tipo OV. Para conceder un certificado OV, la Autoridad Certificadora, solicitará información comercial sobre la empresa del sitio que deberá estar incluida en alguna base de datos de registro mercantil o algún directorio de empresa de confianza. No solo la comunicación está cifrada, sino que el destinatario de esa comunicación es una empresa validada.

¿Cómo sé el tipo de certificado instalado? ¿Cómo sé a quién estoy enviando mis datos? Ahora mismo, la única forma es yendo al detalle del certificado y comprobar que se muestra la organización dentro del Subject Name. En Firefox puedes comprobar el tipo del certificado en la sección Certificate Policies del detalle del certificado:

"Certificate Policies" de un certificado de tipo OV tal y como se muestran en Firefox
Detalle del certificado en Firefox – Certificate Policies

En el caso de los EV, se muestra esta información más claramente… aunque solo un poco más:

Los certificados OV tienen su utilidad, pero es difícil que un usuario normal vaya a buscar esta información en el certificado. De hecho, no tengo todas conmigo que, ahora mismo, vayan más allá del «candadito», y que el tráfico vaya cifrado no significa que tus datos estén a salvo.

Certificados, ¿qué es el protocolo ACME?

Mec, mec. El Coyote persiguiendo al Correcaminos montado en un cohete marca ACME
El verdadero ACME

La primera vez que oyes lo de ACME, te imaginas al Coyote persiguiendo al Correcaminos y la voz en voz diciendo algo como «Cohete interestelar marca ACME» pero la verdad es mucho más prosaica

ACME
Automatic Certificate Management Environment
IETF RFC 8555

Para cualquier SSL, hay que seguir un proceso algo laborioso:

  1. Se solicita el certificado que queremos con los datos necesarios (ver Tipos de certificados de seguridad):
    • Solo el nombre de dominio (DV)
    • Datos de la organización (OV) y contactos en la empresa
    • Datos detallados de la organización y contactos en la empresa (EV)
  2. Se valida ese certificado
    • Para los DV, la validación es sencilla y se trata de asegurar de que tenemos acceso a la gestión del dominio.
      Hay 3 tipos de validaciones: DNS, FILE o EMAIL. Para la validación DNS tendrás que añadir una cadena concreta en un registro DNS. En el caso de FILE, es similar: hay que subir un archivo en una ruta concreta del dominio.
      Por EMAIL, se enviará un correo con un enlace a una dirección de email fija (admin@example.com…)
    • Para los OV y EV, la Autoridad Certificadora (CA), validará en BB.DD. externas la información o llamará al contacto indicando solicitando información adicional. Esta validación puede llevar varios días.
  3. Se genera el Certificate Signing Request (CSR) para la CA
  4. La CA emite el certificado y ya se puede descargar e instalar

Estos pasos se han hecho muchas veces de forma manual, intercambiando correos con la CA para poder avanzar en el proceso. Aquí es donde entra ACME que simplifica y automatiza todo esto y que, aunque vino de la mano de Let’s Encrypt, es un estándar IETF y ha sido adoptado por otras CA.

Cómo funciona ACME

El proceso de solicitud e instalación con o sin ACME es el mismo: solicitud, validación, descarga e instalación. ACME lo que hace es automatizar todo el proceso.

Proceso de solicitud de un SSL para un cliente registrado
  1. El primer paso es registrarse en el servidor de certificados como cliente ACME. Esto nos permite realizar solicitudes autorizadas de SSL.
  2. Generas la petición para emitir un certificado
  3. Debes probar que gestionas el dominio para el que solicitas el certificado (caso de DV)
  4. Finalizas la petición enviando el CSR
  5. La CA emite el certificado y ya lo puedes descargar e instalar

El proceso como vemos es el mismo. La diferencia está en que con ACME, todo esto se hace de forma automática. Se instala un agente en el servidor web (certbot o cualquier otro compatible) que es el encargado de la comunicación con la CA y de resolver las peticiones de validación del dominio. Las comunicaciones entre este agente/cliente y el servidor se realizan a través de mensajes JSON y por protocolo seguro (HTTPS) y no es necesaria la intervención del usuario de forma directa.

Referencias

Cómo afecta la RGPD a los certificados SSL

Durante estos días de tormenta de la RGPD (GDPR por sus siglas en inglés) habrás recibido decenas de correos pidiéndote una aceptación expresa para poder seguir enviándote newsletter o para comunicarte los cambios y adaptaciones de sus políticas de privacidad y protección de datos. Puede, tal vez, que hayas recibido alguna comunicación relacionada con tus certificados de seguridad.

Qué tiene que ver la RGPD con los certificados

Para obtener un certificados de tipo DV, Domain validation, (ver los distintos tipos de certificados) las entidades certificadoras pueden realizar la validación del dominio de 3 formas diferentes:

  • Validación por _email
  • Validación por DNS
  • Validación por archivo

Para la validación por DNS y por archivo, solo hay que tener acceso a la gestión DNS de tus dominios o a su sistema de archivo. Se generará una «clave» única que debe indicarse o en una entrada DNS o en un archivo localizado en una ruta concreta (<DOCUMENT_ROOT>/.well-known/pki-validation/).

Para la validación por email, la entidad certificadora (Comodo, Digicert…) enviará un correo a la dirección del titular del dominio o a una dirección de email preestablecida (admin@<DOMINIO>). Y aquí es donde la matan. Hasta ahora, hasta el 25 de mayo de 2018, Digicert podía obtener esta dirección del titular utilizando el WHOIS público, donde se mostraba información técnica del dominio así como los datos del titular del mismo. Como estos datos son considerados, con razón, datos personales, ya no se muestran de forma pública y ya no son accesibles por terceros.

Email vs DNS vs Fichero

Aunque la validación por email no es la validación más extendida para estos certificados y, desde luego, no es la más cómoda ni inmediata, es de las primeras que se implantó y puede que tu proveedor la utilice. En este caso, procura tener siempre activo (como buzón, como redirección…) una cuenta de correo admin@<DOMINIO> … y suerte.

Tipos de certificados de seguridad SSL

Si alguna vez te has enfrentado a la necesidad de contratar un SSL, supongo que te habrá sorprendido la disparidad de precios y te te habrás preguntado el por qué.

Lo primero a considerar es qué es lo que valida cada tipo de certificado. Un notario solo da fe de lo que está escrito, no de que lo que esté escrito sea verdad, con los certificados pasa algo similar. La entidad certificadora (CA), comprobará la validez de la información para crear el certificado según lo que se le pida.

Podemos distinguir los siguientes tipos de certificados en base a lo que validan, a lo que han comprobado que es cierto:

  1. Domain Validated (DV). El dominio pertenece al titular.
  2. Organization Validated (OV). La organización indicada posee el dominio.
  3. Extended Validated (EV). Comprobaciones adicionales y exhaustivas sobre la organización que solicita el certificado para el dominio.

Domain Validated (DV)

Comprueba que el dominio es un dominio válido y el propietario puede confirmar que, efectivamente es el propietario del dominio.

Esta validación la realiza el CA intercambiando mails con el titular del dominio, por ejemplo o, tal y como hará Let’s Encript, mediante comprobaciones de un agente en el servidor web para asegurarse que tiene acceso al dominio para el que se solicita el SSL.

Los certificados DV verifican el consentimiento del dueño de un dominio pero no verifican quién es el dueño del dominio en realidad.

Organization Validated (OV)

En este caso se valida el dominio y la organización que lo solicita y para ello hacen falta comprobaciones adicionales por parte del CA.

En estos casos se incluye en el certificado generado información sobre el sitio web y sobre la propia organización.

Extended Validated (EV)

Proporcionan el máximo nivel de confianza.

En este caso, el CA debe asegurarse para conceder el certificado de que diversos datos del dominio y de la organización. El CA se pondrá en contacto con la organización, normalmente por vía telefónica y le solicitará la documentación necesaria para conceder el certificado según la guía para certificados EV de CA/Browser Forum.

Certificado EV
Certificado EV en Mozilla Firefox

Referencias

SSL para dummies: gestión de certificados y PKI

A mediados de 2014 Google indicó que iba a considerar los certificados SSL (Secure Sockets Layer) como un elemento relevante en su algoritmo de posicionamiento (artículo en Google Webmasters Central (EN)).

A mediados de 2015, la fundación Mozilla junto con otros partners (EFF, Akamai, Cisco…) tiene previsto ofrecer certificados SSL “autoinstalables” de forma gratuita a través de su entidad de certificación (CA), Let’s Encrypt.

Y es que la cantidad de sitios web con certificados SSL no ha hecho más que crecer.

Imagen encuesta SSL Netcraft
Imagen encuesta SSL Netcraft

Aun así, el mercado de los SSL está en mano de unos pocos proveedores: Symantec, GoDaddy y Comodo tienen el 75% del mercado de SSL.

De forma resumida, un certificado SSL nos permite establecer una comunicación segura entre nuestro navegador y la página web de destino, gracias a que hay un tercero, la autoridad de certificación (CA) que es la que asegura que el destino al que navegamos es quien dice ser.

Para entender bien como funciona, no es necesario, pero sí interesante, conocer términos como cifrado asimétrico, PKI (Public Key Infraestructure) o la ya mencionada CA (Certificate Authority).

Como funciona la infraestructura de clave pública (PKI)

El cifrado asimétrico se basa en el intercambio de claves públicas para cifrar el contenido que solo el poseedor de la clave privada puede descifrar o para ser capaces de identificar al emisor.

El emisor cifra la información usando su clave privada y envía la clave pública al receptor. Con la clave pública, el receptor cifra el mensaje que solo la clave privada puede descifrar con lo que la comunicación del mensaje es segura.

Esquema de cifrado asimétrico
Cifrado asimétrico (por RealTimeLogic)

Este sistema también se utiliza para la firma de mensajes.

Igual que antes, solo el emisor posee la clave privada con la que se cifra el mensaje. El emisor proporciona al receptor la clave pública y con ella puede descifrar el mensaje. Como solo el emisor puede cifrar los mensajes de esa clave pública, nos sirve para identificar al emisor, pero no para mantener seguro el mensaje ya que se puede descifrar usando la clave pública.

Firma asimétrica
Firma asimétrica

Firma digital de mensajesEl problema de estas comunicaciones es que aunque identifiquemos al emisor, ¿cómo podemos confiar en él?

TLS/SSL resuelven este problema utilizando un tercero de confianza. El protocolo TLS/SSL utiliza una clave simétrica, y se utiliza el cifrado asimétrico para enviar una firma cifrada con la clave privada del emisor junto con la clave pública necesaria.

Los certificados y la PKI

Componentes de un certificadoDe cara a establecer una relación de confianza, hay unas autoridades de certificación (CA) que son las que nos aseguran que el receptor es quien dice ser. Para que el emisor confíe en el receptor, este debe tener firmado su certificado público por una CA de confianza.

Los certificados de los CA, con sus claves públicas, están almacenadas por defecto en los navegadores.

Durante la comunicación navegador-servidor, lo que se produce es:

  1. El navegador solicita identificar al servidor
  2. El servidor, envía su certificado público
  3. El navegador comprueba la validez del certificado
  4. El navegador comprueba ahora la validez del CA, del tercero de confianza, en su lista de CA
  5. Si el certificado público es correcto, y el CA que lo ha firmado es de confianza, el navegador debe comprobar que el nombre del servidor (el dominio) del certificado es es el mismo con el que se está comunicando
  6. Si es así, el navegador puede confiar en que se está comunicando con un servidor concreto de forma segura

Esquema de validación de certificados
Esquema de validación de certificados

Referencias