<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel>
	<title>cryptosec</title>
	<link>http://www.cryptosec.org/</link>
	<description></description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>





	<item>
		<title>Livres</title>
		<link>http://www.cryptosec.org/Livres.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Livres.html</guid>
		<dc:date>2004-05-09T22:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Livres-et-liens-.html">Livres et liens</category>


		<description>Secrets et mensonges, S&#233;curit&#233; num&#233;rique dans un monde en r&#233;seau, de Bruce Schneier, &#233;ditions Vuibert Informatique. &lt;br /&gt;La signature &#233;lectronique, Transactions et confiance sur Internet, de Arnaud-F. Fausse, &#233;ditions Dunod. &lt;br /&gt;S&#233;curiser ses &#233;changes &#233;lectroniques avec une PKI, de Thierry Autret, Laurent Bellefin et Marie-Laure Oble-Laffaire, &#233;ditions Eyrolles. &lt;br /&gt;Digital Certificates, de Jalal Feghhi, Jalil Feghhi et Peter Williams, &#233;ditions Addison Wesley. &lt;br /&gt;Initiation &#224; la Cryptographie, de Gilles (...)


-
&lt;a href="http://www.cryptosec.org/-Livres-et-liens-.html" rel="directory"&gt;Livres et liens&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Secrets et mensonges&lt;/b&gt;, S&#233;curit&#233; num&#233;rique dans un monde en r&#233;seau, de Bruce Schneier, &#233;ditions Vuibert Informatique.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;La signature &#233;lectronique&lt;/b&gt;, Transactions et confiance sur Internet, de Arnaud-F. Fausse, &#233;ditions Dunod.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;S&#233;curiser ses &#233;changes &#233;lectroniques avec une PKI&lt;/b&gt;, de Thierry Autret, Laurent Bellefin et Marie-Laure Oble-Laffaire, &#233;ditions Eyrolles.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Digital Certificates&lt;/b&gt;, de Jalal Feghhi, Jalil Feghhi et Peter Williams, &#233;ditions Addison Wesley.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Initiation &#224; la Cryptographie&lt;/b&gt;, de Gilles Dubertet, &#233;ditions Vuibert.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cryptographie, th&#233;orie et pratique&lt;/b&gt;, de Douglas Stinson, &#233;ditions Thomson Publishing.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cryptographie Appliqu&#233;e&lt;/b&gt;, de Bruce Schneier, &#233;ditions Thomson Publishing.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Algorithmique et cryptographie&lt;/b&gt;, de Guy Robin, &#233;ditions Ellipses.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cours de cryptographie&lt;/b&gt;, de Gilles Z&#233;mor, &#233;ditions Cassini.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cryptography and Network Security&lt;/b&gt;, de William Stallings, &#233;ditions Prentice Hall.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Internet, S&#233;curit&#233; et Firewalls&lt;/b&gt;, de Karanjit Siyan et Chris Hare, &#233;ditions Mc Millan.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;L'Ethique Hacker et l'esprit de l'&#232;re de l'information&lt;/b&gt;, de Pekka Himanen, &#233;dition Exils.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Histoire des codes secrets&lt;/b&gt;, Simon Singh, &#233;ditions JC Latt&#232;s.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Enigma&lt;/b&gt;, de Robert Harris, &#233;ditions Pocket.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Les PKI</title>
		<link>http://www.cryptosec.org/Les-PKI.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Les-PKI.html</guid>
		<dc:date>2004-05-09T22:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cles-et-certificats-.html">Cl&#233;s et certificats</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;Suite &#224; l'invention de la cryptographie &#224; cl&#233;s publiques, qui permettait de s'affranchir du probl&#232;me de la distribution et de la gestion des cl&#233;s sym&#233;triques, s'est pos&#233; le probl&#232;me de la gestion des paires de cl&#233;s. &lt;br /&gt;J'ai des amis qui ont d'&#233;normes trousseaux de cl&#233;s (des vraies, en m&#233;tal), et j'ai pu constater que c'est tout un art de bien les g&#233;rer : se souvenir laquelle correspond &#224; quelle serrure, faire en sorte que le trousseau ne d&#233;chire pas les poches, &#234;tre en bons (...)


-
&lt;a href="http://www.cryptosec.org/-Cles-et-certificats-.html" rel="directory"&gt;Cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;G&#233;n&#233;ralit&#233;s :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Suite &#224; l'invention de la cryptographie &#224; cl&#233;s publiques, qui permettait de s'affranchir du probl&#232;me de la distribution et de la gestion des cl&#233;s sym&#233;triques, s'est pos&#233; le probl&#232;me de la gestion des paires de cl&#233;s.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;J'ai des amis qui ont d'&#233;normes trousseaux de cl&#233;s (des vraies, en m&#233;tal), et j'ai pu constater que c'est tout un art de bien les g&#233;rer : se souvenir laquelle correspond &#224; quelle serrure, faire en sorte que le trousseau ne d&#233;chire pas les poches, &#234;tre en bons termes avec son serrurier, avoir des doubles pour les refaire en cas de perte, ne pas les oublier dans un bar au petit matin... etc.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La notion de PKI (ICP, Infrastructure &#224; Cl&#233;s Publiques en fran&#231;ais) prend tout son sens quand les cl&#233;s (num&#233;riques) sont encapsul&#233;es dans des certificats.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Avant de poursuivre, une remarque, mais d'importance :&lt;br&gt; La mode est &#224; la PKI.&lt;br&gt;C'&#233;tait tr&#232;s vrai lorsque j'ai mis cette page en ligne en juillet 2000, &#231;a l'est un peu moins aujourd'hui, en mars 2002. La mode est un peu tomb&#233;e (je mesure l'intensit&#233; de la mode &#224; la fr&#233;quence des articles sur le sujet parus dans des revues g&#233;n&#233;ralistes et au nombre de pilotes mis en place) ; les solutions ont aussi gagn&#233; en maturit&#233; et de vrais projets PKI commencent doucement &#224; passer en production.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour en revenir aux modes, il en appara&#238;t r&#233;guli&#232;rement en s&#233;curit&#233; logique, dont l'objet est sens&#233; r&#233;soudre tout les probl&#232;mes (il y eut les firewalls, le single sign-on, l'authentification par calculette, la carte &#224; puce...) et initi&#233;es par certaines compagnies ou boites de conseil qui confondent souvent &#233;tudes techniques et marketing.&lt;br&gt; Il y a deux conclusions &#224; en tirer :&lt;br&gt; Mettre en place une PKI n'apportera pas LA s&#233;curit&#233; id&#233;ale.&lt;br&gt; Une PKI n'est pas forc&#233;ment LA meilleure solution pour une situation donn&#233;e (tout comme la mise en place d'infrastructures de signature &#233;lectronique s&#233;curis&#233;e au sens des d&#233;crets n'est pas toujours n&#233;cessaire).&lt;br&gt; &lt;br&gt;
&lt;u&gt;Il y a en gros deux mod&#232;les de PKI :&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Le premier&lt;/u&gt; est celui dit ouvert, le plus connu et r&#233;pandu. Ce sont les AC (Autorit&#233; de Certification, ou Emetteurs de Certificats) qui vendent des certificats et en assurent une certaine gestion. Dans ce cas, les clients PKI sont principalement les navigateurs (et serveurs Web associ&#233;s), et on peut avoir une liste d'AC existantes en allant regarder les cl&#233;s publiques de ces AC dans nos navigateurs.&lt;br&gt; Dans ce cas, les principales applications concr&#232;tes, pour ne pas dire uniques, des certificats sont SSL et S/MIME (s&#233;curisation des transactions http et des courriels).&lt;br&gt;
Les restrictions &#224; l'export des US en mati&#232;re de crypto brident les taillent de cl&#233;s des navigateurs actuels (SSL 40 bits au lieu de 128 par exemple, &#224; moins de l'augmenter sois-m&#234;me. Ce n'est maintenant plus vrai en 2002), quand il n'y a pas des soup&#231;ons sur la conception de certains logiciels ou OS.&lt;br&gt;
A strictement parler, ce mod&#232;le n'est en fait qu'une AC (Certification Authority en anglais) et pas vraiment une PKI, puisqu'elle ne prend pas en charge beaucoup des points list&#233;s plus bas.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Le deuxi&#232;me&lt;/u&gt; mod&#232;le, propos&#233; par quelques &#233;diteurs sp&#233;cialis&#233;s en s&#233;curit&#233; et par quelques solutions OpenSource, consiste en un logiciel que l'on installe au centre du r&#233;seau d'une communaut&#233; d'utilisateurs. Contrairement au cas pr&#233;c&#233;dent, les administrateurs ont vraiment la main sur la gestion des cl&#233;s.&lt;br&gt; De plus, les clients peuvent avoir dans ce cas beaucoup plus de fonctionnalit&#233;s PKI que les navigateurs, puisqu'ils sont con&#231;us &#224; cet effet, et l'on peut plus facilement avoir de la crypto fiable... Le fait que les sources de la plupart des logiciels de crypto commerciaux ne soient pas disponibles marque cependant d'une tache d'ombre ce qui devrait &#234;tre limpide...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une PKI c'est un service de base, la gestion de certificats, plus un certain nombre d'autres services qui peuvent faciliter la vie des utilisateurs et des administrateurs, leur permettre d'utiliser au mieux les cl&#233;s contenues dans les certificats et, biens&#251;r, qui augmentent la s&#233;curit&#233; du syst&#232;me.&lt;br&gt; Autrement dit, une PKI, c'est une AC plus d'autres fonctionnalit&#233;s. Ca ne veut pas dire grand chose, mais c'est normal, c'est un concept :-)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Il y a cependant des RFC qui d&#233;finissent les protocoles de gestion de certificats dans le cadre d'une PKI (celles du groupe PKIX) : une des plus importantes est la &lt;a href=&quot;http://www.ietf.org/rfc/rfc2510.txt&quot;&gt; RFC 2510&lt;/a&gt;&lt;br&gt;
Ce qui signifie bien que m&#234;me les PKI sont en voie de standardisation, ce qui pourra &#224; l'avenir am&#233;liorer l'interop&#233;rabilit&#233; entre PKI (quoique entre un standard et son impl&#233;mentation... mais ceci est une autre histoire).&lt;/p&gt;
&lt;center&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;img SRC=&quot;http://www.cryptosec.org/images/pki.jpg&quot; width='520' height='388' style='height:388px;width:520px;' class='' /&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;br&gt;
&lt;b&gt;Quid de ce que fait une PKI :&lt;/b&gt;&lt;br&gt;
&lt;p class=&quot;spip&quot;&gt;Les PKI (l'ensemble client/serveur) devraient permettre de traiter les points suivants (d'un point de vue technique et non uniquement marketing) : &lt;br&gt;&lt;/p&gt;
&lt;blockquote&gt;
Etablissement d'une confiance commune &#224; un groupe d'utilisateurs munis de certificats&lt;br&gt; Mise en pratique des politiques de certification&lt;br&gt; Enregistrement des utilisateurs&lt;br&gt; G&#233;n&#233;ration des cl&#233;s (optionnel)&lt;br&gt; Certification des cl&#233;s publiques&lt;br&gt; Gestion de la dur&#233;e de vie des certificats et des cl&#233;s&lt;br&gt; Archivage des certificats&lt;br&gt; Renouvellement des cl&#233;s et des certificats&lt;br&gt; Recouvrement des cl&#233;s de chiffrement (optionnel)&lt;br&gt; Publication et accessibilit&#233; des certificats (ce point ne rel&#232;ve pas &#224; strictement parler de la PKI, et est en g&#233;n&#233;ral assur&#233; par des annuaires)&lt;br&gt; V&#233;rification des certificats et des signatures&lt;br&gt; R&#233;vocation des certificats (CRL : Liste de Certificats R&#233;voqu&#233;s)&lt;br&gt; Gestion des co-certificats&lt;br&gt; Horodatage&lt;br&gt; Journalisation
&lt;/blockquote&gt;
&lt;br&gt;
&lt;p class=&quot;spip&quot;&gt;Selon les mod&#232;les de PKI et les impl&#233;mentations concr&#232;tes des logiciels, les points pr&#233;c&#233;dents ne seront pas tous pris en charge.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Etablissement d'une confiance commune &#224; un groupe de certificats :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;C'est le propre d'une PKI. En signant des certificats qui contiennent une cl&#233; publique elle permet d'&#233;tablir une confiance entre des utilisateurs ne se connaissant pas (en parlant d'utilisateurs, il peut tout aussi bien s'agir de personnes physiques que de dispositifs mat&#233;riels comme des VPN ou de logiciels comme des firewalls). La signature se fait en passant toutes les donn&#233;es au travers d'une fonction de hachage et en chiffrant le r&#233;sultat &#224; l'aide de la cl&#233; priv&#233;e de signature de l'AC.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Mise en pratique des politiques de certification :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les politiques de certification (PC en fran&#231;ais d&#233;finissent les domaines d'application des certificats ainsi que les proc&#233;dures selon lesquelles les certificats sont g&#233;n&#233;r&#233;s et g&#233;r&#233;s. Elle permettent entre autres d'&#233;tendre le lien de confiance jusqu'&#224; l'utilisateur final (la proc&#233;dure de d&#233;livrance de tel certificat est digne de confiance, parce que l'&#233;metteur de certificats demande une pi&#232;ce d'identit&#233; pour g&#233;n&#233;rer un certificat par exemple).&lt;br&gt;
L'&#233;quivalent dans le syst&#232;me PGP, &#224; la diff&#233;rence qu'il n'y a pas de tiers commun &#224; qui l'on fait confiance est : &quot; je fais confiance &#224; telle clef publique parce que telle personne en qui j'ai enti&#232;rement confiance lui fait confiance &quot;.&lt;br&gt;
A la PC est en g&#233;n&#233;ral jointe une DPC (D&#233;claration des Pratiques de Certification, CPS (Certificate Policy Statement en anglais) qui est un document qui d&#233;termine les moyens pr&#233;cis mis en oeuvre pour satisfaire aux exigences d&#233;finies dans la PC.&lt;br&gt;
Il existe en France deux PC de r&#233;f&#233;rence :&lt;br&gt;
&lt;br /&gt;&#8212; La PC Type du MINEFI (qui en est &#224; la troisi&#232;me version)
&lt;br /&gt;&#8212; La PC2 de la DCSSI&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Enregistrement des utilisateurs :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Dans une architecture PKI c'est en g&#233;n&#233;ral un composant logiciel (RA, Registration Authority ou AE, Autorit&#233; d'Enregistrement) s&#233;par&#233; de celui qui va effectivement faire la g&#233;n&#233;ration des certificats. Ce module permet de valider un enregistrement avant de g&#233;n&#233;rer le certificat, d'enregistrer les utilisateurs, d'&#234;tre l'interface de r&#233;vocation... etc.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;G&#233;n&#233;ration des cl&#233;s :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Il y a en gros deux sous-mod&#232;les de PKI : ceux qui utilisent une seule paire de cl&#233; pour le chiffrement et la signature, et ceux qui s&#233;parent ces deux fonctionnalit&#233;s en donnant &#224; chaque utilisateur deux paires de cl&#233;s (ou plus). L'une par exemple pour le chiffrement, l'autre pour la signature. Eventuellement d'autres pour l'authentification (ou des certificats d'attribut, de courte dur&#233;e de vie).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Une seule paire de cl&#233; :&lt;/u&gt;
Dans ce cas, celui des simples AC qui vendent des certificats par exemple, la paire de cl&#233;s est g&#233;n&#233;r&#233;e sur le poste client de l'utilisateur qui veut un certificat, la cl&#233; priv&#233;e est stock&#233;e localement (chiffr&#233;e avec une cl&#233; d&#233;riv&#233;e d'un mot de passe) et la cl&#233; publique est envoy&#233;e au serveur de certificats pour qu'il la certifie.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Deux paires de cl&#233;s :&lt;/u&gt;&lt;br&gt;
C'est dans ce cas que le concept de PKI commence &#224; prendre du sens. S'il y deux paires de cl&#233;s, c'est parce que celle priv&#233;e de chiffrement doit &#233;ventuellement pouvoir &#234;tre recouvr&#233;e (pour que toutes les donn&#233;es chiffr&#233;es d'un utilisateur ne soient pas d&#233;finitivement perdues suite &#224; un oubli de mot de passe ou une alt&#233;ration de la cl&#233;) et donc sauvegard&#233;e sur le serveur, et que la cl&#233; priv&#233;e de signature doit, elle, rester rigoureusement en possession de l'utilisateur, ce qui est incompatible.&lt;br&gt; Voir la section &quot;Recouvrement des cl&#233;s de chiffrement sym&#233;triques&quot; pour plus de pr&#233;cisions et les risques de cette proc&#233;dure.&lt;br&gt;
La paire de cl&#233;s de chiffrement peut donc &#234;tre g&#233;n&#233;r&#233;e sur le serveur. La cl&#233; priv&#233;e sauvegard&#233;e est ensuite envoy&#233;e de fa&#231;on s&#251;re &#224; l'utilisateur, la cl&#233; publique certifi&#233;e, et envoy&#233;e &#224; l'utilisateur. Le certificat est post&#233; dans un annuaire et envoy&#233; &#224; l'utilisateur.&lt;br&gt;
La paire de cl&#233;s de signature est g&#233;n&#233;r&#233;e chez le client, la cl&#233; publique envoy&#233;e au serveur pour certification et la cl&#233; priv&#233;e gard&#233;e rigoureusement secr&#232;te. Le certificat de signature est ensuite renvoy&#233; &#224; l'utilisateur.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Certification des cl&#233;s publiques :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une PKI g&#233;n&#232;re ou re&#231;oit une cl&#233; publique et la certifie : elle g&#233;n&#232;re un certificat contenant la cl&#233; publique et signe le tout avec sa cl&#233; priv&#233;e de signature. Dans le cas ou elle re&#231;oit la cl&#233; de la part de l'utilisateur, il doit exister une proc&#233;dure pour en assurer l'authenticit&#233; et l'int&#233;grit&#233;. Ce peut &#234;tre un secret partag&#233; g&#233;n&#233;r&#233; au pr&#233;alable et envoy&#233; &#224; l'utilisateur par un canal s&#251;r (enveloppe cachet&#233;e, de la main &#224; la main, par pigeon voyageur...).&lt;br&gt; Lorsqu'un utilisateur envoie une cl&#233; publique &#224; certifier, c'est en g&#233;n&#233;ral au format PKCS#10 (format pour la requ&#234;te de certificats).&lt;br&gt;
La PKI doit assurer que sa cl&#233; priv&#233;e de signature demeure rigoureusement secr&#232;te : il existe des dispositifs mat&#233;riels externes au serveur qui prennent en charge la g&#233;n&#233;ration de cette cl&#233; et les op&#233;rations de signature. Ces dispositifs peuvent en outre offrir la possibilit&#233; de sauvegarder la cl&#233; racine de l'AC (ou les cl&#233;s).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Gestion de la dur&#233;e de vie des certificats et des cl&#233;s :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les cl&#233;s (priv&#233;es et publiques) doivent avoir une dur&#233;e de vie limit&#233;e, ainsi que les certificats associ&#233;s. Accorder une dur&#233;e de vie illimit&#233;e &#224; une paire de cl&#233;s peut permettre &#224; un attaquant de se lancer dans une recherche exhaustive de longue dur&#233;e, avec une quantit&#233; toujours croissante de textes chiffr&#233;s &#224; analyser. De plus, si une cl&#233; est compromise, ce sont toutes le donn&#233;es chiffr&#233;es avec celle-ci depuis des ann&#233;es qui sont compromises, ce qui n'est pas le cas si la paire de cl&#233; est renouvel&#233;e chaque ann&#233;e par exemple.&lt;br&gt; Les dur&#233;e de vie des certificats de chiffrement et de ceux de signature, dans le cas ou il y a deux paires de cl&#233;s, n'est pas n&#233;cessairement la m&#234;me : on peut par exemple consid&#233;rer que les applications de signature sont plus critiques que celles de chiffrement et que les certificats associ&#233;s n&#233;cessitent donc une dur&#233;e de vie plus courte.&lt;br&gt; Si un certificat de signature, aussi appel&#233; certificat de v&#233;rification, est expir&#233;, il doit tout de m&#234;me &#234;tre possible de s'en servir, pour v&#233;rifier des signatures datant d'avant l'expiration (il faudra dans ce cas s'assurer qu'au moment de la signature le certificat n'&#233;tais pas p&#233;rim&#233; ou r&#233;voqu&#233;).&lt;br&gt; Si par contre un certificat de chiffrement est expir&#233;, sont utilisation ne devrait plus &#234;tre possible.&lt;br&gt; Une application cliente peut ignorer ou simplement avertir l'utilisateur que le certificat est expir&#233;, sans pour autant en interdire l'utilisation (voir les champs des certificats X509v3).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Archivage des certificats :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les certificats devraient en principe &#234;tre sauvegard&#233;s ailleurs que dans un annuaire, ce qui doit permettre &#224; un utilisateur les ayant perdu de les r&#233;cup&#233;rer, m&#234;me s'ils ne sont plus dans l'annuaire. Cette fonctionnalit&#233; peut aussi permettre de restaurer les informations dans l'annuaire, le cas &#233;ch&#233;ant.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Renouvellement des cl&#233;s et des certificats :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Puisque les certificats expirent, il faut pouvoir les renouveler. Pour &#233;viter toute interruption de service, c'est &#224; dire que l'utilisateur n'ait plus pendant une certaine p&#233;riode de certificat valide, le m&#233;canisme de renouvellement doit commencer avant l'expiration.&lt;br&gt; Une PKI devrait permettre de fixer ces param&#232;tres.&lt;br&gt; Dans le cas des simples AC, qui utilisent majoritairement les navigateurs comme clients (pour faire du SSL et du S/MIME) cette fonctionnalit&#233; n'est pas disponible parce que les clients ne savent pas g&#233;rer les requ&#234;tes de certificats avant expiration. Mais &#231;a devrait bient&#244;t changer (c'est promis, &#231;a vient dans la version n en Qn de l'ann&#233;e 200n...).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Recouvrement des cl&#233;s de chiffrement sym&#233;triques :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Comme je l'ai mentionn&#233; dans la section &quot; g&#233;n&#233;ration des cl&#233;s &quot;, une PKI peut offrir la possibilit&#233; aux utilisateurs de recouvrer leurs documents chiffr&#233;s s'ils oublient le mot de passe lib&#233;rant la cl&#233; priv&#233;e par exemple. Il faut pour cela sauvegarder au niveau du serveur de PKI les cl&#233;s priv&#233;es de chiffrement.&lt;br&gt; Cela introduit biensur une faille, puisque un administrateur est th&#233;oriquement en mesure de lire des fichiers chiffr&#233;s.&lt;br&gt;
On peut cependant limiter ce risque en mettant en place des syst&#232;mes d'autorisation multiples (plusieurs administrateurs doivent donner leur accord) ou d'avertissement de l'utilisateur en cas de recouvrement par exemple.&lt;br&gt; Ce qui chiffre les documents est une cl&#233; sym&#233;trique utilis&#233;e dans un algorithme de chiffrement par blocs (AES, DES, IDEA, CAST, Twofish...). Cette cl&#233; est ensuite chiffr&#233;e avec la cl&#233; asym&#233;trique du destinataire (la sienne si on chiffre pour soi-m&#234;me). Dans les cas standard, pour recouvrer un fichier chiffr&#233;, il faut donc d&#233;chiffrer la cl&#233; sym&#233;trique, et donc r&#233;cup&#233;rer sa cl&#233; priv&#233;e asym&#233;trique de d&#233;chiffrement devenue inaccessible.&lt;br&gt; La PKI peut alors proposer un moyen s&#233;curis&#233; pour recouvrer cette cl&#233;, et en r&#233;g&#233;n&#233;rer une paire et le certificat associ&#233; si n&#233;cessaire.&lt;br&gt;
Il existe une autre possibilit&#233; : lors du chiffrement, une copie de la cl&#233; sym&#233;trique est chiffr&#233;e avec une cl&#233; (publique) ma&#238;tre de l'AC, qui pourra alors d&#233;chiffrer tous les documents sans recouvrer les cl&#233;s des utilisateurs. Ce proc&#233;d&#233;, outre qu'il permet plus d'abus, pose en plus un autre probl&#232;me : si la paire de cl&#233; ma&#238;tre est cass&#233;e, r&#233;v&#233;l&#233;e ou aux mains d'un tiers, ce sont tous les documents de tous les utilisateurs de la PKI qui sont vuln&#233;rables.&lt;br&gt; Avant de d&#233;cider si l'on va se donner la possibilit&#233; de recouvrer les cl&#233;s priv&#233;es de chiffrement il faut soigneusement consid&#233;rer les deux aspects suivants :&lt;br&gt; Soit on est pr&#234;t &#224; g&#233;rer et assumer les pertes de donn&#233;es cons&#233;cutives &#224; des oublis de mot de passe...&lt;br&gt; Soit on accepte la possibilit&#233; de recouvrement, avec les risques pour la confidentialit&#233; que cela peut supposer...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Publication et accessibilit&#233; des certificats :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour que tout utilisateur puisse trouver le certificat d'un correspondant, la PKI doit les rendre publiquement accessibles. Elle les poste pour cela dans des annuaires, X.500 ou simplement &quot; LDAP &quot;.&lt;br&gt; Lightweight Directory Access Protocol (LDAP) est un protocole de communication avec les annuaires. Les annuaires poss&#232;dent une structure en arbre qui facilite les recherches.&lt;br&gt;
La PKI postera &#233;galement dans les annuaires les Listes de Certificats R&#233;voqu&#233;s (CRL), qui permettront aux applications clientes de venir consulter l'&#233;tat de validit&#233; d'un certificat.&lt;br&gt; Il est &#224; la charge des applications d'impl&#233;menter LDAP pour aller chercher les certificats et consulter les CRL.&lt;br&gt;
Un protocole pour consulter les CRL est OCSP (Online Certificate Status Protocol), via un serveur qui prend en charge cette v&#233;rification.&lt;br&gt; La PKI n'a pas &#224; se soucier particuli&#232;rement de la s&#233;curisation de ses communications avec l'annuaire : les certificats ne sont pas confidentiels, et ils sont sign&#233;s (si un faux certificat remplace un vrai, les applications clientes n'en v&#233;rifieront pas correctement la signature). Il est cependant important de noter que la structure m&#234;me de l'annuaire peut &#234;tre de nature confidentielle.&lt;br&gt;
Un standard, SASL, est pourtant en train d'&#233;merger, qui permettra d'&#233;tablir des communications s&#233;curis&#233;es avec les annuaires.&lt;br&gt;
Pour donner une id&#233;e, voici la structure typique d'un annuaire :&lt;br&gt;&lt;/p&gt; &lt;center&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;img SRC=&quot;http://www.cryptosec.org/images/annuaire.jpg&quot; width='520' height='388' style='height:388px;width:520px;' class='' /&gt;&lt;/p&gt;
&lt;/center&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;R&#233;vocation des certificats (CRL) :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une PKI doit permettre de r&#233;voquer des certificats. Chaque certificat poss&#232;de un champ Serial Number, c'est ce num&#233;ro qui est inscrit dans une liste des certificats r&#233;voqu&#233;s (CRL) en cas de r&#233;vocation. Lorsqu'une application cliente utilise un certificat, elle devrait aller consulter la CRL. Si le num&#233;ro de s&#233;rie du certificat n'est pas pr&#233;sent, c'est qu'il est valide.&lt;br&gt; Les CRL sont sign&#233;es par l'AC et doivent &#234;tre accessibles en LDAP dans un annuaire.&lt;br&gt; S'il n'y a pas de CRL ou qu'il faut faire un telnet sur une machine pour aller ensuite la chercher en FTP dans le 43&#232;me r&#233;pertoire d'une machine situ&#233;e &#224; Panama, c'est que l'AC (la pseudo-PKI) fait mal son boulot : Panama c'est pas pour les CRL mais pour les pavillons de complaisance. H&#233;las.&lt;br&gt;
Il faudra aussi prendre soin de bien sp&#233;cifier les proc&#233;dures organisationnelles pour proc&#233;der &#224; une r&#233;vocation :&lt;br&gt;
&lt;br /&gt;&#8212; Qu'aucun certificat ne soit r&#233;voqu&#233; de fa&#231;on non l&#233;gitime,&lt;br&gt;
&lt;br /&gt;&#8212; Pr&#233;voir la m&#233;thode d'authentification des requ&#234;tes de r&#233;vocation...&lt;br&gt;
&lt;br /&gt;&#8212; ...etc&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;V&#233;rification des certificats et des signatures :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Normalement, lors de chaque utilisation d'un certificat (chiffrement, v&#233;rification de signature, authentification...) l'application qui l'utilise devrait en v&#233;rifier la validit&#233;. Cela consiste en :&lt;/p&gt;
&lt;blockquote&gt; V&#233;rifier la signature que le CA y a appos&#233; (int&#233;grit&#233; et authenticit&#233;)&lt;br&gt; V&#233;rifier qu'il est valide en v&#233;rifiant les dates de validit&#233;&lt;br&gt; V&#233;rifier qu'il n'a pas &#233;t&#233; r&#233;voqu&#233;, en allant consulter la CRL correspondante.&lt;br&gt; &lt;/blockquote&gt;
Dans le cas des simples AC, les clients &#233;tant les navigateurs, ils n'ont pas aujourd'hui de fonctionnalit&#233;s automatiques de consultation de CRL, elle doit se faire manuellement... et c'est laborieux. OCSP est apparu sur Netscape 6, d&#233;sactiv&#233; par d&#233;faut.
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Gestion des co-certificats :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une autorit&#233; de certification peut se co-certifier avec une autre. Il peut alors s'&#233;tablir entre les utilisateurs des deux CA un lien de confiance.&lt;br&gt; Cette confiance peut &#234;tre unilat&#233;rale.&lt;br&gt; Techniquement une AC va certifier le certificat d'une autre AC (qui est en fait un certificat auto-&#233;mis... il faut bien que &#231;a commence quelque part), et r&#233;ciproquement.&lt;br&gt; Il y a plusieurs types d'architectures de co-certification : hi&#233;rarchique, &#224; plat, mixte, pont...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Horodatage :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une PKI devrait offrir des services d'horodatage. Une application cliente doit pouvoir accoler &#224; la signature d'un document un sceau temporel (sic). L'application passe les donn&#233;es au travers d'une fonction de condensation, signe ce r&#233;sultat et l'envoie &#224; un serveur de temps. Celui-ci, &#233;ventuellement reli&#233; &#224; une horloge atomique, &#224; un r&#233;seau de type GPS ou &#224; un coucou suisse, v&#233;rifie la signature et, si elle est bonne, y adjoint une date, signe &#224; nouveau le tout et le renvoie &#224; l'exp&#233;diteur. Celui-ci joint ce sceau &#224; ses donn&#233;es.&lt;br&gt; Le destinataire v&#233;rifie la signature sur le sceau et est assur&#233; que la date port&#233;e sur la signature est correcte.&lt;br&gt; Il est &#224; noter que l'horodatage ne certifie que la date et l'heure de la signature, pas celle de l'exp&#233;dition ou de la r&#233;ception d'un message ou du pigeon voyageur (s'il est envoy&#233; ou l&#226;ch&#233;).&lt;br&gt;
Voir la page sur l'horodatage pour plus de d&#233;tails.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Journalisation :&lt;/b&gt;&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une PKI devrait enfin journaliser tous les op&#233;rations, en prot&#233;geant ces donn&#233;es en int&#233;grit&#233; et/ou confidentialit&#233;, comme la cr&#233;ation d'utilisateurs, leur r&#233;vocation... etc.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>RSA</title>
		<link>http://www.cryptosec.org/RSA.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/RSA.html</guid>
		<dc:date>2003-02-19T23:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cryptographie-appliquee-.html">Cryptographie appliqu&#233;e</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;C'est l'algorithme &#224; cl&#233; publique le plus r&#233;pandu, et le plus populaire. Il a &#233;t&#233; invent&#233; en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman (le GCHQ anglais aurait eu en fait un peu d'avance). &lt;br /&gt;Cet algorithme peut &#234;tre utilis&#233; pour : - la confidentialit&#233; &lt;br /&gt;la signature &#233;lectronique &lt;br /&gt;l'&#233;change de cl&#233;s sym&#233;triques. &lt;br /&gt;Sa s&#233;curit&#233; repose sur la difficult&#233; de factoriser les grands nombres (bien que &#231;a ne soit pas math&#233;matiquement prouv&#233;, ce n'est qu'une conjecture). &lt;br /&gt;Une (...)


-
&lt;a href="http://www.cryptosec.org/-Cryptographie-appliquee-.html" rel="directory"&gt;Cryptographie appliqu&#233;e&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;G&#233;n&#233;ralit&#233;s :&lt;/b&gt;
&lt;br&gt;C'est l'algorithme &#224; cl&#233; publique le plus r&#233;pandu, et le plus populaire. Il a &#233;t&#233; invent&#233; en 1977 par Ron Rivest, Adi Shamir et Leonard Adleman (le GCHQ anglais aurait eu en fait un peu d'avance).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Cet algorithme peut &#234;tre utilis&#233; pour :&lt;/p&gt;
&lt;blockquote&gt;- la confidentialit&#233;
&lt;br&gt;- la signature &#233;lectronique
&lt;br&gt;- l'&#233;change de cl&#233;s sym&#233;triques.&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;Sa s&#233;curit&#233; repose sur la difficult&#233; de factoriser
les grands nombres (bien que &#231;a ne soit pas math&#233;matiquement
prouv&#233;, ce n'est qu'une conjecture).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Une longueur de cl&#233; de 512 bits n'est aujourd'hui plus vraiment
suffisante, on lui pr&#233;f&#233;rera du 1024 ou du 2048 bits. A vrai dire, m&#234;me le 1024 commence &#224; vieillir...
&lt;br&gt;Mais des longueurs de cl&#233; telles que 2048 mettent probablement RSA &#224; l'abri
pour encore bien des ann&#233;es.
&lt;br&gt;Ce qui pourrait compl&#232;tement compromettre la s&#233;curit&#233;
de RSA serait une avanc&#233;e math&#233;matique qui aurait pour cons&#233;quence
de faciliter la factorisation des grands nombres (mais il est possible
qu'une telle avanc&#233;e soit math&#233;matiquement interdite). Ou bien la construction de &quot;machines &#224; factoriser&quot; r&#233;volutionnaires.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Principe :&lt;/b&gt;
&lt;br&gt;Choisir deux grands nombres premiers (au moins 200 chiffres, chacun
d'une longueur d'&#224; peu pr&#232;s la moiti&#233; de la taille
de cl&#233; voulue, voir Miller-Rabin pour un test de primalit&#233; probabiliste) :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;p et q&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Calculer :&lt;/p&gt;
&lt;blockquote&gt;n = p*q&lt;/blockquote&gt;
Pour obtenir la cl&#233; publique de chiffrement : choisir e tel que :
&lt;blockquote&gt;e et (p-1)(q-1) soient premiers entre eux.&lt;br&gt;
phi(n) = (p-1)(q-1) est la fonction d'Euler qui donne le nombre d'entiers premiers &#224; n et inf&#233;rieurs &#224; n)
&lt;/blockquote&gt;
Pour obtenir la cl&#233; priv&#233;e de d&#233;chiffrement : choisir
d tel que :
&lt;blockquote&gt;ed = 1mod[(p-1)(q-1)]&lt;/blockquote&gt;
(ou encore d tel que (ed-1) soit divisible par (p-1)(q-1))
&lt;p class=&quot;spip&quot;&gt;soit : d = e^(-1)mod[(p-1)(q-1)]&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;(on utilise pour cela l'algorithme d'Euclide &#233;tendu)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La cl&#233; publique est constitu&#233;e de : e et n
&lt;br&gt;(c'est la longueur en bits de n qui donne la longueur de la cl&#233;
RSA utilis&#233;e)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La cl&#233; priv&#233;e est : d et n&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Chiffrement et signature sont math&#233;matiquement les m&#234;mes
op&#233;rations, ce n'est que par convention que l'on choisit que telle
cl&#233; sera celle de chiffrement et telle autre celle de d&#233;chiffrement.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour chiffrer un message m, on le d&#233;coupe en blocs de taille
plus petite que la cl&#233; et tels qu'ils aient une repr&#233;sentation
unique modulo n
&lt;br&gt;(en binaire on pourra prendre la plus grande puissance de 2 inf&#233;rieure
&#224; n)
&lt;br&gt;Les blocs Ci de texte chiffr&#233; se calculent &#224; partir des blocs Mi du texte clair par (ils auront la m&#234;me taille que la cl&#233;) :&lt;/p&gt;
&lt;blockquote&gt;Ci = (Mi^e)mod(n)&lt;/blockquote&gt;
Pour d&#233;chiffrer les blocs chiffr&#233;s Ci, il suffit de les exponentier par d :
&lt;blockquote&gt;Mi = (Ci^d)mod(n)&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.cryptosec.org/articles/rsa.html&quot;&gt;Un d&#233;mo de RSA en javascript&lt;/a&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Utilisation dans la pratique :&lt;/b&gt;
&lt;br&gt;&lt;u&gt;Utilisation de certificats :&lt;/u&gt;
&lt;br&gt;Afin de s'assurer de l'appartenance d'une cl&#233; publique on utilisera
souvent des certificats X.509v3, bien que PGP et GPG (autres formats, et non sign&#233;s par une Autorit&#233;) en soient des contre-exemples de poids. Le certificat contient une cl&#233; publique, et la signature
d'une autorit&#233; reconnue par les protagonistes. Cette cl&#233;
pourra aussi bien &#234;tre une cl&#233; de chiffrement, une cl&#233;
de v&#233;rification ou bien une cl&#233; qui remplira les deux fonctions.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Chiffrement :&lt;/u&gt;
&lt;br&gt;Dans la pratique (voir plus bas) on utilise souvent une combinaison
de RSA et d'un algorithme sym&#233;trique. On chiffre tout d'abord les donn&#233;es
&#224; l'aide d'une cl&#233; sym&#233;trique al&#233;atoire, puis on
chiffre cette clef &#224; l'aide de la cl&#233; publique du destinataire
et on joint enfin cette cl&#233; sym&#233;trique chiffr&#233;e aux donn&#233;es
chiffr&#233;es. Le destinataire d&#233;chiffrera cette cl&#233; sym&#233;trique
&#224; l'aide de sa cl&#233; asym&#233;trique priv&#233;e, puis d&#233;chiffrera
les donn&#233;es &#224; l'aide de la cl&#233; sym&#233;trique.
&lt;br&gt;S'il y a plusieurs destinataires, chacun aura sa copie de la cl&#233;
sym&#233;trique chiffr&#233;es avec sa cl&#233; publique. Voir la page sur le chiffrement mixte.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Signature et int&#233;grit&#233; :&lt;/u&gt;
&lt;br&gt;Pour la signature et l'int&#233;grit&#233; on passera tout d'abord les
donn&#233;es &#224; signer au travers d'une fonction de condensation (ou de hachage), puis
on chiffrera &#224; l'aide de la cl&#233; priv&#233;e
RSA le r&#233;sultat (condens&#226;t ou &quot;hashcode&quot;). Ce dernier r&#233;sultat sera ajout&#233;
aux donn&#233;es, ainsi par exemple que le certificat associ&#233;
&#224; la cl&#233; publique. Le destinataire d&#233;chiffrera ce
r&#233;sultat &#224; l'aide de la cl&#233; publique, passera les donn&#233;es
au travers de la m&#234;me fonction de condensation, et comparera les deux
r&#233;sultats obtenus : s'ils sont &#233;gaux il aura l'assurance que
les donn&#233;es n'ont pas &#233;t&#233; modifi&#233;es et que
l'identit&#233; inscrite sur le certificat de l'exp&#233;diteur est bien la
m&#234;me que celle qui &#224; sign&#233;.
&lt;br&gt;
Voir la page sur la signature.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Vitesse :&lt;/u&gt;
&lt;br&gt;La vitesse de RSA, qui est impos&#233;e par la vitesse des exponentiations
modulaires, est au mieux environ 1000 plus faible qu'un DES r&#233;alis&#233;
en mat&#233;riel (si le DES est en soft, RSA est environ 100 fois plus
lent).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Doubler la taille de la cl&#233; :&lt;/p&gt;
&lt;blockquote&gt;multiplie par 4 le temps des op&#233;rations utilisant la
cl&#233; publique
&lt;br&gt;multiplie par 8 le temps des op&#233;rations utilisant la cl&#233;
priv&#233;e
&lt;br&gt;multiplie par 16 le temps de g&#233;n&#233;ration des cl&#233;s
(et dans les cartes &#224; puces &#224; microprocesseur, &#231;a se sent...)&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;Si RSA est r&#233;alis&#233; sur des cartes &#224; puce, il
sera encore plus lent (notamment la g&#233;n&#233;ration).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La faible vitesse de RSA le rend peu propice au chiffrement de grandes
quantit&#233;s de donn&#233;es, c'est pourquoi on adoptera souvent
des cryptosyst&#232;mes mixtes constitu&#233;s de la combinaison d'un
algorithme sym&#233;trique et d'un algorithme asym&#233;trique.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour augmenter la vitesse des processus, on peut choisir certaines valeurs
particuli&#232;res de e :
&lt;br&gt;3, 17 ou 65537 par exemple.
&lt;br&gt;Cette derni&#232;re valeur est celle recommand&#233;e par la norme
X509.
&lt;br&gt;Il n'y a aucune faiblesse connue &#224; choisir ces donn&#233;es
arbitraires de e (qui peuvent &#234;tre partag&#233;es entre tout un
groupe d'utilisateurs). Il faudra cependant veiller &#224; ce que les p-1 et q-1 ne soient pas des multiples de la valeur choisie.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Trouver des nombres premiers est lent. La plupart des impl&#233;mentations
ont donc recours &#224; des algorithmes probabilistes de test de primalit&#233;
pour d&#233;terminer p et q, comme le test de primalit&#233; de Miller-Rabin.
Les nombres p et q ont alors une probabilit&#233; d'&#234;tre premiers.
Il est possible de rendre cette probabilit&#233; aussi faible que l'on
veut. Seul peu de nombres &#233;chouent
aux tests de primalit&#233; : ce sont les nombres de Carmichael, il y en
a peu et on peut facilement les &#233;carter.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;S&#233;curit&#233; et attaques :&lt;/u&gt;
&lt;br&gt;La s&#233;curit&#233; d'une cl&#233; RSA et d'une cl&#233; DES
sym&#233;trique de m&#234;me taille n'est pas comparable.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Il peut aussi &#234;tre vuln&#233;rable si la m&#234;me paire de
cl&#233; est utilis&#233;e &#224; la fois pour chiffrer et pour signer :
l'attaquant peut faire signer &#224; la victime des donn&#233;es, ce
qui math&#233;matiquement est &#233;quivalent &#224; un chiffrement
et disposer ainsi d'un texte clair connu... ce qui peut permettre certaines attaques... en th&#233;orie.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Bien que le nombre de nombres premiers soit infini, le nombre disponible
pour une longueur de cl&#233; fix&#233; est limit&#233;. Mais pour
une cl&#233; de 512 bits par exemple, il y en a &#224; peu pr&#232;s 10^150
de longueur &#233;gale ou inf&#233;rieure, ce qui rend une attaque par essai exhaustif
des nombres premiers... longue, tr&#232;s longue.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Standards et protocoles :&lt;/u&gt;
&lt;br&gt;RSA est une composante de nombreux protocoles ou sp&#233;cifications :&lt;/p&gt;
&lt;blockquote&gt;SSL/TLS
&lt;br&gt;IPSec
&lt;br&gt;S/MIME
&lt;br&gt;Certains PKCS
&lt;br&gt;...&lt;/blockquote&gt;
RSA fait partie de nombreux staldards comme :
&lt;blockquote&gt;ISO 9796
&lt;br&gt;ITU-T X.509 (standard s&#233;curit&#233;)
&lt;br&gt;ETEBAC 5 (standard fran&#231;ais du secteur bancaire et financier)
&lt;br&gt;ANSI X9.31 rDSA
&lt;br&gt;X9.44 draft (standard am&#233;ricain du secteur bancaire et financier)
&lt;br&gt;AS2805.6.5.3 (standard de gestion des cl&#233;s australien)
&lt;br&gt;SWIFT (standard interbancaire international)&lt;/blockquote&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Les principes de Kerckhoffs</title>
		<link>http://www.cryptosec.org/Les-principes-de-Kerckhoffs.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Les-principes-de-Kerckhoffs.html</guid>
		<dc:date>2003-02-19T17:25:32Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cryptographie-appliquee-.html">Cryptographie appliqu&#233;e</category>


		<description>En janvier 1883, Auguste Kerckhoffs (1835 - 1903) posa les principes de la cyptographie moderne dans l'article &quot;La cryptographie militaire&quot; paru dans le &quot;Journal des Sciences Militaires&quot;. Ces principes, et en particulier le second qui stipule que la s&#233;curit&#233; r&#233;sultant de l'utilisation d'un cryptosyst&#232;me ne doit pas reposer sur le secret de ses principes de conception ou du param&#233;trage du dispositif, sugg&#233;rant (&#224; la lecture des autres points) qu'elle doit uniquement reposer sur une cl&#233; (...)

-
&lt;a href="http://www.cryptosec.org/-Cryptographie-appliquee-.html" rel="directory"&gt;Cryptographie appliqu&#233;e&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;En janvier 1883, Auguste Kerckhoffs (1835 - 1903) posa les principes de la cyptographie moderne dans l'article &quot;La cryptographie militaire&quot; paru dans le &quot;Journal des Sciences Militaires&quot;. Ces principes, et en particulier le second qui stipule que la s&#233;curit&#233; r&#233;sultant de l'utilisation d'un cryptosyst&#232;me ne doit pas reposer sur le secret de ses principes de conception ou du param&#233;trage du dispositif, sugg&#233;rant (&#224; la lecture des autres points) qu'elle doit uniquement reposer sur une cl&#233; secr&#232;te, restent de toute actualit&#233;.&lt;br&gt;
A ce titre, par exemple, le choix du dernier standard de chiffrement par le NIST, l'algorithme sym&#233;trique AES, est exemplaire : il a &#233;t&#233; choisi suite &#224; un appel &#224; contribution public, et tous ses d&#233;tails de conception sont publics (le choix et la conception du DES n'avait pas &#233;t&#233; aussi transparent).&lt;br&gt;Ainsi, ce principe explicite le fait qu'un algorithme sera d'autant plus r&#233;sistant et p&#233;renne qu'il aura &#233;t&#233; con&#231;u, choisi et impl&#233;ment&#233; avec la plus grande transparence, s'offrant &#224; l'analyse de l'ensemble de la communaut&#233; cryptographique.&lt;br&gt;
Dit autrement, toute attaque doit &#234;tre envisag&#233;e en supposant que l'attaquant conna&#238;t tous les d&#233;tails du cryptosyst&#232;me&lt;br&gt;
De plus, ces principes, &#233;tape de la longue histoire des codes secrets, donnent un peu de perspective aux domaines de la cryptographie et de la s&#233;curit&#233; logique, l'ancrent par leur actualit&#233; dans une r&#233;alit&#233; dont les dites &quot;nouvelles technologies&quot; ne sont qu'une &#233;tape apr&#232;s bien d'autres.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;A l'adresse &lt;a href= &quot;http://www.cl.cam.ac.uk/~fapp2/kerckhoffs&quot;&gt; http://www.cl.cam.ac.uk/ fapp2/kerckhoffs/ &lt;/a&gt; vous pourrez trouver une version num&#233;ris&#233;e de l'article, dont je reproduit ci-apr&#232;s les six principes qui nous int&#233;ressent :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Seconde partie, &quot;Desiderata de la cryptographie militaire&quot; (p. 12) :&lt;br&gt;
&quot; &lt;b&gt;1-&lt;/b&gt; Le syst&#232;me doit &#234;tre mat&#233;riellement, sinon math&#233;matiquement, ind&#233;chiffrable ;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;2-&lt;/b&gt; Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconv&#233;nient tomber entre les mains de l'ennemi ;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;3-&lt;/b&gt; La clef doit pouvoir en &#234;tre communiqu&#233;e et retenue sans le secours de notes &#233;crites, et &#234;tre chang&#233;e ou modifi&#233;e au gr&#233; des correspondants ;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;4-&lt;/b&gt; Il faut qu'il soit applicable &#224; la correspondance t&#233;l&#233;graphique ;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;5-&lt;/b&gt; Il faut qu'il soit portatif, et que son maniement ou son fonctionnement n'exige pas le concours de plusieurs personnes ;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;6-&lt;/b&gt; Enfin, il est n&#233;cessaire, vu les circonstances qui en commandent l'application, que le syst&#232;me soit d'un usage facile, ne demandant ni tension d'esprit, ni la connaissance d'une longue s&#233;rie de r&#232;gles &#224; observer. &quot;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour illustrer l'actualit&#233; de ces principes, et sans craindre aucun anachronisme, passons en revue chacun des points en proposant des analogies qui pourraient &#234;tre des principes &#224; respecter de nos jours, avec nos technologies. Il s'agit bien de cryptosyst&#232;mes et non uniquement d'algorithmes, c'est &#224; dire de l'ensemble constitu&#233; des algorithmes, des impl&#233;mentations, des standards utilis&#233;s, des protocoles mis en place, des interfaces utilisateur, des modalit&#233;s d'int&#233;gration, des support physiques ou logiciel, des cellules de support, veille et formation, des documentations... bref, de l'ensemble des composants (techniques et humains) qui constituent un cryptosyst&#232;me au sens large du terme.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Premier point : &lt;/b&gt;&lt;br&gt;
Le syst&#232;me doit offrir un niveau de s&#233;curit&#233; suffisant au regard de celui voulu pour le traitement des informations. Il n'est pas n&#233;cessaire qu'il soit inconditionnellement s&#251;r, mais toutes les garanties qu'il est possible de donner quant &#224; la s&#233;curit&#233; du syst&#232;me doivent &#234;tre apport&#233;es affin de s'assurer qu'il atteint un niveau suffisant.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Deuxi&#232;me point : &lt;/b&gt;&lt;br&gt;
La s&#233;curit&#233; du syst&#232;me ne doit pas reposer sur le secret de sa conception. Ses sp&#233;cifications et d&#233;tails de fonctionnement doivent pouvoir &#234;tre rendus publics. C'est l&#224; un principe phare en cryptographie, puisque les sp&#233;cifications de la plupart des algorithmes sont publiques. Dans le m&#234;me ordre d'id&#233;e, on peut consid&#233;rer qu'il doit &#234;tre possible de r&#233;v&#233;ler sans &#233;tat d'&#226;me le code source d'un cryptosyst&#232;me.&lt;br&gt;Encore une fois, toute attaque contre le cryptosyst&#232;me doit &#234;tre envisag&#233;e en consid&#233;rant que l'attaquant conna&#238;t tous les d&#233;tails de conception du syst&#232;me cible.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Troisi&#232;me point : &lt;/b&gt;&lt;br&gt;
L'analogie que l'on peut voir ici est l'importance de faire en sorte que les utilisateurs disposent de codes d'authentification efficaces et ergonomiques (cartes &#224; puces, bonne politique de mots de passe...). Pour ce qui est de l'&#233;change des cl&#233;s, l'apparition de la cryptographie asym&#233;trique, puis des certificats qui encapsulent les cl&#233;s publiques, apporte une solution &#233;l&#233;gante, s&#251;re et efficace. Stricto sensu, ce troisi&#232;me point fonde le principe de l'utilisation des cl&#233;s secr&#232;tes, seul param&#232;tre variable dont d&#233;pend la s&#233;curit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Quatri&#232;me point : &lt;/b&gt;&lt;br&gt;
Biensur, nous sommes aujourd'hui pass&#233;s &#224; d'autres moyens de communication. Cependant, il faut faire en sorte que le syst&#232;me prenne en entr&#233;e et renvoie apr&#232;s traitement des donn&#233;es conformes aux formats et standards en vigueur. En particulier les standards et protocoles ouverts de l'IETF, les RFC.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cinqui&#232;me point : &lt;/b&gt;&lt;br&gt;
Aujourd'hui, il ne s'agit biensur pas de transporter une machine. Cependant, l'id&#233;e sous-jacente est que le syst&#232;me doit pouvoir &#234;tre utilis&#233; quel que soit l'endroit ou l'on se trouve, ce qui fait &#233;cho &#224; des notions telles que la mobilit&#233; des profils, l'utilisation de cartes &#224; puce...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Sixi&#232;me point : &lt;/b&gt;&lt;br&gt;
Ce dernier point reste aujourd'hui tout a fait primordial. Il s'agit de s'attacher, lors de la conception, l'impl&#233;mentation et l'int&#233;gration d'un syst&#232;me de s&#233;curit&#233; &#224; lui donner une ergonomie qui soit la meilleure possible. Un syst&#232;me qui donnera aux utilisateurs l'envie de l'utiliser, qui sera simple d'acc&#232;s, qui ne bouleversera pas outre mesure ses habitudes de travail, sera d'autant mieux utilis&#233;, et la s&#233;curit&#233; effective en sera donc d'autant meilleure.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;br&gt;
Qu'il s'agisse de concevoir des algorithmes, des cryptosyst&#232;mes, de les impl&#233;menter, de les d&#233;velopper, ou de les d&#233;ployer, on voit bien l'int&#233;r&#234;t qu'il y a, plus d'un si&#232;cle apr&#232;s leur d&#233;finition, &#224; consid&#233;rer et essayer de respecter les principes de Kerckhoffs.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Certificats X509 v3</title>
		<link>http://www.cryptosec.org/Certificats-X509-v3.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Certificats-X509-v3.html</guid>
		<dc:date>2003-01-29T23:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cles-et-certificats-.html">Cl&#233;s et certificats</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;L'objet d'un certificat est de certifier une cl&#233; publique. Pour utiliser une cl&#233; publique il faut &#234;tre s&#251;r de l'identit&#233; de son d&#233;tenteur. La premi&#232;re m&#233;thode est d'avoir une relation de confiance directe avec son d&#233;tenteur, comme dans le mod&#232;le &quot;web of trust&quot; associ&#233; &#224; PGP ou GPG. La deuxi&#232;me m&#233;thode repose sur le principe que tous les interlocuteurs ont confiance en un tiers, qui certifiera les cl&#233;s en les signant. X509 est un standard d&#233;finissant le format des certificats (...)


-
&lt;a href="http://www.cryptosec.org/-Cles-et-certificats-.html" rel="directory"&gt;Cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;G&#233;n&#233;ralit&#233;s :&lt;/b&gt;&lt;br&gt;
L'objet d'un certificat est de certifier une cl&#233; publique. Pour utiliser une cl&#233; publique il faut &#234;tre s&#251;r de l'identit&#233; de son d&#233;tenteur. La premi&#232;re m&#233;thode est d'avoir une relation de confiance directe avec son d&#233;tenteur, comme dans le mod&#232;le &quot;web of trust&quot; associ&#233; &#224; PGP ou GPG. La deuxi&#232;me m&#233;thode repose sur le principe que tous les interlocuteurs ont confiance en un tiers, qui certifiera les cl&#233;s en les signant. X509 est un standard d&#233;finissant le format des certificats &#233;mis par ces tiers, ou &#233;metteurs de certificats (Certificate Authority, CA ne anglais). Il est &#224; noter que l'utilisation de certificats ne fait que reporter la question de la confiance (en bout de cha&#238;ne, il y a forc&#233;ment un &#233;metteur qui s'auto-certifie, en qui la communaut&#233; cible des utilisateurs doit avoir confiance). Il appartient aux &#233;metteurs de certificats, ou autorit&#233;s de certification, de s'assurer que telle cl&#233; appartient bien &#224; telle personne (ou entit&#233;), et de publier les proc&#233;dures d&#233;finissant cette assurance (politiques de certification). Lorsqu'un groupe pr&#233;cis d'utilisateurs n'a pas la main sur l'AC ou la PKI (ou encore ICP, Infrastructure &#224; Cl&#233;s Publiques), on peut &#233;mettre des r&#233;serves sur la s&#233;curit&#233; de l'&#233;mission et de la gestion des certificats. Les &#233;metteurs de certificats sur internet ne sont pas, selon moi, la panac&#233;e. En particulier lorsqu'ils n'&#233;manent pas d'institutions l&#233;gitimes, en qui l'on peut avoir confiance. Lorsqu'en plus ces &#233;metteurs se retrouvent en situation de quasi monopole...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les certificats X509, version 3, sont utilis&#233;s (entre autres) dans les applications, protocoles et standards suivants : SSL/TLS, IPSec, S/MIME, SET, chiffrement, authentification, signature, non-r&#233;pudiation, horodatage...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les certificats X.509 en sont &#224; la troisi&#232;me version. (quatri&#232;me maintenant ; 30.01.03)
La premi&#232;re date de 1988 et la seconde de 1993. Avec la version 3 sont apparues les extensions, champs qui permettent de rendre l'utilisation des certificats beaucoup plus flexible. C'est aussi ce qui les rend bien souvent incompatibles entre eux.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;D&#233;tail des certificats :&lt;/b&gt;&lt;br&gt;
Un certificat contient les donn&#233;es suivantes :
&lt;blocquote&gt;
Version du certificat Num&#233;ro de s&#233;rie du certificat Description de l'algorithme de signature de l'AC Nom de l'AC qui a g&#233;n&#233;r&#233; le certificat P&#233;riode de validit&#233; Nom de l'utilisateur auquel appartient le certificat Valeur de la cl&#233; publique Description de l'algorithme &#224; utiliser avec la cl&#233; publique Identification alternative de l'AC (optionnel) Identification alternative de l'utilisateur (optionnel) Extensions (optionnel) Signature de l'AC
&lt;/blocquote&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Les champs exacts des certificats X.509v3 sont les suivants :&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;(les versions auxquelles sont apparus ces champs sont entre parenth&#232;ses) :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Certificate format version (v1)&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ donne la version du certificat : 1, 2 ou 3. Dans la pratique, il n'a en g&#233;n&#233;ral pas d'implications pour l'interpr&#233;tation.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Certificate serial number (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Num&#233;ro de s&#233;rie unique, dans le domaine de confiance auquel appartient le certificat, qui l'identifie de fa&#231;on unique. C'est ce num&#233;ro de s&#233;rie qui sera post&#233; dans la liste de r&#233;vocation en cas de r&#233;vocation.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Signature algorithm identifier for CA (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;D&#233;signe le proc&#233;d&#233; utilis&#233; par l'AC pour signer le certificat : (norme ISO). Il s'agit d'un algorithme asym&#233;trique et d'une fonction de condensation. Un exemple est : RSA with SHA-1. Cette information &#233;tant r&#233;p&#233;t&#233;e dans le champ CA signature (le dernier), il n'est pas forc&#233;ment d'une grande utilit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Issuer X.500 name (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Sp&#233;cifie le DN (Distinguished Name) dans la norme X.500 de l'AC qui a g&#233;n&#233;r&#233; le certificat. Un exemple est : c=FR, o=Boite&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Validity period (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Donne les dates de d&#233;but et de fin de validit&#233; du certificat. Un logiciel client utilisant les certificats doit imp&#233;rativement v&#233;rifier ces dates avant utilisation, et rejeter le certificat s'il est expir&#233;. Cela ne suffit cependant pas, car cela d&#233;pend de l'horloge de la machine cliente. On peut avoir recours &#224; la consultation des CRL (ou LCR, Liste de Certificats R&#233;voqu&#233;s), o&#249; peut &#234;tre mise l'information concernant l'expiration.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Subject X.500 name (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Sp&#233;cifie le DN dans la norme X.500 (... un reste -judicieux- des t&#233;l&#233;coms) de l'utilisateur poss&#233;dant la partie priv&#233;e de la cl&#233; publique contenue dans le certificat. Un exemple est : c=FR, o=Jussieu, cn=Marie Curie&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Subject public key information (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;C'est le coeur du certificat. Ce champ contient la valeur de la cl&#233; publique du d&#233;tenteur du certificat et les algorithmes avec lesquels elle doit &#234;tre utilis&#233;e RSA with MD5 par exemple&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Issuer unique identifier (v2) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ optionnel, qui est apparu en v2, permet de donner une seconde identification au Issuer X.500 name (l'AC) dans le cas ou celui-ci &#224; un DN commun avec une autre AC.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Subject unique identifier (v2) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ optionnel, qui est apparu en v2, permet de donner une seconde identification au Subject X.500 name (l'utilisateur) dans le cas ou celui-ci &#224; un DN en commun &#224; un ou plusieurs autres utilisateurs.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Extensions : Type, Criticality, Value (v3) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Chaque extension est constitu&#233;e de 3 champs :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Type&lt;/u&gt; : D&#233;crit le format du champ Value. Ce peut &#234;tre un nombre, une cha&#238;ne de caract&#232;res, des donn&#233;es complexes...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Criticality&lt;/u&gt; : C'est un flag d'un bit. Si une extension est marqu&#233;e comme &#233;tant critique, une application qui ne saurait qu'en faire devrait en principe rejeter le certificat. Peut cr&#233;er des probl&#232;mes d'interop&#233;rabilit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Value&lt;/u&gt; : Contient la valeur des donn&#233;es de l'extension. Celle-ci peut &#234;tre un texte, une date ou m&#234;me une photo (mais l&#224;, c'est quand m&#234;me du vice...).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;CA signature (v1) &lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;C'est la signature de l'autorit&#233; de certification (CA). Cette signature est effectu&#233;e en passant l'ensemble du certificat au travers d'une fonction de condensation puis en chiffrant le r&#233;sultat &#224; l'aide de la cl&#233; priv&#233;e de l'autorit&#233; de certification.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Les extensions X.509v3 :&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Dans le standard X.509v3, il y a des extensions dites standard. Les extensions sont tr&#232;s importantes dans les certificats, puisqu'elles les rendent flexibles et &quot;ajustables&quot; &#224; souhait (tel certificat ne peut servir que pour telle application par exemple). Mais elles sont aussi source d'incompatibilit&#233; (telle application va rejeter un certificat si elle n'y trouve pas l'extension qu'elle attend). En d&#233;veloppant un logiciel utilisant des certificats on peut cependant l'autoriser &#224; ne pas prendre en compte telle ou telle extension. &lt;br&gt;
Par &quot;ajustable&quot;, on entend en fait la possibilit&#233; pour une AC ou une PKI de d&#233;finir une politique de s&#233;curit&#233; de l'AC ou de la PKI. Dans cette optique, la politique peut sp&#233;cifier que tel certificat ne pourra &#234;tre utilis&#233; qu'&#224; cet usage ou d&#233;finir toute autre contrainte qui rendra incompatibles des certificats &#233;mis par d'autres AC.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;On peut les grouper en quatre types :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;1) Informations sur les cl&#233;s&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;2) Informations sur l'utilisation du certificat&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;3) Attributs des utilisateurs et des AC&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;4) Contraintes sur la co-certification&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Dans le d&#233;tail, &#231;a donne :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;1) Informations sur les cl&#233;s :&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce groupe d'extensions, qui renseigne sur l'utilisation qui doit &#234;tre faite de la cl&#233; publique et du certificat, est constitu&#233; de quatre champs :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Authority Key Identifier :
Ce champ identifie de fa&#231;on unique la paire de cl&#233; utilis&#233;e par l'&#233;metteur de certificats pour signer le certificat. Il peut &#234;tre utilis&#233; par une application pour faciliter le processus de v&#233;rification de la signature du certificat dans le cas ou l'AC &#224; utilis&#233; plusieurs cl&#233;s depuis sa mise en service.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Subject Key Identifier :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ identifie de fa&#231;on unique la paire de cl&#233; dont la cl&#233; publique est contenue dans le certificat. Il peut &#234;tre utile si l'utilisateur poss&#232;de un historique de cl&#233;s (c'est &#224; dire que ses cl&#233;s ont &#233;t&#233; renouvel&#233;es une ou plusieurs fois). Par exemple, pour d&#233;chiffrer un document chiffr&#233; avec une cl&#233; qui n'est plus celle en cours de validit&#233;, ce champ permet de retrouver rapidement la bonne cl&#233; priv&#233;e.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Key usage :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ renseigne sur l'utilisation qui doit &#234;tre faite de la cl&#233;. Si le champ criticality de cette extension est &#224; TRUE, alors la cl&#233; ne doit &#234;tre utilis&#233;e que dans le but sp&#233;cifi&#233;, et toute autre utilisation serait contrevenir &#224; la politique de l'AC ou de la PKI. Si le champ criticality de cette extension est &#224; FALSE, alors le champ Key usage est l&#224; &#224; titre indicatif pour faciliter les processus par exemple. Le champs Key usage peut avoir les valeurs : &lt;blocquote&gt;
non-repudiation certificate signing CRL signing digital signature data signature symetric key encryption for key transfer Diffie-Hellman key agreement
&lt;/blocquote&gt;
Private Key Usage Period :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ donne la date d'expiration de la cl&#233; priv&#233;e associ&#233;e &#224; la cl&#233; publique contenue dans le certificat. Il est en g&#233;n&#233;ral utilis&#233; pour les cl&#233;s priv&#233;es de signature (et donc contenu dans les certificats de signature dans le cas ou ils sont distincts de ceux de chiffrement), qui peuvent expirer, ce qui n'est pas le cas des cl&#233;s priv&#233;es de d&#233;chiffrement (il doit toujours &#234;tre possible de d&#233;chiffrer des donn&#233;es, m&#234;me si celles-ci ont &#233;t&#233; chiffr&#233;es avec une cl&#233; publique qui est maintenant expir&#233;e).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;2) Informations sur l'utilisation du certificat :&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce groupe d'extensions, qui contient deux champs, permet &#224; un &#233;metteur de certificats de sp&#233;cifier les fa&#231;ons dont un certificat doit &#234;tre utilis&#233;, en accord avec la politique qu'il a d&#233;finie (PC). Les deux champs sont : Certificate Policies et Policy Mappings.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Certificate Policies :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ peut donner, soit la politique de certification qui a pr&#233;sid&#233; &#224; l'&#233;mission du certificat, soit les utilisations qui doivent &#234;tre faites du certificat. Il peut sp&#233;cifier ces deux informations &#224; la fois. &lt;br&gt;
Les politiques de certificats sont repr&#233;sent&#233;es par des Object Identifier (OID), qui sont des s&#233;ries de nombres s&#233;par&#233;es par des points. Ces OID sont enregistr&#233;es au niveau international, et leur utilisation est standardis&#233;e. Un certificat peut contenir plusieurs OID, pourvu qu'elles ne soient pas incompatibles. &lt;br&gt;
Si ce champ est marqu&#233; comme &#233;tant critique, l'&#233;metteur de certificats impose que le certificat soit utilis&#233; conform&#233;ment &#224; la politique de certification. Dans le cas contraire, l'information est indicative (&quot;ce certificat devrait &#234;tre utilis&#233; dans tel but&quot; par exemple)... Libre &#224; l'application cliente (son impl&#233;mentation ou sa configuration) de respecter ou pas la criticit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Policy Mappings :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ ne concerne que les co-certificats (le certificat &#233;mis par une AC pour certifier la cl&#233; publique (le certificat) d'une autre AC). Il permet d'associer la politique de certification de l'AC qui &#233;met le certificat &#224; la politique de certification indiqu&#233;e dans le co-certificat. S'il est d&#233;fini comme critique, il permet aux applications qui v&#233;rifient un certificat appartenant &#224; une cha&#238;ne de certification de s'assurer qu'une politique de certification acceptable s'applique &#224; tous les certificats.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;3) Attributs des utilisateurs et des AC :&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce groupe d'extensions (3 champs) permet de mieux sp&#233;cifier l'identification des utilisateurs et des certificats.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Subject Alternative Name :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ sp&#233;cifie un ou plusieurs noms uniques et suppl&#233;mentaires pour le d&#233;tenteur du certificat. Ils peuvent &#234;tre utilis&#233;s dans les applications de messagerie, web, r&#233;seau o&#249; il peut &#234;tre tr&#232;s utile d'identifier un utilisateur, ou une machine, autrement que par un DN. Les noms autoris&#233;s sont : &lt;blocquote&gt;
Une adresse mail Un nom de domaine Une adresse IP Une adresse mail X.400 Un nom EDI Une URL Un nom d&#233;fini par une OID &lt;/blocquote&gt;
Issuer Alternative Name :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ permet de donner un nom sp&#233;cifique &#224; une AC, et les noms autoris&#233;s sont les m&#234;mes que ceux du champ pr&#233;c&#233;dent.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;4) Contraintes sur la co-certification :&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les trois extensions de ce groupe permettent de limiter et contr&#244;ler la confiance envers d'autres AC en cas de co-certification.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Basic Constraints :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ indique si l'utilisateur est un utilisateur final ou s'il peut &#234;tre une AC. S'il peut &#234;tre AC, le certificat est alors un co-certificat. On d&#233;finit alors une &quot; distance de certification &quot;. Elle sp&#233;cifie jusqu'o&#249; doit remonter une application qui veut v&#233;rifier un certificat en consultant sa CRL, et jusqu'ou est &#233;tendue la confiance dans la cha&#238;ne. Si cette distance est par exemple &#224; 1, les utilisateurs ne peuvent que v&#233;rifier les certificats &#233;mis par l'AC d&#233;fini dans le co-certificat.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Name Constraints :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champs n'est utilis&#233; que dans les co-certificats, et permet aux administrateurs de restreindre les domaines de confiance dans un domaine de co-certification. Supposons que ce site &#233;mette des certificats &#224; mes amis, avec des noms du type : c=FR, o=cryptosec, cn=[mes amis]. J'ai un ami qui fait de m&#234;me. Il &#233;met des certificats &#224; ses visiteurs, avec des noms du type c=FR, o=mantis, o=amis, cn=[ses visiteurs] et &#224; ses amis, avec des noms du type c=FR, o=mantis, o=amis, cn=[ses amis]. Je veux me co-certifier avec lui, et comme c'est un ami, je fais confiance &#224; ses amis. Mais je ne fais pas confiance &#224; ses visiteurs. Je vais donc &#233;mettre un co-certificat qui ne va &#234;tre valide que pour les certificats &#233;mis dans la branche c=FR, o=mantis, o=amis, cn=[ses amis].&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Policy Constraints :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Ce champ s'applique aux co-certificats, et permet de sp&#233;cifier les politiques de certification acceptables pour les certificats d&#233;pendants du co-certificat.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Pour lire un certificat&lt;/b&gt;, il faut lire l'ASN.1 (Abstract Syntax Notation)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;C'est une grammaire abstraite qui permet de repr&#233;senter des objets ou des messages. ASN.1 permet de repr&#233;senter des types de donn&#233;es simples comme des entiers ou des types plus complexes de donn&#233;es comme des s&#233;quences ou des donn&#233;es repr&#233;sent&#233;es par la combinaisons de types simples.&lt;br&gt;
Le codage BER (Basic Encoding Rules), ou son d&#233;riv&#233; DER (Distinguished Encoding rules), est utilis&#233; pour repr&#233;senter concr&#232;tement les donn&#233;es ASN.1 en tableaux d'octets. Les codages BER et DER sont ind&#233;pendants des plate-formes utilis&#233;es, ce qui permet d'&#233;changer sans probl&#232;me des donn&#233;es. Pour d&#233;velopper il existe des &quot; compilateurs &quot; ASN.1, et l'on travaille souvent sur des objets ASN.1 sans avoir &#224; se plonger dans le codage lui m&#234;me (voir SSLeay qui fournit ce genre de librairies).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Dans le cas d'un certificat, le codage DER en r&#233;duit les champs de donn&#233;es &#224; des listes d'&#233;l&#233;ments simples (comme des entiers, des cha&#238;nes de caract&#232;res) o&#249; &#224; des combinaisons complexes de ces derniers. Chaque champ est ainsi d&#233;compos&#233; en un triplet : tag, lenght et value.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;tag&lt;/b&gt; donne le type de donn&#233;e par une convention d&#233;finie par l'ISO.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;lenght&lt;/b&gt; donne la longueur du champ &quot; value &quot;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;value&lt;/b&gt; est une s&#233;rie d'octets qui repr&#233;sente les donn&#233;es.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Afin de permettre l'&#233;dition des certificats, l'envoi de ceux-ci par des messageries simples ou les op&#233;rations de &quot;copier-coller&quot; requises par certaines applications, les octets ainsi obtenus sont cod&#233;s en base-64. &lt;br&gt;
Lorsqu'une application va utiliser un certificat, elle appliquera &#233;videmment le processus inverse auparavant.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Attaques et failles</title>
		<link>http://www.cryptosec.org/Attaques-et-failles.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Attaques-et-failles.html</guid>
		<dc:date>2002-04-15T15:14:42Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cryptographie-appliquee-.html">Cryptographie appliqu&#233;e</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;Il est difficile de dresser un panorama de la cryptanalyse ou des attaques sur les logiciels. Ce sont des domaines tr&#232;s &#233;clectiques, qui bougent tr&#232;s rapidement. Chaque attaque est en g&#233;n&#233;ral tr&#232;s li&#233;e au sujet de l'attaque : l'algorithme, le protocole, le logiciel... Ca ressemble plus &#224; de l'artisanat qu'&#224; de l'industrie, dans le sens que l'on refait rarement deux fois la m&#234;me chose. Il n'y aura donc sur cette page que le principe de quelques attaques pr&#233;sent&#233;es de fa&#231;on (...)


-
&lt;a href="http://www.cryptosec.org/-Cryptographie-appliquee-.html" rel="directory"&gt;Cryptographie appliqu&#233;e&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;G&#233;n&#233;ralit&#233;s : &lt;/b&gt;&lt;br&gt;
Il est difficile de dresser un panorama de la cryptanalyse ou des attaques sur les logiciels. Ce sont des domaines tr&#232;s &#233;clectiques, qui bougent tr&#232;s rapidement. Chaque attaque est en g&#233;n&#233;ral tr&#232;s li&#233;e au sujet de l'attaque : l'algorithme, le protocole, le logiciel... Ca ressemble plus &#224; de l'artisanat qu'&#224; de l'industrie, dans le sens que l'on refait rarement deux fois la m&#234;me chose. Il n'y aura donc sur cette page que le principe de quelques attaques pr&#233;sent&#233;es de fa&#231;on succincte, pour donner une id&#233;e. &lt;br&gt;
Dans tous les cas on n'examine que les syst&#232;mes qui se conforment aux principes de Kerckhoff, qui stipulent que l'attaquant conna&#238;t tous les d&#233;tails de l'algorithme : ils peuvent &#234;tre consid&#233;r&#233;s comme des principes de base pour la conception d'algorithmes et de cryptosyst&#232;mes, le contraire de la s&#233;curit&#233; par l'obscurit&#233;.&lt;br&gt;
Le but est de trouver la cl&#233;, ce qui est parfois &#233;quivalent &#224; trouver le chiffr&#233;, mais souvent plus ambitieux.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Attaque ou l'on essaye de deviner le texte clair (en asym&#233;trique) :&lt;/b&gt;&lt;br&gt;
L'attaquant dispose d'un texte chiffr&#233; et choisit un texte clair. Il chiffre ce texte clair &#224; l'aide de la cl&#233; publique de la victime, dans le cas d'un algorithme &#224; cl&#233; publique. En comparant le r&#233;sultat avec le texte chiffr&#233; dont il dispose, il peut d&#233;terminer si sa supposition &#233;tait correcte.&lt;br&gt;
La victime de ce type d'attaque peut s'en pr&#233;munir en ajoutant aux donn&#233;es qu'il chiffre des bits al&#233;atoires. Ce proc&#233;d&#233; permet de se pr&#233;munir d'autres types d'attaques, comme celle exploitant le fait qu'un groupe d'utilisateurs partagent la m&#234;me valeur de e pour RSA par exemple.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cryptanalyse diff&#233;rentielle :&lt;/b&gt;&lt;br&gt;
Cette m&#233;thode r&#233;cente (1990) est une attaque &#224; texte clair choisi, initialement faite sur le DES. On choisit deux textes clairs avec des diff&#233;rences connues (l'op&#233;rateur &#233;tant le XOR), puis on analyse l'&#233;volution des diff&#233;rences entre les textes chiffr&#233;s avec une m&#234;me cl&#233; &#224; chaque ronde. En regardant les diff&#233;rences finales entre les paires de textes chiffr&#233;s on donne diverses probabilit&#233;s aux cl&#233;s test&#233;es. En affinant, on arrive &#224; la cl&#233; la plus probable.&lt;br&gt;
Cette attaque est d'autant plus efficace que le nombre de rondes est r&#233;duit (sur 8 au lieu de 16 pour le DES &#231;a marche pas mal).&lt;br&gt;
Evidemment, les d&#233;tails sont un peu plus compliqu&#233;s. Voir les bouquins pour plus de d&#233;tails. La NSA, avec une dizaine d'ann&#233;es d'avance sur la recherche publique, connaissait ce type d'attaque. DES, que la NSA &#224; contribu&#233; &#224; concevoir (notamment les tables-S) avait notamment &#233;t&#233; prot&#233;g&#233; contre cette attaque.&lt;br&gt;
Il est &#224; noter que cette attaque n&#233;cessite un nombre impressionnant de couples clairs/chiffr&#233;s... ce qui la rend infaisable dans la plupart des cas r&#233;els.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cryptanalyse lin&#233;aire :&lt;/b&gt;&lt;br&gt;
Je n'ai pas regard&#233; le sujet d'assez pr&#232;s. Ce qu'en dit Schneier c'est qu'elle &quot;utilise des approximations lin&#233;aires pour d&#233;crire l'action d'un algorithme de chiffrement par blocs&quot;. La conception du DES ne le prot&#232;ge pas particuli&#232;rement contre cette attaque, encore plus r&#233;cente que la diff&#233;rentielle.&lt;br&gt;
Le nombre de textes clairs connus requis est faramineux, et rend aussi cette attaque malais&#233;e dans le r&#233;alit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Recherche exhaustive&lt;/b&gt;&lt;br&gt;
C'est la m&#233;thode la plus r&#233;pandue : on prend un couple clair/chiffr&#233;, et on essaye toutes les cl&#233;s jusqu'&#224; trouver la bonne.&lt;br&gt;
Pour un DES simple (cl&#233; de 56 bits), on trouvera en moyenne la bonne cl&#233; au bout de 2^55 essais.&lt;br&gt;
Cette attaque n'est efficace que dans le cas ou toutes les cl&#233;s sont &#233;quiprobables : dans le cas de la factorisation ou de l'exponentiation modulaire (RSA ou Diffie-Hellman), ce n'est certainement pas l'attaque la plus efficace, parce ce que tous les &#233;l&#233;ments de l'espace des cl&#233;s n'ont pas la m&#234;me probabilit&#233; d'&#234;tre des cl&#233;s.&lt;br&gt;
Trouver des couples clairs/chiffr&#233;s n'est pas si compliqu&#233; qu'il y parait : les ent&#234;tes des fichiers chiffr&#233;s, ou les premiers termes d'un protocole de communication sont souvent connus.&lt;br&gt;
Pour la taille des cl&#233;s et la recherche exhaustive, voir la FAQ de &lt;a href=&quot;http://www.di.ens.fr/~pornin/faq-cle.html&quot;&gt;Thomas Pornin&lt;/a&gt;.&lt;br&gt;
Pour la meilleure attaque contre le DES pour le moment, voir &lt;a href=&quot;http://www.eff.org/descracker&quot;&gt;http://www.eff.org/descracker&lt;/a&gt;(ils ont construit une machine d&#233;di&#233;e pour 250000 $ qui trouve une cl&#233; DES-56 en moins de 3 jours, et en 22 h 15 m accompagn&#233;e de 100000 PC sur internet...)&lt;br&gt;
Pour les meilleures attaques contre RSA (qui ne sont pas des recherches exhaustives...), voir &lt;a href=&quot;http://www.rsasecurity.com/rsalabs/challenges/factoring/faq.html&quot;&gt;http://www.rsasecurity.com/rsalabs/challenges/factoring/faq.html&lt;/a&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Attaques contre la conception des syst&#232;mes cryptographiques...&lt;/b&gt;&lt;br&gt;
Les algorithmes au coeur d'un syst&#232;me cryptographique peuvent &#234;tre s&#251;rs et bien con&#231;us, mais la fa&#231;on de les agencer et de s'en servir peut &#234;tre source de failles de s&#233;curit&#233;. Nombre de soci&#233;t&#233;s, dont la crypto et/ou la s&#233;curit&#233; n'est pas le m&#233;tier, ne se privent par exemple pas de r&#233;cup&#233;rer sur internet des sources libres d'algorithmes (fonctions de chiffrement par blocs, fonctions de chiffrement asym&#233;trique, fonctions de hachage...) et des les impl&#233;menter rapidement, sans v&#233;rifications, conform&#233;ment au business plan qui veut toujours que le produit aurait du sortir avant-hier...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Quelques points qui peuvent par exemple &#234;tre consid&#233;r&#233;s :&lt;/b&gt;&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le choix des algorithmes est-il judicieux ? (par exemple, prendre des algorithmes secrets ou faits &quot;maison&quot; prive de l'analyse de la communaut&#233; cryptographique, et l'algorithme contient peut-&#234;tre des faiblesses qui pourraient rapidement &#234;tre d&#233;tect&#233;es...)&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Les g&#233;n&#233;rateurs pseudo-al&#233;atoires sont-ils s&#251;rs et bien impl&#233;ment&#233;s ? (les prochaines g&#233;n&#233;rations de processeurs devraient en contenir des physiques)&lt;br&gt;&lt;/li&gt;
&lt;li&gt;Les cas particuliers sont-ils &#233;cart&#233;s ? (cl&#233;s faibles, protocoles initialis&#233;s &#224; &quot;algo = NULL&quot;... &#231;a arrive)&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Tous les tests n&#233;cessaires ont-ils &#233;t&#233; effectu&#233;s ? (conformit&#233; aux sp&#233;cifications, r&#233;sistance, comportement face &#224; des valeurs d'entr&#233;e originales...)&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Est-on s&#251;r que les valeurs al&#233;atoires ne sont jamais r&#233;utilis&#233;es ?&lt;/li&gt;&lt;br&gt;
&lt;li&gt;La gestion des cl&#233;s est-elle bien faite (non r&#233;utilis&#233;es, effac&#233;es de fa&#231;on s&#251;re...)&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Les tailles de cl&#233;s utilis&#233;es sont-elles conformes aux besoins de s&#233;curit&#233; et coh&#233;rentes (entre asym&#233;trique et sym&#233;trique par exemple) ?&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Les fichiers temporaires sont-ils toujours efficacement &quot;nettoy&#233;s&quot; en cas de chiffrement (par r&#233;&#233;criture multiple par exemple) ?&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Les protections par mot de passe sont-elles bonnes (imposition possible de r&#232;gles strictes, bonne impl&#233;mentation, activ&#233;e par d&#233;faut...)&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Comment r&#233;agit le syst&#232;me en cas de plantage de la machine au cours d'une op&#233;ration cryptographique ? Les erreurs sont-elles bien g&#233;r&#233;es ? (j'ai vu des logiciels qui laissaient des copies temporaires en clair sans en avertir l'utilisateur)&lt;br&gt;
&lt;li&gt;Les protocoles et formats (IPSec, SSL, S/MIME...) sont-ils correctement choisis, impl&#233;ment&#233;s et utilis&#233;s ?&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Les environnements sont-ils s&#251;rs et homog&#232;nes ? (&#224; quoi bon prot&#233;ger un site web par SSL sur le port 443 si le m&#234;me contenu est accessible sans trop de difficult&#233;s sur un autre port... ?)&lt;/li&gt;&lt;br&gt;
&lt;li&gt;Les interfaces graphiques ne pr&#233;sentent-elles pas des failles fonctionnelles (des erreurs de configuration que pourrait faire l'utilisateur par exemple) ?&lt;/li&gt;&lt;br&gt;
&lt;li&gt;...&lt;/li&gt;&lt;br&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Attaques contre les syst&#232;mes obscurs&lt;/b&gt;&lt;br&gt; La vanit&#233;, la peur de r&#233;v&#233;ler des secrets de conception, l'urgence ou l'ignorance pousse souvent des entreprises commerciales &#224; tenir leurs sources et sp&#233;cifications secr&#232;tes. Cela prive leurs algorithmes de l'analyse de la communaut&#233; cryptographique... et entra&#238;ne parfois de grosses b&#233;vues. Parmi les meilleurs exemples de cette calamiteuse &quot;s&#233;curit&#233; par l'obscurit&#233;&quot; sont les algorithmes de chiffrement des &lt;a href=&quot;http://cryptome.org/cryptout.htm&quot;&gt;GSM (A5/1) et celui des DVD (DeCSS DVD)&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>IPSec</title>
		<link>http://www.cryptosec.org/IPSec.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/IPSec.html</guid>
		<dc:date>2002-04-04T22:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html">Quelques utilisations des cl&#233;s et certificats</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;C'est un protocole d&#233;velopp&#233; par l'IETF qui a pour but de s&#233;curiser TCP/IP, de fa&#231;on standardis&#233;e et donc int&#233;rop&#233;rable (c'est du moins un des buts du standard). Par l'authentification et le chiffrement des paquets IP, IPSec permet de s&#233;curiser toute transmission de donn&#233;es reposant sur TCP/IP (contrairement &#224; SSL, il n'est pas n&#233;cessaire de lancer des processus particuliers, sur des ports particuliers... https sur 443 et ftps 990 par exemple, correspondant aux couches (...)


-
&lt;a href="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html" rel="directory"&gt;Quelques utilisations des cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;G&#233;n&#233;ralit&#233;s :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;C'est un protocole d&#233;velopp&#233; par l'IETF qui a pour but de s&#233;curiser TCP/IP, de fa&#231;on standardis&#233;e et donc int&#233;rop&#233;rable (c'est du moins un des buts du standard). Par l'authentification et le chiffrement des paquets IP, IPSec permet de s&#233;curiser toute transmission de donn&#233;es reposant sur TCP/IP (contrairement &#224; SSL, il n'est pas n&#233;cessaire de lancer des processus particuliers, sur des ports particuliers... https sur 443 et ftps 990 par exemple, correspondant aux couches sup&#233;rieures).
&lt;br&gt;IPSec est un protocole particuli&#232;rement complexe.&lt;br&gt;
&lt;br&gt;Les principales impl&#233;mentations d'IPSec se retrouvent dans les logiciels et mat&#233;riels de VPN (Virtual Private Network).
&lt;br&gt;De plus en plus de logiciels et d'OS commencent cependant &#224; impl&#233;menter IPSec comme fonctionnalit&#233; de base. La prochaine version d'IP, IPv6, inclura les m&#233;canismes IPSec. Malgr&#233; sa complexit&#233;, IPSec semble pour l'instant amen&#233; &#224; s'imposer pour ce qui rel&#232;ve de la s&#233;curit&#233; r&#233;seau bas niveau (confidentialit&#233;, authentification, int&#233;grit&#233;, filtrage...).
&lt;br&gt;Il y a deux types de transformations qui constituent les &#233;l&#233;ments fondamentaux d'IPSec :
&lt;br&gt;le Authentication header (AH) et l'ESP (Encapsulating Security Payload).
&lt;br&gt;Ces transformations structurent les donn&#233;es IP s&#233;curis&#233;es en une Security Association (SA).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Authentification Header (AH) :&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Cette transformation authentifie, prot&#232;ge en int&#233;grit&#233; les datagrammes IP (y compris les champs des ent&#234;tes qui ne varient pas lors de la transmission) et assure une protection &quot; anti-replay &quot; (chaque paquet est num&#233;rot&#233; par le champ &quot; Sequence Number &quot; de l'ent&#234;te AH), et les paquets rejou&#233;s ne sont pas pris en compte). Elle n'apporte cependant pas de confidentialit&#233;.
&lt;br&gt;Cot&#233; exp&#233;diteur, cette transformation consiste en un MAC qui est calcul&#233; sur l'ensemble du datagramme, et dont le r&#233;sultat est ensuite joint au datagramme.
&lt;br&gt;Cot&#233; destinataire, il suffira de recalculer le MAC afin de v&#233;rifier l'authenticit&#233; et l'int&#233;grit&#233; des donn&#233;es.
&lt;br&gt;Les transformations AH peuvent se faire en mode transport ou en mode tunnel, et ob&#233;issent aux sp&#233;cifications d&#233;finies dans les Security Association.
&lt;br&gt;En mode transport, l'ent&#234;te originale du paquet IP sera celle du paquet s&#233;curis&#233; :&lt;/p&gt;
&lt;center&gt;
&lt;br&gt;&lt;img SRC=&quot;http://www.cryptosec.org/local/cache-vignettes/L475xH190/transport-48ea8.gif&quot;/ width='475' height='190' style='height:190px;width:475px;' class='' &gt;
&lt;/center&gt;
&lt;br&gt;
&lt;p class=&quot;spip&quot;&gt;En mode tunnel, une nouvelle ent&#234;te IP est cr&#233;&#233;e pour chaque paquet s&#233;curis&#233;. C'est ce mode qui est typiquement utilis&#233; dans les logiciels ou bo&#238;tiers VPN pour connecter deux r&#233;seaux par exemple.&lt;/p&gt;
&lt;center&gt;
&lt;br&gt;&lt;img SRC=&quot;http://www.cryptosec.org/images/tunnel.gif&quot;/ width='520' height='182' style='height:182px;width:520px;' class='' &gt;
&lt;/center&gt;
&lt;br&gt;&lt;b&gt;&lt;u&gt;Encapsulating Security Payload (ESP) :&lt;/b&gt;&lt;/u&gt;
&lt;p class=&quot;spip&quot;&gt;La transformation ESP permet d'assurer la confidentialit&#233;, l'authentification et l'int&#233;grit&#233; des datagrammes IP en les chiffrant conform&#233;ment &#224; ce qui est d&#233;fini par les Security Association. ESP assure aussi une protection contre le rejeu des paquets, gr&#226;ce au champ &quot; Sequence Number &quot; de l'ent&#234;te ESP.
&lt;br&gt;Les transformations ESP chiffrent des portions des datagrammes, peuvent encapsuler ces portions dans d'autres datagrammes IP et peuvent effectuer des contr&#244;les d'int&#233;grit&#233; via un Integrity Check Value (ICV).
&lt;br&gt;Tout comme AH, l'ESP peut se d&#233;cliner en mode transport. L'ent&#234;te IP du datagramme original est conserv&#233; et les autres champs sont s&#233;curis&#233;s et pr&#233;c&#233;d&#233;s d'une ent&#234;te ESP :
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;center&gt;&lt;img SRC=&quot;http://www.cryptosec.org/images/transportesp.gif&quot;/ width='520' height='193' style='height:193px;width:520px;' class='' &gt;&lt;/center&gt;
&lt;br&gt;En mode tunnel, une nouvelle ent&#234;te IP est g&#233;n&#233;r&#233;e, pr&#233;c&#233;dent le datagramme s&#233;curis&#233;, et ne contenant aucune option IP, m&#234;me si l'ent&#234;te initiale en contenait.
Ce mode est typiquement utilis&#233; pour les communications d'h&#244;te &#224; h&#244;te (gateway-to-gateway), o&#249; il permet de masquer les adresses IP des exp&#233;diteurs et destinataires originaux :
&lt;center&gt;
&lt;br&gt;&lt;img SRC=&quot;http://www.cryptosec.org/images/tunnelesp.gif&quot;/ width='520' height='178' style='height:178px;width:520px;' class='' &gt;
&lt;/center&gt;
&lt;br&gt;&lt;b&gt;&lt;u&gt;Security Association (SA) :&lt;/b&gt;&lt;/u&gt;
&lt;br&gt;Une Security Association d&#233;finit quelles sont les transformations IPSec qui devront &#234;tre appliqu&#233;es aux datagrammes, et comment elles devront &#234;tre faites.
&lt;br&gt;Une SA sp&#233;cifie :
&lt;blockquote&gt;
&lt;li&gt;
s'il s'agit d'une protection AH ou ESP&lt;/li&gt;
&lt;li&gt;
l'algorithme d'authentification pour AH et ESP&lt;/li&gt;
&lt;li&gt;
l'algorithme de chiffrement pour ESP&lt;/li&gt;
&lt;li&gt;
les cl&#233;s d'authentification et de chiffrement&lt;/li&gt;
&lt;li&gt;
la dur&#233;e de vie des cl&#233;s de chiffrement&lt;/li&gt;
&lt;li&gt;
la dur&#233;e de vie de la SA&lt;/li&gt;
&lt;li&gt;
l'authentification des parties&lt;/li&gt;
&lt;li&gt;
la p&#233;riode de modification des cl&#233;s&lt;/li&gt;
&lt;li&gt;
la s&#233;quence des nombres anti-rejeu et la table des bits associ&#233;e.&lt;/li&gt;
&lt;/blockquote&gt;
La taille et le contenu d'une SA sont sp&#233;cifi&#233;es par les transformations. Une SA peut-&#234;tre statique ou dynamique. Dans le premier cas elle ne contient que des donn&#233;es qui ne sont pas modifi&#233;es pas la transformation. Dans le second cas, les donn&#233;es peuvent &#234;tre mises &#224; jour par la transformation chaque fois qu'un datagramme est utilis&#233;, comme par exemple dans la protection contre le rejeu par le num&#233;rotage des paquets ou les fonctionnalit&#233;s de compression.
&lt;p class=&quot;spip&quot;&gt;Lors de la n&#233;gociation d'une SA, un nombre de 32 bits appel&#233; Security Parameters Index (SPI) est attribu&#233; pour la d&#233;signer. Pour d&#233;signer une SA lors des transformations AH ou ESP on utilisera un SPI.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Un exemple typique d'une SA peut &#234;tre :&lt;/p&gt;
&lt;blockquote&gt;SPI : 314159
&lt;br&gt;Encryption algorithm : IDEA
&lt;br&gt;HMAC algorithm : SHA1
&lt;br&gt;Encryption key : 0x56d6eed...
&lt;br&gt;HMAC key : 0xdd36fdd6...
&lt;br&gt;Expiry : 22:22:22 17Aug2000
&lt;center&gt; &lt;p class=&quot;spip&quot;&gt;&lt;img SRC=&quot;http://www.cryptosec.org/local/cache-vignettes/L275xH203/spi-31174.gif&quot;/ width='275' height='203' style='height:203px;width:275px;' class='' &gt;&lt;/p&gt;
&lt;/center&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Algorithmes utilis&#233;s :&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour le chiffrement, les algorithmes valides pour une n&#233;gociation sont :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
DES CBC&lt;/li&gt;
&lt;li&gt;
Triple DES&lt;/li&gt;
&lt;li&gt;
RC 5&lt;/li&gt;
&lt;li&gt;
IDEA&lt;/li&gt;
&lt;li&gt;
Blowfish&lt;/li&gt;
&lt;li&gt;
CAST&lt;/li&gt;
&lt;li&gt;
NULL (la possibilit&#233; de ne sp&#233;cifier aucun chiffrement peut parfois &#234;tre utile)&lt;/li&gt;
&lt;/ul&gt;
Pour l'authentification et l'int&#233;grit&#233;, les algorithmes possibles sont :
&lt;ul&gt;
&lt;li&gt;
HMAC-MD5&lt;/li&gt;
&lt;li&gt;
HMAC-SHA-1&lt;/li&gt;
&lt;li&gt;
HMAC-RIPEMD-160&lt;/li&gt;
&lt;li&gt;
HMAC-DES&lt;/li&gt;
&lt;li&gt;
Keyed MD5&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;/b&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;ISAKMP/Oaklay :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Avant qu'une communication s&#233;curis&#233;e puisse s'&#233;tablir, il est n&#233;cessaire que les parties en pr&#233;sence en n&#233;gocient les termes, qui seront d&#233;finis dans la Security Association (SA). Le protocole utilis&#233; pour n&#233;gocier (&#233;tablir, n&#233;gocier, modifier et effacer) les SA est Internet Key Exchange (IKE).
&lt;br&gt;IKE combine le Internet Security Association et le Key Management Protocol (ISAKMP) avec l'&#233;change de cl&#233;s Oaklay utilisant Diffie-Hellman.
&lt;br&gt;ISAKMP est un ensemble de r&#232;gles pour &#233;tablir, n&#233;gocier, modifier et effacer les param&#232;tres sp&#233;cifiques &#224; une connexion (la SA, qui n'est en principe pas limit&#233; &#224; IPSec mais c'est pour l'instant son seul domaine d'application).
&lt;br&gt;Oaklay est une application de ISAKMP pour la g&#233;n&#233;ration des cl&#233;s et des SA IPSec.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Les modes ISAKMP/Oaklay :&lt;/u&gt;&lt;/b&gt;
&lt;br&gt;IKE se d&#233;roule en deux phases.
&lt;br&gt;Le but de la premi&#232;re phase est d'&#233;tablir un canal s&#251;r et authentifi&#233; entre les parties qui s'appr&#234;tent &#224; n&#233;gocier. Elle &#233;tablit une SA pour ISAKMP.
&lt;br&gt;La phase deux est utilis&#233;e pour &#233;tablir une SA pour IPSec.
&lt;br&gt;Elle est effectu&#233;e plus rapidement apr&#232;s que la premi&#232;re phase ait &#233;t&#233; faite, ce qui compense le d&#233;savantage d'avoir &#224; effectuer deux phases.
&lt;br&gt;Lors de la premi&#232;re phase, pour &#233;tablir la SA, il y a deux modes possibles : le mode G&#233;n&#233;ral et le mode Agressif.
&lt;br&gt;Ces deux modes font la m&#234;me chose, le mode Agressif est plus rapide mais ne prot&#232;ge pas l'identit&#233; des parties qui n&#233;gocient.
&lt;br&gt;Le mode rapide est utilis&#233; pour &#233;tablir la SA de la deuxi&#232;me phase, et est plus rapide apr&#232;s que la n&#233;gociation de la phase un ait &#233;t&#233; faite.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Mode g&#233;n&#233;ral ISAKMP/Oaklay :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Dans le mode g&#233;n&#233;ral, les parties en pr&#233;sence utilisent les deux premiers messages pour n&#233;gocier la politique de s&#233;curit&#233; qui s'appliquera &#224; l'&#233;change. Les deux messages suivants &#233;tablissent une cl&#233; Diffie-Hellman et &#233;changent des valeurs al&#233;atoires qui serviront &#224; signer et s'authentifier. Les deux derniers messages servent &#224; authentifier les parties gr&#226;ce &#224; des signatures, des condens&#226;ts et &#233;ventuellement par transmission de certificats.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Mode agressif ISAKMP/Oaklay :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;En gros, ce mode ressemble beaucoup au pr&#233;c&#233;dent sauf qu'il y a moins d'&#233;changes. La politique propos&#233;e, les donn&#233;es pass&#233;es pour l'&#233;change de cl&#233; et la valeur al&#233;atoire sont pass&#233;es lors du premier message. Le deuxi&#232;me message est la r&#233;ponse qui authentifie le r&#233;pondeur, conclut la politique et l'&#233;change de cl&#233;. Le dernier message authentifie l'initiateur de l'&#233;change.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Mode rapide ISAKMP/Oaklay :&lt;/b&gt;&lt;/u&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Le mode rapide est utilis&#233; pour n&#233;gocier les services de s&#233;curit&#233; IPSec et g&#233;n&#233;rer de nouvelles cl&#233;s. Un nouvel &#233;change de cl&#233;s Diffie-Hellman peut &#234;tre r&#233;alis&#233;, mais ce n'est pas obligatoire. Sinon, les parties g&#233;n&#232;rent simplement de nouvelles cl&#233;s &#224; l'aide de condensats et s'identifient mutuellement &#224; l'aide de valeurs al&#233;atoires&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Les RFC : &lt;/b&gt;&lt;/u&gt;c'est parfois abscons mais (presque) tout y est sp&#233;cifi&#233;...
&lt;br&gt;
&lt;br&gt;RFC 2401 : Security Architecture for the Internet
&lt;br&gt;RFC 2402 : IP Authentication Header
&lt;br&gt;RFC 2403 : The Use of HMAC-MD5-96 within ESP and AH
&lt;br&gt;RFC 2404 : The Use of HMAC-SHA-1-96 within ESP and AH
&lt;br&gt;RFC 2405 : The ESP DES-CBC Cipher Algorithm
&lt;br&gt;RFC 2406 : IP Encapsulating Security Payload (ESP)
&lt;br&gt;RFC 2407 : The Internet IP Security Domain of Interpretation for ISAKMP
&lt;br&gt;RFC 2408 : Internet Security Association and Key Management Protocol (ISAKMP)
&lt;br&gt;RFC 2409 : The Internet Key Exchange (IKE)
&lt;br&gt;RFC 2410 : The NULL Encryption Algorithm and Its Use With IPsec
&lt;br&gt;RFC 2411 : IP Security
&lt;br&gt;RFC 2412 : The OAKLEY Key Determination Protocol&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>SSL-TLS</title>
		<link>http://www.cryptosec.org/SSL-TLS.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/SSL-TLS.html</guid>
		<dc:date>2002-04-03T09:56:44Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html">Quelques utilisations des cl&#233;s et certificats</category>


		<description>G&#233;n&#233;ralit&#233;s : &lt;br /&gt;SSL (Secure Socket Layer) est un protocole &#224; n&#233;gociation (on parle du &quot; handshake &quot; SSL), d&#233;velopp&#233; &#224; l'origine par Netscape. &lt;br /&gt;Il a pour but de s&#233;curiser les transactions Internet, par authentification du client (un navigateur la plupart du temps) et du serveur, et par chiffrement de la session. &lt;br /&gt;La s&#233;curisation des connexions &#224; l'aide du protocole SSL doit assurer que : &lt;br /&gt;La connexion assure la confidentialit&#233; des donn&#233;es transmises &lt;br /&gt;La connexion assure que les donn&#233;es (...)


-
&lt;a href="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html" rel="directory"&gt;Quelques utilisations des cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;G&#233;n&#233;ralit&#233;s :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;SSL (Secure Socket Layer) est un protocole &#224; n&#233;gociation (on parle du &quot; handshake &quot; SSL), d&#233;velopp&#233; &#224; l'origine par Netscape.
&lt;br&gt;Il a pour but de s&#233;curiser les transactions Internet, par authentification du client (un navigateur la plupart du temps) et du serveur, et par chiffrement de la session.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La s&#233;curisation des connexions &#224; l'aide du protocole SSL doit assurer que :
&lt;br&gt;- La connexion assure la confidentialit&#233; des donn&#233;es transmises
&lt;br&gt;- La connexion assure que les donn&#233;es transmises sont int&#232;gres
&lt;br&gt;- L'identit&#233; des correspondants peut &#234;tre authentifi&#233;e
&lt;br&gt;- La connexion est fiable&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La version 2.0 vient de Netscape et la version 3.0, qui est actuellement la plus r&#233;pandue, &#224; re&#231;u les contributions de la communaut&#233; internationale.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;TLS (Transport Layer Security protocol), d&#233;velopp&#233; par &lt;a href=&quot;http://www.ietf.org&quot;&gt;l'IETF&lt;/a&gt;, est la version 3.1 de SSL.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;SSL ne d&#233;pend pas des applications utilis&#233;es lors des transactions et s'applique sous les protocoles HTTP, FTP, Telnet... etc.
&lt;br&gt;Clients et serveurs commencent par s'authentifier mutuellement, puis n&#233;gocient une cl&#233; sym&#233;trique de session qui servira &#224; assurer la confidentialit&#233; des transactions. L'int&#233;grit&#233; de ces derni&#232;res est assur&#233;e par l'application de HMAC (Hashed Message Authentification Code).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Principe :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Les cl&#233;s asym&#233;triques utilis&#233;es lors des transactions SSL sont encapsul&#233;es dans des certificats X.509 version 3, g&#233;n&#233;r&#233;s par bon nombre d'autorit&#233;s de certification ou de PKI.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;On distingue deux phases lors du d&#233;roulement du handshake SSL :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Authentification du serveur et authentification optionnelle du client&lt;/b&gt;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Premi&#232;re phase :&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;Suite &#224; la requ&#234;te d'un client, le serveur envoie au client son certificat et lui liste les algorithmes qu'il souhaite utiliser. Le client v&#233;rifie la validit&#233; du certificat (&#224; l'aide del&#224; cl&#233; publique de l'AC contenue dans son navigateur, des dates de validit&#233; et, &#233;ventuellement, en consultant une CRL (rarement dans la pratique)), puis, si le certificat est valide, g&#233;n&#232;re une cl&#233; ma&#238;tre (sym&#233;trique), la chiffre &#224; l'aide de la cl&#233; publique du serveur et la lui envoie. Les donn&#233;es &#233;chang&#233;es par la suite entre le client et le serveur sont chiffr&#233;es et authentifi&#233;es &#224; l'aide de cl&#233;s d&#233;riv&#233;es de la cl&#233; ma&#238;tre.&lt;/blockquote&gt;
&lt;b&gt;Deuxi&#232;me phase, optionnelle (et souvent non utilis&#233;e) :&lt;/b&gt;
&lt;blockquote&gt;Le serveur envoie au client un challenge (une petite s&#233;rie de bits) que le client doit signer, &#224; l'aide de sa cl&#233; priv&#233;e correspondant &#224; son certificat, et le renvoyer au serveur pour s'authentifier. Il lui envoie de m&#234;me son certificat, que le serveur v&#233;rifiera avant de poursuivre les transactions.&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Les d&#233;tails du protocole SSL :&lt;/b&gt;&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;
Une &lt;b&gt;session SSL&lt;/b&gt; est d&#233;finie par les param&#232;tres suivants partag&#233;s entre un client et un serveur :&lt;/p&gt;
&lt;blockquote&gt;
&lt;b&gt;Session identifier :&lt;/b&gt; un octet fix&#233; par le serveur pour identifier la session
&lt;br&gt;
&lt;b&gt;Peer certificat :&lt;/b&gt; un certificat pour le serveur, &#233;ventuellement un autre pour le client
&lt;br&gt;
&lt;b&gt;Cipher Spec :&lt;/b&gt; d&#233;finit l'algorithme de chiffrement sym&#233;trique et l'algorithme de condensation
&lt;br&gt;
&lt;b&gt;Master secret :&lt;/b&gt; cl&#233; de 48 octets n&#233;goci&#233;e entre le serveur et le client
&lt;br&gt;
&lt;b&gt;Compression method&lt;/b&gt; : NULL pour l'instant (en SSLv3 ou TLS)
&lt;br&gt;
&lt;b&gt;Is resumable :&lt;/b&gt; flag qui indique si de nouvelles connexions peuvent &#234;tre cr&#233;&#233;es &#224; partir de cette session
&lt;/blockquote&gt;
Une &lt;b&gt;connexion SSL&lt;/b&gt; est d&#233;finie par les param&#232;tres suivants partag&#233;s entre un client et un serveur :
&lt;blockquote&gt;
&lt;b&gt;Server and client random :&lt;/b&gt; des octets al&#233;atoires d&#233;termin&#233;s par le client et le serveur pour chaque connexion
&lt;br&gt;
&lt;b&gt;Server write (send) MAC secret :&lt;/b&gt; cl&#233; secr&#232;te utilis&#233;e par le serveur pour faire les MAC
&lt;br&gt;
&lt;b&gt;Client write (send) MAC secret :&lt;/b&gt; cl&#233; secr&#232;te utilis&#233;e par le client pour faire les MAC
&lt;br&gt;
&lt;b&gt;Server write (send) key :&lt;/b&gt; cl&#233; sym&#233;trique utilis&#233;e par le serveur pour chiffrer les donn&#233;es
&lt;br&gt;
&lt;b&gt;Client write (send) key :&lt;/b&gt; cl&#233; sym&#233;trique utilis&#233;e par le client pour chiffrer les donn&#233;es
&lt;br&gt;&lt;b&gt;Initialization vectors&lt;/b&gt; : pour un algorithme de chiffrement par bloc en mode CBC. Le premier est fix&#233; lors du handshake, les suivants sont les derniers blocs des pr&#233;c&#233;dents fragments chiffr&#233;s
&lt;br&gt;
&lt;b&gt;Sequence number&lt;/b&gt; : chaque message est num&#233;rot&#233; de part et d'autre
&lt;/blockquote&gt;
&lt;br&gt;
&lt;br&gt;Le protocole SSL est constitu&#233; des sous-protocoles :
&lt;blockquote&gt;&lt;b&gt;Le protocole SSL handshake&lt;/b&gt;
&lt;br&gt;&lt;b&gt;Le protocole SSL Change Cipher Spec&lt;/b&gt; (voir la fin du Handshake... c'est le plus court protocole que j'ai rencontr&#233; jusqu'&#224; pr&#233;sent... 1 octet !)
&lt;br&gt;&lt;b&gt;Le protocole SSL Alert&lt;/b&gt;
&lt;br&gt;&lt;b&gt;Le protocole SSL Record&lt;/b&gt;
&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Le protocole SSL handshake&lt;/b&gt;&lt;/u&gt;
&lt;br&gt;Ce protocole permet au client et au serveur de s'authentifier mutuellement, de n&#233;gocier les algorithmes de chiffrement, de n&#233;gocier les algorithmes de MAC et enfin de n&#233;gocier les cl&#233;s sym&#233;triques qui vont servir au chiffrement.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Chaque message &#233;chang&#233; entre le client et le serveur contient trois champs :
&lt;br&gt;&lt;b&gt;Type&lt;/b&gt;, indique l'objet du message (1 octet)
&lt;br&gt;&lt;b&gt;Lenght&lt;/b&gt;, indique la longueur du message (3 octets)
&lt;br&gt;&lt;b&gt;Content&lt;/b&gt;, contient les donn&#233;es transmises (plus d'un octet)
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cryptosec.org/images/sslhand.gif&quot;/ width='520' height='627' style='height:627px;width:520px;' class='' &gt;
&lt;/center&gt;
&lt;br&gt;
&lt;b&gt;Phase 1 : Etablissement des param&#232;tres de s&#233;curit&#233;&lt;/b&gt;
&lt;br&gt;
Cette phase &#224; pour but d'&#233;tablir le lien s&#233;curis&#233;. Les param&#232;tres du premier message, client_hello, envoy&#233; par le client, sont :
&lt;blockquote&gt;
&lt;b&gt;Version :&lt;/b&gt; la plus haute version de SSL que puisse utiliser le client.
&lt;br&gt;
&lt;br&gt;&lt;b&gt;Random :&lt;/b&gt; un horodatage de 32 bits et une valeur al&#233;atoire de 28 octets g&#233;n&#233;r&#233;e par le client. Ces valeurs servent de sel et sont utilis&#233;es pour se pr&#233;munir contre les rejeux de paquets.
&lt;br&gt;
&lt;br&gt;&lt;b&gt;Session ID :&lt;/b&gt; Un nombre, qui identifie la connexion. Un z&#233;ro signifie la volont&#233; du client d'&#233;tablir une nouvelle connexion sur une nouvelle session. Un autre nombre signifie la volont&#233; de changer les param&#232;tres ou de cr&#233;er une nouvelle connexion sur la session existante.
&lt;br&gt;
&lt;br&gt;&lt;b&gt;CipherSuite :&lt;/b&gt; Une liste, par ordre d&#233;croissant de pr&#233;f&#233;rence, des algorithmes que supporte le client. Il s'agit des algorithmes d'&#233;change de cl&#233; et de chiffrement.
&lt;blockquote&gt;&lt;u&gt;Key Exchange :&lt;/u&gt;
&lt;blockquote&gt;&lt;u&gt;RSA&lt;/u&gt; (cl&#233; sym&#233;trique chiffr&#233;e avec cl&#233; RSA contenue dans un certificat)
&lt;br&gt;&lt;u&gt;Diffie-Hellman&lt;/u&gt; (si le certificat serveur contient des param&#232;tres D-H (Diffie-Hellman). Le client n'est pas oblig&#233; de pr&#233;senter un certificat si l'authentification du client n'est pas demand&#233;e par le serveur)
&lt;br&gt;&lt;u&gt;Diffie-Hellman temporaire&lt;/u&gt; (Une cl&#233; sym&#233;trique D-H est n&#233;goci&#233;e, les transactions &#233;tant sign&#233;es par des cl&#233;s RSA ou DSS certifi&#233;es par une AC. C'est la plus s&#251;re des m&#233;thodes parce que la cl&#233; g&#233;n&#233;r&#233;e est unique et authentifi&#233;e)
&lt;br&gt;&lt;u&gt;Diffie-Hellman anonyme&lt;/u&gt; (Un simple &#233;change D-H est effectu&#233;, sans authentification des partenaires. Vuln&#233;rable &#224; &quot;l'attaque du milieu&quot;)
&lt;br&gt;&lt;u&gt;Fortezza&lt;/u&gt;&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;u&gt;CipherSpec :&lt;/u&gt;&lt;/p&gt; &lt;blockquote&gt;
&lt;u&gt;Cipher Algorithm :&lt;/u&gt; DES-40 ; DES, 3-DES, RC2, RC4, IDEA, Fortezza
&lt;br&gt;&lt;u&gt;MACAlgorithm :&lt;/u&gt; MD5 ou SHA-1
&lt;br&gt;&lt;u&gt;CipherType :&lt;/u&gt; Stream ou Block
&lt;br&gt;&lt;u&gt;IsExportable :&lt;/u&gt; True ou False
&lt;br&gt;&lt;u&gt;HashSize :&lt;/u&gt; 0, 16 (MD5) ou 20 octets (SHA-1)
&lt;br&gt;&lt;u&gt;Key Material :&lt;/u&gt; des octets contenant une partie des donn&#233;es utilis&#233;es pour g&#233;n&#233;rer les cl&#233;s.
&lt;br&gt;&lt;u&gt;IV Size :&lt;/u&gt; Taille des Vecteurs d'Initialisation pour le chiffrement en mode CBC.
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Compression Method :&lt;/b&gt; liste, par ordre d&#233;croissant de pr&#233;f&#233;rence, des algorithmes de compression support&#233;s par le client.
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;/blockquote&gt;
Apr&#232;s avoir envoy&#233; ces requ&#234;tes, le client attend que le serveur r&#233;ponde en g&#233;n&#233;rant une valeur al&#233;atoire, en indiquant la version, et les meilleurs algorithmes qu'il peut utiliser : ce sera la r&#233;ponse server_hello du serveur.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Phase 2 : Authentification du serveur et &#233;change des cl&#233;s&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Lors de cette phase, le serveur commence par envoyer son certificat. Ce message peut contenir une cha&#238;ne de certificats X.509. L'&#233;change de cl&#233;s entre serveur et client n'est possible sans que le serveur n'envoie son certificat que dans le cas d'un Diffie-Hellman anonyme ; dans tous les autres cas, le serveur pr&#233;sente son certificat.
&lt;br&gt;
Le serveur envoie un message server_key_exchange si le client et le serveur veulent utiliser du D-H anonyme (un nombre premier, un nombre qui lui est relativement premier et la cl&#233; publique D-H du serveur), du D-H temporaire (les param&#232;tres D-H et une signature), du RSA key exchange (ou le serveur n'a qu'une cl&#233; RSA pour signer et veut &#233;tablir une cl&#233; RSA temporaire) ou Fortezza. Les signatures sont effectu&#233;es en utilisant les fonctions de condensation, comprennent les sels initiaux et sont chiffr&#233;es gr&#226;ce aux cl&#233;s priv&#233;es (ceci assure que le serveur d&#233;tient la cl&#233; priv&#233;e associ&#233;e &#224; la cl&#233; publique que contient le certificat).
&lt;br&gt;
Ensuite, le serveur peut demander au client un certificat : c'est le message certificate_request (rarement impl&#233;ment&#233; dans la r&#233;alit&#233;), qui comprend les champs certificate_type (algorithme public utilis&#233;) et certificate_authorities (liste des AC valides).
&lt;br&gt;
Finalement, le serveur envoie le message server_done, qui signifie la fin de cette phase et que le serveur se met en attente.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Phase 3 : Authentification du client et &#233;change des cl&#233;s&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Le client doit v&#233;rifier que le certificat envoy&#233; par le serveur est valide (c'est souvent l&#224; que le syst&#232;me est bancal), et que les autres param&#232;tres sont corrects. Si le serveur &#224; demand&#233; au client d'envoyer un certificat, le client envoie un message certificate, contenant le certificat (s'il n'a pas de certificat, il envoie un message no_certificate).
&lt;br&gt;
Le client envoie ensuite un message client_key_exchange, qui d&#233;pend de l'algorithme choisi :
&lt;br&gt;
&lt;blockquote&gt;
&lt;u&gt;RSA&lt;/u&gt; : le client g&#233;n&#232;re une cl&#233; secr&#232;te de 48 octets qui servira &#224; g&#233;n&#233;rer la d&#233;finitive, et la chiffre avec la cl&#233; publique du serveur.
&lt;br&gt;
&lt;u&gt;D-H anonyme ou temporaire&lt;/u&gt; : ce sont les param&#232;tres D-H du client qui sont envoy&#233;s.
&lt;br&gt;&lt;u&gt;Diffie-Hellman&lt;/u&gt; : Dans ce cas les param&#232;tres D-H ont &#233;t&#233; envoy&#233;s avec le certificat, et ce message est donc vide
&lt;br&gt;&lt;u&gt; Fortezza&lt;/u&gt; : les param&#232;tres Fortezza...
&lt;/blockquote&gt;
Pour finir cette phase, le client envoie un message certificate_verify (sauf si le certificat ne contient que des param&#232;tres D-H, i.e. certificat qui ne peut servir &#224; signer). Ce message consiste en un condens&#226;t des messages &#233;chang&#233;s pendant le handshake, de la cl&#233; sym&#233;trique g&#233;n&#233;r&#233;e et des pad, le tout sign&#233; avec la cl&#233; priv&#233;e du client. Le but de ce message est de s'assurer que le client est bien en possession de la cl&#233; priv&#233;e correspondant &#224; la cl&#233; publique envoy&#233;e dans le certificat (c'est bien beau de pr&#233;senter un certificat... si on ne prouve pas que l'on poss&#232;de la cl&#233; priv&#233;e correspondante). &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Phase 4 : Fin&lt;/b&gt;
&lt;br&gt;
&lt;br&gt;
Le client envoie le message (1 octet) change_cypher_spec, qui est en fait l'unique message du protocole Change Cipher Spec, et active pour la session courante les algorithmes, cl&#233;s et sels du handshake. Puis le client envoie le message finished, qui authentifie le client et valide l'&#233;change de cl&#233; (le message est constitu&#233; d'un condens&#226;t de la cl&#233; sym&#233;trique &#233;chang&#233;e, de l'ensemble des messages &#233;chang&#233;es durant le handshake, du pad et d'un identificateur de l'exp&#233;diteur).
&lt;br&gt;
Le serveur r&#233;pond en envoyant son propre change_cypher_spec et clos le handshake.
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;u&gt;Le protocole SSL Alert&lt;/b&gt;&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;
Ce protocole sp&#233;cifie les messages d'erreur que peuvent s'envoyer clients et serveurs. Les messages sont compos&#233;s de deux octets, le premier est soit &quot;warning&quot; soit &quot;fatal&quot;. Si le niveau est &quot;fatal&quot;, la connexion est abandonn&#233;e. Les autres connexions sur la m&#234;me session ne sont pas coup&#233;es mais on ne peut pas en &#233;tablir de nouvelles.
&lt;br&gt;
Le deuxi&#232;me octet donne le code d'erreur.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Les erreurs fatales sont :&lt;/b&gt;
&lt;br&gt;unexpected_message : message non reconnu
&lt;br&gt;bad_record_mac : MAC non correct
&lt;br&gt;decompression_failure : la fonction de d&#233;compression &#224; re&#231;u une mauvaise entr&#233;e
&lt;br&gt;handshake_failure : impossible de n&#233;gocier les bons param&#232;tres
&lt;br&gt;illegal_parameter : un champ &#233;tait mal format&#233; ou ne correspondait &#224; rien&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Les warnings sont :&lt;/b&gt;
&lt;br&gt;close_notify : annonce la fin d'une connexion
&lt;br&gt;no_certificate : r&#233;ponse &#224; une demande de certificat s'il n'y en a pas.
&lt;br&gt;bad_certificate : le certificat re&#231;u n'est pas bon (e.g. signature non valide)
&lt;br&gt;unsupported_certificate : le certificat re&#231;u n'est pas reconnu... vive la compatibilit&#233; !)
&lt;br&gt;certificate_revoked : cert r&#233;voqu&#233; par l'&#233;metteur
&lt;br&gt;certificate_expired : ...
&lt;br&gt;certificate_unknown : tous les probl&#232;mes concernant les certificats et non list&#233;s au dessus...
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;&lt;u&gt;Le protocole SSL Record&lt;/b&gt;&lt;/u&gt;
&lt;br&gt;
&lt;br&gt;Ce protocole permet de garantir :&lt;/p&gt;
&lt;blockquote&gt;&lt;b&gt;La confidentialit&#233;&lt;/b&gt; des donn&#233;es transmises (c'est le Handshake qui permet de n&#233;gocier une cl&#233; sym&#233;trique partag&#233;e)
&lt;br&gt;&lt;b&gt;L'int&#233;grit&#233;&lt;/b&gt; des donn&#233;es transmises (c'est encore le Handshake qui n&#233;gocie une cl&#233; partag&#233;e qui sert &#224; faire des MAC sur les donn&#233;es)
&lt;/blockquote&gt;
Sch&#233;matiquement, le protocole SSL Record ressemble &#224; :
&lt;br&gt;
&lt;br&gt;
&lt;center&gt;
&lt;img src=&quot;http://www.cryptosec.org/local/cache-vignettes/L375xH699/sslrecord-5fcea.gif&quot;/ width='375' height='699' style='height:699px;width:375px;' class='' &gt;
&lt;/center&gt;
&lt;br&gt;
&lt;b&gt;Dans l'ent&#234;te qui est ajout&#233;e :&lt;/b&gt;
&lt;br&gt;
&lt;blockquote&gt;
&lt;b&gt;Content Type :&lt;/b&gt; le plus haut protocole utilis&#233; pour traiter ce fragment&lt;br&gt;
&lt;b&gt;Major Version :&lt;/b&gt; plus haute version de SSL utilis&#233;e (3 pour SSLv3)&lt;br&gt;
&lt;b&gt;Minor Version :&lt;/b&gt; plus basse version utilis&#233;e (0 pour SSLv3)&lt;br&gt;
&lt;b&gt;Compressed Lenght :&lt;/b&gt; la longueur en octets des donn&#233;es (&#233;ventuellement compress&#233;es) &#224; chiffrer.&lt;br&gt;&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;Le MAC est fait de la fa&#231;on suivante (effectu&#233; avant chiffrement, puis chiffr&#233;) :&lt;/p&gt;
&lt;blockquote&gt;
HASH(cl&#233; partag&#233;e||pad_2||HASH(cl&#233; partag&#233;e||pad_1||num&#233;ro de ce massage||protocole pour ce message||longueur de ce message||les donn&#233;es (compress&#233;es))&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;La fonction de condensation (HASH()) est soit MD5 soit SHA-1&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;pad_1 = 0x36 et pad_2 = 0x5C (r&#233;p&#233;t&#233;s 40 fois pour SHA-1 et 48 fois pour MD5)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Les algorithmes autoris&#233;s sont :&lt;/b&gt;&lt;/p&gt;
&lt;blockquote&gt;
3-DES 168
&lt;br&gt;
IDEA 128
&lt;br&gt;
RC4 128
&lt;br&gt;
Fortezza 80
&lt;br&gt;
DES 56
&lt;br&gt;
DES-40
&lt;br&gt;
RC4-40
&lt;br&gt;
RC2-40
&lt;/blockquote&gt;
&lt;/center&gt;
&lt;br&gt;
&lt;b&gt;&lt;u&gt;Pour r&#233;sumer, les protocoles s'assemblent de la facon suivante :&lt;/b&gt;&lt;/u&gt; &lt;center&gt;&lt;img src=&quot;http://www.cryptosec.org/local/cache-vignettes/L485xH476/ssl-a4f09.gif&quot;/ width='485' height='476' style='height:476px;width:485px;' class='' &gt;&lt;/center&gt;
&lt;br&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;La pratique :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Pour acc&#233;der aux services SSL d'un serveur on ajoute habituellement un &quot;s&quot; lors de la sp&#233;cification du protocole.
&lt;br&gt;Exemple : https://www.monsite.org&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Le trafic SSL ne s'accommode pas de l'utilisation de serveurs proxy classiques (cache et r&#233;plication) parce que SSL &#224; &#233;t&#233; con&#231;u pour contrer les attaques dites &quot;de l'homme interpos&#233;&quot;, et que le proxy va &#234;tre consid&#233;r&#233; comme un attaquant. Pour qu'un serveur proxy puisse g&#233;rer du trafic SSL, il doit supporter le protocole SOCKS (qui travaille au niveau socket) ou un protocole sp&#233;cial de tunneling SSL. Netscape Proxy Server par exemple supporte les deux.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Liste des num&#233;ros de port associ&#233;s &#224; SSL :&lt;/p&gt; &lt;blockquote&gt;
&lt;table BORDER=&quot;0&quot; COLS=&quot;3&quot; WIDTH=&quot;80%&quot;&gt;
&lt;tr&gt;
&lt;td WIDTH=&quot;20%&quot; height=&quot;10&quot;&gt;&lt;b&gt;&lt;u&gt;Protocole&lt;/u&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td WIDTH=&quot;20%&quot; height=&quot;10&quot;&gt;&lt;b&gt;&lt;u&gt;Port TCP&lt;/u&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td WIDTH=&quot;60%&quot; height=&quot;10&quot;&gt;&lt;b&gt;&lt;u&gt;Description&lt;/u&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nsiiops&lt;/td&gt;&lt;td&gt;261&lt;/td&gt;&lt;td&gt;IIOP Name Service sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;https&lt;/td&gt;&lt;td&gt;443&lt;/td&gt;&lt;td&gt;http sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ddm-ssl&lt;/td&gt;&lt;td&gt;448&lt;/td&gt;&lt;td&gt;DDM-SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;smtps&lt;/td&gt;&lt;td&gt;465&lt;/td&gt;&lt;td&gt;smtp sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;nntps&lt;/td&gt;&lt;td&gt;563&lt;/td&gt;&lt;td&gt;nntp sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;sshell&lt;/td&gt;&lt;td&gt;614&lt;/td&gt;&lt;td&gt;SSLshell&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ldaps&lt;/td&gt;&lt;td&gt;636&lt;/td&gt;&lt;td&gt;ldap sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ftps-data&lt;/td&gt;&lt;td&gt;989&lt;/td&gt;&lt;td&gt;ftp donn&#233;es sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ftps&lt;/td&gt;&lt;td&gt;990&lt;/td&gt;&lt;td&gt;ftp controle sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;telnets&lt;/td&gt;&lt;td&gt;992&lt;/td&gt;&lt;td&gt;telnet sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;imaps&lt;/td&gt;&lt;td&gt;993&lt;/td&gt;&lt;td&gt;imap4 sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;ircs&lt;/td&gt;&lt;td&gt;994&lt;/td&gt;&lt;td&gt;irc sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;pop3s&lt;/td&gt;&lt;td&gt;995&lt;/td&gt;&lt;td&gt;pop3 sur TLS/SSL&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p class=&quot;spip&quot;&gt;Plut&#244;t que des MAC, SSL utilise de HMAC, ou l'on ajoute la cl&#233; secr&#232;te au donn&#233;es avant de les hacher :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;HASH(K,pad2,HASH(K,pad1,text))
&lt;br&gt;Cela rend le hash beaucoup plus s&#251;r.
&lt;br&gt;pad1 et pad2 sont arbitraires (0x36 et 0x5C).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;SSL v3 comporte dans la derni&#232;re transaction du handshake un condens&#226;t de tous les pr&#233;c&#233;dentes transactions (cela pr&#233;munit de l'attaque de l'homme interpos&#233;, qui peut par exemple forcer client et serveur &#224;
adopter du 40 bits SSLv2, niveau de chiffrement nettement insuffisant aujourd'hui).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;SSL est un protocole de s&#233;curisation des transactions, pas des donn&#233;es enregistr&#233;es. Les donn&#233;es obtenues par SSL
enregistr&#233;es sur un disque local ne sont donc plus chiffr&#233;es.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Lors de l'&#233;tablissement d'une connexion s&#233;curis&#233;e SSL, beaucoup de clients SSL, comme Netscape Navigator, v&#233;rifient si le &quot;CommonName&quot; indiquant l'identit&#233; du site sur le certificat utilis&#233; correspond au nom du site ; s'ils ne correspondent pas, l'application cliente avertit l'utilisateur. Le mieux est donc de donner comme CommonName aux serveurs web leur nom DNS (www.exemple.fr)
&lt;br&gt;Mais toutes les AC n'acceptent pas ce genre de norme.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Il existe une impl&#233;mentation OpenSource, et d'excellente qualit&#233;, de SSL v2.0, v3.0 et TLS 1.0, c'est &lt;a href=&quot;http://www.columbia.edu/~ariel/ssleay&quot;&gt;SSLeay&lt;/a&gt; devenue &lt;a href=&quot;http://www.openssl.org&quot;&gt;OpenSSL&lt;/a&gt;.&lt;br&gt;
La qualit&#233; de cette API en fait une des plus utilis&#233;e, notamment en conjonction avec Apache. Elle peut dans bien des cas remplacer avantageusement d'autres API (ou sp&#233;cifications d'API comme GSS par exemple) pour s&#233;curiser divers types de protocoles.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Les probl&#232;mes de SSL :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Probl&#232;mes li&#233;s au client SSL : le navigateur.&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Les navigateurs n'ont pas (encore) de fonctionnalit&#233;s &#233;volu&#233;es
de gestion des cl&#233;s :&lt;/u&gt;
&lt;br&gt;Les certificats ne peuvent par exemple pas &#234;tre automatiquement renouvel&#233;s et l'historique des cl&#233;s n'est pas conserv&#233;. Quand un certificat expire, l'utilisateur re&#231;oit un message et doit obtenir manuellement un nouveau certificat, ce qui n'est pas forc&#233;ment trivial pour un utilisateur lambda. Ces probl&#232;mes seront probablement r&#233;solus lorsque les navigateurs deviendront des clients de PKI &#224; part enti&#232;re ;-)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;La cryptographie utilis&#233;e par les navigateurs peut &#234;tre soumise &#224; des restrictions d'exportation (hors des Etats-Unis par exemple pour Netscape et Microsoft) cela force les utilisateurs &#224; utiliser des cl&#233;s de longueur insuffisante. Dans le cas de Netscape, on peut renforcer la crypto chez &lt;a href=&quot;http://www.fortify.com&quot;&gt;www.fortify.com&lt;/a&gt; par exemple... tout en veillant &#224; rester en conformit&#233; avec la l&#233;gislation... (on peut aussi y voir quel est la crypto utilis&#233;e par son navigateur)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;La relation de confiance est d&#233;finie par la liste pr&#233;install&#233;e des autorit&#233;s de certification :&lt;/u&gt;
&lt;br&gt;Les navigateurs du commerce sont livr&#233;s avec de nombreuses cl&#233;s publiques pr&#233;-install&#233;es (Netscape en contient 33). Celles-ci sont utilis&#233;es pour la v&#233;rification de la signature de l'autorit&#233; de certification pour les certificats d'autres navigateurs ou serveurs. Pour &#234;tre confirm&#233;, un certificat doit &#234;tre sign&#233; par n'importe laquelle des AC pr&#233;sentes dans le navigateur. Par cons&#233;quent, si l'une quelconque parmi les autorit&#233;s de certification certifie un site frauduleux, ce certificat sera v&#233;rifi&#233; correctement par des millions de navigateurs. En tant qu'utilisateur, il est important d'aller voir dans les propri&#233;t&#233;s &quot;s&#233;curit&#233;&quot; de son navigateur et de valider la confiance que l'on attribue aux diverses autorit&#233;s de certification. Par d&#233;faut, les navigateurs font confiance &#224; toutes...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Les mots de passe :&lt;/u&gt;
&lt;br&gt;Sur MSIE (jusqu'a la version 5.0) le mot de passe prot&#233;geant les certificats est optionnel (comme beaucoup de choses... :) alors que prot&#233;ger sa cl&#233; priv&#233;e est vital.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Probl&#232;mes intrins&#232;ques au protocole :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Le syst&#232;me est fond&#233; sur une seule paire de cl&#233;s :&lt;/u&gt;
&lt;br&gt;Le principal probl&#232;me que cela pose vient de la diff&#233;rence entre les contraintes qui p&#232;sent sur le cl&#233;s de signature/authentification et celles de chiffrement.
&lt;br&gt;Avoir la possibilit&#233; de sauvegarder en central les cl&#233;s de chiffrement peut s'av&#233;rer tr&#232;s pratique (si un utilisateur oublie son mot de passe il n'est par exemple pas n&#233;cessaire de r&#233;g&#233;n&#233;rer une paire de cl&#233; et de la certifier &#224; nouveau, mais on peut simplement lui renvoyer ses cl&#233;s, en l'obligeant &#224; ressaisir un mot de passe). Si les services d'un tiers sont utilis&#233;s pour la sauvegarde d'une unique paire de cl&#233; (service offert par certaines autorit&#233;s de certification ou Tiers de Confiance), le client ne sera plus le seul &#224; avoir acc&#232;s &#224; sa cl&#233; priv&#233;e de signature et la non-r&#233;pudiation n'est alors plus assur&#233;e.
&lt;br&gt;Certes, g&#233;rer deux paires de cl&#233;s est plus lourd que d'en g&#233;rer une seule.
&lt;br&gt;La sauvegarde des cl&#233;s est importante l&#224; o&#249; celles-ci sont utilis&#233;es pour chiffrer des donn&#233;es stock&#233;es, comme des courriers &#233;lectroniques par exemple. Si les cl&#233;s ne sont pas sauvegard&#233;es et que l'acc&#232;s aux cl&#233;s est perdu, les donn&#233;es chiffr&#233;es n'ont plus aucune utilit&#233; (et si en essayant d'en briser la protection on les r&#233;cup&#232;re quand m&#234;me, c'est alors l'application crypto qui n'est d'aucune utilit&#233;...).
&lt;br&gt;
Ce d&#233;faut est un peu th&#233;orique parce que SSL, dans la pratique, ne chiffre que des flux. Pour un utilisateur &quot;isol&#233;&quot;, il est au contraire souhaitable qu'aucune de ses cl&#233;s priv&#233;es ne soit ailleurs qu'en sa possession. Mais il est probable que dans l'avenir un m&#234;me certificat servira &#224; plusieurs types d'op&#233;rations cryptographiques, auquel cas ce probl&#232;me se posera.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;u&gt;Le protocole SSL ne pr&#233;voit pas de v&#233;rification syst&#233;matique des CRL :&lt;/u&gt;
&lt;br&gt;Lorsqu'un serveur Web pr&#233;sente un certificat, le navigateur en v&#233;rifie sa validit&#233; ; cela consiste pour lui &#224; :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;V&#233;rifier que les dates de validit&#233; sont valides
&lt;br&gt;V&#233;rifier que la signature appliqu&#233;e au certificat est valide&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Mais le protocole SSL n'impose pas qu'un certificat ne soit utilis&#233; que suite &#224; la consultation de la CRL qui lui correspond. Un serveur Web peut donc pr&#233;senter aux navigateurs un certificat r&#233;voqu&#233;. Netscape 6 permet de v&#233;rifier automatiquement les CRL, gr&#226;ce au protocole OCSP (Online Certificate Status Protocol, d&#233;sactiv&#233; par d&#233;faut...) La v&#233;rification manuelle des CRL est laborieuse et quasiment jamais faite.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Attaques possibles contre SSL&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;On peut imaginer de construire un site tr&#232;s similaire &#224; un site que l'on souhaite abuser. Il est ensuite possible d'acheter un certificat chez l'une des autorit&#233;s de certification reconnues par les navigateurs. Le site est mis en place en utilisant un DN similaire (par exemple &quot; www.monsite.org &quot; au lieu de &quot; www.monsite.com &quot;), voir m&#234;me en trompant un serveur DNS pour cr&#233;er un duplicata de &quot; www.monsite.com &quot;. Les utilisateurs ne verront aucune diff&#233;rence, ils croiront &#234;tre sur le site valide puisque son certificat est v&#233;rifi&#233; avec succ&#232;s par le navigateur, et ceci m&#234;me si le site r&#233;el utilise un certificat valide. Vu l'absence de consultation automatique des CRL par les navigateurs, l'autorit&#233; de certification qui &#224; &#233;mis le certificat pour le site contrefait peut m&#234;me ensuite r&#233;voquer ce certificat sans que les utilisateurs cessent d'en v&#233;rifier la validit&#233;.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Sources :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;SSL version 3 :&lt;/p&gt;
&lt;blockquote&gt;&lt;a href=&quot;http://home.netscape.com/eng/ssl3/index.html&quot;&gt;http://home.netscape.com/eng/ssl3/index.html&lt;/a&gt;&lt;/blockquote&gt;
TLS :
&lt;blockquote&gt;&lt;a href=&quot;http://www.ietf.org/html.charters/tls-charter.html&quot;&gt;http://www.ietf.org/html.charters/tls-charter.html&lt;/a&gt;&lt;/blockquote&gt;
HMAC :
&lt;blockquote&gt;&lt;a href=&quot;http://andrew2.andrew.cmu.edu/rfc/rfc2104.html&quot;&gt;http://andrew2.andrew.cmu.edu/rfc/rfc2104.html&lt;/a&gt;&lt;/blockquote&gt;
SSLeay :
&lt;blockquote&gt;&lt;a href=&quot;http://www.psy.uq.oz.au/~ftp/Crypto&quot;&gt;http://www.psy.uq.oz.au/ ftp/Crypto&lt;/a&gt;&lt;/blockquote&gt;
OpenSSL :
&lt;blockquote&gt;&lt;a href=&quot;http://www.openssl.org&quot;&gt;http://www.openssl.org&lt;/a&gt;&lt;/blockquote&gt;
OpenSSL et Apache :
&lt;blockquote&gt;&lt;a href=&quot;http://www.apache-ssl.org&quot;&gt;http://www.apache-ssl.org&lt;/a&gt;&lt;/blockquote&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Exemples de certificats</title>
		<link>http://www.cryptosec.org/Exemples-de-certificats.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Exemples-de-certificats.html</guid>
		<dc:date>2002-03-28T23:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Cles-et-certificats-.html">Cl&#233;s et certificats</category>


		<description>Quelques exemples de certificats X.509. &lt;br /&gt;Le premier est simplement l'apparence d'un certificat en base-64. Le formats DER et PKCS#7 ne sont pas tr&#232;s lisibles... &lt;br /&gt;En bas de page, on peut voir &#224; quoi ressemble un certificat de l'int&#233;rieur. &lt;br /&gt;Certificat en base-64 : &lt;br /&gt;-----BEGIN CERTIFICATE----- MIICejCCAeOgAwIBAgIEN6WQeDANBgkqhkiG9w0BAzUJk QUFADAbMQswCQYDVQQGEwJGUjEMMAoGA1UEChMDQ1BFMB 4XDTk5MDgwMjEyMTA0OFoXDTAyMDgwMjEyNDA0OFowMjE LMAkGA1UEBhMCRlIxDDAKBgNVBAoTA0NQRTEVMBMGA1UE (...)


-
&lt;a href="http://www.cryptosec.org/-Cles-et-certificats-.html" rel="directory"&gt;Cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;Quelques exemples de certificats X.509.
&lt;br&gt;Le premier est simplement l'apparence d'un certificat en base-64. Le
formats DER et PKCS#7 ne sont pas tr&#232;s lisibles...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;En bas de page, on peut voir &#224; quoi ressemble un certificat de l'int&#233;rieur.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Certificat en base-64 :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;font face=&quot;courier&quot;&gt;&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;-----BEGIN CERTIFICATE-----&lt;br /&gt; MIICejCCAeOgAwIBAgIEN6WQeDANBgkqhkiG9w0BAzUJk&lt;br /&gt; QUFADAbMQswCQYDVQQGEwJGUjEMMAoGA1UEChMDQ1BFMB&lt;br /&gt; 4XDTk5MDgwMjEyMTA0OFoXDTAyMDgwMjEyNDA0OFowMjE&lt;br /&gt; LMAkGA1UEBhMCRlIxDDAKBgNVBAoTA0NQRTEVMBMGA1UE&lt;br /&gt; AxMMWXZlcyBMZSBSb3V4MIGdMA0GCSqGSIb3DQEBAQUAA&lt;br /&gt; 4GLADCBhwKBgQDWIb6MHRZTc1zUJKPZdBVnintsVc6/+2&lt;br /&gt; ztftItA/+9HZVC4ybwSnn/73vj3MgXsckH7c8dWTDNxBj&lt;br /&gt; Zl/SjwrCc7YqZzvZe738Pr0HhzZbctDS97uVKqZsLgbFM&lt;br /&gt; sU1amiQqjY4sKJ2yS7xJ4tqhFNeaSqvXmaFishPrIVFUM&lt;br /&gt; wu3hwIBA6OBtTCBsjA9BgNVHR8ENjA0MDKgMKAupCwwKj&lt;br /&gt; ELMAkGA1UEBhMCRlIxDDAKBgNVBAoTA0NQRTENMAsGA1U&lt;br /&gt; EAxMEQ1JMMTALBgNVHQ8EBAMCBSAwHwYDVR0jBBgwFoAU&lt;br /&gt; 1DNiduNeQmx9wIv7uq14NWiSXhIwHQYDVR0OBBYEFFSrv&lt;br /&gt; hL0dWDssFdFPPCSi8jgVucZMAkGA1UdEwQCMAAwGQYJKo&lt;br /&gt; ZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQE&lt;br /&gt; FBQADgYEAVpAJ/SBJj3Lq3vyCpndwvZeNQLT8KT9Hyn5c&lt;br /&gt; B1euuMX2aNLe9E1UPUHtPVPdACugNr4f1+AH94X3oIam7&lt;br /&gt; 22iuV0prGukNGXrAKMUE2tTnCJaY+L0J28c5VYBNqg4gW&lt;br /&gt; HbjthiIu3ae+2MEWw=&lt;br /&gt; -----END CERTIFICATE-----&lt;/code&gt;&lt;/div&gt;
&lt;p class=&quot;spip&quot;&gt;&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Comme le codage en base-64 n'est toujours pas tr&#232;s explicite, le voici en langage naturel. Pour intepreter, apr&#232;s d&#233;codage base-64, le codage DER et ASN.1, on peut utiliser les fonctionnalit&#233;s
des navigateurs, ou bien les fonctions de n'importe quelle API de crypto/PKI
digne de ce nom (&lt;a href=&quot;http://www.psy.uq.oz.au/~ftp/Crypto&quot;&gt;SSLeay&lt;/a&gt; propose par exemple ce genre de routines).
&lt;br&gt;J'ai modifi&#233; quelques champs.
&lt;br&gt;
&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Le m&#234;me certificat en langage naturel :&lt;/u&gt;&lt;/b&gt;
&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Version :&lt;/b&gt;
&lt;br&gt;V3&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Num&#233;ro de s&#233;rie :&lt;/b&gt;
&lt;br&gt;37A5 9078&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Algorithme de signature :&lt;/b&gt;
&lt;br&gt;sha1RSA&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Emetteur :&lt;/b&gt;
&lt;br&gt;O = cryptosec
&lt;br&gt;C = fr&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Valide &#224; partir du :&lt;/b&gt;
&lt;br&gt;lundi 2 ao&#251;t 1999 13:10:48&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Valide jusqu'au :&lt;/b&gt;
&lt;br&gt;vendredi 2 ao&#251;t 2002 13:40:48&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Objet :&lt;/b&gt;
&lt;br&gt;CN = leredacteur
&lt;br&gt;O = cryptosec
&lt;br&gt;C = fr&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cl&#233; publique (RSA 1024 bits en hexa) :&lt;/b&gt;
&lt;br&gt;3081 8702 8181 00D6 21BE 8C1D 1653 735C D424 A3D9 7415 678A 7B6C 55CE
BFFB 6CED 7ED2 2D03 FFBD 1D95 42E3 26F0 4A79 FFEF 7BE3 DCC8 17B1 C907 EDCF
1D59 30CD C418 D997 F4A3 C2B0 9CED 8A99 CEF6 5EEF 7F0F AF41 E1CD 96DC B434
BDEE E54A A99B 0B81 B14C B14D 5A9A 242A 8D8E 2C28 9DB2 4BBC 49E2 DAA1 14D7
9A4A ABD7 99A1 62B2 13EB 2151 5433 0BB7 8702 0103&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Point de distribution de la CRL (extension) :&lt;/b&gt;
&lt;br&gt;[1]Point de distribution de la liste de r&#233;vocation de certificats
&lt;br&gt;Nom du point de distribution :
&lt;br&gt;Nom complet
&lt;br&gt;Adresse d'annuaire :
&lt;br&gt;CN=CRL-1
&lt;br&gt;O=cryptosec
&lt;br&gt;C=fr&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Utilisation de la cl&#233; (extension) :&lt;/b&gt;
&lt;br&gt;Chiffrement de la cl&#233;(20)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Identificateur de la cl&#233; de l'autorit&#233; (extension) :&lt;/b&gt;
&lt;br&gt;ID de la cl&#233;=D433 6276 E35E 426C 7DC0 8BFB BAAD 7835 6892 5E12&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Identificateur de la cl&#233; du sujet (extension) :&lt;/b&gt;
&lt;br&gt;54AB BE12 F475 60EC B057 453C F092 8BC8 E056 E719&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Contrainte de base (extension) :&lt;/b&gt;
&lt;br&gt;Type d'objet=Entit&#233; finale
&lt;br&gt;Contrainte de longueur de chemin d'acc&#232;s=Aucun(e)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;1.2.840.113533.7.65.0 (extension)&lt;/b&gt;
&lt;br&gt;30 0A 1B 04 56 34 2E 30 0...V4.0
&lt;br&gt;03 02 04 90...&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Algorithme de hachage :&lt;/b&gt;
&lt;br&gt;sha1&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Signature :&lt;/b&gt;
&lt;br&gt;DACA 58CB 6D01 E968 1526 906E A2BA B947 6D4F DAF5
&lt;br&gt;
&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Bon, maintenant qu'on a vu un certificat client, on va voir &#224;
quoi ressemble un certificat d'AC. Le certificat d'AC doit &#234;tre
pr&#233;sent dans l'application cliente (le navigateur par exemple) parce
que c'est la cl&#233; publique de l'AC qui y est contenue qui va servir
&#224; v&#233;rifier les signatures des certificats &#233;mis par cette
autorit&#233; de certification.
&lt;br&gt;Dans ce cas c'est un certificat auto-&#233;mis par l'AC. Il y a
quelques champs en moins, et le champs le plus int&#233;ressant &#224; regarder
est &quot;utilisation de la cl&#233;&quot;.
&lt;br&gt;
&lt;br&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Le certificat de l'autorit&#233; de certification qui
&#224; &#233;mis le pr&#233;c&#233;dent certificat :&lt;/u&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Version :&lt;/b&gt;
&lt;br&gt;V3&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Num&#233;ro de s&#233;rie :&lt;/b&gt;
&lt;br&gt;2712 F125 590F C2BF 4124 4841 7E3C 0323&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Algorithme de signature :&lt;/b&gt;
&lt;br&gt;sha1RSA&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Emetteur :&lt;/b&gt;
&lt;br&gt;CN = cryptosec
&lt;br&gt;O = cryptosec
&lt;br&gt;C = fr&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Valide &#224; partir du :&lt;/b&gt;
&lt;br&gt;lundi 20 d&#233;cembre 1999 17:15:51&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Valide jusqu'au :&lt;/b&gt;
&lt;br&gt;jeudi 20 d&#233;cembre 2001 17:25:24&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Objet :&lt;/b&gt;
&lt;br&gt;CN = cryptosec
&lt;br&gt;O = cryptosec
&lt;br&gt;C = fr&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Cl&#233; publique (RSA 512 bits en hexa) :&lt;/b&gt;
&lt;br&gt;3048 0241 00DA D767 0AC6 D92F 87D2 A03D 641A 63F6 9AB7 08F1 2680 64D0
758F 2A32 02B1 6F45 5A29 B5EB E4C0 5252 BDEE D5F4 AF2A A885 F356 EC7B ED3D
39C6 DACA 1458 15AE 467E C702 0301 0001&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Point de distribution de la CRL (extension) :&lt;/b&gt;
&lt;br&gt;[1]Point de distribution de la liste de r&#233;vocation de certificats
&lt;br&gt;Nom du point de distribution :
&lt;br&gt;Nom complet :
&lt;br&gt;URL=http://serveur/CertEnroll/cryptosec.crl&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;[2]Point de distribution de la liste de r&#233;vocation de certificats
&lt;br&gt;Nom du point de distribution :
&lt;br&gt;Nom complet :
&lt;br&gt;URL=file ://serveurCertEnrollcryptosec.crl&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Utilisation de la cl&#233; (extension) :&lt;/b&gt;
&lt;br&gt;Signature num&#233;rique , Non-r&#233;pudiation , Signature du
certificat , Signature de la liste de r&#233;vocation de certificats
hors connexion, Signature de la liste de r&#233;vocation de certificats(C6)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Identificateur de la cl&#233; du sujet (extension) :&lt;/b&gt;
&lt;br&gt;5033 490A 8643 A83E C1E5 CFDB E08B 7274 99AA D62E&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Version de l'autorit&#233; de certification (extension) :&lt;/b&gt;
&lt;br&gt;V6.0&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Contrainte de base (extension critique, pour la co-certification) :&lt;/b&gt;
&lt;br&gt;Type d'objet=Autorit&#233; de certification
&lt;br&gt;Contrainte de longueur de chemin d'acc&#232;s=Aucun(e)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Algorithme de hachage :&lt;/b&gt;
&lt;br&gt;sha1&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Signature :&lt;/b&gt;
&lt;br&gt;231F F1F7 63A8 EFE7 5972 7EA2 60A4 BC67 568D C5FB&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;&lt;u&gt;Le coeur d'un certificat&lt;/u&gt;&lt;/b&gt; :&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Le certificat suivant &lt;a href=&quot;http://www.cryptosec.org/data/ThawtePersPremCA.cer&quot;&gt;ThawtePersPremCA.cer&lt;/a&gt; est un certificat racine de l'AC Thawte que l'on trouve dans la plupart des navigateurs.
&lt;br&gt;
Apr&#232;s l'avoir fait passer au travers de &lt;a href=&quot;http://www.cryptosec.org/data/dumpasn1.c&quot;&gt;dumpasn1&lt;/a&gt;, on peu en voir &lt;a href=&quot;http://www.cryptosec.org/data/ThawtePersPremCA.cer.txt&quot;&gt;ici&lt;/a&gt; sa structure ASN.1&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



	<item>
		<title>Signature &#233;lectronique et chiffrement mixte</title>
		<link>http://www.cryptosec.org/Signature-electronique-et.html</link>
		<guid isPermaLink="true">http://www.cryptosec.org/Signature-electronique-et.html</guid>
		<dc:date>2002-03-28T23:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>cryptosec</dc:creator>

<category domain="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html">Quelques utilisations des cl&#233;s et certificats</category>


		<description>Int&#233;grit&#233; et authentification : &lt;br /&gt;L'utilisation de la cryptographie asym&#233;trique peut servir &#224; garantir l'int&#233;grit&#233; de donn&#233;es transmises ou stock&#233;es et &#224; l'authentification du signataire (qui n'est pas forc&#233;ment l'exp&#233;diteur). &lt;br /&gt;On peut assurer l'int&#233;grit&#233; de donn&#233;es et l'authentification du signataire en combinant algorithmes asym&#233;triques et algorithmes de condensation (ou de hachage). On supposera pour l'instant que l'on ne souhaite pas assurer la confidentialit&#233; des donn&#233;es. &lt;br /&gt;On passe (...)


-
&lt;a href="http://www.cryptosec.org/-Quelques-utilisations-des-cles-et-.html" rel="directory"&gt;Quelques utilisations des cl&#233;s et certificats&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Int&#233;grit&#233; et authentification :&lt;/b&gt;
&lt;br&gt;
L'utilisation de la cryptographie asym&#233;trique peut servir &#224; garantir l'int&#233;grit&#233; de donn&#233;es transmises ou stock&#233;es et &#224; l'authentification du signataire (qui n'est pas forc&#233;ment l'exp&#233;diteur).
&lt;br&gt;
On peut assurer l'int&#233;grit&#233; de donn&#233;es et l'authentification du signataire en combinant algorithmes asym&#233;triques et algorithmes de condensation (ou de hachage). On supposera pour l'instant que l'on ne souhaite pas assurer la confidentialit&#233; des donn&#233;es.&lt;br&gt;
On passe les donn&#233;es &#224; signer et &#224; prot&#233;ger en int&#233;grit&#233; au travers d'une fonction de condensation. Le condens&#226;t obtenu est une empreinte unique des donn&#233;es. Rien n'emp&#234;che cependant un attaquant de modifier les donn&#233;es et de recalculer un condens&#226;t.&lt;br&gt;
On va donc chiffrer le condens&#226;t &#224; l'aide de ce qui aura &#233;t&#233; d&#233;fini comme &#233;tant la cl&#233; priv&#233;e de signature.&lt;br&gt;
Pour s'assurer que les donn&#233;es n'ont pas &#233;t&#233; modifi&#233;es, pendant un transfert par exemple, le destinataire recalcule un condens&#226;t des donn&#233;es. Puis il d&#233;chiffre le condens&#226;t qui accompagnait les donn&#233;es lorsqu'il les a re&#231;ues gr&#226;ce &#224; la cl&#233; publique de l'exp&#233;diteur (qui est en g&#233;n&#233;ral jointe aux donn&#233;es sign&#233;es).&lt;br&gt;
Il compare ensuite ces deux r&#233;sultats.&lt;br&gt;
S'ils sont diff&#233;rents, cela signifiera que les donn&#233;es ont &#233;t&#233; modifi&#233;es ou que la cl&#233; priv&#233;e utilis&#233;e pour signer ne correspond pas &#224; la cl&#233; publique utilis&#233;e pour v&#233;rifier.&lt;br&gt;
Si les r&#233;sultats sont &#233;gaux, outre la garantie d'int&#233;grit&#233;, il sera assur&#233; du fait que les donn&#233;es ont &#233;t&#233; sign&#233;es avec la cl&#233; priv&#233;e associ&#233;e &#224; la cl&#233; publique qu'il a utilis&#233; pour d&#233;chiffrer le condens&#226;t. Il ne pourra &#234;tre assur&#233; de l'identit&#233; du signataire que si sa cl&#233; publique &#233;tait encapsul&#233;e dans un certificat (qui associe de fa&#231;on certaine un identifiant &#224; une cl&#233; publique), ou bien qu'un lien de confiance direct lui permet de consid&#233;rer la cl&#233; publique comme appartenant &#224; telle personne comme ce peut &#234;tre le cas avec PGP ou &lt;a href=&quot;http://www.gnupg.org&quot;&gt;GPG&lt;/a&gt;).&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;Sur le sch&#233;ma suivant, la fonction de condensation est SHA-1 et l'algorithme asym&#233;trique est RSA.
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;center&gt;
&lt;img SRC=&quot;http://www.cryptosec.org/local/cache-vignettes/L465xH398/sign-84ea7.gif&quot;/ width='465' height='398' style='height:398px;width:465px;' class='' &gt;
&lt;/center&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Non-r&#233;pudiation de la signature :&lt;/b&gt;&lt;br&gt;
Dans le cas ou le signataire est le seul &#224; poss&#233;der sa cl&#233; priv&#233;e, et seulement dans ce cas, la signature &#233;lectronique assure la non-r&#233;pudiation car le signataire ne peut nier avoir fait cette op&#233;ration si elle a &#233;t&#233; faite.&lt;br&gt;
Il est &#224; noter que beaucoup d'&#233;diteurs ou de vendeurs de certificats clament qu'ils sont en mesure d'assurer la non-r&#233;pudiation, mais en regardant de plus pr&#232;s on s'aper&#231;oit parfois qu'il ne s'agit que d'arguments commerciaux sans fondements techniques (par exemple parce qu'ils offrent la possibilit&#233; de recouvrer les cl&#233;s tout en confondant cl&#233; de signature et cl&#233; de chiffrement...)&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;Chiffrement mixte :&lt;/b&gt;
&lt;br&gt;
Le chiffrement mixte se d&#233;finit par l'utilisation conjointe d'algorithmes sym&#233;triques et asym&#233;triques pour chiffrer des donn&#233;es.&lt;br&gt;
Pourquoi proc&#232;de-t-on ainsi ?&lt;br&gt;
Premi&#232;rement parce que les algorithmes sym&#233;triques sont plus rapides que les algorithmes asym&#233;triques (voir la page sur RSA). De plus, comme on va le voir, dans le processus de chiffrement mixte, l'algorithme asym&#233;trique ne chiffre qu'une cl&#233; sym&#233;trique... ce qui repr&#233;sente peu de bits.&lt;br&gt;
Deuxi&#232;mement, cette m&#233;thode permet de chiffrer un m&#234;me document pour plusieurs destinataires sans doubler &#224; chaque fois la taille des donn&#233;es chiffr&#233;es. Si on ne chiffrait qu'avec les cl&#233;s asym&#233;triques, il faudrait en effet rechiffrer les donn&#233;es pour chaque nouveau destinataire.&lt;/p&gt; &lt;p class=&quot;spip&quot;&gt;&lt;b&gt;La proc&#233;dure de chiffrement :&lt;/b&gt;
&lt;br&gt;
L'exp&#233;diteur chiffre tout d'abord ses donn&#233;es &#224; l'aide d'un algorithme sym&#233;trique dont la cl&#233; est al&#233;atoire.&lt;br&gt;
Il chiffre ensuite cette cl&#233; sym&#233;trique avec la cl&#233; publique du destinataire. S'il y a plusieurs destinataires, il fait des copies de la cl&#233; sym&#233;trique et les chiffre avec les cl&#233;s publiques des destinataires respectifs.&lt;br&gt;
Il envoie ensuite les donn&#233;es chiffr&#233;es, auxquelles il joint les cl&#233;s sym&#233;triques chiffr&#233;es des destinataires : le tout est format&#233; (en un format comme CMS ou PKCS#7).&lt;br&gt;
Chaque destinataire d&#233;chiffre la cl&#233; sym&#233;trique qui lui correspond &#224; l'aide de sa cl&#233; priv&#233;e correspondant &#224; la cl&#233; publique utilis&#233;e par l'exp&#233;diteur.&lt;br&gt;
Ayant obtenu la cl&#233; sym&#233;trique en clair, il d&#233;chiffre ensuite les donn&#233;es en utilisant l'algorithme sym&#233;trique sp&#233;cifi&#233; dans le format envoy&#233; par l'exp&#233;diteur.&lt;br&gt;
&lt;br&gt;
Sur le sch&#233;ma suivant, l'algorithme asym&#233;trique est RSA et l'algorithme sym&#233;trique est CAST-128
&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;center&gt;&lt;img src=&quot;http://www.cryptosec.org/local/cache-vignettes/L498xH407/chiffre-c5e11.gif&quot;/ width='498' height='407' style='height:407px;width:498px;' class='' &gt;&lt;/center&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>





</channel>

</rss>
