Ceci est une ancienne révision du document !
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 est dans le 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 decimal
Etape 1 :
On récupère les informations contenu 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 decimal.
- 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 gen_priv_key gen_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 peu 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 la commande :
openssl rsautl -decrypt -inkey ma_cle_priv.pem -in fichier_chiffree.txt
Source : http://repo.mynooblife.org/.priv8/Mag/Hackin9/CD/tutoriels/rsa/rsa.html