2014-08-29 3 views
0

Je dois mettre des données sensibles dans une base de données visible par tous dans notre organisation Je souhaite crypter les données et les mettre dans un champ de texte Les données seront accessibles via un GUI qui demandera à l'utilisateur d'entrer un mot de passe qui sera utilisé pour crypter/décrypter les données Je ne fais pas confiance aux utilisateurs de se souvenir de leurs mots de passe, donc je veux avoir une seule clé principale qui va déchiffrer toutes les donnéesCryptage Python avec une clé principale

La seule façon que je peux voir pour le faire est de crypter les données avec une clé symétrique et en même temps crypter une copie du mot de passe avec une clé publique. La clé privée peut ensuite être utilisée pour déchiffrer la clé symétrique et ainsi décrypter les données si l'utilisateur perd sa clé.

Est-ce une façon raisonnable de le faire ou est-ce que je rends cela plus difficile que nécessaire?

Je le ferai en Python. En regardant les autres messages, il semble que Pycrypto soit la bibliothèque que je devrais regarder. Est-ce correct?

Merci

+0

Il est préférable de poser ces questions sur notre [site de sécurité informatique] (http://security.stackexchange.com/). –

Répondre

0

je pense que cette méthode se traduirait par une conception complexe qui sera plus compliquer à l'échelle et à maintenir.

Une meilleure approche consisterait à utiliser une clé symétrique pour stocker et récupérer les données sensibles de la base de données. L'utilisateur peut être invité à entrer sa clé et les données peuvent être décryptées ou cryptées. Ce link vous aidera à l'implémenter.

0

Vous ne devez jamais crypter un mot de passe s'il n'est pas strictement requis par le protocole.

Qu'est-ce que vous pourriez faire à la place:

  1. créer une clé symétrique aléatoire pour chaque champ
  2. Chiffrer cette clé avec un maître clé publique (pour laquelle la clé privée maître est en sécurité, par exemple on a stick)
  3. chiffrer cette même clé avec une clé symétrique de l'utilisateur recherché effectuer PBKDF2 sur le mot de passe
  4. crypter les données avec la clé symétrique
  5. magasin le symmetr clé ic « enveloppé » avec le maître clé publique et clé utilisateur, le sel nécessaire à la fonction PBKDF2 (préfixé par une sorte d'indicateur de version du protocole si possible) et le cryptogramme ensemble

Maintenant, il vous suffit de mettre en place une procédure sur la façon d'agir lorsque l'utilisateur oublie son mot de passe. Il faudrait configurer un nouveau mot de passe et récupérer les données.

Questions connexes