SQL Server 2016 : Les nouveautés

Chiffrer dans l'application cliente

Testez gratuitement nos 1250 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Sans vous en apercevoir, vous chiffrer votre colonne dans votre code .NET. Cela est possible grâce à la dernière version d'ADO.NET.
07:00

Transcription

Je vais vous montrer maintenant comment ça marche, d'un point de vue de développement client. Ici, j'ai une application, je suis dans Visual Studio, j'ai une application Dot-Net, et il est important pour que cela fonctionne que je sois sur une version récente du « Framework », alors, quatre point six, au moins, avec donc, une version récente d'ADEO point net. Parce que la logique a été encapsulée de façon transparente, dans « ADEO.net ». Ce qui veut dire que pour l'instant ça ne fonctionne qu'avec le client natif « ADEO.net », « SQL client ». PAOLDB, PAODBC, PAJDBC et c'est des choses qui vont être développées par Microsoft. Donc, ici j'ai une application, que j'appelle le « Pacha Data Manager », qui comporte pleins de codes de Démo, et j'ai rajouté un code de Démo. Pour cette fonctionnalité, je vais développer de la façon suivante. J'ai ici, donc, je vais chercher ma méthode ici. J'appelle à partir d'une application WPF, voilà, dans mon View modèle cette méthode, je crée l'instance d'une classe et j'ai créé une méthode qui s'appelle « Always Encripton » on va y jeter un coup d’œil, voilà, qui fait donc, du pure « ADEO.net », comme ceci. Je fais une requête, et alors, il est important que ce soit. Soit un appel de procédure stocké, soit une requête qui est comme ici, paramétrée. J'ai créé une commande donc, je suis ici dans mon « ADEO.net SQL cliente », En utilisant le client natif, mon type de commande, je le mets en texte, ensuite, je crée un paramètre, à partir de ma commande, je lui donne son nom, le type, la direction et la valeur. C'est ici, où la logique a été encapsulée. C'est-à-dire que lorsque je déclare un paramètre, eh bien, ce paramètre va aller chercher dans les métadonnées de SQL Serveur, pour savoir s'il doit être chiffré ou non. Et si la colonne est chiffrée, eh bien, c'est cette logique ici, lorsqu'on met la valeur, qui va aller prendre le certificat, avec ce certificat, déchiffrer la clé de chiffrement, du côté client, chiffrer la donnée du côté client avec cette clé de chiffrement et envoyer ensuite à travers le réseau, vers SQL serveur la donnée déjà chiffrée. Il faut donc, que ce soit un paramètre. L'intérêt si vous voulez c'est que, ce code ne gère absolument pas le chiffrement. J'ai un petit truc en trois ici, voilà. Le code ne gère absolument pas le chiffrement, c'est-à-dire que si vous avez écrit ceci déjà auparavant pour SQL Serveur 2014 par exemple, eh bien, vous n'avez pas besoin de changer une seule ligne de code, pour que la donnée soit chiffrée. C'est finalement le fait d'avoir déclaré dans SQL serveur que la colonne était chiffrée, le fait d'utiliser une nouvelle version de d'ADEO.net, le fait d'avoir importer votre certificat sur cette machine Client, qui va faire tout le travail automatiquement dans la bibliothèque Client. Ce qui fait que ça peut aussi fonctionner avec des [inaudible], comme un [inaudible]. qui envoie automatiquement des requêtes paramétrées, rien n'étant changé au niveau de la programmation cliente. c'est donc la bibliothèque qui s'occupe de tout, bon, on a compris. Je vais vous montrer ce que ça donne. Je lance donc, mon application. Là voilà. Je vais me connecter ici, à mon serveur, je teste, je suis bien connecté, et je vais aller chercher ici « Always Encrypted ». Le fait de sélectionner va lancer la commande, je vais regarder mes messages, et on me dit : « Carte de Crédit mise à jour sur Société 8 », c'est en fait ce que j'ai ici, juste ma valeur de retour qui s'affiche, OK. donc, ça veut dire que ça a peut-être marché. Eh bien, on va vérifier tout de suite. Donc, je reviens ici, je regarde ma donnée et alors je vois, quelque chose d'intéressant, c'est que je vois la donnée sans chiffrer. Alors, je vais vous expliquer pourquoi. Parce que j'ai déjà fait ma connexion d'une façon particulière. En fait la donnée est réellement chiffrée, mais elle est déchiffrée ici de façon transparente. Ce que je ne vous ai pas encore montré, c'est que pour que cela fonctionne, il faut aussi ajouter dans la chaîne de connexion, comme je l'ai fait ici, dans ma classe, une information supplémentaire qui est celle-ci, « Column Encryption Setting Enabled ». Si la chaîne de connexion n'ajoute pas cette information, je ne verrai jamais les données déchiffrées. En fait, je reviens ici, je vais prendre ceci, je vais faire une nouvelle requête, et je vais me reconnecter, parce que ce que j'ai ajouté dans les options et les paramètres de connexion supplémentaires, c'est la même chose. OK. Donc, je me reconnecte sans cette option, je lance ma requête et cette fois-ci j'ai bien mon [inaudible]. Donc je vais ai dit, cela dit que le DBA ne pouvait pas avoir les données, ça, c'est le mode de connexion normal. Mais si j'active ici cette option, je peux quand même voir les données, on est d'accord, alors là, je ne l'ai plus, ce n'est pas grave, mais ce qu'il faut comprendre, c'est que, pour que ça fonctionne, il faut que j'ai accès au certificat. Ici, puisque je travaille toujours avec le même compte, j'ai accès au certificat, mais quelqu'un qui se connecte à SQL serveur et qui n'a pas accès à ce certificat, parce que le certificat n'est pas présent dans son dépôt personnel, eh bien, ne pourra pas lire cette information, même s'il active bien sûr cette option, qui est « Column Encrytion Setting ». Si l'utilisateur n'a pas accès au certificat, il n'a pas accès au plein texte. Voyez donc, il y a quelques avantages. Tout est transparent, mais rien n'est réellement stocké en terme de chiffrement dans SQL serveur. Il n'y a que la donnée chiffrée, qui va être stockée ici. Tout va dépendre de qui a accès à la clé qui est hors de SQL Serveur, Si le client a accès à la clé, il peut chiffrer, déchiffrer. Si le DBA qui vient ici, n'a pas accès à la clé, il a accès à SQL Serveur, à toutes ses fonctionnalités, mais le certificat, la clé lui est interdit et bien, il ne pourra pas lire cette donnée. Et donc, on a vraiment une architecture de chiffrement, qui est dirigée par le client, sans que le client ait quoique ce soit changé dans ses habitudes, sans qu'il ait besoin de maîtriser le chiffrement au niveau de sa programmation, c’est un administrateur de sécurité qui va générer la clé, placer la clé au bon endroit, et ensuite tout se fera de façon transparente.

SQL Server 2016 : Les nouveautés

Découvrez les nouveautés de SQL Server 2016. Voyez les options de configuration limitées aux bases de données, le chiffrage de données à partir des applications clientes, etc.

2h26 (27 vidéos)
Aucun commentaire n´est disponible actuellement
 

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !