2008-10-15 5 views
2

Salut tout le monde, je recherche un projet où nous aurions besoin de garder une valeur cryptée du client à un système de boîte noire sans décrypter à tout moment entre les deux. Nous utilisons SSL entre le navigateur et le serveur Web, mais les valeurs sont décryptées automatiquement sur le serveur Web, ce que nous devons éviter. Nous devons être en mesure de le passer à travers le serveur Web (toujours crypté) et à travers d'autres systèmes dorsaux jusqu'à ce qu'il atteigne sa destination finale où il serait déchiffré. Donc, ma question est quelles sont les options qui s'offrent à nous pour maintenir un état crypté d'une valeur à partir du navigateur, sans le décrypter en cours de route?Comment crypter une valeur sur le client et la passer à travers un serveur web sans la décrypter

Merci Mark

Répondre

2

vous voulez jeter un oeil à public key encryption. SSL protège votre session (navigateur < -> serveur) mais pas le transport complet. Je vous suggère de chiffrer vos données une fois qu'il a reçu du client, puis d'envoyer les données cryptées tout le chemin.

est ici un diagramme mauvais décrivant le flux de données

 client browser web server  random server  blackbox 
route ---- SSL -------------><------------- not encrypted -------> 
data       *-------- PGP/GPG encrypted ---------> 

essentiellement vos données sont cryptées via SSL sur le serveur Web, où il est chiffré par PGP/GPG, puis envoyé en aval. SSL n'a pas d'importance à ce stade (ou du moins, n'est pas la forme principale de cryptage). À moins que vous ne puissiez garantir javascript dans votre environnement, il peut être préférable de crypter sur le serveur Web pour vous assurer que vos données sont sécurisées si l'utilisateur a javascript désactivé pour une raison quelconque.

4

Avez-vous pensé à faire un simple cryptage RSA sur les valeurs et à les envoyer via le système? Vous devrez vous assurer que les clients disposent de la clé publique pour crypter les données, mais que cela serait facile et sécurisé. À mon avis, la plupart des bibliothèques supportent RSA. Une belle démo de comment le faire purement en Javascript peut être trouvé here.

+0

Une autre implémentation RSA ici: http://www.ohdave.com/rsa/ et PGP ici: http://www.hanewin.net/encrypt/ –

1

Si vous utilisez un type binaire dans votre base de données, le serveur Web doit l'envoyer tel quel. Votre client peut ensuite crypter les données avant de les insérer, et devra ensuite déchiffrer les données après l'avoir récupéré. Ni le serveur Web ni le serveur de base de données lui-même ne pourraient voir les données.

0

Le système de boîte noire, par définition, ne peut pas déchiffrer les données sauf s'il a été construit pour le faire. Je vais suggérer de discuter du problème avec les développeurs du système de boîte noire.