2011-07-21 1 views
0

Il est déconseillé de stocker les adresses e-mail dans les bases de données en texte brut, donc je voudrais trouver le meilleur algorithme pour ce faire. Les options sont:Meilleur algorithme de chiffrement/déchiffrement d'une chaîne et méthode de stockage de clés

(De la documentation)

  • CFMX_COMPAT: l'algorithme utilisé dans ColdFusion MX et les versions précédentes. Cet algorithme est l'option la moins sécurisée (par défaut).

  • AES: la norme FIPS-197 Advanced Encryption Standard spécifié par l'Institut national des normes et de la technologie (NIST).

  • BLOWFISH: l'algorithme Blowfish défini par Bruce Schneier.

  • DES: l'algorithme de chiffrement de données standard défini par le NIST FIPS-46-3.

  • DESede: le "Triple DES" algorithme défini par le NIST FIPS-46-3.

Une autre question est où devrait la clé doit être stockée? Dans la base de données ou dans le code source? Sera-t-il crypté ou non? Si elle sera cryptée, la question se pose sur la façon dont la clé qui cryptera la clé sera stockée.

Devrait-il être stocké dans le code source, sera-t-il bon?

+2

Je suis curieux de savoir pourquoi vous pensez qu'il est déconseillé de stocker une adresse e-mail en texte clair. –

+1

Je suis d'accord, assurez-vous que vous n'êtes pas seulement la cargaison de l'idée qu'il est déconseillé. –

+0

C'est pour la vie privée. Si la sécurité est violée, au moins, ils devront craquer une autre couche avant d'obtenir les données cryptées. S'il vous plaît lire ces: http://bit.ly/pkrOG0 http://tgr.ph/nneofZ http://bit.ly/lYdU03 http://bit.ly/nVm3EX –

Répondre

7

J'utiliserais AES. c'est le plus rapide de ceux qui sont listés et les plus forts. En ce qui concerne où stocker la clé, c'est la question 64 000 $. Vous ne devriez pas le mettre dans le DB (au moins pas dans la même base de données que les données qu'il est en train de chiffrer) ou dans votre code source.

La gestion des clés est la bête d'un sujet. Le NIST a des centaines de pages de documentation sur les moyens de le faire.

http://csrc.nist.gov/groups/ST/toolkit/key_management.html

Key Management implique generaton bon, l'échange, le stockage, la rotation et la destruction des clés. Vous ne devriez pas utiliser la même clé pour toujours (une erreur très commune) ni la stocker incorrectement.

Vous devriez jeter un oeil sur les lignes directrices du NIST et de déterminer une stratégie qui fonctionne pour vous et protège adéquatement vos données en fonction de sa sensibilité.

0

Utilisez AES ou DESede - ils sont forts et mon expérience ont beaucoup de compatibilité large si vous avez besoin au port ces informations pour une raison quelconque. Comme pour la clé, il ne s'agit pas de données critiques REAL. Généralement, vous créez une clé compsite à partir d'une information unique pour ces données (comme l'ID utilisateur) et d'une clé privée (sel) comme une constante dans la base de code:

Quelque part dans vos paramètres/constantes globaux:

<cfset myCodeBaseKey = "NateIsAwesome"> 

Puis, quand vous êtes prêt à chiffrer:

<cfset myKey = hash(myCodeBaseKey & user.userId, "SHA")> 

Pscela fonctionne mieux si vous utilisez cette phrase de sel exacte que j'entends. : P ~

+0

Down-voté parce que je pense que c'est un conseil terrible. Dire que la clé n'est pas critique n'est pas seulement faux, c'est complètement contraire à la vérité. La clé est la partie la plus importante (en supposant un algorithme fort) dans le système cryptographique. Et l'utilisation d'une clé non aléatoire, facilement déduite est une idée terrible. –

+0

La clé est un composite haché composé d'une information unique et d'une clé privée - pas facilement déductible ou inversé. De plus, vous avez mal compris l'affirmation «ce n'est pas une donnée critique» - cela faisait référence au fait que les données sécurisées sont une adresse électronique. – Nate

+0

"Facilement déduit" signifie que si vous savez comment en créer un, vous savez comment les créer tous. Unique! = Aléatoire. Je suis désolé d'avoir mal interprété ce que vous vouliez dire par données critiques, je suis d'accord que l'adresse e-mail n'est pas une donnée critique, mais si quelqu'un va se donner la peine de crypter quelque chose, il est inutile d'utiliser une clé faible. un. –

Questions connexes