Terminología importante de seguridad

Dos de los obstáculos que enfrentan los desarrolladores cuando migran a HTTPS son los conceptos y la terminología. En esta guía, se proporciona una breve descripción general de ambos.

Chris Palmer
Chris Palmer

Resumen

  • Se usaron claves públicas y privadas para firmar y desencriptar mensajes entre el navegador y el servidor.
  • Una autoridad certificadora (AC) es una organización que garantiza la asignación entre las claves públicas y los nombres de DNS públicos (como "www.foobar.com").
  • Una solicitud de firma de certificado (CSR) es un formato de datos que agrupa una clave pública con algunos metadatos sobre la entidad propietaria de la clave.

¿Qué son los pares de claves públicas y privadas?

Un par de claves pública y privada es un par de números muy grandes que se usan como claves de encriptación y desencriptación, y que comparten una relación matemática especial. Un sistema común para los pares de claves es el criptosistema RSA. La clave pública se usa para encriptar los mensajes, y estos solo se pueden desencriptar de manera factible con la clave privada correspondiente. Tu servidor web anuncia su clave pública a todo el mundo, y los clientes (como los navegadores web) la usan para activar un canal seguro en tu servidor.

¿Qué es una AC?

Una autoridad de certificación (AC) es una organización que garantiza la asignación entre claves públicas y nombres de DNS públicos (como "www.foobar.com"). Por ejemplo, ¿cómo puede un cliente saber si una clave pública en particular es la clave pública real de www.foobar.com? A priori, no hay forma de saberlo. Una AC garantiza que una clave en particular es la verdadera para un sitio en particular con su propia clave privada para firmar criptográficamente la clave pública del sitio web. Esta firma es imposible de falsificar desde el punto de vista computacional. Los navegadores (y otros clientes) mantienen almacenes de anclas de confianza que contienen las claves públicas que pertenecen a las AC conocidas y usan esas claves públicas para verificar criptográficamente las firmas de la AC.

Un certificado X.509 es un formato de datos que agrupa una clave pública con algunos metadatos sobre la entidad propietaria de la clave. En el caso de la Web, el propietario de la clave es el operador del sitio, y los metadatos importantes son el nombre de DNS del servidor web. Cuando un cliente se conecta a un servidor web HTTPS, este presenta su certificado para que el cliente lo verifique. El cliente verifica que el certificado no haya caducado, que el nombre de DNS coincida con el nombre del servidor al que el cliente intenta conectarse y que una AC de confianza conocida haya firmado el certificado. En la mayoría de los casos, las AC no firman directamente los certificados del servidor web. Por lo general, hay una cadena de certificados que vincula un ancla de confianza a un firmante o firmantes intermedios y, por último, al propio certificado del servidor web (la entidad final).

¿Qué es una solicitud de firma de certificado?

Una solicitud de firma de certificado (CSR) es un formato de datos que, al igual que un certificado, agrupa una clave pública junto con algunos metadatos sobre la entidad propietaria de la clave. Sin embargo, los clientes no interpretan las CSR; las AC sí. Cuando deseas que una AC garantice la clave pública de tu servidor web, le envías una CSR. La AC valida la información de la CSR y la usa para generar un certificado. Luego, la AC te envía el certificado final, y tú lo instalas (o, lo más probable, una cadena de certificados) y tu clave privada en tu servidor web.