11.4.08

Certificados digitales


Un certificado digital es una versión "firmada" o verificada de una clave pública.
Los certificados digitales siguen el estándar X.509 para definir su formato. Las extensiones de estos certificados pueden ser:

  • .P7b - Estructura PKCS#7. Usado para firmar y/o cifrar mensajes (contiene sólo la clave pública).
  • .Pfx - Estructura PKCS#12. Puede contener claves públicas y claves privadas (protegido mediante clave simétrica)
  • .CER - Certificado codificado en CER, algunas veces es una secuencia de certificados
  • .DER - Certificado codificado en DER
  • .PEM - Certificado codificado en Base64, encerrado entre "-----BEGIN CERTIFICATE-----" y "-----END CERTIFICATE-----" Puede contener claves privadas o públicas.
Nota: Cuando queremos exportar un certificado, si elegimos el formato PKCS#7 sólo estaremos exportando la clave pública, por en contrario, si elegimos el formato PKCS#12 también estaremos exportando la clave privada.

A la hora de utilizar certificados digitales en una infraestructura PKI para fortificar las comunicaciones en internet, las organizaciones disponen de dos opciones:

Seguir Leyendo...


1ª Utilizar un certificado raiz de confianza autofirmado
Una organización puede optar por crear su propia CA para firmar sus propios certificados digitales. Esta CA poseerá un certificado raiz o certificado autofirmado que cada navegador que acceda a un portal bajo SSL deberá añadir previamente a su lista de certificados de confianza, si no lo hace, cada vez que se intente acceder a ese recurso, el navegador devolverá un error de certificado. Más adelante veremos por qué.
Se dice que es un certificado autofirmado porque que el propietario y el emisor son la misma entidad.

2ª Utilizar un certificado firmado por una Autoridad de Certificación, solicitando y pagando por la firma de una entidad certificadora reconocida. De esta forma, la CA es la responsable de asegurar que la identidad del propietario del certificado es auténtica. En este caso los navegadores no necesitan instalar ningún certificado raiz de la CA ya que al ser una Autoridad Certificadora reconocida, estos certificados raiz ya se encuentran instalados por defecto en los navegadores.

Procedimiento de adquisición de un certificado digital:

- Cuando una organización desea solicitar un certificado de seguridad para utilizarlo, por ejemplo, en un servidor web protegido con SSL, primero debe realizar una solicitud de certificado o CSR (Certificate Signing Request). Una CSR consiste en generar un "pre-certificado" (pre-certificado porque no está firmado aún) con los datos de la entidad solicitante: nombre de la organización, correo, DN Distinguished Name (dato de mucha importancia ya que identificará el dominio sobre el que se alojará el recurso) entre otros. Cuando se crea una CSR se obtiene dos ficheros:
cert.pem -> pre-certificado
key.pem -> clave privada que utilizará el servidor web para futuros handshake de SSL

- La CA recibe la solicitud de certificado y comprueba que los datos que contiene se corresponden realmente con la entidad que lo solicita (cada CA utiliza sus propios metodos). Una vez comprobado, la CA crea una firma a partir de su llave privada y los datos del "pre-certificado" y genera un certificado ya firmado y definitivo y lo hace llegar a la organización que lo solicitó.

Una vez la organización reciba el certificado ya firmado, deberá instalar este certificado en su servidor web.
Ejemplo de configuración del fichero httpd.conf de apache:

...
SSLEngine on
SSLCertificateFile /etc/httpd/conf/certificado-firmado.pem
<- certificado ya firmado
SSLCertificateKeyFile /etc/httpd/conf/key.pem <- clave privada que obtuvimos cuando generamos la CSR. ...

A continuación se muestra el proceso de negociación o Handshake entre el cliente y el servidor:
Hacer click sobre la imagen para agrandar