RSA

Il existe différents algorithmes asymétriques. L'un des plus connus est le RSA (de ses concepteurs Rivest, Shamir et Adleman). Cet algorithme est très largement utilisé, par exemple dans les navigateurs pour les sites sécurisés et pour chiffrer les emails. Il relève désormais du domaine public.

L'algorithme est remarquable par sa simplicité. Il est basé sur les nombres premiers.

Fonctionnement de l'algorithme : RSA Fonctionnement

Exploitation :

Les outils nécessaires pour recréer une clé privé à partir d'une clé publique sont :

- Factor DB : pour la factorisation du modulo

- Openssl : pour récupérer les infos de la clé privé

- Get private key : pour recréer la clé privée

- Convertisseur de grands nombres : pour passer de l'hexa au décimal.

Etape 1 :

On récupère les informations contenues dans la clé publique.

openssl rsa -in pubkey.pem -pubin -text -modulus

ça nous donne l'exposant et le modulo

Etape 2 :

Il faut convertir le modulo qui est en hexa en décimal.

- Soit avec le site : Convertisseur de grands nombres

- Soit avec Python :

python -c " print int('modulo_en_hexa')"

Etape 3 :

Il faut obtenir p & q , les facteurs.

Pour cela nous devons factoriser notre modulo qui est en décimal.

Un site le fait très bien pour nous.

http://factordb.com/index.php?query=mon_modulo_en_decimal

Si factordb est capable de le factoriser il affiche les deux facteurs.

Si factordb n'est pas capable de le factoriser il faudra utiliser une autre attaque.

Etape 4 :

On va générer la clé privée avec le script gen key

Il faut d'abord le compiler :

 gcc -o get_priv_key get_priv_key.c -lssl -lcrypto 

Création de la clé privé :

./get_priv_key.bin p q exposant > ma_cle_priv.pem

Etape 5 :

Une fois qu'on a la clé privé on peut par exemple se connecter en ssh avec la commande :

 ssh isileaks@wikisecu.fr -i ma_cle_priv.pem 

ou encore déchiffrer un fichier avec les commandes :

 openssl enc -in fichier_chiffre.txt -out textbinaire -d -a 
 openssl rsautl -decrypt -in textbinaire -out plaintext -inkey ma_cle_priv.pem 

Source : http://repo.mynooblife.org/.priv8/Mag/Hackin9/CD/tutoriels/rsa/rsa.html