Ir al contenido

Webinar: Regístrese para nuestro próximo seminario web

Regístrate Ahora

¿Qué es RSA? ¿Cómo funciona?

¿Qué es RSA? ¿Cómo funciona un RSA?

Introducción

El Rivest-Shamir-Adleman (RSA) algoritmo de cifrado es un cifrado asimétrico Algoritmo ampliamente utilizado en muchos productos y servicios. El cifrado asimétrico utiliza un par de claves vinculado matemáticamente a... encrypto  y  descifrar Datos. Se crean una clave privada y una pública: la clave pública es accesible para todos y la clave privada es un secreto que solo conoce el creador del par de claves. Con RSA, tanto la clave privada como la pública pueden cifrar los datos, mientras que la otra los descifra. Esta es una de las razones por las que RSA es el algoritmo de cifrado asimétrico más utilizado.

¿Cómo funciona RSA?

La opción de cifrar con la clave privada o pública ofrece numerosos servicios a los usuarios de RSA. Si se utiliza la clave pública para cifrar, se debe utilizar la clave privada para descifrar los datos. Esto es ideal para enviar información confidencial a través de una red o conexión a Internet, donde el receptor de los datos envía su clave pública al remitente. Este último cifra la información confidencial con la clave pública y la envía al destinatario. Dado que la clave pública cifra los datos, solo el propietario de la clave privada puede descifrarlos. Por lo tanto, solo el destinatario previsto de los datos puede descifrarlos, incluso si se obtuvieron en tránsito.

RSA en funcionamiento

El otro método de cifrado asimétrico con RSA consiste en cifrar un mensaje con una clave privada. En este ejemplo, el remitente cifra los datos con su clave privada y envía los datos cifrados junto con su clave pública al destinatario. Este último puede descifrarlos con la clave pública del remitente, verificando así su identidad. Con este método, los datos podrían ser robados y leídos durante el envío, pero el verdadero propósito de este tipo de cifrado es comprobar la identidad del remitente. Si los datos fueran robados y modificados durante el envío, la clave pública no podría descifrar el nuevo mensaje, por lo que el destinatario sabría que los datos se han modificado durante el envío.

Los detalles técnicos de RSA se basan en la idea de que es fácil generar un número multiplicando dos números primos suficientemente grandes, pero factorizar ese número para obtener los números primos originales es extremadamente difícil. La clave pública y la privada se crean con dos números, uno de los cuales es el producto de dos números primos grandes. Ambas utilizan los mismos dos números primos para calcular su valor. Las claves RSA suelen tener una longitud de 1024 o 2048 bits, lo que dificulta enormemente su factorización, aunque se cree que las claves de 1024 bits serán vulnerables pronto.

¿Quién utiliza el cifrado RSA?

Como se describió anteriormente, el cifrado RSA se utiliza para diversas tareas. Una de ellas es firma digital de código  y  certificadosLos certificados permiten verificar la propiedad de una clave pública firmándola con la clave privada del propietario del par de claves. Esto autentica al propietario del par de claves como fuente de información confiable. La firma de código también se realiza con el algoritmo RSA. Para garantizar que el propietario no envíe código peligroso o incorrecto a un comprador, el código se firma con la clave privada de su creador. Esto verifica que el código no haya sido modificado maliciosamente durante su transmisión y que su creador verifique que cumple con sus promesas.

Se utilizó RSA con Transport Layer Security (TLS) Para proteger las comunicaciones entre dos personas. Otros productos y algoritmos conocidos, como el algoritmo Pretty Good Privacy, utilizan RSA actualmente o lo han hecho en el pasado. Las redes privadas virtuales (VPN), los servicios de correo electrónico, los navegadores web y otros canales de comunicación también han utilizado RSA. Las VPN utilizan TLS para implementar un protocolo de enlace entre las dos partes en el intercambio de información. El protocolo de enlace TLS utiliza RSA como algoritmo de cifrado para verificar que ambas partes son quienes dicen ser.

Servicios de cifrado personalizados

Evaluamos, elaboramos estrategias e implementamos soluciones y estrategias de cifrado.

Vulnerabilidades de RSA

Aunque es viable en muchas circunstancias, todavía existen una serie de vulnerabilidades. RSA que pueden ser explotadas por atacantes. Una de estas vulnerabilidades es la implementación de una clave larga en el algoritmo de cifrado. Algoritmos como AES son irrompibles, mientras que RSA se basa en el tamaño de su clave para que sea difícil de descifrar. Cuanto más larga sea una clave RSA, más segura es. Mediante la factorización prima, los investigadores lograron descifrar un algoritmo RSA de clave de 768 bits, pero les llevó dos años, miles de horas de trabajo y una cantidad absurda de potencia de procesamiento, por lo que las longitudes de clave utilizadas actualmente en RSA siguen siendo seguras. Instituto Nacional de Ciencia y Tecnología (NIST) Actualmente se recomienda una longitud mínima de clave de 2048 bits, pero muchas organizaciones han estado utilizando claves de 4096 bits. Otras vulnerabilidades de RSA son:

  • Generador de números aleatorios débiles

    Cuando las organizaciones utilizan generadores de números aleatorios débiles, los números primos que crean son mucho más fáciles de factorizar, lo que permite a los atacantes descifrar el algoritmo con mayor facilidad.

  • Generación de claves débiles

    Las claves RSA tienen ciertos requisitos para su generación. Si los números primos son demasiado cercanos, o si uno de los números que componen la clave privada es demasiado pequeño, la clave se puede resolver con mayor facilidad.

  • Ataques de canal lateral

    Los ataques de canal lateral son un método que aprovecha el sistema que ejecuta el algoritmo de cifrado, en lugar del algoritmo en sí. Los atacantes pueden analizar la potencia utilizada, usar análisis de predicción de ramificación o usar ataques de temporización para encontrar maneras de determinar la clave utilizada en el algoritmo, comprometiendo así los datos.