Cracker une clé RSA-512 dans le contexte du ransomware Zeppelin
Cracker une clé RSA-512 dans le contexte du ransomware Zeppelin

Cracker une clé RSA-512 dans le contexte du ransomware Zeppelin

Dans un article de Novembre 2022, l’Unité 221B, société spécialisée en cybersécurité, indiquait leur prouesse réalisée pour décrypter les clés d’une variante du ransomware Zeppelin qui s’appuie en partie sur RSA, un cryptosystème asymétrique (à clé publique/privée) populaire couramment utilisé pour faciliter l’échange de clés cryptographiques symétriques AES.

Dans la variante décryptée, pour plus de rapidité, AES-256-CBC est utilisé pour chiffrer chaque fichier. Chaque fichier à sa propre clé cachée dans le pied de page du fichier qu’il crypte, chiffrée avec une clé publique RSA-512 éphémère qui est générée aléatoirement sur la machine qu’elle infecte.

La meilleure méthode éprouvée pour factoriser de manière optimale RSA est appelée le Crible du Corps de Nombres Général (au moins pour des chiffres supérieurs à 100) ou GNFS (General Number Field Sieve). Il s’agit d’un processus de crible en plusieurs phases qui nécessite la sélection de polynômes, le crible (tamisage) sur réseau ou “Algorithmes de sieving“, l’identification de relations lisses et la factorisation par racine carrée.

L’équipe en question, basée sur cet algorithme et la disposition d’un cluster de 20 serveurs (800 CPU), ont factorisé une clé RSA de 520 bits. Plus précisément, en moins de 6 heures, ils ont calculé les 2 facteurs premiers (p, q),nécessaires pour calculer N (clé publique), ce qui a permis dans un second temps de calculer d (clé privée).

Une des phases de décryptage utilise la fonction de totient de Carmichael, ou “Fonction indicatrice de de Carmichael”.

Ces premières étapes n’étaient que le début. Fort de la clé privée  RSA, ils ont pu accéder à la clé AES (AES-CBC-256, avec blocs de  128-bit et une clé de chiffrement 256-bit de type CBC Cipher-Block-Chaining mode avec un IV de 16-byte).