Question

Certaines applications Web, comme Google Docs, stockent les données générées par les utilisateurs.Données lisibles uniquement par leur propriétaire.Ou peut être pas?

Autant que je sache, ces données sont stockées telles quelles dans une base de données distante.Ainsi, si une personne disposant de suffisamment de privilèges sur le système distant (un administrateur système, par exemple) peut cacher mes données, ma vie privée pourrait être compromise.

Quelle pourrait être la meilleure solution pour stocker ces données cryptées dans une base de données distante et que seul le propriétaire des données puisse les déchiffrer ?Comment rendre ce processus transparent pour l’utilisateur ?(Vous ne pouvez pas utiliser le mot de passe de l'utilisateur comme clé pour crypter ses données, car vous ne devriez pas connaître son mot de passe).

Était-ce utile?

La solution

Si le cryptage/déchiffrement est effectué sur le serveur, vous ne pouvez en aucun cas vous assurer que le texte en clair n'est pas vidé quelque part dans un fichier journal ou similaire.

Vous devez effectuer le cryptage/déchiffrement dans le navigateur en utilisant JavaScript/Java/ActiveX ou autre.En tant qu'utilisateur, vous devez faire confiance au côté client du service Web pour ne pas renvoyer les informations non cryptées au serveur.

Carl

Autres conseils

Je pense que Carl l'a bien compris, mais je voulais dire qu'avec n'importe quel site Web, si vous lui fournissez des informations confidentielles/personnelles/privilégiées, vous devez avoir un certain niveau de confiance, et c'est la responsabilité du fournisseur de services pour établir cette confiance.C'est l'une de ces questions qui a été posée à maintes reprises sur Internet depuis sa création, et elle ne fera que continuer à croître jusqu'à ce que nous ayons tous nos propres certificats SSL encodés sur notre empreinte digitale, et même dans ce cas, nous devrons poser la question « Comment puis-je savoir que le doigt est toujours attaché à l'utilisateur ? ».

Eh bien, j'envisagerais un processus similaire à celui d'Amazon AWS.Vous vous authentifiez avec un mot de passe privé qui n'est pas enregistré à distance.Juste un hachage est utilisé pour valider l'utilisateur.Ensuite, vous générez un certificat avec l’un des algorithmes principaux et testés depuis longtemps et vous le fournissez à partir d’une page sécurisée.Ensuite, un algorithme de clé publique/privée peut être utilisé pour chiffrer les éléments pour les utilisateurs.

Mais le problème principal reste le même :Si une personne disposant de suffisamment de privilèges peut accéder aux données (par exemple :piraté votre serveur), vous êtes perdu.Avec suffisamment de temps et d’énergie, tout pourrait être brisé.C'est juste une question de temps.

Mais je pense que les algorithmes et les applications comme GPG/PGP et similaires sont très connus et peuvent être implémentés de manière à sécuriser les applications Web - et à maintenir la convivialité à un niveau que l'utilisateur moyen peut gérer.

modifier Je veux rattraper @Carl et Technologie inconnue et ajoutez leur déclaration :Si vous ne faites pas confiance au site lui-même, ne divulguez pas de données privées.C'est avant même que quelqu'un ne pirate leurs serveurs...;-)

Auron demanda :Comment générer une clé permettant au client de crypter/déchiffrer les données ?Où stockez-vous cette clé ?

Eh bien, la clé est généralement dérivée d'un mot de passe choisi par l'utilisateur.Vous ne le stockez pas, vous faites confiance à l'utilisateur pour s'en souvenir.Ce que vous pouvez stocker est peut-être une valeur de sel associée à cet utilisateur, pour augmenter la sécurité contre les attaques de table arc-en-ciel par exemple.

La cryptographie est difficile à maîtriser ;-) Je recommanderais de consulter le code source de HacheCrypte et pour Xecrets'client hors ligne.

Carl

Non, vous ne pouvez pas utiliser de mots de passe, mais vous pouvez utiliser des hachages de mots de passe.Cependant, Google Docs est axé sur le partage. Une telle méthode nécessiterait donc de stocker une copie du document pour chaque utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top