Firmas, Certificados Digitales y PKI (Parte del Curso de Criptografía)

 https://www.youtube.com/watch?v=IunNxCN3YgY

Firmas Digitales

¿Qué son?

Las firmas digitales son el equivalente electrónico de las firmas manuscritas, pero con mayor seguridad y funcionalidad.

Cómo funcionan:

  1. Hash criptográfico: Se crea un resumen único del documento usando algoritmos como SHA-256

  2. Cifrado con clave privada: El hash se cifra con la clave privada del firmante

  3. Verificación: El receptor descifra con la clave pública y compara hashes

Características:

  • Autenticidad: Verifica la identidad del firmante

  • Integridad: Garantiza que el documento no fue alterado

  • No repudio: El firmante no puede negar haber firmado

2. Certificados Digitales

¿Qué son?

Documentos electrónicos que vinculan una identidad con una clave pública.

Estructura típica:

  • Información del titular (nombre, organización)

  • Clave pública del titular

  • Información de la Autoridad Certificadora (CA)

  • Periodo de validez

  • Firma digital de la CA

Tipos comunes:

  • SSL/TLS: Para servidores web

  • S/MIME: Para correo electrónico seguro

  • Code Signing: Para firmar software

  • Client Authentication: Para autenticación de usuarios

3. PKI (Public Key Infrastructure)

¿Qué es?

Un sistema completo de hardware, software, políticas y estándares que gestiona:

  • Creación de certificados

  • Distribución

  • Validación

  • Revocación

Componentes principales:

Autoridades Certificadoras (CA)

  • Emiten y firman certificados

  • Actúan como terceros de confianza

  • Ejemplos: Let's Encrypt, DigiCert, GlobalSign

Autoridades de Registro (RA)

  • Verifican identidades antes de emitir certificados

  • Validan información de los solicitantes

Repository

  • Almacena y distribuye certificados y CRLs

Listas de Revocación (CRL)

  • Listas de certificados revocados antes de su expiración

Protocolo OCSP

  • Verificación online del estado de certificados

Flujo típico PKI:

  1. Solicitud: Usuario solicita certificado a la RA

  2. Verificación: RA valida la identidad

  3. Emisión: CA firma y emite el certificado

  4. Distribución: Certificado disponible para uso

  5. Validación: Verificación contra CRL/OCSP

  6. Revocación: Invalida certificado si es necesario

Aplicaciones prácticas:

  • HTTPS/SSL: Navegación web segura

  • Correo electrónico seguro: S/MIME

  • Firma de documentos: PDF, contratos

  • Autenticación: Acceso a sistemas

  • Blockchain: Transacciones criptográficas

Consideraciones de seguridad:

  • Protección de claves privadas: Usar HSMs o tokens seguros

  • Renovación periódica: Los certificados tienen fecha de expiración

  • Validación constante: Verificar estado con OCSP/CRL

  • Jerarquías de confianza: Cadena de certificados hasta root CA

¿Te gustaría que profundice en algún aspecto específico de estos temas?

Firmas Digitales, Certificados Digitales y PKI

1. Introducción

En criptografía asimétrica, un problema común es verificar que una clave pública realmente pertenece a quien dice ser. Sin un mecanismo de verificación, un atacante podría suplantar identidades. Para resolver esto, se utilizan certificados digitales y infraestructuras de clave pública (PKI).


2. Firmas Digitales

¿Qué son?

Son equivalentes electrónicos de las firmas manuscritas, pero con mayor seguridad. Permiten:

  • Autenticidad: Verificar la identidad del firmante.

  • Integridad: Asegurar que el documento no ha sido alterado.

  • No repudio: El firmante no puede negar la autoría.

¿Cómo funcionan?

  1. Se genera un hash del documento (ej: SHA-256).

  2. El hash se cifra con la clave privada del firmante.

  3. El receptor descifra el hash con la clave pública del firmante y lo compara con el hash del documento recibido.

  4. Si coinciden, la firma es válida.

Comandos prácticos (OpenSSL)

bash
# Generar clave privada
openssl genrsa -out private.pem 2048

# Generar clave pública desde la privada
openssl rsa -in private.pem -pubout -out public.pem

# Crear un archivo de ejemplo
echo "Mensaje secreto" > mensaje.txt

# Firmar el archivo
openssl dgst -sha256 -sign private.pem -out mensaje.txt.sig mensaje.txt

# Verificar la firma
openssl dgst -sha256 -verify public.pem -signature mensaje.txt.sig mensaje.txt

3. Certificados Digitales

¿Qué son?

Son archivos que vinculan una identidad (persona, servidor, etc.) con una clave pública, firmados por una Autoridad Certificadora (CA) confiable.

Estructura (Estándar X.509)

  • Datos del titular (nombre, organización, etc.).

  • Clave pública del titular.

  • Datos de la CA emisora.

  • Fechas de validez.

  • Algoritmos criptográficos usados.

  • Firma digital de la CA.

Formatos comunes

  • .pem: Codificado en Base64 (texto legible).

  • .der: Binario.

  • .p12/.pfx: Incluye clave privada cifrada con contraseña.

Generar un certificado autofirmado

bash
openssl req -x509 -newkey rsa:4096 -keyout llave_privada.pem -out certificado.pem -days 365 -nodes

4. PKI (Public Key Infrastructure)

¿Qué es?

Es la infraestructura tecnológica que gestiona la emisión, validación y revocación de certificados digitales. Incluye:

  • CA (Autoridad Certificadora): Emite y firma certificados.

  • RA (Autoridad de Registro): Verifica la identidad de los solicitantes.

  • Repository: Almacena certificados y listas de revocación (CRL).

  • OCSP: Protocolo para verificar en tiempo real la validez de un certificado.

Flujo de emisión de un certificado

  1. El usuario envía su clave pública y datos personales a la RA.

  2. La RA verifica la identidad.

  3. La CA firma el certificado con su clave privada.

  4. El certificado se entrega al usuario.

Flujo de verificación

  1. Bob recibe el certificado de Alice.

  2. Bob verifica la firma de la CA usando su clave pública.

  3. Bob valida que el certificado no esté revocado (consultando CRL/OCSP).

  4. Bob extrae la clave pública de Alice y confía en ella.


5. Usos de Certificados Digitales

  • HTTPS/SSL: Servidores web seguros.

  • Firma de software: Validar la autenticidad de aplicaciones.

  • Correo seguro (S/MIME): Cifrar y firmar emails.

  • Autenticación de usuarios: En bancos, gobiernos, etc.

  • VPNs: Conexiones seguras entre redes.


6. Tipos de PKI

PKI Público

  • Certificados emitidos por CAs reconocidas (DigiCert, Let's Encrypt, etc.).

  • Válidos globalmente (navegadores, sistemas operativos, etc.).

  • Ideales para servicios públicos (webs, APIs, etc.).

PKI Privado

  • Certificados emitidos por una CA interna de una organización.

  • Válidos solo dentro de la organización.

  • Usados para VPNs internas, acceso a sistemas, etc.


7. Revocación de Certificados

Si un certificado es comprometido o ya no es necesario, se revoca mediante:

  • CRL (Certificate Revocation List): Lista de certificados revocados.

  • OCSP (Online Certificate Status Protocol): Verificación en tiempo real.


8. Ejemplo Práctico: Firmar un PDF

  1. Genera un certificado en formato .p12:

    bash
    openssl pkcs12 -export -in certificado.pem -inkey llave_privada.pem -out certificado.p12
  2. Importa el .p12 en Windows (doble clic e ingresa la contraseña).

  3. Abre un PDF en Adobe Acrobat, ve a Herramientas > Firmas Digitales y firma el documento.


9. Consideraciones Clave

  • Almacenamiento seguro: Guarda las claves privadas en dispositivos HSMs o tokens.

  • Validez temporal: Los certificados tienen fecha de expiración (renovación periódica).

  • Confianza: Los navegadores y SO confían en CAs públicas mediante listas preinstaladas.


10. Conclusión

Las firmas digitales garantizan autenticidad e integridad. Los certificados digitales resuelven el problema de confianza en las claves públicas. La PKI es la infraestructura que hace posible todo esto de manera escalable y segura.


¿Necesitas más detalles sobre algún paso en particular


Comentarios

Entradas más populares de este blog

firma digitales PKI utilizando solo javascript y node,

convertir un certificado .key a formato PEM utilizando solo la Web Crypto API

Pilares de la firma electronica-pki-RSA