2008-10-12 15 views
5

J'ai remarqué un bon moment que Wikipédia liens à un Javascript implementation de différentes fonctions de hachage. Également trouvé Clipperz Crypto. Même Mozilla implémente un crypto object dans Firefox.Est-ce que Javascript est une plate-forme appropriée pour la cryptographie? Ou peut-il être?

Alors, Est-ce que Javascript est une plate-forme appropriée pour la cryptographie? Ou peut-il être?
Ou, je suppose .. Y a-t-il des objectifs ou des avantages pour le hachage de données avant le POST?

Répondre

4

Il existe des utilisations pour les fonctions de hachage en Javascript, par exemple en validant le côté client de captchas (en comparant le hachage en session au hachage calculé depuis l'entrée). De toute évidence, les utilisations sont limitées car il fonctionne presque exclusivement côté client (et vous ne pouvez pas faire confiance à la saisie client), mais le potentiel est là.

+1

La question de savoir si on peut ou non faire confiance à la saisie du client est complètement orthogonale à la question de savoir si Javascript est une plate-forme appropriée pour la cryptographie. Cet [article récent] (http://www.matasano.com/articles/javascript-cryptography/) soutient que ce n'est pas le cas, [certaines personnes ne sont pas d'accord] (http://news.ycombinator.com/item?id=2935220) . – Sebastian

0

Je ne vois pas pourquoi une fonction cryptographique n'a pas pu être implémentée en utilisant javascript.

Toutefois, la cryptographie est un processus gourmand en ressources.

Comparé au code compilé Javascript est slooooooow.

+0

Plus maintenant, grâce à V8, Squirrelfish et TraceMonkey. Seul IE est laissé pour compte. –

+0

Oui, seulement 80% de la part de marché est laissée derrière ... – gizmo

+0

même V8 est lent par rapport au code compilé statique. –

1

Vous pouvez crypter des données en utilisant JavaScript; Cependant, je ne suis pas sûr des avantages. Parce que si vous utilisez, par exemple, bas64, vous devez envoyer la clé de cryptage au client, et si quelqu'un peut intercepter l'information cryptée, il/elle serait probablement capable d'intercepter la clé de cryptage aussi.

Vous ne devriez jamais utiliser ceci pour remplacer des certificats SSL.

+0

Oui c'est vrai Je ne peux pas penser à la façon de passer la clé en toute sécurité côté client. J'ai édité mon commentaire. – alexmac

+0

qu'en est-il du protocole HTTPS? –

+0

Comme vous l'avez dit, JS ne devrait pas être utilisé pour le cryptage de bout en bout; Cependant, il existe certains services qui offrent des emails sécurisés en faisant du chiffrement/déchiffrement côté client et en ne stockant que les informations chiffrées sur le serveur. –

1

Ne jamais pouvez-vous utiliser javascript comme une plate-forme sûre pour le transfert de données sécurisé ...

Mais il est possible de faire un autre type md5 ou de cryptage côté client, qui vous donne un moyen raisonnablement sûr de validation que vous pourriez tester côté serveur! -)

0

Je peux voir au moins une utilisation: Si vous envoyez les données cryptées du client, puis décryptez-le en JavaScript basé sur une clé/mot de passe que l'utilisateur entre localement. Cela suppose une clé partagée ou un mot de passe connu que vous avez utilisé pour crypter les données sur le serveur. En outre, ces fonctions sont fréquemment utilisées par JavaScript malveillant et/ou obscurci.

0

La réponse dépend de ce que vous voulez faire.

Si vous souhaitez utiliser la cryptographie sur des applications Web côté client, hors ligne et persistantes, alors oui. Ainsi, par exemple, voulez-vous crypter toutes les données stockées dans une base de données intégrée à l'aide de la fonction globalStorage() de la spécification HTML 5? Ensuite, utilisez javascript crypto, parce que la probabilité est que vous n'avez pas de connexion pour gérer toute la cryptographie du côté serveur.

Si ne pas utiliser les méthodes éprouvées

Questions connexes