Comienza la cuenta atrás para Keyfactor Tech Days | ¡Asegura tu plaza hoy mismo!

  • Inicio
  • Blog
  • Manual de PKI para ingenieros Software

Manual de PKI para ingenieros Software

PKI

Como vicepresidente de desarrollo de Software en Keyfactor, mi trabajo consiste en hablar con los candidatos y con los ingenieros recién contratados que se unen a las filas de nuestro equipo en crecimiento (enchufe rápido: siempre puedes echar un vistazo a nuestro sitio para ver los puestos vacantes). Pero no estoy aquí para venderles Keyfactor, sino para hablarles de la parte más difícil del trabajo, y no es el desarrollo de software . El mayor reto es comprender los conceptos básicos de la infraestructura de clave pública (PKI).

La criptografía, y en particular la PKI, son de naturaleza amplia e increíblemente compleja. Algunos tecnólogos dedican toda su carrera a ello. Por ello, no se espera (ni siquiera es factible) que ningún ingeniero de software conozca a fondo estos conceptos, pero una comprensión básica puede ayudar mucho.

Tanto si trabaja directamente con PKI como si no, todos los ingenieros de software confían en la criptografía a lo largo del proceso de creación y publicación. Si trabajas con PKI o desarrollas soluciones criptográficas, es especialmente importante que conozcas no solo las herramientas y aplicaciones que utilizas para crear y ejecutar software, sino también las tecnologías con las que probablemente estés menos familiarizado.

He creado el siguiente manual para que los ingenieros de software se hagan una idea de los temas importantes que suelen encontrarse en el proceso de desarrollo. Esta lista y sus descripciones son breves, y lo son intencionadamente. Pretende ser una guía de "inicio rápido" para ayudarte a navegar en el complejo, pero excitante y rápidamente creciente mundo de la PKI y la criptografía.

Criptografía

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

  • Confidencialidad: protege la confidencialidad (o secreto) de los datos.
  • Integridad: garantiza que los datos o el código no han sido manipulados.
  • 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 forma eficiente, ya que utiliza una única clave y algoritmos relativamente sencillos (por ejemplo, DES, 3DES, AES). El problema es que todas las partes implicadas deben intercambiar la clave utilizada para cifrar y descifrar los datos, lo que puede dar lugar a inseguridades evidentes.
  • Cifrado asimétrico: no utiliza una clave, sino un par de claves diferentes, aunque relacionadas matemáticamente: una privada y otra pública. La clave pública utilizada para cifrar los datos está a disposición de cualquiera, mientras que la clave privada sólo la conserva el usuario o la máquina que generó el par de claves, y se utiliza para descifrar. Esto significa que no tienes que preocuparte por compartir claves públicas a través de Internet.
    Los algoritmos asimétricos son mucho más complejos y, por tanto, más seguros (por ejemplo, RSA, ECC, Diffie-Hellman). Sin embargo, esto también significa que son más lentos que el cifrado simétrico y requieren más capacidad de procesamiento.

 

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

Una situación habitual es la de TLS, un protocolo utilizado para cifrar las comunicaciones a través de una red. Durante un intercambio de TLS , las claves asimétricas autentifican primero la conexión entre el cliente (clave pública) y el servidor (clave privada). En este punto, se utilizan claves simétricas, llamadas "claves de sesión", para cifrar las comunicaciones. Cada nueva sesión comienza con un nuevo intercambio de TLS y 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 un resultado matemático - llamado "digest". El hash se utiliza habitualmente para garantizar que los datos no han sido manipulados desde que se creó el hash. Los algoritmos más comunes son MD5, SHA-1 y SHA-2.

¿Qué es una firma digital?

Una firma digital verifica la autenticidad de un mensaje, archivo o ejecutable con un identificador digital único (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 que ha 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 apoyan la distribución y el uso de claves públicas y certificados digitales. Las organizaciones implantan una PKI para permitir el uso de cifrado, autenticación y firmas digitales en 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 un identificador único 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 admitidos
  • Periodo de validez del certificado

 

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

Propiedades importantes/usadas habitualmente

  • Huella digital: Un hash del certificado - la huella digital se utiliza como un identificador único para el certificado.
  • Asunto: Nombre Distinguido (DN) del certificado (contiene campos como CN, O, OU, etc.)
  • Emisor: Entidad de la que procede el certificado.
  • Nombre alternativo de la materia (SAN): Extensión con información adicional sobre el asunto (ahora requerida por Google Chrome).
  • Uso de claves: Define para qué se puede utilizar el certificado, incluida la firma digital, el cifrado de claves, la firma de certificados, la firma de CRL y el no repudio.
  • Uso mejorado de claves: Extensión adicional para una mayor definición de los usos de claves, 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 hay 3 versiones)
  • Válido desde/hasta: Intervalo de fechas en el que se considera válido el certificado
  • 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 los fines previstos.
  • Identificador de clave del sujeto: Proporciona un medio para identificar los certificados que contienen una clave pública determinada (de la 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?

El núcleo de la PKI es 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 de SSL/TLS , los certificados de firma de código y los certificados cualificados son 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 emisora de certificados antes de su fecha de caducidad prevista. Es esencialmente una lista negra que permite a los usuarios, dispositivos o aplicaciones verificar si un certificado es válido y fiable. La CRL se publica en un lugar, conocido como punto de distribución de CRL (CDP), disponible para todas las entidades que necesiten comprobar el estado de revocación.

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

El problema es que las CRL requieren la sobrecarga de descargar una lista de todos los certificados y comprobar 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 la red y del cliente. También tiene menos datos que analizar, por lo que las bibliotecas del cliente pueden ser menos complejas.

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

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

¿Qué es el grapado OCSP?

El grapado OCSP resuelve algunos de estos problemas. El servidor HTTPS consulta periódicamente 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 falsificarse, ya que deben estar firmadas por la CA asociada.

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

Una 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 de 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)?

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

¿Qué son las normas de criptografía de clave pública (PKCS)?

En criptografía, PKCS es un conjunto de normas ampliamente aceptadas, definidas y publicadas por RSA Security LLC para promover el uso de técnicas criptográficas estándar. Algunas de estas normas son:

  • PKCS 7: Cryptographic Message Syntax (CMS) es la norma específica utilizada para la generación de certificados digitales por una PKI. También sirve de base para el estándar S/MIME.
  • PKCS 10: la norma de solicitud de firma criptográfica (CSR) es el formato de los mensajes enviados a la autoridad de certificación (CA) para solicitar un certificado digital.
  • PKCS 11: la interfaz de tokens criptográficos, también conocida como Cryptoki, es una API utilizada para crear y manipular tokens criptográficos, módulos de seguridad 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 PKI encaja en DevOps en nuestro último eBook: Cómo habilitar DevSecOps con la automatización del ciclo de vida de los certificados.