web-dev-qa-db-fra.com

Besoin de chiffrer certaines colonnes dans une table, mais aussi pour pouvoir trier et rechercher

Nous avons une application Web qui doit stocker des données sensibles saisies par l'utilisateur. Actuellement, nous explorons PostgreSQL dans AWS. Je suis au courant de pgcryto et que nous pouvons contenir des contenus hachage de certaines colonnes (comme tout n'est pas nécessaire pour être crypté). Cependant, nous devons également pouvoir rechercher dans ces colonnes et effectuer le tri. Ces deux semblent être des limitations une fois que nous chiffrerons les données.

Quels sont mes choix pour le moment si nous devons également soutenir le tri et la recherche? Gardant à l'esprit que la solution doit également être performante.

3
strangetimes

Vous ne voulez pas chiffrer des colonnes spécifiques, ce que vous voulez faire est de chiffrer le système de fichiers que la base de données est écrite et des sauvegardes de votre base de données que vous faites. AWS propose des installations pour faire les deux ( RDS cryptées de ressources et cryptage latéral S3 Server ) ou vous pouvez le faire vous-même en utilisant des volumes LVM montés à l'aide d'ECRYPTFS.

Vous ne pouvez fondamentalement pas rechercher ou trier une colonne cryptée sans décrypter le contenu. Si votre cryptage est efficace, tout processus de tri ou d'indexation le verra comme gibberish et s'il n'est pas efficace, alors pourquoi vous en dérangez-vous?

L'autre considération que vous devriez prendre en compte est le modèle de menace et les modèles de risque associés à vos données. Si vous avez affaire à certaines classes de données, vous devrez gérer votre exposition en suivant des protocoles de sécurité prescrits. HIPAA pour des informations médicales, PCI DSS pour les informations de paiement. Des guides détaillés pour la mise en œuvre de ces protocoles sont disponibles, et si vous êtes couvert par l'un d'entre eux; suivez-la.

Le cryptage et la protection des données ne sont pas une zone dans laquelle vous devriez être créatif; Il est difficile de bien avoir raison et vous mordra fort si vous vous trompez.

2
Larry