You have not selected any currencies to display

Bl0ckch41nnewsCómo tu partición LUKS podría ser descifrada si utilizas PBKDF2

36


A principios de esta semana se
publicó en Internet
una carta del activista francés Ivan Alococo encarcelado en Francia. El
anarquista francés
describe cómo su portátil (cifrado)
fue confiscado después de ser arrestado, y el material de la partición cifrada
se ha introducido desde entonces como prueba contra él. Su contraseña tenía
supuestamente más de 20 caracteres e incluía una mezcla de mayúsculas,
minúsculas, números y signos de puntuación, por lo que, en ausencia de
cualquier tipo de fallo, esto implica que incluso las contraseñas
relativamente complejas pueden ser forzadas, y que deberíamos pasar a frases
de contraseña aún más seguras.

La policía había descifrado la contraseña de su disco duro LUKS. Una hazaña
que antes era imposible ahora se puede lograr en unos pocos meses aprovechando hasta 10.000 servidores con GPU modernas.
En la raíz de esta brecha hay una función criptográfica que está mostrando
su edad,
PBKDF2.

¿Qué es una KDF (Key Derivation Function)?

En la informática moderna, cuando las aplicaciones proporcionan un cifrado de
archivos sólido, con frecuencia usan contraseñas para proteger los archivos.
Para que las contraseñas sean seguras, deben contener mucha entropía y, en
general, aparecer lo más aleatorias posible. Obviamente, los humanos tienden a
usar caracteres y frases de su idioma nativo combinados con patrones o reglas
memorables que les ayudan a recordar estas contraseñas.

Las Funciones de Derivación de Claves (KDF) son herramientas que nos permiten
mejorar la entropía derivada de los tipos de claves y contraseñas que suelen
utilizar las aplicaciones. Al realizar una serie de hashing y
salting, PBKDF2 «sazona» la entrada del usuario con entropía suficiente
para usar en claves privadas para algoritmos como AES y
NaCl.

Existen
muchos tipos de KDF. Los KDF especializados también se utilizan para
generar claves a partir de la salida de Diffie-Helman
y para crear números aleatorios criptográficos.

En el caso de este prisionero francés, estaban usando la herramienta de
cifrado de disco duro más popular de Linux, LUKS, que usa un PBKDF2 para
generar claves AES. En Ubuntu 18.04 esta es la configuración predeterminada.
PBKDF2 es un KDF basado en contraseña diseñado para ser resistente a los
ataques basados en CPU y data del año 2000. Se mencionó por primera vez como
estándar de Internet en
RFC-2898 en septiembre de 2000.

Desde el momento en que se diseñó PBKDF2, hemos visto que el surgimiento de
potentes GPU se ha convertido en un lugar común. Para defenderse de esta
avalancha creciente de poder de hash de GPU hay un algoritmo
relativamente nuevo,
Argon2.

¿Cómo funciona Argon2?

La potencia criptográfica de argon2 es sublime pero brillante. En lugar de
centrarse en el tiempo de CPU requiriendo un gran número de iteraciones de
hash, argon2 hace la guerra a la capacidad de memoria de tu GPU. Al realizar
el hash de una contraseña con argon2, el desarrollador de la aplicación puede
aumentar la cantidad de RAM necesaria para completar el cálculo. De este modo,
los núcleos de cálculo altamente paralelos de la GPU se quedan sin recursos,
lo que reduce la capacidad total de procesamiento de la GPU.

¿Por qué funciona esto? En las GPU modernas, la cantidad exacta de subprocesos
que están activos en paralelo varía según el modelo y depende de la cantidad
de RAM de GPU requerida por subproceso. Las operaciones pequeñas en las GPU
típicas pueden ver hasta 2.000 subprocesos ejecutándose en paralelo. Mientras
tanto, incluso las GPU en la nube más grandes alcanzan un máximo de alrededor
de 80 GB de memoria integrada. Si Argon2 está configurado para usar 1 GB para
calcular hash de contraseñas, incluso un NVIDIA A100 solo podría probar 80
contraseñas en paralelo en lugar de los órdenes de magnitud de núcleos que
estarían activos al atacar contraseñas hash PBKDF2.

Si es un desarrollador que crea aplicaciones seguras y es la primera vez que
escucha sobre Argon2, probablemente sea un buen momento para revisar su
código. En NodeJS verifique los usos de
crypto.pbkdf2
que deberían actualizarse.

Si es un usuario de Linux, lo más probable es que sus particiones LUKS ya
utilicen argon2id. Puede verificar ejecutando el comando
lsblk para encontrar el nombre de una partición activa. Luego
ejecutando:

sudo cryptsetup luksDump /dev/<SU_PARTICIÓN_AQUÍ>

Si está utilizando un algoritmo obsoleto, ¡debería actualizarlo! Matthew
Garrett, un desarrollador de Linux, ha escrito una excelente
guía para actualizar particiones LUKS antiguas.

¿Está roto PBKDF2?

A primera vista, no. PBKDF2 no está fundamentalmente roto. Es seguro siempre y
cuando el usuario siempre tenga
una contraseña de 13 caracteres. La elección de PBKDF2 frente a Argon2 depende, por supuesto, del
dominio y de la aplicación.

Fuentes:



Source link

Los comentarios están cerrados.