web-dev-qa-db-fra.com

Stratégies de cryptage pour l'accès des utilisateurs multiples dans les systèmes de production

Je suis assez inconnu des stratégies de cryptage dans les environnements de production. Mon souci est donc de trouver une solution sur la manière de crypter fortement des données, mais faites-la accessible à plusieurs utilisateurs avec différentes clés.

Plus spécifique, il s'agit d'un patient - Scénario Stuff médical, où les données du patient sont stockées cryptées sur un serveur et peuvent être accessibles que sur déchiffrité, par la clé de patients ou la clé de médecins ou une autre entité autorisée.

Quels concepts y a-t-il disponible? Et qui sont utilisés dans les systèmes de production, c'est-à-dire mis en œuvre pour des bases de données (comme MySQL) ou stockage de fichiers, etc. Quelles bibliothèques sont disponibles (Java, C/C++) ou quels concepts similaires sont connus.

J'espère que ma question n'était pas à la personne non spécifique, si oui, veuillez demander.

18
joecks

Un moyen courant de travailler pour un accès multiple à l'utilisateur aux données cryptées est celui-ci, une description simplifiée d'un scénario de cryptage de disque complet (un système réel pourrait avoir plus de niveaux que celui décrit ici).

  • Les données elles-mêmes sont cryptées avec une touche clé de conten, kc.
  • Kc est stocké sur l'ordinateur n heures séparées, une par utilisateur. Chaque instance est cryptée par une autre clé utilisateur Ku1... ktoin.
  • Chacun des touches utilisateur i ktoije est dérivé des informations d'identification pour l'utilisateur i.

Ce que cela vous donne, c'est qu'il est facile de changer les informations d'identification d'un utilisateur ou de révoquer l'accès de l'utilisateur sans affecter tout le monde.

Une autre façon disponible pour des choses comme des bases de données MySQL (et est proche de la protection des fichiers dans iOS Works) est-ce:

  • Données cryptées par la clé de contenu.
  • Clé de contenu protégée par la clé d'accès, dérivée des informations d'identification de l'utilisateur.
  • mysqld est donné la clé d'accès et fournit tout le contrôle d'accès aux données utilisateur.

Dans ce cas, vous devez être sûr que votre contrôle d'accès ne peut pas être contourné.

18
user185

Si vous développez ou achetez un système à utiliser avec les données du patient aux États-Unis, il y a beaucoup plus que vous devez prendre en charge que vous devez vous occuper que simplement le cryptage de données. Si vous êtes une entité couverte , vous avez une beaucoup d'étude à faire, avec grandes pénalités pour les défaillances de la conformité dans votre Base de données .

0
user502