RSA (Rivest–Shamir–Adleman) es un algoritmo criptográfico de clave pública que utiliza un par de claves, pública y privada, vinculadas matemáticamente para cifrar datos, intercambiar claves y firmar certificados digitales. Su seguridad se basa en la dificultad de factorizar el producto de dos números primos grandes, un problema que sigue siendo computacionalmente inviable con tamaños de clave prácticos.
Puntos clave
- El algoritmo RSA cifra datos y firma certificados mediante pares de claves públicas y privadas.
- La seguridad se basa en la dificultad de factorizar productos de números primos grandes.
- El algoritmo RSA fue publicado en 1977 por Rivest, Shamir y Adleman en el MIT.
- VersaEl servicio de acceso seguro de… ofrece RSA como opción de intercambio de claves TLS.
- Las claves de mayor tamaño (2048 bits y más) sacrifican velocidad a cambio de una mayor seguridad.
En esta página: Por qué es importanteCómo funcionaTiposRSA y VersaPreguntas frecuentes
¿Por qué es importante el RSA?
RSA fue el primer sistema de cifrado de clave pública viable, publicado en 1977 por Ron Rivest, Adi Shamir y Leonard Adleman en el MIT. Antes de su aparición, todos los sistemas requerían que ambas partes compartieran una clave secreta de antemano, lo cual resultaba poco práctico para la comunicación a gran escala propia de Internet. RSA resolvió ese problema dividiendo la clave en una mitad pública, que cualquiera puede utilizar para cifrar o verificar, y una mitad privada, que solo el propietario posee para descifrar o firmar. Los certificados HTTPS, las claves de host SSH, la firma de código y el cifrado del correo electrónico tienen su origen en esa idea.
RSA sigue siendo importante, incluso aunque los algoritmos de curva elíptica se estén imponiendo en las nuevas implementaciones, ya que la base instalada es enorme. Las autoridades de certificación siguen emitiendo certificados RSA, los clientes más antiguos a menudo no admiten ninguna otra opción y las firmas RSA siguen siendo la opción predeterminada en las herramientas TLS y PKI.
¿Qué es RSA?
El RSA genera dos claves a partir de una construcción matemática. La generación de claves consiste en seleccionar dos números primos aleatorios de gran tamaño, multiplicarlos para obtener un módulo y derivar, mediante aritmética modular, un exponente público y otro privado que le corresponda. La clave pública puede compartirse abiertamente; la clave privada debe mantenerse en secreto.
El cifrado y la firma utilizan las claves en sentidos opuestos. Para enviar un mensaje confidencial, el remitente lo cifra con la clave pública del destinatario; solo la clave privada correspondiente puede descifrarlo. Para demostrar la autoría, el firmante cifra un hash del mensaje con su propia clave privada; cualquiera puede verificarlo utilizando la clave pública del firmante, lo que confirma la identidad y la integridad.
La seguridad depende de la factorización de números enteros: para obtener la clave privada es necesario factorizar el módulo en sus dos factores primos, y no existe ningún algoritmo clásico eficiente que lo haga con tamaños de clave prácticos —normalmente de 2048 bits o más—.
Tipos de uso del RSA
RSA desempeña tres funciones distintas en una red. El transporte de claves RSA —conocido coloquialmente como «intercambio de claves RSA»— permite a un cliente TLS cifrar un secreto premaster con la clave pública RSA del servidor, que solo la clave privada del servidor puede descifrar. Este modo es estático y carece de confidencialidad hacia adelante, razón por la cual TLS 1.3 lo sustituyó por variantes de Diffie-Hellman, aunque sigue estando disponible en versiones anteriores. Las firmas digitales RSA autentican certificados y procesos de establecimiento de conexión: una autoridad de certificación firma la clave pública de un servidor con su propia clave privada RSA, y los clientes verifican la firma para confiar en ella. El cifrado RSA de grandes volúmenes de datos es poco habitual en la práctica, por lo que, en su lugar, RSA suele envolver una clave simétrica.
Las implementaciones también varían en función del tamaño de la clave y del relleno: de 2048 a 4096 bits, ya que los tamaños más pequeños son demasiado débiles frente a los ataques de factorización, y se utiliza el relleno OAEP o PSS en lugar del antiguo esquema PKCS#1 v1.5, vulnerable a los ataques de oráculo.
RSA y Versa
VersaEl servicio Secure Access Service —el servicio de portal y pasarela que conecta el cliente Versa SASE — permite a los administradores seleccionar RSA como algoritmo de intercambio de claves TLS, junto con ECDHE, para las conexiones que negocian versiones de TLS anteriores a la 1.3, con una longitud mínima de clave configurable. Cuando Configuración de la pasarela de acceso seguro, los administradores eligen conjuntos de cifrado TLS/DTLS, incluidos los conjuntos de transporte de claves RSA, tales como TLS-RSA-WITH-AES-256-GCM-SHA384 y conjuntos ECDHE firmados con RSA, como TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384.
RSA también sustenta la autenticación basada en certificados en el mismo servicio: el portal de acceso seguro y la pasarela admiten los tipos de autenticación de cliente «Certificate», «EAP» y «Preshared», y los perfiles de autenticación de dispositivos se basan en certificados firmados por RSA para verificar los dispositivos de client SASE . Las Secure SD-WAN ediciones y NGFW ofrecen los mismos controles.
Preguntas frecuentes
¿Qué significa RSA?
RSA son las iniciales de Rivest–Shamir–Adleman, los apellidos de Ron Rivest, Adi Shamir y Leonard Adleman, quienes publicaron el algoritmo en 1977 en el MIT: se trata del primer sistema criptográfico de clave pública práctico y sigue siendo uno de los algoritmos más utilizados en TLS y PKI.
¿Cómo funciona el cifrado RSA?
El RSA utiliza dos claves vinculadas matemáticamente que se derivan de dos números primos muy grandes. Los datos cifrados con la clave pública solo pueden descifrarse con la clave privada correspondiente, y los datos firmados con la clave privada pueden verificarse con la clave pública, lo que permite a personas desconocidas intercambiar secretos de forma segura.
¿Sigue siendo seguro el sistema RSA hoy en día?
Sí, siempre que el tamaño de la clave sea suficiente. Una clave RSA de 2048 bits sigue considerándose segura frente a los ordenadores clásicos, aunque las recomendaciones se inclinan cada vez más por los 3072 bits para una protección a largo plazo. Un futuro ordenador cuántico podría descifrar el RSA mediante el algoritmo de Shor, lo que está impulsando la investigación sobre alternativas poscuánticas.
¿Cuál es la diferencia entre RSA y ECDHE?
El transporte de claves RSA permite a un cliente cifrar un secreto con la clave pública estática del servidor, mientras que el protocolo ECDHE (Diffie-Hellman efímero de curva elíptica) hace que ambas partes generen pares de claves temporales y deriven un secreto compartido. El protocolo ECDHE ofrece confidencialidad hacia adelante, algo que el transporte de claves RSA estático no puede ofrecer.
¿Qué tamaño de clave RSA se debe utilizar?
2048 bits es el mínimo práctico para nuevas implementaciones; 3072 o 4096 bits aportan un mayor margen de seguridad, aunque a costa de una menor velocidad en las operaciones y de certificados más voluminosos. Las claves de menos de 2048 bits se consideran vulnerables y deben retirarse de cualquier lugar en el que aún se utilicen.
Más información sobre RSA
Si quieres saber más, estas son algunas fuentes en las que confiamos.
| Glosario del CSRC del NIST | IETF RFC 8017: Especificaciones de criptografía RSA PKCS #1 |
|---|---|
| Índice del NIST de terminología estándar sobre criptografía y seguridad, que incluye algoritmos de clave pública como RSA. | La especificación de la IETF que define el cifrado RSA, los esquemas de firma, el relleno y los formatos de clave utilizados en TLS y PKI. |
Términos relacionados
Si estás leyendo sobre RSA, te recomiendo que eches un vistazo a lo siguiente.
| Borde de servicio de acceso seguro | Nombre de dominio completo | SD-WAN |
|---|---|---|
| La arquitectura convergente de SD-WAN y seguridad, en la que la autenticación de clientes y los túneles TLS pueden basarse en un intercambio de claves respaldado por RSA. | El formato de nombre de dominio utilizado en la verificación de la identidad entre pares de certificados, junto con los certificados de dispositivo y de cliente firmados con RSA. | El enfoque de red cuyos túneles «overlay» y « SASE » pueden protegerse mediante conjuntos de cifrado TLS basados en RSA. |