2009-12-20 12 views
0

Après avoir lu this post en ce qui concerne l'utilisation ECC pour mettre en œuvre le hachage en utilisant une clé privée je mis à essayer de trouver une implémentation de ECDH et came across BoucyCastle.Cryptage ECC avec BouncyCastle pour C#

Malheureusement la documentation est minime (comme dans zerow!) Et je ne sais pas ce que I'm about to accomplish est complètement correct/valide.

Nous voulons simplement hacher 4 chaînes qui seront les informations d'enregistrement des utilisateurs (Nom, Société, leur ID société et leur ID de compte qui sont tous les deux 12 caractères) qui vont ensuite calculer une série qu'ils peuvent utiliser pour activer notre logiciel .

J'ai généré une paire de clés en utilisant PUTTYGEN.exe mais je ne peux pas m'entraîner comment l'appliquer avec BouncyCastle, quelle classe puis-je utiliser pour commencer? Y a-t-il des exemples? Jusqu'à présent, j'ai concaténé les informations et calculé un hachage MD5 (en utilisant les classes .NET). Je ne peux pas utiliser les nouvelles fonctions API améliorées de VISTA, car nous ciblons toujours XP - .NET. 3.5.

Vous avez des idées?

+0

En aparté, qu'est-ce qui empêche quelqu'un de remplacer la clé publique utilisée pour vérifier les informations de licence? Je n'irais pas trop loin sur ce point, car briser le régime ne serait pas difficile. Si vous connaissez mieux une autre bibliothèque ou un système d'authentification, utilisez-le à la place. – erickson

+0

En fait, j'ai pensé à la même chose mais je me suis dit que ça ne pouvait pas être si facile à tromper. Je suppose que non! Que pense tout le monde de la signature numérique Xml que jspcal a mentionnée? –

+0

Bien sûr, il est facile de tromper. C'est pourquoi il n'y a pas de système DRM viable. – erickson

Répondre

0

Je pense que .NET a la classe RSACryptoServiceProvider qui est une implémentation RSA complète.

Il y a un exemple de code pour votre application particulière ici:

http://www.codeproject.com/KB/security/xmldsiglic.aspx

Dans cet exemple, ils utilisent l'outil sn.exe de MS pour créer la clé.

+0

Cela semble être le chemin à parcourir! Merci pour le lien! –

0

Jusqu'à présent, j'ai concaténer les informations et calculé un hachage MD5 de celui-ci (en utilisant les classes .NET) .....
Cette déclaration en elle-même me inquiète. MD5 est sérieusement craquable - pas seulement théoriquement mais pratiquement. S'il vous plaît, n'utilisez pas MD5 pour le hachage sécurisé. Utilisez SHA-256 ou SHA-512 et voici why

Aussi le message que vous avez lié n'est pas tout à fait vrai - oui les algorithmes symétriques utilisent la même clé pour chiffrer/déchiffrer mais la clé publique/privée n'est pas une formule magique.

1) clé publique/privée est lente
2) La plupart publicc/algorithmes privés juste chiffrent la clé symétrique et utiliser le chiffrement symétrique pour les données, car il est beaucoup plus rapide

Le point est qu'un bon algorithme de hachage est non réversible et donc très difficile à fissurer, donc parfaitement adapté à vos besoins. Cependant, je suggère d'utiliser un SALT, qui est un nombre cryptographiquement aléatoire à ajouter à vos données utilisateur puis hacher ces données car il rend vos données beaucoup plus sûrs contre les attaques de dictionnaire (où les pirates utilisent des termes connus et des variantes pour cracker les mots de passe)