Bonjour,
J'ai effectué des tests avec succès des tests sur les nouvelles fonctionnalités de chiffrement symétrique et asymétrique, proposées dans SQL Serveur 2005. Il me reste toutefois une ou deux ambiguités pour lesquelles je n'ai pas trouvé de réponse en lisant la documentation.
Je pensais proposer du chiffrement asymétrique pour un client me demandant une protection efficace contre les DBAs. Bien entendu, l'argument de la confiance revient régulièrement, mais bon, je tente tout de même de lui répondre avec du concret. Dans mes essais, j'ai utilisé le chiffrement par certificat et la génération de clés chiffrées par certificat.
Dans le cas d'un modèle n-tiers assez simple (serveur DB, serveur applicatif et clients lourds), il m'est possible d'enregistrer et lire des données chiffrées en asymétrique dans la base de données. Ce dont je ne saisis pas forcément l'utilité, c'est l'utilisation de certificats, accessibles par simple appel d'une requête SQL et permettant d'effectuer les opérations de chiffrement et de décryptage directement sur le serveur DB. Dans quelle mesure ce dispositif protège-t-il l'entreprise de ses DBAs?
J'ai pensé que l'ajout d'un tunnel chiffré par SSL entre le serveur DB et le serveur applicatif permettraient d'éviter que l'administrateur ne "sniffe" le trafic lorsque les premières requêtes ont lieu afin d'y capturer le mot de passe déverrouillant les certificats. Mais il me semble que l'admin peut toujours voir le trafic en passant par le traceur de requêtes.
En voyant des fonctionnalités de chiffrement asymétrique, je m'attendais plus particulièrement à voir un mécanisme où les secrets ne seraient jamais stockés dans le serveur mais uniquement publiés par le client (serveur applicatif) lorsqu'il établit ses connexions (un peu à la manière d'une connexion SSH avec authentification par clé).
Je crois que j'ai dû manquer une partie du raisonnement dans ma compréhension du chiffrement asymétrique des données sur SQL Serveur alors si une âme charitable se sent de m'éclairer, elle gagnera très certainement...toute ma reconnaissance :)
Sinon, si l'élargissement du débat est possible, avez-vous des ressources (lectures, idées) à conseiller pour établir une bonne séparation entre les données et les administrateurs DB? Le but étant que les admins n'aient pas la possibilité de lire les données stockées dans les bases et que ce soit un peu plus dur que de simplement extraire la clé enregistrée dans le serveur...
Merci d'avance,
Bio
Partager