0Pricing
Cryptology Academy · Lección

Padding PKCS#1 v1.5 y Bleichenbacher

Explique los ataques adaptativos de texto cifrado elegido contra PKCS#1 v1.5.

Padding PKCS#1 v1.5 y Bleichenbacher es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

El padding PKCS#1 v1.5 fue el estándar de padding RSA predominante durante 20 años. En 1998, Daniel Bleichenbacher demostró que era vulnerable a un ataque adaptativo de texto cifrado elegido.

Estructura de PKCS#1 v1.5

Formato: 0x00 0x02 [random non-zero bytes] 0x00 [message] El prefijo 0x00 0x02 indica padding de cifrado (frente a 0x00 0x01 para firmas). Los bytes aleatorios evitan el determinismo y no deben ser cero.

Por qué se utilizaba PKCS#1 v1.5

PKCS#1 v1.5 fue diseñado por RSA Security en 1993, mucho antes de que existieran pruebas de seguridad IND-CCA2. Añadía aleatoriedad y comprobaciones de estructura. Se implementó ampliamente en SSL/TLS desde 1995.

El ataque de Bleichenbacher

Bleichenbacher (1998): si un servidor revela si el descifrado RSA produce un padding PKCS#1 v1.5 válido, mediante un mensaje de error o la temporización, un atacante puede descifrar cualquier valor cifrado con RSA usando aproximadamente 1 millón de consultas.

Definición de oráculo

Un «oráculo de padding» es cualquier canal lateral que distinga entre «padding válido» y «padding no válido». Incluso una diferencia mínima de temporización o un mensaje de error diferente crea un oráculo explotable.

Mecánica del ataque

El atacante multiplica el texto cifrado objetivo C por s^e mod n y envía C×s^e modificado. Si el servidor responde «padding válido», s se eligió correctamente. Al iterar, se acota el intervalo de posibles textos planos hasta recuperar M.

Ataque DROWN (2016)

DROWN explotó Bleichenbacher mediante SSLv2. Los servidores TLS modernos que compartían una clave con cualquier servidor SSLv2 eran vulnerables. Descifraba intercambios de claves RSA de TLS moderno utilizando SSLv2 como oráculo. El 33 % de los servidores HTTPS se vio afectado.

Ataque ROBOT (2017)

ROBOT (Return Of Bleichenbacher's Oracle Threat) redescubrió oráculos de temporización en 7 de las 10 implementaciones de TLS más populares, incluidas Cisco, F5 y Radware. Bleichenbacher sigue siendo relevante porque las implementaciones son difíciles de realizar correctamente.

Descifrado RSA en tiempo constante

Defensas: continúe siempre con el descifrado, independientemente de la validez del padding, y devuelva una respuesta idéntica cuando el padding no sea válido. Utilice código de tiempo constante para evitar diferencias de temporización. Es difícil implementarlo correctamente.

Por qué OAEP sustituyó a v1.5

OAEP incluye una función hash unidireccional con trampilla que demuestra la seguridad IND-CCA2 (seguridad frente a textos cifrados elegidos). Incluso con un oráculo de padding, la estructura aleatoria de OAEP hace que las consultas al oráculo no aporten información.

Los sistemas heredados aún utilizan v1.5

A pesar de la existencia de OAEP, PKCS#1 v1.5 todavía se utiliza en sistemas de pago heredados, aplicaciones Java antiguas y ciertas implementaciones de PKI. TLS 1.3 eliminó por completo el intercambio de claves RSA, suprimiendo esta superficie de ataque.

Comprobación rápida

¿Qué es un «oráculo de padding» en el contexto del ataque de Bleichenbacher?

Recapitulación

El ataque de Bleichenbacher es un hito del criptoanálisis práctico. A continuación, estudiaremos OAEP, el padding con seguridad demostrable que sustituye a v1.5.

Preguntas frecuentes

¿La lección «Padding PKCS#1 v1.5 y Bleichenbacher» es gratis?

Sí — el texto completo de «Padding PKCS#1 v1.5 y Bleichenbacher» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Padding PKCS#1 v1.5 y Bleichenbacher»?

Explique los ataques adaptativos de texto cifrado elegido contra PKCS#1 v1.5. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Padding PKCS#1 v1.5 y Bleichenbacher»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. RSA de libro de texto y por qué es inseguro
  2. Padding PKCS#1 v1.5 y Bleichenbacher
  3. OAEP: padding óptimo para cifrado asimétrico
  4. RSA-PSS para firmas digitales
← Volver a Cryptology Academy