Proton

¿Qué es el cifrado AES?

En criptografía, AES se refiere a Advanced Encryption Standard, un algoritmo de cifrado rápido, eficiente y seguro certificado por el Instituto Nacional de Estándares y Tecnología de EE. UU. (NIST). Es un cifrado de clave simétrica que usa la misma clave tanto para cifrar como para descifrar datos. Esto es relativamente rápido, lo que lo hace ideal para cifrar grandes cantidades de datos en reposo.

Debido a su solidez y fiabilidad, AES es uno de los tipos de cifrado más populares y comunes utilizados en la seguridad de redes inalámbricas, el cifrado de datos y cifrado de disco, los sistemas de pago en línea, el almacenamiento en la nube, la gestión de contraseñas e incluso aplicaciones gubernamentales y militares. El gobierno de EE. UU. utiliza cifrado AES para proteger su información clasificada, lo que ha contribuido a su popularidad.

¿Es seguro el algoritmo AES?

Sí. En 2000, tras un proceso de selección muy exhaustivo(nueva ventana) y abierto, NIST anunció que AES (conocido hasta entonces como el algoritmo Rijndael, creado por Vincent Rijmen y Joan Daemen) reemplazaría a DES como su algoritmo de cifrado(nueva ventana) «sin clasificar y divulgado públicamente, capaz de proteger información gubernamental sensible hasta bien entrado el próximo siglo».

Según NIST, todas las longitudes de clave del algoritmo AES se consideran "suficientes" para proteger la información clasificada hasta el nivel "Secreto". Para la información de «Alto secreto», se requiere AES-192 o AES-256.

Ataques de fuerza bruta

La forma más básica de ataque posible contra cualquier cifrado es un ataque de fuerza bruta, que consiste en probar todas las combinaciones posibles de claves hasta encontrar la correcta. 

Frontier(nueva ventana) es la supercomputadora más potente del mundo conocida públicamente. Si dedicara toda su capacidad a forzar AES-128 por fuerza bruta, aun así requeriría del orden de 10–12 billones de años para agotar todas las combinaciones posibles de AES-128. Esto es mucho más que la edad del universo. Por lo tanto, incluso en sus tamaños de bits más bajos, AES es altamente resistente a los ataques de fuerza bruta de las computadoras convencionales. 

AES-256 es 340 mil millones de mil millones de mil millones de mil millones (2¹²⁸) de veces más difícil de forzar por fuerza bruta que AES-128.

Aunque el algoritmo de Grover(nueva ventana) reduce teóricamente a la mitad la seguridad de las claves simétricas frente a las amenazas cuánticas(nueva ventana), estas siguen siendo relativamente resistentes a la computación cuántica, especialmente cuando se usa una clave de 256 bits.

Ataques a claves

Con el paso de los años, los criptógrafos han publicado varios ataques teóricos contra claves AES, pero todos son inviables en la práctica o solo son eficaces en implementaciones de AES que usan un número reducido de rondas (vea abajo). 

El intento más exitoso fue el teórico ataque biclique(nueva ventana) publicado en 2011, que puede reducir por un factor de cuatro el tiempo necesario para forzar AES por fuerza bruta. Sin embargo, aún requeriría miles de millones de años para forzar AES por fuerza bruta en cualquier hardware de computadora actual o previsible. 

Ningún ataque a claves conocido es práctico contra AES-128 o superior cuando está implementado correctamente. 

Ataques de canal lateral

Un ataque de canal lateral intenta reducir la cantidad de combinaciones necesarias para realizar con éxito un ataque de fuerza bruta al buscar pistas en la computadora que realiza los cálculos de cifrado. Se pueden obtener pistas examinando:

  • Temporización: cuánto tarda una computadora en realizar una operación
  • Filtraciones electromagnéticas
  • Indicaciones de audio
  • Indicaciones visuales (captadas con una cámara de alta resolución).

Los ataques de temporización de caché, en particular, han demostrado ser bastante eficaces para vulnerar AES con éxito. En el ejemplo más destacado, en 2016 los investigadores pudieron recuperar(nueva ventana) una clave AES-128 usando «solo alrededor de 6 - 7 bloques de texto plano o texto cifrado (teóricamente incluso un solo bloque sería suficiente)».

Sin embargo, se pueden hacer varias cosas para mitigar la amenaza de los ataques de canal lateral:

  • AES implementado correctamente puede prevenir formas en que los datos podrían sufrir una filtración.
  • El hardware que integra el conjunto de instrucciones AES reduce aún más la superficie de ataque de canal lateral de AES.
  • Se pueden usar técnicas de aleatorización para alterar la relación entre los datos protegidos por AES y cualquier dato filtrado que pudiera recopilarse mediante un ataque de canal lateral. 

En muchos casos, los ataques de canal lateral requieren que el atacante tenga proximidad cercana o acceso físico al dispositivo mientras descifra datos, aunque los ataques remotos son posibles si se instala software malicioso en un dispositivo, en particular en el caso de los ataques de temporización.

Cómo funciona AES

AES es un cifrado por bloques que cifra y descifra datos en bloques de 128 bits mediante claves de 128, 192 o 256 bits. Como se señaló anteriormente, se usa la misma clave para cifrar y descifrar datos. A AES que usa una clave de 128 bits a menudo se le llama AES-128, y de forma similar ocurre con AES-192 y AES-256.

Los datos se cifran mediante múltiples rondas, cada una de las cuales consiste en una serie de operaciones matemáticas. 

El proceso comienza usando el algoritmo de programación de claves de Rijndael para derivar una serie de nuevas claves de ronda a partir de la clave secreta original. Esto se conoce como expansión de clave.

Luego, cada ronda consiste en una o más de las siguientes operaciones (o una combinación de ellas):

1. Add RoundKey: se realiza una operación XOR(nueva ventana) para combinar los datos que se van a cifrar (el texto cifrado) con cada clave de ronda.

2. Sub Bytes: se usa una tabla de sustitución para mezclar aún más los datos. Piense, en principio, en los simples cifrados por sustitución que usaba de niño, en los que sustituía cada letra de un mensaje por otra situada un número fijo de posiciones más adelante en el alfabeto.

3. Shift Rows: cada bloque de datos de 128 bits consiste en un bloque de 4x4 de 16 bits. Esta operación desplaza cada byte de una fila del bloque cierto desplazamiento hacia la izquierda.

4. MixColumns: se realiza una transformación lineal invertible adicional en cada columna del bloque.

Esta serie de transformaciones constituye una ronda, que luego se repite en los datos durante un número específico de rondas, según el tamaño de la clave:

  • AES-128 — 10 rondas
  • AES-192 — 12 rondas
  • AES 256 — 14 rondas

Para descifrar datos, todos los pasos usados para cifrarlos simplemente se realizan en orden inverso. Esto requiere la clave secreta original para revertir el proceso usando cada clave de ronda inversa.

¿Por qué se prefiere AES-256 a AES-192 o AES-128?

Forzar AES-128 por fuerza bruta tomaría más tiempo que la edad del universo con la tecnología actual y previsible. El legendario criptógrafo Bruce Schneier incluso ha argumentado(nueva ventana) que AES-128 podría ser más fuerte que AES-256 gracias a que tiene una programación de claves más sólida: el algoritmo que calcula todas las claves de ronda a partir de la clave secreta original.

Sin embargo, AES-256 se ha convertido en el estándar de facto de referencia para el cifrado de clave simétrica. A menudo se considera (aunque de forma algo controvertida) como la opción más sólida porque su mayor tamaño de clave indica un margen adicional de seguridad para que los datos cifrados sigan siendo seguros incluso si se encuentra alguna forma de debilitar drásticamente el algoritmo. Este argumento se ha fortalecido a medida que la necesidad de resistencia poscuántica se vuelve más urgente. 

AES-CBC vs. AES-GCM

Hasta hace relativamente poco, AES se usaba normalmente en modo de encadenamiento de bloques de cifrado (CBC), donde cada bloque de texto plano se combina mediante XOR con el bloque anterior de texto cifrado antes de ser cifrado. Cuando se usa en modo CBC, se requiere un algoritmo hash HMAC(nueva ventana) como HMAC-SHA256 para verificar los datos.

Sin embargo, cada vez es más común que AES se use en modo Galois/counter (GCM), que utiliza el modo contador(nueva ventana) de cifrado. La principal ventaja es que usa el campo de Galois(nueva ventana) para verificar datos sin necesidad de un algoritmo externo. Por lo tanto, es más eficiente que usar un algoritmo de autenticación independiente que puede tener una alta sobrecarga computacional.

Aunque AES-CBC con autenticación HMAC generalmente se considera seguro, CBC es potencialmente vulnerable a ataques de padding(nueva ventana), como POODLE(nueva ventana). GCM no lo es.

AES acelerado por hardware

La mayoría de las CPU modernas incluyen Advanced Encryption Standard New Instructions (AES-NI(nueva ventana)), un conjunto de instrucciones de hardware que realiza operaciones AES directamente en el procesador. Esto hace que AES sea mucho más rápido y también ayuda a prevenir ataques de canal lateral basados en temporización, porque las operaciones ocurren dentro de las unidades seguras de ejecución del procesador, por lo que hay menos variaciones observables de temporización que un atacante pueda aprovechar.

Proton y AES

Hacemos un amplio uso de AES para proteger los productos de Proton:

Los eventos y contactos se protegen con AES-256 combinado con ECC para el intercambio de claves, a fin de garantizar su privacidad mediante cifrado de extremo a extremo.

Proton VPN se centra principalmente en el protocolo VPN WireGuard® rápido y eficiente (que usa ChaCha20), pero las conexiones OpenVPN usan AES-256.

Proton Pass almacena contraseñas, notas, identidades y otros elementos dentro de su bóveda segura usando AES-256.

Proton Drive cifra todos los archivos cargados de extremo a extremo con AES-256 usando ECC para el intercambio de claves. Proton Docs y Proton Sheets también usan AES-256 con intercambio de claves basado en ECC, aunque su implementación de cifrado difiere del esquema general de cifrado de archivos de Proton Drive.

Proton Mail almacena correos electrónicos y archivos adjuntos usando AES-256 a través del estándar OpenPGP. Incluso su clave privada, que desbloquea sus correos electrónicos, se cifra con AES-256 antes de almacenarse en el servidor.

Proton Meet usa Messaging Layer Security (MLS) para cifrar audio, video y mensajes de chat, lo que garantiza confidencialidad directa perfecta (PFS) y seguridad poscompromiso (PCS) para todas las comunicaciones. Todos los datos de las reuniones están cifrados de extremo a extremo mediante AES-256-GCM.

Mitigar los ataques contra el cifrado AES

La seguridad es tan fuerte como su eslabón más débil, que por lo general es su contraseña. Esto significa que los esquemas de ingeniería social, los ataques de suplantación y los keyloggers(nueva ventana) también representan una amenaza para los datos cifrados con AES. Por lo tanto, incluso cuando se usa AES, usted debe tomar las siguientes precauciones:

Proton

Tome el control de sus datos

Proton se creó para proteger sus datos desde el principio. Con cifrado de extremo a extremo, aplicaciones de código abierto y auditorías independientes, su información sigue siendo suya.

Preguntas frecuentes sobre el cifrado AES

¿Cuál es mejor: AES o DES?
¿Cuál es mejor: AES o RSA?
¿Qué tan sólida es la seguridad de AES?

Más información sobre el cifrado