2009-08-14 7 views
0

Nous avons besoin d'une API de cryptage/déchiffrement prise en charge pour un projet - AES> 256?API de cryptage pour les recommandations C# 2?

Je ne veux pas que les développeurs codent leur propre chiffrement/décryptage, même en utilisant le matériel intégré. Pour beaucoup de chances de se tromper.

Liens vers des sites très appréciés.

MISE À JOUR En raison du fait que beaucoup l'ont dit - Il est difficile de comprendre si vous n'êtes pas familier avec le cryptage, et obtenir une petite chose de mal et son Busted ...

J'ai vu des réponses et sera obtenir notre propre cryptage/décryptage de l'intégré - mais toute l'équipe aura besoin d'examen par les pairs.

Pour plus d'informations BlowFish.Net est bon, et exécute plus vite que les routines crypto BUILTIN qui lorsque vous commencez à regarder crypter/decrpyting données dans une base de données peut avoir des problèmes énormes perf ...

http://www.codinghorror.com/blog/archives/001268.html

+5

Si vous ne pouvez pas faire confiance à vos développeurs pour gérer les algorithmes intégrés qui sont rigoureusement testés et ont un exemple de code montrant exactement comment les utiliser correctement, alors je dirais que vous avez un sérieux problème dans votre entreprise. Vous devez soit commencer à faire confiance à vos développeurs pour faire leur travail, ou s'ils ne peuvent pas en obtenir. –

+0

Salut Greg - je leur fais confiance, s'il vous plaît examiner la mise à jour et il décrit plus des domaines de concearn. –

Répondre

3

Bouncy Castle est une bibliothèque de cryptage .NET bien respectée et bien développée qui est habituellement recommandée pour ce genre de questions. Mais quel est le problème avec l'utilisation du System.Security.Cryptography Namespace? - Il est extrêmement sécurisé, très rapide et ne nécessite aucune bibliothèque externe. Voici an example de la façon de l'implémenter. Oh, et "en utilisant le matériel intégré" signifie qu'il est moins susceptible de mal tourner. Vos développeurs ne vont pas coder leurs propres classes, en utilisant seulement les interfaces disponibles qui sont faciles à utiliser et qui ont été rigoureusement testées. De plus, le "built in stuff" sera bien supporté par Microsoft, donc si vous voulez mettre à jour à C# 4.0 (ou C# 5.0 dans le futur?) vous n'aurez probablement pas besoin de changer votre code du tout.

+0

+1 pour cela merci. et une réponse motivée - s'il vous plaît noter la mise à jour –

4

« même en utilisant le construit en substance »

la raison pour laquelle il est construit en est pour que les gens ont testé, des algorithmes fiables à utiliser qui mettent en œuvre des normes, pas boîte noire API tiers qui pourraient ne pas. Quelles sont les "chances de se tromper"?

Peut-être que vous devez passer à Java, vous pouvez toujours choisir d'utiliser des fournisseurs JSSE tiers si vous êtes paranoïaque à propos du fournisseur intégré.

+0

Je suppose que les «chances de se tromper» peuvent résider dans l'utilisation abusive des algorithmes de chiffrement; ce qui est tout à fait possible si le gars n'est pas compétent dans ce domaine. Mais d'accord; intégré est certainement l'approche. –

+0

J'ai pensé que ce serait à cause de choses comme «utiliser un sel» et comment le faire. Mais dans ce cas, la question est plus comme "Où puis-je obtenir une API de compte utilisateur pour XYZ". Je pense que les développeurs devraient être amenés à s'améliorer, et si cela signifie apprendre les bases de la sécurité (bien que n'importe quel cours universitaire décent l'ait fait) alors qu'il en soit ainsi. – JeeBee

+0

Il est clairement étiqueté une question C#. d'où le -1, il y a aussi d'autres implémentations révisées par des pairs. –

0

Utilisez le 'truc' intégré. Mais assurez-vous de l'utiliser dans le bon mode.

+0

+1 Merci soyeux - c'est la principale zone de concearn - crypto est difficile - et si vous n'êtes pas habitué à cela, une petite zone peut vous mordre –

1

Si vous utilisiez une bibliothèque tierce, vous rencontreriez probablement les mêmes problèmes, qui se résumeraient essentiellement à ne pas comprendre les pièges du chiffrement.

Sans une bonne compréhension, vous ferez très probablement des erreurs avec la gestion des clés, ou en utilisant de mauvais vecteurs ou clés d'initialisation. Ce sont des problèmes que vous aurez besoin de comprendre, que vous utilisiez les bibliothèques intégrées (qui vont bien) ou une bibliothèque tierce.

Si c'est quelque chose qui vous inquiète assez, la meilleure recommandation est probablement d'amener quelqu'un, ou mieux encore - former les gens à comprendre le cryptage.

+0

+1 merci Paul - nous obtiendrons le équipe ensemble pour en construire un et passer de leur. –

Questions connexes