2009-05-24 10 views
3

Notre client doit chiffrer la base de données de contenu MOSS afin que la base de données de contenu ne puisse pas être vue par DBA ou par des personnes non autorisées sans clé de chiffrement correcte. Semblez le chiffrement de données transparent (TDE) dans SQL Server 2008 ne peut pas protéger les informations sensibles à partir de DBA car TDE est conçu pour protéger les données «au repos». Est-ce que quelqu'un ici a fait face à ce problème?Protégez les informations sensibles de l'administrateur de base de données dans SQL Server 2008

+1

Vous ne faites pas confiance aux administrateurs de base de données? – gbn

+0

Ce n'est peut-être pas une question de confiance, mais de capacité. Ils semblent exiger qu'il soit impossible pour le DBA de voir les données sensibles. DBA devrait être en mesure de _destroy_ toutes les données, mais de ne pas le voir. –

Répondre

6

Il me semble qu'une exigence d'avoir des données sensibles dans une base de données est de faire confiance à l'administrateur de la base de données.

Même si vous pouvez crypter les données d'une manière que le dba ne peut pas voir, il pourrait renifler la connexion où vous passez la clé (ou les données!) Ou configurer des déclencheurs pour capturer les données avant cryptage au cas où le régime le permettrait.

En bref, obtenir un DBA de confiance est une solution plus facile et meilleure.

+0

Pour empêcher l'administrateur de base de données de renifler la connexion, vous pouvez effectuer le chiffrement au niveau de l'application. – Ottokar

2

Si vous ne pouvez pas approuver le DBA, vous ne pouvez pas approuver la base de données elle-même. Votre application doit uniquement communiquer des données cryptées au serveur de base de données.

Cela dit, il y a aussi l'administrateur du serveur qui exécute votre application. Crypter votre façon de lui faire confiance sera presque impossible.

En accord avec Vinko ici, obtenez un DBA en qui vous pouvez avoir confiance, ou qui peut passer la projection.

1

Il n'y a aucun moyen de le faire pour que les données soient toujours utilisables dans la base de données.

Vous pouvez le faire de sorte que les données sont utilisables en dehors de DB. Il suffit de le crypter avant les opérations CRUD avec une méthode quelconque.

Il existe des moyens de le faire "raisonnablement" plus difficile pour DBA pour accéder aux données, par exemple. vous pouvez stocker la clé en tant que données en ligne dans les fonctions sqlclr, mais le code binaire pour celles-ci est toujours accessible par DBA. Cependant, cela signifie répliquer la clé, la synchroniser et contrecarre la sécurité efficace.

+0

Est-ce que le fait d'entrer uniquement du contenu chiffré ne serait pas un vrai tueur de performance? En outre, étant donné que c'est une base de données Sharepoint je doute que vous pouvez réellement faire cela. –

0

Faites confiance aux DBA ?! Techniquement, si nous permettons à un administrateur de base de données de contrôler la sécurité sans aucune restriction, tout le système devient vulnérable car si le DBA est compromis, la sécurité de l'ensemble du système est compromise, ce qui serait un désastre.

+0

Qu'en est-il des programmeurs voyous insérant des portes dérobées dans le système? Ou les gestionnaires voyous vendre les données à partir des rapports qu'ils obtiennent de leur utilisation valide du système? Ou une femme de ménage rouge qui copie le disque dur? ... vous avez eu l'idée. Vous devez juste faire confiance à quelqu'un. Par ailleurs, nous parlons du niveau de sécurité militaire, où personne ne sait tout et où tout est géré selon le besoin de savoir et ainsi de suite, mais c'est de l'argent réel. Pour une base de données Sharepoint, il me semble que l'obtention d'un DBA honnête est suffisante. Je ne suis même pas sûr que vous pouvez obtenir ce genre de sécurité avec des serveurs de base de données. –

+0

Des programmeurs de confiance gèrent-ils vos données, vos sauvegardes, etc.? – gbn

2

Même problème ici ...

Nous sommes une société d'hébergement de base de données MSSQL, je peux dire que pour nous, ce n'est pas la question, faites confiance à DBA ou non. Nos clients sont des banques, et des compagnies d'assurance, Leurs exigences sont: "le DBA ne peut pas lire la base de données", car il contient des données très sensibles.

Actuellement, nous sommes à la recherche d'une solution.

+0

Je pense que vous devriez publier ceci comme une question en soi. Je suis en quelque sorte le même problème que vous avez, regardez ici: http://stackoverflow.com/questions/970262/how-to-protect-a-database-from-the-server-administrator-in-sql -serveur –

0

Chiffrer les données au niveau de l'application est une solution. vous devez stocker les clés où DBA ne peut pas y accéder.

Ceci est une solution éprouvée et rien de nouveau.

Questions connexes