Líder en confianza digital para la era de la inteligencia artificial y la computación cuántica.   Descubra cómo Keyfactor lo Keyfactor posible.

  • Inicio
  • Blog
  • Introducción a la PKI para ingenieros de Software

Introducción a la PKI para ingenieros de Software

PKI

Como vicepresidente de Desarrollo de Software en Keyfactor, mi trabajo es hablar con los candidatos e ingenieros recién contratados a medida que se unen a las filas de nuestro equipo en crecimiento (Un pequeño anuncio: siempre puede consultar nuestro sitio para ver las vacantes disponibles). Pero no estoy aquí para convencerle de Keyfactor, estoy aquí para hablar sobre la parte más difícil del trabajo, y no es el desarrollo de Software. El mayor desafío es comprender los conceptos básicos de la infraestructura de clave pública (PKI).

La criptografía, y particularmente la PKI, son amplias e increíblemente complejas por naturaleza. Algunos tecnólogos dedican toda su carrera a ello. Como tal, no se espera (ni siquiera es factible) que ningún ingeniero de Software esté bien versado en estos conceptos, pero una comprensión básica puede ser de gran ayuda.

Ya sea que trabaje directamente con PKI o no, todo ingeniero de Software se basa en la criptografía a lo largo del proceso de compilación y lanzamiento. Si está involucrado en trabajar con PKI o desarrollar soluciones criptográficas, es especialmente importante comprender no solo las herramientas y aplicaciones que utiliza para construir y ejecutar Software, sino también las tecnologías con las que es menos probable que esté familiarizado.

He creado la siguiente guía introductoria para dar a los ingenieros de Software una idea de los temas importantes que se encuentran comúnmente en el proceso de desarrollo. Esta lista y sus descripciones son breves, y lo son intencionadamente. Está pensada como una guía de «inicio rápido» para ayudarle a navegar por el complejo, pero emocionante y en rápido crecimiento, mundo de la PKI y la criptografía.

Criptografía

¿Cuáles son los objetivos principales de la criptografía?

  • Confidencialidad: protege la confidencialidad (o el secreto) de los datos
  • Integridad: garantiza que los datos o el código no han sido alterados
  • Autenticación: verifica la identidad/autenticidad de un usuario, dispositivo o aplicación

 

¿Cuáles son los diferentes tipos de criptografía?

  • Cifrado simétrico: utiliza la misma clave criptográfica para cifrar y descifrar datos. La ventaja es que los procesos pueden cifrar y descifrar grandes cantidades de datos de manera eficiente, ya que utiliza una única clave y algoritmos relativamente simples (por ejemplo, DES, 3DES, AES). El problema es que todas las partes involucradas necesitan intercambiar la clave utilizada para cifrar y descifrar datos, lo que puede generar inseguridades obvias.
  • Cifrado asimétrico: utiliza no una clave, sino un par de claves diferentes, pero matemáticamente relacionadas: una privada y una pública. La clave pública utilizada para cifrar datos se pone a disposición de cualquiera, mientras que la clave privada es conservada únicamente por el usuario o la máquina que generó el par de claves, y se utiliza para el descifrado. Esto significa que no tiene que preocuparse por compartir claves públicas a través de Internet.
    Los algoritmos asimétricos son mucho más complejos y, por lo tanto, más seguros (por ejemplo, RSA, ECC, Diffie-Hellman). Sin embargo, esto también significa que es más lento que el cifrado simétrico y requiere mayor capacidad de procesamiento.

 

¿Cómo se utilizan conjuntamente la criptografía simétrica y asimétrica?

Un escenario común se da con TLS, un protocolo utilizado para cifrar las comunicaciones a través de una red. Durante un handshake TLS, las claves asimétricas autentican primero la conexión entre el cliente (clave pública) y el servidor (clave privada). En este punto, se utilizan claves simétricas, denominadas «claves de sesión», para cifrar las comunicaciones. Cada nueva sesión comienza con un nuevo handshake TLS y nuevas claves de sesión.

¿Qué es un hash?

Un hash es un algoritmo unidireccional que convierte un valor en otro, enmascarando los datos originales con una salida matemática, denominada «digest». El hashing se utiliza habitualmente para garantizar que los datos no han sido manipulados desde que se creó el hash. Los algoritmos comunes incluyen MD5, SHA-1 y SHA-2.

¿Qué es una firma digital?

Una firma digital verifica la autenticidad de un mensaje, archivo o ejecutable con una ID digital única (y una clave de firma). Por ejemplo, la clave privada de un usuario puede utilizarse para firmar digitalmente un documento y verificar la identidad del remitente. El usuario no puede negar posteriormente haber firmado el documento, lo que se conoce como no repudio.

Infraestructura de Clave Pública

¿Qué es la infraestructura de clave pública (PKI)?

La infraestructura de clave pública (PKI) es un conjunto de personas, sistemas, políticas y procedimientos que respaldan la distribución y el uso de claves públicas y certificados digitales. Las organizaciones implementan una PKI para permitir el uso de cifrado, autenticación y firmas digitales para diversas aplicaciones.

¿Qué es un certificado digital?

Un certificado digital, también conocido como certificado de clave pública, es un documento electrónico utilizado para vincular una clave pública a su propietario. Un certificado es una ID única para usuarios, dispositivos, aplicaciones y servicios, que incluye información sobre la identidad y los permisos de su propietario, como:

  • Número de serie del certificado
  • Nombre del emisor del certificado
  • Clave pública
  • Algoritmos compatibles
  • Período de validez del certificado

 

¿Cuáles son las propiedades de un certificado digital?

Propiedades importantes/de uso común

  • Huella digital (Thumbprint): Un hash del certificado; la huella digital se utiliza como identificador único para el certificado.
  • Sujeto: Nombre Distinguido (DN) del certificado (contiene campos como CN, O, OU, etc.)
  • Emisor: La entidad que emitió el certificado.
  • Nombre Alternativo del Sujeto (SAN): Extensión con información adicional sobre el sujeto (actualmente requerido por Google Chrome).
  • Uso de la clave: Define para qué se puede utilizar el certificado, incluyendo firma digital, cifrado de clave, firma de certificado, firma de CRL y no repudio.
  • Uso Extendido de la Clave: Extensión adicional para una mayor definición de los usos de la clave, incluyendo IPSec, autenticación de servidor web TLS, autenticación de cliente web TLS y firma digital.
  • Versión: La versión del certificado X.509 (actualmente existen 3 versiones)
  • Válido desde/hasta: Rango de fechas en el que el certificado se considera válido
  • Puntos de distribución de CRL: La ubicación de la lista de revocación de certificados (CRL) asociada al certificado

 

Otras propiedades comunes

  • Número de serie: Número entero asignado al certificado por la CA
  • Algoritmo de firma: El algoritmo criptográfico utilizado por la CA para firmar el certificado
  • Clave pública: Clave pública utilizada por el certificado para su propósito previsto
  • Identificador de clave del sujeto: Proporciona un medio para identificar certificados que contienen una clave pública particular (del CSR)

 

¿Qué es una autoridad de certificación (CA)?

Una autoridad de certificación (CA) es una entidad de confianza que emite certificados digitales.

¿Qué es un certificado raíz?

En el núcleo de la PKI se encuentra un certificado raíz y su clave privada asociada. Se utiliza para firmar todos los certificados emitidos por la autoridad de certificación de más alto nivel (raíz). Un certificado raíz de confianza es aquel en el que se confía implícitamente.

¿Qué es un certificado de entidad final?

Cualquier certificado que no pueda utilizarse para firmar otros certificados. Por ejemplo, los certificados de servidor y cliente SSL/TLS, los certificados de firma de código y los certificados cualificados son todos certificados de entidad final.

¿Qué es una lista de revocación de certificados (CRL)?

Una lista de revocación de certificados (CRL) es una lista de certificados digitales que han sido revocados por la autoridad de certificación emisora antes de su fecha de caducidad programada. Es esencialmente una lista negra que permite a los usuarios, dispositivos o aplicaciones verificar si un certificado es válido y de confianza. La CRL se publica en una ubicación, conocida como Punto de Distribución de CRL (CDP), disponible para todas las entidades que necesitan verificar el estado de revocación.

¿Qué es el protocolo de estado de certificados en línea (OCSP)?

El problema es que la CRL requiere la sobrecarga de descargar una lista de todos los certificados y verificar su estado de revocación. El OCSP es una alternativa al uso de CRL. En lugar de tener que descargar la lista completa de certificados revocados, simplemente envía una solicitud al servidor de la CA para obtener el estado actual del certificado.

¿En qué se diferencia OCSP de CRL?

Una respuesta OCSP contiene menos datos que una CRL típica, lo que supone una menor carga para los recursos de red y del cliente. También tiene menos datos que analizar, por lo que las bibliotecas del lado del cliente pueden ser menos complejas.

¿Cuáles son algunas de las deficiencias de OCSP?

Uno de los problemas del OCSP es que consume muchos recursos para una CA en entornos de mayor volumen. También puede comprometer la privacidad del usuario y reducir el rendimiento de la navegación. Además, es problemático si el respondedor OCSP no puede comunicarse con la CA asociada por cualquier motivo.

¿Qué es OCSP Stapling?

OCSP Stapling resuelve algunos de estos problemas. El servidor HTTPS consulta regularmente al servidor OCSP el estado de revocación de su(s) certificado(s) y envía la respuesta con el certificado al cliente durante el handshake TLS. Las respuestas no pueden ser falsificadas, ya que deben ser firmadas por la CA asociada.

¿Qué es un proveedor de servicios criptográficos (CSP)?

Un CSP es una CryptoAPI utilizada para crear, almacenar y acceder a claves criptográficas, que pueden ser simétricas o asimétricas. Los CSP son fundamentales para la implementación segura de la funcionalidad criptográfica en muchas aplicaciones, incluidos los Servicios de certificados de Active Directory (ADCS) y la API de inscripción de certificados.

¿Qué es un proveedor de almacenamiento de claves (KSP)?

Un KSP es la próxima generación de CSP, basado en la API de Criptografía: Next Generation (CNG). Puede utilizarse para crear, eliminar, exportar y almacenar claves en casos de uso como el cifrado asimétrico y la firma.

¿Qué son los Estándares de Criptografía de Clave Pública (PKCS)?

En criptografía, PKCS es un conjunto de estándares ampliamente aceptados, definidos y publicados por RSA Security LLC para promover el uso de técnicas criptográficas estándar. Algunos de estos estándares incluyen:

  • PKCS 7: Cryptographic Message Syntax (CMS) es el estándar específico utilizado para la generación de certificados digitales por una PKI. También sirve como base para el estándar S/MIME.
  • PKCS 10: el estándar Cryptographic Signing Request (CSR) es el formato de los mensajes enviados a la autoridad de certificación (CA) para solicitar un certificado digital.
  • PKCS 11: Cryptographic Token Interface, también conocido como Cryptoki, es una API utilizada para crear y manipular tokens criptográficos, módulos de seguridad de Hardware (HSM) y tarjetas inteligentes.
  • PKCS 12: define un formato de archivo utilizado para almacenar claves privadas junto con sus certificados de clave pública. PFX es la implementación de Microsoft de este estándar.

 

Obtenga más información sobre cómo la PKI se integra en DevOps en nuestro último eBook: Cómo habilitar DevSecOps con la automatización del ciclo de vida de los certificados.