<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Barbarin &#187; tde</title>
	<atom:link href="https://blog.developpez.com/mikedavem/ptag/tde/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/mikedavem</link>
	<description>MVP DataPlatform - MCM SQL Server</description>
	<lastBuildDate>Thu, 09 Sep 2021 21:19:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>SQL Server 2014 : AlwaysOn, chiffrement TDE et chiffrement des sauvegardes</title>
		<link>https://blog.developpez.com/mikedavem/p12395/sql-server-2014/sql-server-2014-alwayson-chiffrement-tde-et-chiffrement-des-sauvegardes</link>
		<comments>https://blog.developpez.com/mikedavem/p12395/sql-server-2014/sql-server-2014-alwayson-chiffrement-tde-et-chiffrement-des-sauvegardes#comments</comments>
		<pubDate>Fri, 20 Dec 2013 07:06:10 +0000</pubDate>
		<dc:creator><![CDATA[mikedavem]]></dc:creator>
				<category><![CDATA[SQL Server 2014]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[chiffrement]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[sauvegardes]]></category>
		<category><![CDATA[SQL Server 14]]></category>
		<category><![CDATA[tde]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/mikedavem/?p=826</guid>
		<description><![CDATA[SQL Server 2014 commence à pointer le bout de son nez avec la CTP2. Cette nouvelle version va apporter pas mal de nouveautés côté moteur notamment la plus attendue Hekaton mais d’autres seront également de la partie comme une amélioration &#8230; <a href="https://blog.developpez.com/mikedavem/p12395/sql-server-2014/sql-server-2014-alwayson-chiffrement-tde-et-chiffrement-des-sauvegardes">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>SQL Server 2014 commence à pointer le bout de son nez avec la CTP2. Cette nouvelle version va apporter pas mal de nouveautés côté moteur notamment la plus attendue Hekaton mais d’autres seront également de la partie comme une amélioration continue de la haute disponibilité avec SQL Server AlwaysOn, la sécurité avec le chiffrement des sauvegardes ou encore la limitation des actions possibles pour un administrateur de bases de données, les index columstore index pouvant être mis à jour et bien d’autres. Dans ce billet j’ai choisi de parler de SQL Server AlwaysOn et du chiffrement des bases de données et des sauvegardes. Un <a href="http://conseilit.wordpress.com/2013/12/13/sql-server-2014chiffrement-des-sauvegardes-avec-un-certificat/">premier billet</a> sur la possibilité de chiffrer les sauvegardes avec SQL14 a déjà par <strong>Christophe Laporte</strong>. Je vous invite à le lire si vous voulez en savoir un peu plus sur cette fonctionnalité.</p>
<p>En testant SQL Server 2014, AlwaysOn et le chiffrement certaines questions me sont venus à l’esprit.&#160; Ces questions sont les suivantes :</p>
<ul>
<li>Est-ce qu’une table Hekaton (In memory) est chiffrée si la base de données qui l’héberge utilise TDE ? </li>
<li>Est-ce qu’il est possible d’implémenter TDE avec une base de données déjà membre d’un groupe de disponibilité ? </li>
<li>Quel avantage à avoir du chiffrement de sauvegardes de bases de données si celles-ci le sont déjà avec TDE ? </li>
</ul>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow1.gif"><img title="icon_arrow" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="icon_arrow" src="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow_thumb1.gif" width="15" height="15" /></a> <strong>Est-ce qu’une table Hekaton (In memory) est chiffrée si la base de données qui l’héberge utilise TDE ?</strong></p>
<p>Tout dépend ici de quoi l’on parle. Une table Hekaton réside en mémoire mais selon sa durabilité les données la concernant peuvent être stockées sur disque. TDE chiffre les données sur disque et pas en mémoire. Un processus de chiffrement et déchiffrement opère en temps réel sur les fichiers de données et journaux de transactions (cf la <a href="http://technet.microsoft.com/fr-fr/library/bb934049.aspx">BOL</a>) . Donc ici on peut se demander si le chiffrement s’effectue pour les tables Hekaton durables car celles-ci utilisent des fichiers de données et des fichiers delta afin de pouvoir remonter les données en cas de problème.</p>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_0.jpg"><img title="alwayson_tde_0" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_0" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_0_thumb.jpg" width="424" height="444" /></a> </p>
<p>Activons maintenant TDE sur la base de données AdventureWorks2012.</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_01.jpg"><img title="alwayson_tde_01" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_01" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_01_thumb.jpg" width="644" height="510" /></a> </p>
</p>
</p>
<p>… et là SQL Server nous donne rapidement la réponse attendue :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_03.jpg"><img title="alwayson_tde_03" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_03" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_03_thumb.jpg" width="784" height="59" /></a> </p>
<p>Les tables Hekaton durables en réalité reposent sur un stockage de type filestream. On peut le voir sur l’image ci-dessous :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_04.jpg"><img title="alwayson_tde_04" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_04" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_04_thumb.jpg" width="693" height="124" /></a> </p>
<p>Un coup d’œil sur la <a href="http://technet.microsoft.com/fr-fr/library/bb934049.aspx">documentation en ligne</a> de SQL Server à propos de TDE nous permet de confirmer que le chiffrement n’est pas valable pour ce type de conteneur. Cela est également confirmé par ce <a href="http://msdn.microsoft.com/en-us/library/dn133181%28v=sql.120%29.aspx">lien</a> pour SQL14. –&gt; <font color="#ff0000">TDE n’est donc pas supporté avec l’utilisation des tables Hekaton</font>.</p>
</p>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow1.gif"><img title="icon_arrow" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="icon_arrow" src="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow_thumb1.gif" width="15" height="15" /></a>&#160; <strong>Est-ce qu’il est possible d’implémenter TDE avec une base de données déjà membre d’un groupe de disponibilité ?</strong> </p>
<p>Nous avons implémenté une belle architecture AlwaysOn et une des bases de données d’un groupe de disponibilité requiert maintenant d’être chiffré pour des raisons de sécurité. Comment dois je procéder dans ce cas ? Est-ce qu’il suffit d’activer TDE sur la base de données située sur le réplica primaire ? Dois-je effectuer des manipulations sur les secondaires ? Dois-je repartir de zéro en supprimant cette base de données du groupe de disponibilité, chiffrer la base de données et refaire tout le processus d’ajout à un groupe de disponibilité (backup, restauration sur les secondaires et ajout au groupe de disponibilité) ? </p>
<p>Soyons un peu feignant et partons du principe que tout est à faire depuis le réplica primaire et que tout sera répliqué par la suite par AlwaysOn .. après tout ca sert à cela la réplication non ? <img src="https://blog.developpez.com/mikedavem/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /> . Précédemment nous avons implémenté TDE sur la base de données AdventureWorks2012 qui faisait parti d’un groupe de disponibilité <em>lst_adv</em>. On pourrait conclure que tout est fini mais si l’on jette un rapide coup d’œil à l’état de synchronisation de notre groupe de disponibilité on s’aperçoit vite qu’un problème est survenu suite à la mise en place de TDE et que la base de données Adventureworks2012 est même dans un état suspect sur les serveurs secondaires sur SSMS.</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_1.jpg"><img title="alwayson_tde_1" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_1" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_1_thumb.jpg" width="535" height="145" /></a> </p>
<p>&#160;</p>
</p>
<p>Parfait … on active TDE et on se retrouve avec une base de données suspecte !! Bravo TDE !! <img src="https://blog.developpez.com/mikedavem/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /> Ne paniquons pas et regardons un peu plus loin dans les logs d’erreurs SQL on peut voir ceci :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_2.jpg"><img title="alwayson_tde_2" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_2" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_2_thumb.jpg" width="881" height="88" /></a> </p>
<p>La cause du problème est la suivante : après avoir chiffré notre base de données sur le réplica primaire, les réplicas secondaires ne trouvent pas le certificat dont l’emprunte correspond à celle utilisé par le certificat créé initialement pour le chiffrement TDE. Dans ce cas la réplication du flux de données du réplica primaire vers réplicas secondaires est donc naturellement suspendue. Ce comportement est tout à fait normal puisque nous essayons de répliquer une base de données chiffrée vers une base de données qui ne peut pas être chiffrée. Ce fameux certificat est hébergé dans la base de données master et n’est pas répliqué automatiquement par AlwaysOn contrairement à la clé de chiffrement de bases de données située dans la base de données AdventureWorks2012. Il ne nous reste plus qu’à sauvegarder ce certificat, le restaurer sur les réplicas secondaires et relancer la réplication des données pour AdventureWorks2012 :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_05.jpg"><img title="alwayson_tde_05" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_05" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_05_thumb.jpg" width="705" height="285" /></a> </p>
</p>
<p>Après quelques secondes ou minutes (en fonction de la quantité de données à répliquer car l’état de synchronisation est suspendue) on peut voir sur le dashbord du groupe de disponibilité lst_adv que tout est rentré dans l’ordre :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_3.jpg"><img title="alwayson_tde_3" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_3" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_3_thumb.jpg" width="573" height="413" /></a>&#160;</p>
<p>Pour résumé, il est possible d’implémenter TDE sur une topologie AlwaysOn existante à condition de bien penser à restaurer le certificat servant au chiffrement de la clé de chiffrement de la base de données pour TDE. Le mode feignant est donc à proscrire <img src="https://blog.developpez.com/mikedavem/wp-includes/images/smilies/icon_smile.gif" alt=":-)" class="wp-smiley" /></p>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow1.gif"><img title="icon_arrow" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="icon_arrow" src="http://blog.developpez.com/mikedavem/files/2013/12/icon_arrow_thumb1.gif" width="15" height="15" /></a>&#160;<strong>Quel avantage à avoir du chiffrement de sauvegardes de bases de données si celles-ci le sont déjà avec TDE ?</strong></p>
</p>
<p>La documentation en ligne concernant TDE explique qu’une sauvegarde provenant d’une base chiffrée par TDE est également chiffrée par le même certificat de serveur. Quel intérêt à chiffrer de nouveau le média de backup par la nouvelle fonctionnalité de chiffrement proposée avec SQL Server 14 si celle-ci est déjà initialement chiffrée par TDE ? Je me suis posé la question en pensant qu’une fois qu’une base était chiffrée par TDE, le chiffrement des sauvegardes n’avaient aucun effet. Mais je me trompais bien sûr : le chiffrement des sauvegardes avec SQL14 agit indépendamment de TDE et chiffrera une seconde fois le média de sauvegarde. Cela nous permet d’ajouter une protection supplémentaire au média de sauvegarde à savoir que chaque chiffrement peut utiliser un algorithme différent. Voyons comment cela se passe.</p>
<p>On commence donc par créer un certificat dédié aux chiffrement des sauvegardes dans la base de données master :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/image6.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/12/image_thumb6.png" width="437" height="75" /></a> </p>
<p>On effectue une sauvegarde de notre base de données AdventureWorks2012 avec le nouveau mot clé ENCRYTION pour la commande BACKUP :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/image7.png"><img title="image" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/12/image_thumb7.png" width="681" height="116" /></a> </p>
<p>On a maintenant un média de sauvegarde doublement chiffré. Si maintenant on tente de lire le contenu de ce média depuis une nouvelle instance SQL on se retrouve avec le message d’erreur suivant :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_6.jpg"><img title="alwayson_tde_6" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_6" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_6_thumb.jpg" width="685" height="86" /></a> </p>
<p>La lecture de l’entête du média de sauvegarde est impossible si le serveur SQL ne possède pas un certain certificat avec l’emprunte décrite ci-dessus. Par déduction, on peut aussi affirmer que la restauration ne sera pas impossible pour le moment.</p>
<p>Restaurons le certificat utilisé pour le chiffrement des sauvegardes dans la base de données master de la nouvelle instance SQL et essayons à nouveau de lire le contenu du média de sauvegarde :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_7.jpg"><img title="alwayson_tde_7" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_7" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_7_thumb.jpg" width="670" height="78" /></a> </p>
<p>Cela ne fonctionne toujours pas … on peut remarquer que l’emprunte du certificat manquant est différent cette fois. Il correspond en réalité à celle du certificat créé initialement pour activer TDE sur AdventureWorks2012. Après avoir restauré ce certificat il est possible de lire le contenu du média de sauvegarde et donc de restaurer notre base de données :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_4.jpg"><img title="alwayson_tde_4" style="border-left-width: 0px;border-right-width: 0px;border-bottom-width: 0px;border-top-width: 0px" border="0" alt="alwayson_tde_4" src="http://blog.developpez.com/mikedavem/files/2013/12/alwayson_tde_4_thumb.jpg" width="678" height="107" /></a>&#160;</p>
<p>Pour un nouveau réplica AlwaysOn, il faudra donc bien penser à restaurer tous les certificats nécessaires à la restauration d’une base de données avant de la joindre au groupe de disponibilité concerné.</p>
<p>Bon chiffrement !!</p>
<p>David BARBARIN (Mikedavem)    <br />MVP et MCM SQL Server</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser le m&#234;me certificat pour chiffrer les connexions SQL Server en SSL et pour TDE ?</title>
		<link>https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde</link>
		<comments>https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde#comments</comments>
		<pubDate>Sun, 13 Jan 2013 11:42:32 +0000</pubDate>
		<dc:creator><![CDATA[mikedavem]]></dc:creator>
				<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SQL Server 2012]]></category>
		<category><![CDATA[certificat]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tde]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/mikedavem/?p=348</guid>
		<description><![CDATA[Lors d&#8217;une de mes dernières interventions nous avions implémenté chez un client le chiffrage des connexions SQL Server via SSL avec la mise en place d&#8217;un certificat. Ce même client m&#8217; a demandé s&#8217;il était possible d&#8217;utiliser ce même certificat &#8230; <a href="https://blog.developpez.com/mikedavem/p11713/sql-server-2005/utiliser-le-mme-certificat-pour-chiffrer-les-connexions-sql-server-en-ssl-et-pour-tde">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Lors d&rsquo;une de mes dernières interventions nous avions implémenté chez un client le chiffrage des connexions SQL Server via SSL avec la mise en place d&rsquo;un certificat. Ce même client m&rsquo; a demandé s&rsquo;il était possible d&rsquo;utiliser ce même certificat pour chiffrer une de leurs bases de données via TDE au lieu d&rsquo;utiliser un certificat auto-signé. Vu de loin on pourrait penser que oui et que l&rsquo;implémentation du certificat dans SQL Server est une chose aisée mais il n&rsquo;en est rien. La raison est la suivante : l&rsquo;export du certificat avec la clé privée au travers du magasin de certificat Windows génère un fichier avec l&rsquo;extension .pfx qui n&rsquo;est pas exploitable directement par SQL Server. Il faut donc trouver un moyen d&rsquo;extraire de ce fichier le certificat et la clé privée dans 2 fichiers .cer et .pvk. Pour cela nous allons utiliser openssl. </p>
<p>&#160;</p>
<p>Pour commencer et après avoir exporté le certificat du magasin certificat, on se retrouve avec un fichier ayant l&rsquo;extension .pfx. Ce fichier stocke notre certificat, la clé publique et la clé privée. </p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image4.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb4.png" width="590" height="182" /></a></p>
<p> &#8230;
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image5.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb5.png" width="597" height="32" /></a></p>
<p>&#160;</p>
<p>Ensuite j&rsquo;ai utilisé la version light de SSL (Win32_OpenSSL_v1.0.1c_light) et j&rsquo;ai installé au préalable les composants redistribuables C++ 2008 (prérequis à l&rsquo;installation de openSSL).</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image6.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;margin: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb6.png" width="588" height="206" /></a></p>
<p>&#160;</p>
<p>Une fois installée il suffit de lancer les commandes suivantes pour :</p>
<ul>
<li>Extraire dans un fichier PEM la clé privée et le convertir dans un format compréhensible pour SQL Server (fichier pvk)</li>
</ul>
<p><div class="codecolorer-container dos default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="dos codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl.exe pkcs12 –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl.pfx –nocerts –nodes –out cert_ssl_pvk.pem<br />
openssl.exe rsa –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl_pvk.pem –outform PVK –pvk-strong –out cert_ssl.pvk</div></div>
</p>
<p>&#160;</p>
<ul>
<li>Extraire dans un fichier PEM&#160; le certificat et le convertir dans un format compréhensible pour SQL Server (fichier cer)</li>
</ul>
<p><div class="codecolorer-container dos default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="dos codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">openssl.exe pkcs12 –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl.pfx –nokeys –out cert_ssl_cer.pem<br />
openssl.exe x509 –outform DER –<a href="http://www.ss64.com/nt/in.html"><span style="color: #00b100; font-weight: bold;">in</span></a> cert_ssl_cer.pem –out cert_ssl.cer</div></div>
</p>
<p>&#160;</p>
<p>Ce qui nous donne les fichiers suivants :</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image7.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb7.png" width="575" height="113" /></a></p>
<p>&#160;</p>
<p>Il suffit ensuite de créer le certificat correspondant dans SQL Server dans le contexte de la base master avec le certificat et la clé publique (.cer) et la clé privée correspondante (.pvk) :</p>
<p>,</p>
<p><div class="codecolorer-container sql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:650px;"><div class="sql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333; font-weight: bold;">CREATE</span> CERTIFICATE TDE_CERT_2<br />
<span style="color: #993333; font-weight: bold;">FROM</span> FILE <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\P</span>rogram Files<span style="color: #000099; font-weight: bold;">\M</span>icrosoft SQL Server<span style="color: #000099; font-weight: bold;">\M</span>SSQL10_50.MSSQLSERVER<span style="color: #000099; font-weight: bold;">\M</span>SSQL<span style="color: #000099; font-weight: bold;">\B</span>ackup<span style="color: #000099; font-weight: bold;">\c</span>ert_ssl.cer'</span><br />
<span style="color: #993333; font-weight: bold;">WITH</span> PRIVATE <span style="color: #993333; font-weight: bold;">KEY</span><br />
<span style="color: #66cc66;">&#40;</span><br />
&nbsp;FILE <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'C:<span style="color: #000099; font-weight: bold;">\P</span>rogram Files<span style="color: #000099; font-weight: bold;">\M</span>icrosoft SQL Server<span style="color: #000099; font-weight: bold;">\M</span>SSQL10_50.MSSQLSERVER<span style="color: #000099; font-weight: bold;">\M</span>SSQL<span style="color: #000099; font-weight: bold;">\B</span>ackup<span style="color: #000099; font-weight: bold;">\c</span>ert_ssl.pvk'</span><span style="color: #66cc66;">,</span><br />
&nbsp;DECRYPTION <span style="color: #993333; font-weight: bold;">BY</span> PASSWORD <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'P@$$w0rd'</span><br />
<span style="color: #66cc66;">&#41;</span>;</div></div>
</p>
<p>&#160;</p>
<p>Vérification de la création correcte de notre certificat à l&rsquo;aide de la vue système<em><strong> sys.certificates</strong></em> :</p>
<p>&#160;</p>
<p><a href="http://blog.developpez.com/mikedavem/files/2013/01/image8.png"><img title="image" style="border-top: 0px;border-right: 0px;border-bottom: 0px;padding-top: 0px;padding-left: 0px;border-left: 0px;padding-right: 0px" border="0" alt="image" src="http://blog.developpez.com/mikedavem/files/2013/01/image_thumb8.png" width="983" height="185" /></a></p>
<p>&#160;</p>
<p>Bien entendu j&rsquo;avais déjà créé la clé de service master (SERVICE MASTER KEY) sur le serveur SQL. C&rsquo;est donc en toute logique que la clé privée du certificat que je viens de créer soit chiffrée par la clé master ici.&#160; Il ne reste ici plus qu&rsquo;à créer la clé de chiffrement de la base de données qui sera elle même chiffrée par notre certificat.</p>
<p>Bon chiffrement !</p>
<p>David BARBARIN (Mikedavem)    <br />MVP SQL Server</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
