VB/VB.Net Decrypter le mot de passe RSA

A

Anonymous

Invité
#1
Bonjour,

Ayant pour but de creer un émulateur D2 j'aurais voulu savoir comment décrypter les mots de passes en RSA.

Merci a Shornaal pour sa source que j'ai repris et recodé en C# :

Code:
	    public static string Encrypt(string key, string password)
	    {
		    //On encode la _key reçus dans HelloConnectMessage avec le mot de passe en Bytes.
		    byte[] Input = System.Text.Encoding.UTF8.GetBytes(key + password);
		    Crypt = new RSACryptoServiceProvider();
		    byte[] BinaryData = GetPublicKey();
		    AsnKeyParser KeyParser = new AsnKeyParser(BinaryData);
		    rsaParameter = KeyParser.ParseRSAPublicKey();
		    Crypt.ImportParameters(rsaParameter);
		    byte[] Ouput = Crypt.Encrypt(Input, false);
		    return System.Convert.ToBase64String(Ouput);
	    }
J'ai éssayé de faire la methodé décrypt mais impossible, il me donne des erreurs :(

Qui pourrais essayer de m'aider?

Merci

Cordialement
 
A

Anonymous

Invité
#2
Bonsoir, le principe du cryptage avec RSA est que l'utilisateur possède une clé gratuite pour encrypter le mot de passe et que le serveur possède la clé privé servant de passe-partout. Je te laisse réfléchir et je suis désolé de ne pas pouvoir t'aider plus faute de ne pas être un fin connaisseur.
Au revoir.
 
A

Anonymous

Invité
#3
Regarde du coté du blog de bouh2 il a fait un super post sur sa :) au lieu de casser la tete a encrypter ? Pourquoi pas enlever l'encription et le code qui protège les sources D2. de leur modification ( le lien de son blog et sur sa signature )
 
A

Anonymous

Invité
#4
Ce qui est bizarre c'est que quand j'etais allé sur son serveur bêta Stump, il n'y a pas de modification client à faire pour entrer en jeu si ce n'est que la config a modifier. :x

J'avais sans doute espéré un DofusInvoker.swf modifié mais je vais faire des recherches de mon codé sur ce que tu dis Overedge.

Merci de m'avoir aider,

Je vous informe dès que je peux.
 
A

Anonymous

Invité
#5
Il n'y a pas un launcher sur stump ?
 
A

Anonymous

Invité
#7
Faut demander a bouh la :) mais le boulot qu'il fait a l'air vraiment puissant !
 
A

Anonymous

Invité
#8
Bouh2 a réussi a decrypter le mot de passe en RSA, voila pourquoi il n'a pas de launcher
 
A

Anonymous

Invité
#10
Si tu envoie le bon salt tu peux decrypter le password. Pour ca tu dois avoir une clef privee.

Si cest pour un serveur OK, si c'est pour une attack MITM alors oublie ca.
 
A

Anonymous

Invité
#11
C'est pour un serveur.

Enfaite meme si j'encrypte avec le code au dessus et que je fais :

Code:
byte[] Decrypted = Crypt.Decrypt(Ouput, false);
Sa ne fonctionne pas.
 
A

Anonymous

Invité
#12
mikedotnet peux tu m'en expliquer plus au niveau du salt?

J'ai mis sa en salt moi : gwmhyouxU>?F>0Qo`:SKB7oM1#B3(uaW

Que faire?
 
A

Anonymous

Invité
#14
Désoler je ne suis pas un expert en cryptographie, tout ce que je peux te dire est que tu dois générer un salt à partir de ta clef RSA privée et envoyer ca au client pour qu'il encrypte son mot de passe avec la clef publique + la clef privée. Alors la tu peux analyser le mot de passe pour vérifier si il est valide. Je ne connais pas vraiment le protocol RSA alors il est possible que les informations que je te donnes ne soit pas tout à fait justes, je te conseilles d'aller voir comment faire un authentification RSA à partir de rien, pour bien en comprendre le fonctionnement. Ensuite, tu devrais pouvoir facilement l'implanter dans ton serveurD.
 
A

Anonymous

Invité
#15
UP
Je vais essayer de décrypter le paquet 4
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#18
Depuis la mise à jour 2.5.3 plus besoin en fait de patcher le client.
En fait avant la clé publique était contenu dans le client, donc 2 possibilités :
- soit on créer notre clé privé et une clé publique associé, puis on modifie la clé publique du client par la notre. On peut alors décrypter ce que le client envoie avec notre clé privé (vu que ça a été encrypté avec la clé publique associé)
- soit on vire carrément le cryptage.
Dans les 2 cas il faut patcher le client.

Mais depuis la 2.5.3 c'est inutile, car la clé publique n'est plus contenu dans le client mais envoyé par le serveur (oui c'est idiot je sais mais c'est comme ça, on peut remercier AG). Suffit donc de créer encore une fois la paire clé privé/publique et d'envoyer la clé publique au client. La clé privé peut alors décrypter ce que le client envoie.


Pour info. il est impossible de trouver la clé privé du serveur d'AG.
A cela 2 raisons
- c'est une clé 128 ou 256 il me semble, il faudrait des mois pour la trouver.
- il y a un roulement dans les clés, toutes les X heures la clé privé change

Voilà.

PS : Le salt est une chaîne de caractères aléatoire d'une longueur de 32 caractères. Elle est envoyé au client et est rajouté en préfixe par rapport au mot de passe : encrypt(salt + mdp)
 

Sparkdaemon

Staff
Membre du personnel
Inscrit
7 Avril 2009
Messages
556
Reactions
3
#19
- c'est une clé 128 ou 256 il me semble, il faudrait des mois pour la trouver.
- il y a un roulement dans les clés, toutes les X heures la clé privé change
Ils sont pas fous. Heureusement qu'il y a un roulement. (Ce message était sponsorisé par la ligue des commentaires inutiles)
 
Haut Bas