Est-ce que Javascript est une plate-forme appropriée pour la cryptographie? Ou peut-il être?

J'ai remarqué un bon moment en arrière que Wikipedia relie à une implémentation Javascript de différentes fonctions de hash. Aussi trouvé Clipperz Crypto . Même Mozilla implémente un objet cryptopositif dans Firefox.

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 buts ou des avantages pour les données de hachage avant POST?

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

Vous pouvez chiffrer les données en utilisant JavaScript; Mais je ne suis pas sûr des avantages. Parce que si vous utilisez, disons bas64, vous devez envoyer la clé de cryptage au client, et si quelqu'un peut intercepter les informations chiffrées, il / elle pourrait probablement intercepter la clé de cryptage aussi.

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

Jamais jamais, vous pouvez utiliser javascript comme plate-forme sûre pour transférer des données sécurisées …

Mais il est possible de créer un md5 ou un autre type de client de cryptage, qui vous offre un moyen de validation raisonnablement sécurisé que vous pouvez tester sur le serveur!)

Ces articles de blog décrivent des utilisations précieuses pour la cryptographie en JavaScript:

Pour vous identifier en toute sécurité:

http://digitalbazaar.com/2010/08/07/webid/

Pour fournir une interface sécurisée aux applications localhost avec les serveurs intégrés via un site web:

http://digitalbazaar.com/2010/07/20/javascript-tls-1/

http://digitalbazaar.com/2010/07/20/javascript-tls-2/

Je ne vois pas pourquoi une fonction cryptographique ne pourrait pas être implémentée à l'aide de javascript.

Cependant … La cryptographie est un processus à forte intensité de ressources.

Par rapport au code compilé, Javascript est faible.

Je peux voir au moins une utilisation: si vous envoyez les données cryptées du client, décryptez-le dans JavaScript en fonction d'une clé / mot de passe que l'utilisateur entre localement. Cela présuppose une clé partagée ou un mot de passe connu que vous avez utilisé pour chiffrer à l'origine les données sur le serveur. En outre, ces fonctions sont fréquemment utilisées par des JavaScript malveillants et / ou obscènes.

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

Si vous souhaitez utiliser la cryptographie sur le côté client, hors ligne, les applications Web persistantes, puis oui. Donc, par exemple, voulez-vous chiffrer toutes les données qui sont stockées dans une base de données intégrée en utilisant les spécifications HTML 5 'GlobalStorage ()'. Ensuite, utilisez le crypto javascript, car il est probable que vous ne disposez pas d'une connexion pour gérer tout le crypte côté serveur.

Si vous n'utilisez pas les méthodes éprouvées