{"id":10260,"date":"2023-10-04T09:55:12","date_gmt":"2023-10-04T08:55:12","guid":{"rendered":"https:\/\/blog.capdata.fr\/?p=10260"},"modified":"2023-10-04T09:55:12","modified_gmt":"2023-10-04T08:55:12","slug":"le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/","title":{"rendered":"Le chiffrement et SQL Server &#8211; Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260&#038;title=Le%20chiffrement%20et%20SQL%20Server%20%E2%80%93%20Episode%201%20%3A%20Transparent%20Data%20Encryption%20%28TDE%29%20vs%20Always%20Encrypted\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Le%20chiffrement%20et%20SQL%20Server%20%E2%80%93%20Episode%201%20%3A%20Transparent%20Data%20Encryption%20%28TDE%29%20vs%20Always%20Encrypted&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p>Le chiffrement sous SQL Server n&#8217;est pas nouveau et il existe sous plusieurs formes, selon les versions. Les deux principales impl\u00e9mentations sont TDE (Transparent Data Encryption, qui est un chiffrement &#8220;at rest&#8221;) et Always Encrypted (chiffrement par colonne).<\/p>\n<p>La premi\u00e8re impl\u00e9mentation du chiffrement est arriv\u00e9 en 2008 est TDE. C&#8217;est une solution assez simple \u00e0 mettre en oeuvre et qui a le m\u00e9rite de proposer un \u00e9l\u00e9ment de r\u00e9ponse aux consid\u00e9rations RGPD.<\/p>\n<p>Always Encrypted est une solution plus complexe \u00e0 d\u00e9ployer qui n\u00e9cessitera une \u00e9valuation des donn\u00e9es \u00e0 risque, table par table, colonne par colonne. L&#8217;architecture applicative devra \u00e9galement \u00eatre consid\u00e9r\u00e9e.<\/p>\n<h1>SQL Server TDE &#8211; chiffrement des donn\u00e9es &#8220;at rest&#8221; :<\/h1>\n<p>TDE est apparu avec SQL Server 2008 et uniquement en \u00e9dition Enterprise, ce qui \u00e9tait un frein \u00e0 son d\u00e9ploiement pour beaucoup d&#8217;entreprise. Depuis SQL Server 2019, cette fonctionnalit\u00e9 est disponible d\u00e8s l&#8217;\u00e9dition Standard. Dans Azure avec SQL Database, tous les niveaux de service propose le chiffrement TDE et il est m\u00eame activ\u00e9 par d\u00e9faut.<\/p>\n<p>L&#8217;id\u00e9e avec TDE est d&#8217;appliquer un chiffrement, base de donn\u00e9es par base de donn\u00e9es, sur les fichiers de donn\u00e9es et de log transactionnel. Si un backup de la base est r\u00e9alis\u00e9, celui-ci ne sera qu&#8217;une retranscription des fichiers de la base de donn\u00e9es et donc sera \u00e9galement chiffr\u00e9.<\/p>\n<p>Le chiffrement est bas\u00e9 soit sur un certificat ou une paire de cl\u00e9s asym\u00e9triques g\u00e9n\u00e9r\u00e9 par SQL Server, soit par le module EKM. Dans les deux cas, une attention tr\u00e8s importante devra \u00eatre apport\u00e9e \u00e0 la s\u00e9curisation des cl\u00e9s de chiffrements. En effet, imaginons la destruction du serveur SQL pour une raison quelconque. Si on veut restaurer une sauvegarde d&#8217;une base de donn\u00e9es sur un autre serveur, il faudra poss\u00e9der la cl\u00e9 de chiffrement et la d\u00e9ployer sur ce nouveau serveur. En l&#8217;absence de cette cl\u00e9, l&#8217;utilisation du backup sera impossible.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10301 aligncenter\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/10\/TDE-254x300.png\" alt=\"\" width=\"487\" height=\"575\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/10\/TDE-254x300.png 254w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/10\/TDE.png 507w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Par ailleurs, dans le cas d&#8217;une configuration en mirroring ou en AlwaysOn, il faudra copier la cl\u00e9 de chiffrement sur tous les r\u00e9plicas afin que SQL Server puisse manipuler les donn\u00e9es chiffr\u00e9es.<\/p>\n<p>En cons\u00e9quence, on comprend bien que TDE a pour objectif de prot\u00e9ger les donn\u00e9e contre un vol des fichiers de SQL Server : .mdf, .ndf, .ldf et les backups de ces bases de donn\u00e9es.<\/p>\n<p>L&#8217;acc\u00e8s dans le moteur de SQL Server \u00e9tant &#8220;transparent&#8221; comme son nom l&#8217;indique, si l&#8217;attaque se fait \u00e0 travers l&#8217;applicatif ou le moteur de SQL Server (parce qu&#8217;un compte sur le serveur ou dans le r\u00e9seau a des privil\u00e8ges suffisants de connexion \u00e0 la base), cela n&#8217;apportera pas de s\u00e9curit\u00e9 suppl\u00e9mentaire.<\/p>\n<p>En contrepartie de cette fonctionnalit\u00e9, SQL Server <strong>va consommer un peu plus de ressource CPU<\/strong> pour manipuler ces donn\u00e9es. Si vous comptez d\u00e9ployer TDE sur un serveur qui connait d\u00e9j\u00e0 une forte charge CPU : attention, donc !<\/p>\n<p>Avant SQL Server 2016, la compression des backups est \u00e9galement probl\u00e9matique<strong>.<\/strong> En effet, la compression apporte un caract\u00e8re al\u00e9atoire aux donn\u00e9es dans les pages et donc diminue les r\u00e9p\u00e9titions de valeurs qui permettent \u00e0 la compression d&#8217;apporter du gain. Ainsi donc, la compression des backups n&#8217;apportera quasiment aucun gain d&#8217;espace disque tout en consommant des cycles de CPU. Pour peu que vous ayez pris l&#8217;habitude de sauvegarder votre backup \u00e0 un endroit avec un espace assez limit\u00e9, l&#8217;activation de TDE va saturer ce volume et faire \u00e9chouer vos backups.<\/p>\n<p>A partir de SQL Server 2016, si on ajoute l&#8217;option MAXTRANSFERSIZE = 65536 (ou sup\u00e9rieur) \u00e0 la commande de backup, l&#8217;algorithme de backup et chiffrement sera diff\u00e9rent, permettant de gagner de l&#8217;espace disque.<\/p>\n<p>A partir de SQL Server 2019 CU5, il n&#8217;y a plus besoin d&#8217;ajouter le param\u00e8tre MAXTRANSFERSIZE, du moment qu&#8217;il y a l&#8217;option COMPRESS d&#8217;activ\u00e9, cela mettra la valeur \u00e0 128K et permettra automatiquement de gagner l&#8217;espace li\u00e9 \u00e0 la compression.<\/p>\n<p>&nbsp;<\/p>\n<p>L&#8217;activation de TDE est relativement souple : elle va se faire en fond de t\u00e2che avec une consommation mod\u00e9r\u00e9e de ressources, surtout depuis SQL 2016 o\u00f9 ce travail est d\u00e9volu au processeur par un acc\u00e9l\u00e9rateur d\u00e9di\u00e9 (Intel AES-NI). Mais si votre serveur est d\u00e9j\u00e0 assez charg\u00e9 niveau CPU, peut-\u00eatre que cela peut valoir le coup de cr\u00e9er une base de test avec une copie d&#8217;une table et lancez le TDE uniquement sur cette base pour en voir l&#8217;impact.<\/p>\n<p>Enfin, pensez bien \u00e0 sauvegarder votre certificat TDE ou votre cl\u00e9 asym\u00e9trique de d\u00e9chiffrement et mettez la \u00e0 un voir deux endroits s\u00e9curis\u00e9s. Peut-\u00eatre une cl\u00e9 USB dans une coffre-fort ? Un NAS avec une solution de chiffrement tierce ? Dans tous les cas, il faut bien comprendre que si vous perdez cette cl\u00e9 et que vous rencontrez un probl\u00e8me sur votre serveur chiffr\u00e9 par TDE , vos donn\u00e9es sont en grave p\u00e9ril.<\/p>\n<p>&nbsp;<\/p>\n<h1>SQL Server Always Encrypted &#8211; le chiffrement de bout en bout, par colonne :<\/h1>\n<p>La solution Always Encrypted est plus r\u00e9cente que TDE et est arriv\u00e9 avec SQL Server 2016. Il n&#8217;est pas n\u00e9cessaire d&#8217;\u00eatre en \u00e9dition Enterprise : c&#8217;est accessible d\u00e8s l&#8217;\u00e9dition Standard.<\/p>\n<p>Contrairement \u00e0 TDE qui va chiffrer l&#8217;int\u00e9gralit\u00e9 de la base de donn\u00e9es, Always Encrypted est une option qui s&#8217;active colonne par colonne, table par table. Le chiffrement\/d\u00e9chiffrement n&#8217;est pas non plus &#8220;interne&#8221; au serveur SQL, mais g\u00e9r\u00e9 par l&#8217;application. Le but est de proposer que l&#8217;administrateur de l&#8217;infrastructure (l&#8217;administrateur syst\u00e8me ou de base de donn\u00e9es) ne soit pas en mesure de voir ces donn\u00e9es. Seul l&#8217;applicatif sera capable de d\u00e9chiffrer les donn\u00e9es.<\/p>\n<p>En effet : la philosophie de cette technologie est vraiment dans son nom &#8220;Always Encrypted&#8221; : toujours chiffr\u00e9.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-10271 aligncenter\" src=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/09\/always-encrypted-300x105.jpg\" alt=\"\" width=\"563\" height=\"197\" srcset=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/09\/always-encrypted-300x105.jpg 300w, https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/09\/always-encrypted.jpg 601w\" sizes=\"auto, (max-width: 563px) 100vw, 563px\" \/><\/p>\n<p>Dans ce sch\u00e9ma, on voit TDE entre la base et le stockage &amp; backup : cela ne veut pas dire qu&#8217;AlwaysOn n\u00e9cessite TDE. Mais l&#8217;addition de ces deux technologies permet un chiffrement exhaustif.<\/p>\n<p>On voit \u00e9galement que le chiffrement se fait entre la base de donn\u00e9es et l&#8217;appli. Cela veut dire qu&#8217;il faut penser au driver SQL qui sera utilis\u00e9 pour se connecter \u00e0 la base. Si \u00e0 sa sortie Always Encrypted exigeait un driver ADO .Net , on peut d\u00e9sormais avoir recours \u00e0 plus d&#8217;options. On peut ainsi utiliser Always Encrypted avec des drivers pour :<\/p>\n<ul>\n<li>.NET Core &amp; .NET Framework<\/li>\n<li>JDBC<\/li>\n<li>ODBC<\/li>\n<li>PHP<\/li>\n<\/ul>\n<p>Les pages de documentations pour l&#8217;utilisation de ces drivers dans le cadre Always Encrypted est disponible \u00e0 partir d&#8217;ici : <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/security\/encryption\/always-encrypted-client-development?view=sql-server-ver16\">https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/security\/encryption\/always-encrypted-client-development?view=sql-server-ver16 <\/a><\/p>\n<p>Always Encrypted va n\u00e9cessiter la g\u00e9n\u00e9ration de deux type de cl\u00e9s : les Column Encryption Keys (qui vont servir \u00e0 chiffrer les donn\u00e9es des colonnes) et les Column Master Keys (qui prot\u00e8ge les Column Encryption Keys). Comme avec TDE on peut utiliser le magasin de certificat de Windows, Azure Key Vault, ou bien un HSM pour les stocker. Cependant, le but est de sortir cette Column Master Key du serveur SQL pour bien s\u00e9parer les r\u00f4les : SQL Server stock de la donn\u00e9e chiffr\u00e9e, et le driver compatible Always Encrypted se charge de chiffrer\/d\u00e9chiffrer les donn\u00e9es.<\/p>\n<p>Une Column Encryption Key peut chiffrer une ou plusieurs colonnes. Une base de donn\u00e9es peut g\u00e9rer plusieurs Column Encryptions Keys pour g\u00e9rer des cas m\u00e9tiers avec diff\u00e9rents profils d&#8217;utilisateurs par exemple. L&#8217;algorithme utilis\u00e9 est un AES-256.<\/p>\n<p>Il y aura donc deux t\u00e2ches qui devront \u00eatre consid\u00e9r\u00e9 sp\u00e9cifiquement : le provisionnements des cl\u00e9s dans un key store appropri\u00e9 (avec le Magasin de Certificats Windows ou Azure Key Vault dans la plupart des cas), et la rotation des cl\u00e9s (parce qu&#8217;elles ont \u00e9t\u00e9 compromises ou bien parce que le certificat est arriv\u00e9 \u00e0 expiration apr\u00e8s une certaine date). On peut r\u00e9aliser ces t\u00e2ches avec SSMS ou en PowerShell.<\/p>\n<p>La bonne pratique est de g\u00e9n\u00e9rer ces cl\u00e9s sur une autre machine, comme par exemple le serveur d&#8217;application qui a de toute fa\u00e7on vocation \u00e0 les avoir pour chiffrer\/d\u00e9chiffrer les donn\u00e9es.<\/p>\n<p>SQL Server lui ne poss\u00e9dera que les m\u00e9ta-donn\u00e9es de ces cl\u00e9s, qui lui serviront \u00e0 identifier les colonnes comme recevant ce chiffrement.<\/p>\n<p>Une fois les cl\u00e9s g\u00e9n\u00e9r\u00e9es, on peut proc\u00e9der au chiffrement des colonnes. Cependant, il y a un choix \u00e0 faire : le chiffrement peut-\u00eatre d\u00e9terministe ou bien al\u00e9atoire.<\/p>\n<p>Un chiffrement d\u00e9terministe renvoie la m\u00eame valeur chiffr\u00e9e pour la m\u00eame donn\u00e9e en entr\u00e9e. Cela peut permettre de deviner certaines informations, mais cela permet aussi de r\u00e9aliser des op\u00e9rations comme une recherche d&#8217;\u00e9galit\u00e9 ( &#8220;ma_colonne = ma valeur&#8221; et donc jointures), des agr\u00e9gats et des indexations.<\/p>\n<p>Un chiffrement al\u00e9atoire ne renvoie pas les m\u00eames valeurs pour des donn\u00e9es identiques en entr\u00e9es. C&#8217;est plus s\u00e9curis\u00e9 mais toutes ces op\u00e9rations deviennent impossibles.<\/p>\n<p>Quand cette d\u00e9claration est faite dans le mod\u00e8le de donn\u00e9es, et pour peu que l&#8217;on est acc\u00e8s \u00e0 la Column Master Key ainsi que bien s\u00fbr un acc\u00e8s \u00e0 la base, on peut lire et \u00e9crire des donn\u00e9es chiffr\u00e9es. Il faut \u00e9galement sp\u00e9cifier dans la chaine de connexion qu&#8217;Always Encrypted est activ\u00e9 (en ADO. Net : <em>Column Encryption Setting=enabled<\/em> , en JDBC : <em>encrypt=true<\/em> &#8230;).<\/p>\n<p>Il existe quelques limitations \u00e0 l&#8217;usage d&#8217;Always Encrypted. On notera parmi celles-ci les suivantes :<\/p>\n<ul>\n<li>Impossible d&#8217;utiliser des colonnes de type xml, timestamp, rowversion, image, ntext, text, sql_variant, hierarchyid, geography, geometry, alias et les user-defined types.<\/li>\n<li>Les chaines de caract\u00e8res doivent avoir un collation de type _BIN2 pour faire du d\u00e9terministe.<\/li>\n<li>Le Full Text est bien entendu impossible.<\/li>\n<li>Pas de contrainte de valeur par d\u00e9faut.<\/li>\n<li>Pas de Change Data Capture.<\/li>\n<li>Pas de Dynamic Data Masking.<\/li>\n<li>La r\u00e9plication logique est impossible (AlwaysOn est possible).<\/li>\n<li>Les requ\u00eates distribu\u00e9es sont impossibles.<\/li>\n<li>Les requ\u00eates cross-databases en joignant sur les colonnes (m\u00eame avec chiffrement d\u00e9terministe) sont impossibles.<\/li>\n<\/ul>\n<p>Plus d&#8217;information : <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/security\/encryption\/always-encrypted-database-engine?view=sql-server-ver16\">https:\/\/learn.microsoft.com\/en-us\/sql\/relational-databases\/security\/encryption\/always-encrypted-database-engine?view=sql-server-ver16 <\/a><\/p>\n<p>&nbsp;<\/p>\n<h1>TDE vs Always Encrypted &#8211; synth\u00e8se des diff\u00e9rences :<\/h1>\n<p>On peut voir une approche compl\u00e9mentaire de ces deux solutions technologique. Une premi\u00e8re phase \u00e9tant TDE qui est une protection &#8220;basique&#8221;. Always Encrypted vient ajouter une vraie notion de chiffrement applicative mais qui va n\u00e9cessiter un travail de r\u00e9flexion sur les colonnes et les tables \u00e0 chiffrer. Et sans parler du fait que, si il y a une interface utilisateur devant l&#8217;application, il faudrait \u00e9galement que ce flux soit chiffr\u00e9 avec SSL\/TLS.<\/p>\n<p>On peut cependant faire la synth\u00e8se suivante :<\/p>\n<table width=\"850\">\n<tbody>\n<tr>\n<td width=\"277\"><\/td>\n<td width=\"261\">Always Encrypted<\/td>\n<td width=\"312\">TDE<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">Version<\/td>\n<td width=\"261\">A partir de 2016 + Azure SQL Database<\/td>\n<td width=\"312\">A partir de 2008 + Azure SQL Database<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">Edition<\/td>\n<td width=\"261\">Standard<\/td>\n<td width=\"312\">Enterprise avant 2019<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">Chiffrement des donn\u00e9es &#8220;at rest&#8221;<\/td>\n<td width=\"261\">Oui<\/td>\n<td width=\"312\">Oui<\/td>\n<\/tr>\n<tr>\n<td>Chiffrement des donn\u00e9es en utilisation<\/td>\n<td width=\"261\">Oui<\/td>\n<td width=\"312\">Non<\/td>\n<\/tr>\n<tr>\n<td>Donn\u00e9es visibles par le DBA ?<\/td>\n<td width=\"261\">Non<\/td>\n<td width=\"312\">Oui<\/td>\n<\/tr>\n<tr>\n<td>Donn\u00e9es chiffr\u00e9es par<\/td>\n<td width=\"261\">C\u00f4t\u00e9 client (driver de l&#8217;applicatif)<\/td>\n<td width=\"312\">SQL Server<\/td>\n<\/tr>\n<tr>\n<td>Fonctionne niveau :<\/td>\n<td width=\"261\">Colonne<\/td>\n<td width=\"312\">Base de donn\u00e9es<\/td>\n<\/tr>\n<tr>\n<td>Impact applicatif<\/td>\n<td width=\"261\">Oui (limitations sur colonne chiffr\u00e9e)<\/td>\n<td width=\"312\">Non<\/td>\n<\/tr>\n<tr>\n<td>Prot\u00e8ge les cl\u00e9s de chiffrement<\/td>\n<td width=\"261\">Oui<\/td>\n<td width=\"312\">Non<\/td>\n<\/tr>\n<tr>\n<td>N\u00e9cessite un driver adapt\u00e9<\/td>\n<td width=\"261\">Oui<\/td>\n<td width=\"312\">Non<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Nous reviendrons prochainement sur la mise en oeuvre technique de TDE et d&#8217;Always Encrypted ! Et n&#8217;h\u00e9sitez pas \u00e0 poser vos questions dans les commentaires.<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260&#038;title=Le%20chiffrement%20et%20SQL%20Server%20%E2%80%93%20Episode%201%20%3A%20Transparent%20Data%20Encryption%20%28TDE%29%20vs%20Always%20Encrypted\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Le%20chiffrement%20et%20SQL%20Server%20%E2%80%93%20Episode%201%20%3A%20Transparent%20Data%20Encryption%20%28TDE%29%20vs%20Always%20Encrypted&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F10260\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Le chiffrement sous SQL Server n&#8217;est pas nouveau et il existe sous plusieurs formes, selon les versions. Les deux principales impl\u00e9mentations sont TDE (Transparent Data Encryption, qui est un chiffrement &#8220;at rest&#8221;) et Always Encrypted (chiffrement par colonne). La premi\u00e8re&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":10289,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[394,464,458],"class_list":["post-10260","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqlserver","tag-tde","tag-always-encrypted","tag-chiffrement"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Le chiffrement sous SQL Server n&#8217;est pas nouveau et il existe sous plusieurs formes, selon les versions. Les deux principales impl\u00e9mentations sont TDE (Transparent Data Encryption, qui est un chiffrement &#8220;at rest&#8221;) et Always Encrypted (chiffrement par colonne). La premi\u00e8re&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-04T08:55:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/09\/always-encrypted3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"200\" \/>\n\t<meta property=\"og:image:height\" content=\"200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Capdata team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Capdata team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\"},\"author\":{\"name\":\"Capdata team\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\"},\"headline\":\"Le chiffrement et SQL Server &#8211; Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted\",\"datePublished\":\"2023-10-04T08:55:12+00:00\",\"dateModified\":\"2023-10-04T08:55:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\"},\"wordCount\":1921,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"keywords\":[\"#tde\",\"always encrypted\",\"chiffrement\"],\"articleSection\":[\"SQL Server\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\",\"name\":\"Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2023-10-04T08:55:12+00:00\",\"dateModified\":\"2023-10-04T08:55:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le chiffrement et SQL Server &#8211; Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\",\"name\":\"Capdata team\",\"sameAs\":[\"https:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/","og_locale":"fr_FR","og_type":"article","og_title":"Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG","og_description":"Le chiffrement sous SQL Server n&#8217;est pas nouveau et il existe sous plusieurs formes, selon les versions. Les deux principales impl\u00e9mentations sont TDE (Transparent Data Encryption, qui est un chiffrement &#8220;at rest&#8221;) et Always Encrypted (chiffrement par colonne). La premi\u00e8re&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2023-10-04T08:55:12+00:00","og_image":[{"width":200,"height":200,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/09\/always-encrypted3.png","type":"image\/png"}],"author":"Capdata team","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Capdata team","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/"},"author":{"name":"Capdata team","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9"},"headline":"Le chiffrement et SQL Server &#8211; Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted","datePublished":"2023-10-04T08:55:12+00:00","dateModified":"2023-10-04T08:55:12+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/"},"wordCount":1921,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"keywords":["#tde","always encrypted","chiffrement"],"articleSection":["SQL Server"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/","url":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/","name":"Le chiffrement et SQL Server - Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2023-10-04T08:55:12+00:00","dateModified":"2023-10-04T08:55:12+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/le-chiffrement-et-sql-server-episode-1-transparent-data-encryption-tde-vs-always-encrypted\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Le chiffrement et SQL Server &#8211; Episode 1 : Transparent Data Encryption (TDE) vs Always Encrypted"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9","name":"Capdata team","sameAs":["https:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=10260"}],"version-history":[{"count":19,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10260\/revisions"}],"predecessor-version":[{"id":10302,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/10260\/revisions\/10302"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/10289"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=10260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=10260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=10260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}