]> granicus.if.org Git - apache/blob - docs/manual/ssl/ssl_intro.html.fr
Rebuilding with new CSS/JS syntax highlighting stuff turned on.
[apache] / docs / manual / ssl / ssl_intro.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Chiffrement SSL/TLS fort :  Introduction - Serveur Apache HTTP</title>
9 <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
12 <script src="../style/scripts/prettify.js" type="text/javascript">
13 </script>
14
15 <link href="../images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
18 <p class="apache">Serveur Apache HTTP Version 2.5</p>
19 <img alt="" src="../images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
21 <div id="path">
22 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.5</a> &gt; <a href="./">SSL/TLS</a></div><div id="page-content"><div id="preamble"><h1>Chiffrement SSL/TLS fort :  Introduction</h1>
23 <div class="toplang">
24 <p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25 <a href="../fr/ssl/ssl_intro.html" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
27 </div>
28
29
30 <p>Ce chapitre en guise d'introduction est destiné aux lecteurs pour lesquels
31 le Web, HTTP et Apache sont familiers, mais ne sont pas des experts en matière
32 de sécurité. Il n'a pas la prétention d'être un guide détaillé sur le
33 protocole SSL, il ne traitera pas non plus des techniques spécifiques de gestion
34 des certificats dans une organisation, ni des importants problèmes légaux de
35 brevets ou des restrictions d'importation ou d'exportation. Il se veut plutôt
36 une base de travail pour les utilisateurs de <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> en
37 rassemblant différents concepts, définitions et exemples comme point de départ
38 pour une exploration plus détaillée.</p>
39
40 </div>
41 <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#cryptographictech">Techniques de chiffrement</a></li>
42 <li><img alt="" src="../images/down.gif" /> <a href="#certificates">Certificats</a></li>
43 <li><img alt="" src="../images/down.gif" /> <a href="#ssl">Couche Points d'Accès Sécurisés - Secure Sockets Layer (SSL)</a></li>
44 <li><img alt="" src="../images/down.gif" /> <a href="#references">Références</a></li>
45 </ul></div>
46 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
47 <div class="section">
48 <h2><a name="cryptographictech" id="cryptographictech">Techniques de chiffrement</a></h2>
49
50 <p>La maîtrise de SSL nécessite la compréhension des algorithmes de
51 chiffrement, des fonctions relatives aux empreintes de messages (comme les
52 fonctions de type hash ou non réversibles), et des signatures numériques. Ces
53 techniques pourraient faire l'objet d'un ouvrage à elles seules (voir par
54 exemple [<a href="#AC96">AC96</a>]) et constituent les bases de la
55 confidentialité, de l'intégrité et de l'authentification.</p>
56
57 <h3><a name="cryptographicalgo" id="cryptographicalgo">Algorithmes de chiffrement</a></h3>
58
59     <p>Supposons qu'Alice veuille envoyer un message à sa banque pour
60     transférer une certaine somme. Alice souhaiterait que le message soit
61     privé, car il contient des informations comme son numéro de compte et le
62     montant du transfert. Une solution consisterait à utiliser un algorithme de
63     chiffrement, technique qui permet de remplacer un message par sa version
64     chiffrée, illisible jusqu'à ce qu'elle soit déchiffrée.
65     Sous sa forme chiffrée,
66     le message ne peut être déchiffré qu'en utilisant une clé secrète. Sans la
67     clé, le message est inutilisable : les bons algorithmes de chiffrement
68     rendent si difficile la restitution du texte original par des intrus que
69     ceux-ci y gaspilleraient leurs efforts.</p>
70
71     <p>Il existe deux catégories d'algorithmes de chiffrement : conventionnel
72     ou à clé publique.</p>
73
74     <dl>
75     <dt>Chiffrement conventionnel</dt>
76     <dd>aussi connu sous le nom de chiffrement symétrique, il nécessite le
77     partage d'une clé entre l'expéditeur et le destinataire : une portion
78     d'information secrète permettant de chiffrer et déchiffrer un message.
79     Tant que cette clé reste secrète, personne à part l'expéditeur et le
80     destinataire ne peut lire le message. Si Alice et sa banque partagent une
81     clé secrète, ils peuvent donc s'envoyer l'un à l'autre des messages privés.
82     Le fait de partager une clé entre l'expéditeur et le destinataire avant
83     de communiquer, tout en la maintenant secrète vis à vis des autres, peut
84     toutefois poser des problèmes.</dd>
85
86     <dt>Chiffrement à clé publique</dt>
87     <dd>aussi connu sous le nom de chiffrement asymétrique, il résoud le
88     problème d'échange de clé en définissant un algorithme qui utilise deux
89     clés, chacune d'entre elles pouvant être utilisée pour chiffrer un message.
90     Si une des clés a été utilisée pour chiffrer le message, on doit utiliser
91     l'autre clé pour le déchiffrer. Il est ainsi possible de recevoir des
92     messages sécurisés simplement en rendant publique une des clés (la clé
93     publique), et en gardant l'autre clé secrète (la clé privée).</dd>
94     </dl>
95
96     <p>Tout le monde peut chiffrer un message en utilisant la clé publique,
97     mais seul le propriétaire de la clé privée sera en mesure de le lire. De
98     cette façon, Alice peut envoyer des messages privés au propriétaire d'une
99     paire de clés (sa banque), en les chiffrant à l'aide de la clé publique.
100     Seule la banque sera en mesure de les déchiffrer.</p>
101
102
103 <h3><a name="messagedigests" id="messagedigests">Empreinte d'un message</a></h3>
104
105     <p>Bien qu'Alice puisse chiffrer son message pour le rendre privé, il
106     subsiste toujours le risque que quelqu'un puisse modifier le message
107     original ou le remplacer par un autre, afin d'effectuer le transfert de
108     fonds à son profit, par exemple. Une solution pour garantir l'intégrité du
109     message consisterait pour Alice à créer un résumé concentré de son message
110     qu'elle enverrait à sa banque avec ce dernier. A la réception du message,
111     la banque crée son propre résumé et le compare avec celui qu'Alice a
112     envoyé. Si les deux résumés sont identiques, le message reçu n'a pas
113     été modifié.</p>
114
115     <p>Un résumé tel que celui-ci est appelé
116     <dfn>empreinte numérique de message</dfn> (message digest),
117     <em>fonction irréversible</em> (one-way function) ou
118     <em>fonction de hashage</em> (hash function). Une empreinte de message
119     constitue une représentation courte et de longueur fixe, d'un message plus
120     long et de longueur variable. Les algorithmes de création d'empreintes sont
121     conçus pour produire une empreinte unique pour chaque message. Les
122     empreintes de messages sont conçues pour que la restitution du message
123     à partir de l'empreinte soit d'une difficulté insurmontable, et qu'il soit
124     (en théorie) impossible de trouver deux messages différents qui produisent
125     la même empreinte -- ce qui élimine la possibilité de remplacer un message
126     par un autre en conservant la même empreinte.</p>
127
128     <p>Trouver le moyen d'envoyer l'empreinte de manière sécurisée à la banque
129     constitue un autre défit auquel Alice doit faire face ; si l'empreinte
130     n'est pas envoyée de manière sécurisée, son intégrité peut être compromise,
131     et avec elle, la possibilité pour la banque de vérifier l'intégrité du
132     message original. L'intégrité du message ne peut être vérifiée que si
133     l'empreinte qui lui est associée est envoyée de manière sécurisée.</p>
134
135     <p>Une solution pour envoyer l'empreinte de manière sécurisée consiste à
136     l'inclure dans une signature numérique.</p>
137
138
139 <h3><a name="digitalsignatures" id="digitalsignatures">Signatures numériques</a></h3>
140 <p>Quand Alice envoie un message à sa banque, cette dernière doit s'assurer
141 que le message a bien été envoyé par elle, pour éviter qu'un intrus puisse
142 effectuer une transaction sur son compte. Une <em>signature numérique</em>,
143 créée par Alice et incluse dans le message, permet d'atteindre cet
144 objectif.</p>
145
146 <p>Les signatures numériques peuvent être créées en chiffrant une empreinte de
147 message, ainsi que d'autres informations (comme un numéro d'ordre) avec la clé
148 privée de l'expéditeur. Bien que tout le monde puisse <em>déchiffrer</em> la
149 signature à l'aide de la clé publique, seul l'expéditeur connait la clé privée.
150 Ce qui implique que seul l'expéditeur peut avoir signé le message. Inclure
151 l'empreinte dans la signature entraîne que cette dernière n'est valable que
152 pour ce message ; ceci assure aussi l'intégrité du message car personne ne
153 peut modifier l'empreinte et ensuite signer le message.</p>
154 <p>Afin de se prémunir contre l'interception et la réutilisation de la
155 signature par un intrus quelques jours plus tard, la signature contient un
156 numéro d'ordre unique. Ceci protège la banque contre une plainte frauduleuse
157 de la part d'Alice alléguant qu'elle n'a pas envoyé le message --
158 elle seule peut l'avoir signé (non-répudiation).</p>
159
160
161 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
162 <div class="section">
163 <h2><a name="certificates" id="certificates">Certificats</a></h2>
164
165 <p>Bien qu'Alice soit parvenue à envoyer un message privé à sa banque, après
166 l'avoir signé et avoir ainsi assuré l'intégrité du message, elle doit encore vérifier
167 qu'elle communique réellement avec la banque. C'est à dire qu'elle doit
168 s'assurer que la clé publique qu'elle utilise appartient bien à la paire de
169 clés de la banque, et non à celle d'un intrus.
170 De même, la banque doit vérifier que la
171 signature du message a bien été construite avec la clé privée d'Alice.</p>
172
173 <p>Si chaque partie possède un certificat qui valide l'identité de l'autre,
174 confirme la clé publique, et est signé par un organisme de confiance, alors
175 les deux protagonistes peuvent être sûrs que la personne avec laquelle ils
176 communiquent est bien celle avec laquelle ils désirent le faire. Un tel
177 organisme de confiance s'appelle une <em>Autorité de Certification</em>, et
178 on utilise les certificats à des fins d'authentification.</p>
179
180 <h3><a name="certificatecontents" id="certificatecontents">Contenu d'un certificat</a></h3>
181
182     <p>Un certificat associe une clé publique avec l'identité réelle d'un
183     individu, d'un serveur, ou d'une autre entité plus connue sous le nom de
184     sujet. Comme on le voit dans le <a href="#table1">Tableau 1</a>, les
185     information concernant le sujet comprennent des informations
186     d'identification (le nom distinctif ou distinguished name - dn), ainsi que
187     la clé publique. Il comporte aussi l'identification et la signature de
188     l'autorité de certification qui a délivré le certificat, ainsi que la
189     période de validité de ce dernier. Il peut aussi contenir des informations
190     supplémentaires (ou extensions) telles que des informations de gestion
191     destinées à l'autorité de certification, comme un numéro de série.</p>
192
193     <h4><a name="table1" id="table1">Tableau 1: Information contenues dans un certificat</a></h4>
194     
195     <table>
196     
197     <tr><th>Sujet</th>
198         <td>Nom distinctif, Clé publique</td></tr>
199     <tr><th>Fournisseur</th>
200         <td>Nom distinctif, Signature</td></tr>
201     <tr><th>Période de validité</th>
202         <td>Pas avant, Pas après</td></tr>
203     <tr><th>Informations de gestion</th>
204         <td>Version, Numéro de série</td></tr>
205     <tr><th>Extensions</th>
206         <td>Contraintes de base, Drapeaux Netscape, etc.</td></tr>
207     </table>
208     
209
210     <p>Un nom distinctif sert à fournir une identité dans un contexte
211     spécifique -- par exemple, un individu peut posséder un certificat
212     personnel, et aussi un certificat en tant qu'employé. Les noms distinctifs
213     doivent respecter le standard X509 [<a href="#X509">X509</a>], qui définit
214     les champs, les noms de champs, et les abréviations utilisées pour faire
215     référence aux champs (voir <a href="#table2">Tableau 2</a>).</p>
216
217     <h4><a name="table2" id="table2">Tableau 2: Informations contenues dans le nom distinctif</a></h4>
218     
219     <table class="bordered">
220     
221     <tr><th>Champ du DN</th>
222         <th>Abrév.</th>
223         <th>Description</th>
224         <th>Exemple</th></tr>
225     <tr><td>Nom complet (Common Name)</td>
226         <td>CN</td>
227         <td>Nom certifié</td>
228         <td>CN=Joe Average</td></tr>
229     <tr><td>Organisation or Entreprise</td>
230         <td>O</td>
231         <td>Nom est associé à cette<br />organisation</td>
232         <td>O=Snake Oil, Ltd.</td></tr>
233     <tr><td>Unité organisationnelle (Organizational Unit)</td>
234         <td>OU</td>
235         <td>Nom est associé avec cette <br />unité organisationnelle,
236         par exemple un département</td>
237         <td>OU=Research Institute</td></tr>
238     <tr><td>Ville/Localisation</td>
239         <td>L</td>
240         <td>Nom est localisé dans cette ville</td>
241         <td>L=Snake City</td></tr>
242     <tr><td>Etat/Province</td>
243         <td>ST</td>
244         <td>Nom est localisé dans cet état/province</td>
245         <td>ST=Desert</td></tr>
246     <tr><td>Pays</td>
247         <td>C</td>
248         <td>Nom est localisé dans ce pays (code ISO)</td>
249         <td>C=XZ</td></tr>
250     </table>
251     
252
253     <p>Une autorité de certification peut définir une contrainte spécifiant
254     quels champs du nom distinctif sont optionnels et lesquels sont
255     obligatoires. Elle peut aussi imposer des contraintes sur le contenu des
256     champs, ce que peuvent aussi faire les utilisateurs de certificats. Par
257     exemple, un navigateur Netscape peut exiger, dans le cas d'un certificat
258     de serveur, que le nom complet (Common Name) corresponde à un nom générique
259     contenant le nom de domaine du serveur, comme
260     <code>*.snakeoil.com</code>.</p>
261
262     <p>Le format binaire d'un certificat est défini en utilisant la
263     notation ASN.1 [<a href="#ASN1">ASN1</a>] [<a href="#PKCS">PKCS</a>].
264     Cette notation definit la manière de spécifier les contenus, et les règles
265     d'encodage définissent la manière dont ces information sont converties au
266     format binaire. L'encodage binaire du certificat est défini par les Règles
267     d'Encodage Distinctives (Distinguished Encoding Rules - DER), qui se basent
268     d'une manière plus générale sur les Règles d'Encodage de Base (Basic
269     Encoding Rules - BER). Pour les transmissions qui ne supportent pas le
270     format binaire, ce dernier peut être converti au format ASCII en utilisant
271     le codage Base64 [<a href="#MIME">MIME</a>]. Lorsqu'il est placé entre des
272     délimiteurs de début et de fin (comme ci-dessous), on dit que le certificat
273     est encodé au format PEM ("Privacy Enhanced Mail").</p>
274
275     <div class="example"><h3>Exemple de certificat encodé au format PEM (snakeoil.crt)</h3><pre>-----BEGIN CERTIFICATE-----
276 MIIC7jCCAlegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx
277 FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG
278 A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv
279 cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz
280 bmFrZW9pbC5kb20wHhcNOTgxMDIxMDg1ODM2WhcNOTkxMDIxMDg1ODM2WjCBpzEL
281 MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h
282 a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl
283 cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN
284 AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
285 gQDH9Ge/s2zcH+da+rPTx/DPRp3xGjHZ4GG6pCmvADIEtBtKBFAcZ64n+Dy7Np8b
286 vKR+yy5DGQiijsH1D/j8HlGE+q4TZ8OFk7BNBFazHxFbYI4OKMiCxdKzdif1yfaa
287 lWoANFlAzlSdbxeGVHoT0K+gT5w3UxwZKv2DLbCTzLZyPwIDAQABoyYwJDAPBgNV
288 HRMECDAGAQH/AgEAMBEGCWCGSAGG+EIBAQQEAwIAQDANBgkqhkiG9w0BAQQFAAOB
289 gQAZUIHAL4D09oE6Lv2k56Gp38OBDuILvwLg1v1KL8mQR+KFjghCrtpqaztZqcDt
290 2q2QoyulCgSzHbEGmi0EsdkPfg6mp0penssIFePYNI+/8u9HT4LuKMJX15hxBam7
291 dUHzICxBVC1lnHyYGjDuAMhe396lYAn8bCld1/L4NMGBCQ==
292 -----END CERTIFICATE-----</pre></div>
293
294
295 <h3><a name="certificateauthorities" id="certificateauthorities">Autorités de certification</a></h3>
296
297     <p>En vérifiant les informations contenues dans une demande de certificat
298     avant de l'accorder, l'autorité de certification s'assure de l'identité du
299     propriétaire de la clé privée issue de sa paire de clés. Par exemple, Si
300     Alice demande un certificat personnel, l'autorité de certification doit
301     d'abord s'assurer qu'elle correspond vraiment à la personne à laquelle
302     la demande de certificat fait référence.</p>
303
304     <h4><a name="certificatechains" id="certificatechains">Chaînes de certification</a></h4>
305     
306         <p>Une autorité de certification peut aussi émettre un certificat à
307         destination d'une
308         autre autorité de certification. Pour vérifier un certificat, Alice
309         peut être amenée à vérifier le certificat de l'émetteur pour chaque
310         autorité de certification parente, jusqu'à ce qu'elle en atteigne une
311         en qui elle a confiance. Elle peut aussi ne faire confiance qu'aux
312         certificats faisant l'objet d'une chaîne limitée d'émetteurs, afin
313         de réduire le risque de rencontrer un "mauvais" certificat dans la
314         chaîne.</p>
315     
316
317     <h4><a name="rootlevelca" id="rootlevelca">Création d'une autorité de certification racine</a></h4>
318     
319         <p>Comme indiqué plus haut, chaque certificat nécessite la validation
320         de l'identité du sujet par un émetteur de certificats
321         de niveau supérieur, et ceci en
322         remontant jusqu'à l'Autorité de Certification (CA) racine. Ceci pose un
323         problème : qui va se porter garant du certificat de l'autorité racine
324         qui ne possède pas d'émetteur de certificat ? C'est uniquement dans ce
325         cas que le certificat est auto-signé, l'émetteur du certificat et son
326         sujet étant confondus. Les navigateurs sont préconfigurés avec une
327         liste d'autorités de certification de confiance, mais il est important
328         d'être extrèmement prudent avant de faire confiance à un certificat
329         auto-signé. La large publication d'une clé publique par l'autorité
330         racine réduit cependant les risques encourus
331         en faisant confiance à cette clé --
332         si quelqu'un publiait une clé en se faisant passer pour l'autorité, il
333         serait vite démasqué.</p>
334
335         <p>Quelques compagnies, comme <a href="http://www.thawte.com/">Thawte</a> et <a href="http://www.verisign.com/">VeriSign</a>,
336         se sont proclamées elles-mêmes Autorités de Certification. Ces
337         compagnies proposent les services suivant :</p>
338
339         <ul>
340         <li>Vérification des demandes de certificats</li>
341         <li>Traitement des demandes de certificats</li>
342         <li>Emission et gestion des certificats</li>
343         </ul>
344
345         <p>Vous pouvez aussi créer votre propre autorité de certification. Bien
346         que risqué dans l'environnement de l'Internet, ceci peut s'avérer utile
347         dans un Intranet, où l'organisme peut vérifier facilement les identités
348         des individus et des serveurs.</p>
349     
350
351     <h4><a name="certificatemanagement" id="certificatemanagement">Gestion des certificats</a></h4>
352     
353         <p>Constituer une autorité de certification représente une
354         responsabilité qui nécessite une solide infrastructure administrative,
355         technique et gestionnaire. Les autorités de certification ne se
356         contentent pas d'émettre des certificats, elles doivent aussi les gérer
357         -- à savoir elles déterminent leur durée de validité, elles les
358         renouvellent, et elles maintiennent des listes de certificats qui ont
359         été émis dans le passé mais ne sont plus valides (Listes de révocations
360         de certificats, ou CRLs).</p>
361
362         <p>Par exemple, si Alice est titulaire d'un certificat en tant
363         qu'employée d'une compagnie, mais vient de quitter cette compagnie,
364         son certificat doit être révoqué. Comme les certificats ne sont émis
365         qu'après vérification de l'identité du sujet, et peuvent être envoyés
366         à tous ceux avec lesquels le sujet peut communiquer, il est impossible
367         de discerner à partir du seul certificat s'il a été révoqué. Pour
368         vérifier la validité d'un certificat, il est donc nécessaire de
369         contacter l'autorité de certification qui l'a émis afin de pouvoir
370         consulter ses listes de révocations de certificats -- ce qui n'est
371         en général pas une partie automatique du processus.</p>
372
373         <div class="note"><h3>Note</h3>
374         <p>Si votre autorité de certification ne fait pas partie de la liste
375         des autorités de confiance de votre navigateur, il faut enregistrer le
376         certificat de l'autorité de certification dans ce dernier, ce qui lui
377         permettra de valider les certificats de serveurs signés par cette
378         autorité de certification. Ceci peut être dangereux, car une fois le
379         certificat enregistré, le navigateur acceptera tous les certificats
380         signés par cette autorité de certification.</p>
381         </div>
382     
383
384
385 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
386 <div class="section">
387 <h2><a name="ssl" id="ssl">Couche Points d'Accès Sécurisés - Secure Sockets Layer (SSL)</a></h2>
388
389 <p>Le protocole Couche Points d'Accès Sécurisés est une couche protocolaire
390 qui pourrait s'intercaler entre un protocole d'une couche réseau orientée
391 connexion (comme TCP/IP) et une couche protocolaire d'application (comme HTTP).
392 SSL fournit une communication sécurisée entre client et serveur en permettant
393 l'authentification mutuelle, l'utilisation des signatures numériques pour la
394 vérification de l'intégrité des données, et le chiffrement pour la
395 confidentialité.</p>
396
397 <p>Ce protocole est conçu pour supporter un grand choix d'algorithmes
398 spécifiques utilisés pour la cryptographie, les empreintes et les signatures.
399 Ceci permet la sélection d'un algorithme pour des serveurs spécifiques en
400 respectant la légalité, les règles d'exportation ou autres contraintes, et
401 permet aussi au protocole de tirer parti des nouveaux algorithmes. Ces choix
402 font l'objet d'une négociation entre client et serveur lors de
403 l'établissement de la session protocolaire.</p>
404
405 <h3><a name="table4" id="table4">Tableau 4: Versions du protocole SSL</a></h3>
406
407     <table class="bordered">
408     
409     <tr><th>Version</th>
410         <th>Source</th>
411         <th>Description</th>
412         <th>Navigateurs supportés</th></tr>
413     <tr><td>SSL v2.0</td>
414         <td>Standard du fournisseur (de Netscape Corp.)</td>
415         <td>Premier protocole SSL pour lequel il existe des implémentations</td>
416         <td>- NS Navigator 1.x/2.x<br />
417         - MS IE 3.x<br />
418         - Lynx/2.8+OpenSSL</td></tr>
419     <tr><td>SSL v3.0</td>
420         <td>Projet Internet arrivé à expiration (de Netscape Corp.) [<a href="#SSL3">SSL3</a>]</td>
421         <td>Comporte des révisions permettant de prévenir certaines attaques de
422         sécurité spécifiques, ajout de chiffrements non RSA, et support des
423         chaînes de certification</td>
424         <td>- NS Navigator 2.x/3.x/4.x<br />
425         - MS IE 3.x/4.x<br />
426         - Lynx/2.8+OpenSSL</td></tr>
427     <tr><td>TLS v1.0</td>
428         <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS1">TLS1</a>]</td>
429         <td>Révision de SSL 3.0 pour mettre à jour la couche MAC vers HMAC,
430         ajout du bourrage de bloc pour le chiffrement de bloc, standardisation
431         de l'ordonnancement des messages et plus de messages d'alerte.</td>
432         <td>- Lynx/2.8+OpenSSL</td></tr>
433         <tr><td>TLS v1.1</td>
434         <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS11">TLS11</a>]</td>
435         <td>Mise à jour de TLS 1.0 pour la protection contre les
436         attaques de type Cipher block chaining (CBC).</td>
437         <td>-</td></tr>
438     <tr><td>TLS v1.2</td>
439         <td>Standard proposé pour l'Internet (de l'IETF) [<a href="#TLS12">TLS12</a>]</td>
440         <td>Mise à jour de TLS 1.2 rendant les condensés MD5 obsolètes,
441         et introduisant une incompatibilité avec SSL ce qui interdit toute
442         négociation en vue d'une utilisation de SSLv2.</td>
443         <td>-</td></tr>
444     </table>
445
446
447 <p>Il existe plusieurs versions du protocole SSL, comme le montre le
448 <a href="#table4">Tableau 4</a>. Comme indiqué dans ce dernier, un des apports
449 de SSL 3.0 est le support du chargement des chaînes de certification. Cette
450 fonctionnalité permet à un serveur de passer au navigateur un certificat de
451 serveur accompagné du certificat de l'émetteur. Le chargement de la
452 chaîne permet aussi au navigateur de valider le certificat du serveur, même si
453 les certificats de l'autorité de certification ne sont pas installés pour les
454 émetteurs intermédiaires, car ils sont inclus dans la chaîne de certification.
455 SSL 3.0 sert de base au standard du protocole Sécurité de la Couche Transport
456 ou Transport Layer Security
457 [<a href="#TLS1">TLS</a>], actuellement en développement au sein de
458 l'Internet Engineering Task Force (IETF).</p>
459
460 <h3><a name="session" id="session">Etablissement d'une session</a></h3>
461
462     <p>La session SSL est établie en suivant une séquence d'échanges
463     d'informations entre client et serveur, comme le montre la
464     <a href="#figure1">Figure 1</a>. Cette séquence peut varier, selon que
465     le serveur est configuré pour fournir un certificat de serveur ou
466     réclame un certificat client. Bien que dans certains cas, des étapes
467     d'échanges d'informations supplémentaires soient nécessaires pour la
468     gestion des informations de chiffrement, cet article résume un scénario
469     courant. Se reporter aux spécifications SSL pour avoir la liste de
470     toutes les possibilités.</p>
471
472     <div class="note"><h3>Note</h3>
473     <p>Une fois la session SSL établie, elle peut être réutilisée. Ceci
474     permet d'éviter la perte de performances due à la répétition des nombreuses
475     étapes nécessaires à l'établissement d'une session. Pour parvenir à ceci,
476     le serveur assigne un identifiant de session unique à chaque session SSL ;
477     cet identifiant est mis en cache dans le serveur et le client peut
478     l'utiliser pour des connexions ultérieures afin de réduire la durée des
479     échanges d'informations (et ceci jusqu'à ce que l'identifiant de session
480     arrive à expiration dans le cache du serveur).</p>
481     </div>
482
483     <p class="figure">
484     <img src="../images/ssl_intro_fig1.gif" alt="" width="423" height="327" /><br />
485     <a id="figure1" name="figure1"><dfn>Figure 1</dfn></a> : Séquence
486     simplifiée d'échanges d'informations SSL</p>
487
488     <p>Les éléments de la séquence d'échanges d'informations, tels qu'ils
489     sont utilisés par le client et le serveur, sont énumérés ci-après :</p>
490
491     <ol>
492     <li>Négociation de la suite de chiffrement à utiliser durant le transfert des données</li>
493     <li>Elaboration et échange d'une clé de session entre le client et le serveur</li>
494     <li>Authentification éventuelle du serveur par le client</li>
495     <li>Authentification éventuelle du client par le serveur</li>
496     </ol>
497
498     <p>La première étape, la négociation de la suite de chiffrement, permet au
499     client et au serveur de choisir une suite de chiffrement qu'ils supportent
500     tous les deux. La spécification du protocole SSL 3.0 définit 31 suites de
501     chiffrement. Une suite de chiffrement se compose des éléments
502     suivants :</p>
503
504     <ul>
505     <li>Méthode d'échange de la clé</li>
506     <li>Chiffrement du transfert des données</li>
507     <li>Empreinte du message servant à créer le code d'authentification du
508     message (MAC)</li>
509     </ul>
510
511     <p>Ces trois éléments sont décrits dans les sections suivantes.</p>
512
513
514 <h3><a name="keyexchange" id="keyexchange">Méthode d'échange de la clé</a></h3>
515
516     <p>La méthode d'échange de la clé définit la manière
517     dont la clé de chiffrement
518     symétrique secrète et partagée utilisée pour le transfert des données de
519     l'application sera acceptée par le client et le serveur. SSL 2.0 utilise
520     l'échange de clé RSA seulement, tandis que SSL 3.0 supporte tout un choix
521     d'algorithmes d'échange de clé incluant l'échange de clé RSA (quand les
522     certificats sont utilisés), et l'échange de clés Diffie-Hellman (pour
523     échanger des clés sans certificat, ou en l'absence de communication
524     préalable entre le client et le serveur).</p>
525
526     <p>Les signatures numériques constituent une variante dans le choix des
527     méthodes d'échange de clé -- utiliser les signatures ou pas, et dans
528     l'affirmative, quel genre de signatures utiliser. La signature à l'aide
529     d'une clé privée fournit une protection contre une attaque
530     "man-in-the-middle" au cours de laquelle
531     l'échange d'informations destiné à générer la
532     clé partagée peut être intercepté [<a href="#AC96">AC96</a>, p516].</p>
533
534
535 <h3><a name="ciphertransfer" id="ciphertransfer">Chiffrement du transfert de données</a></h3>
536
537     <p>Comme décrit plus haut, SSL utilise le chiffrement symétrique
538     conventionnel pour chiffrer les messages au cours d'une session. Il existe
539     neuf choix possibles pour le chiffrement, y compris l'option du transfert
540     non chiffré :</p>
541
542     <ul>
543     <li>Pas de chiffrement</li>
544     <li>Chiffrement en continu (Stream Ciphers)
545         <ul>
546         <li>RC4 avec clés de 40 bits</li>
547         <li>RC4 avec clés de 128 bits</li>
548         </ul></li>
549     <li>Chiffrement par blocs CBC (CBC Block Ciphers)
550         <ul><li>RC2 avec clé de 40 bits</li>
551         <li>DES avec clé de 40 bits</li>
552         <li>DES avec clé de 56 bits</li>
553         <li>Triple-DES avec clé de 168 bits</li>
554         <li>Idea (clé de 128 bits)</li>
555         <li>Fortezza (clé de 96 bits)</li>
556         </ul></li>
557     </ul>
558
559     <p>"CBC" signifie Cipher Block Chaining (Chaînage de blocs chiffrés),
560     c'est à dire qu'une portion du bloc de texte chiffré précédent est utilisée
561     pour le chiffrement du bloc courant. "DES" signifie Data Encryption
562     Standard (Standard de Chiffrement des Données)
563     [<a href="#AC96">AC96</a>, ch12], et possède de nombreuses variantes
564     (telles que DES40 et 3DES_EDE). Parmi les algorithmes disponibles, "Idea"
565     est actuellement un des meilleurs et des plus puissants sur le plan
566     cryptographique, et "RC2" est un algorithme propriétaire de RSA DSI
567     [<a href="#AC96">AC96</a>, ch13].</p>
568
569
570 <h3><a name="digestfuntion" id="digestfuntion">Fonction de création d'empreinte</a></h3>
571
572     <p>Le choix d'une fonction de création d'empreinte détermine la manière
573     dont une empreinte est créée à partir d'une unité de données. SSL supporte
574     les fonctions suivantes :</p>
575
576     <ul>
577     <li>Pas d'empreinte (choix Null)</li>
578     <li>MD5, une empreinte de 128 bits</li>
579     <li>Algorithme d'Empreinte Sécurisée (Secure Hash Algorithm - SHA-1), une
580     empreinte de 160 bits</li>
581     </ul>
582
583     <p>On utilise l'empreinte de message pour créer un Code d'Authentification
584     de Message (Message Authentication Code - MAC) qui est chiffré avec le
585     message afin de vérifier son intégrité et de se protéger contre les
586     attaques de type "rejeu".</p>
587
588
589 <h3><a name="handshake" id="handshake">Protocole de la séquence d'échanges d'informations</a></h3>
590
591     <p>La séquence d'échanges d'informations utilise trois protocoles :</p>
592
593     <ul>
594     <li>Le <dfn>Protocole d'échanges d'informations SSL</dfn> pour établir
595     la session SSl entre le client et le serveur.</li>
596     <li>Le <dfn>Protocole de spécification du chiffrement SSL</dfn> pour
597     l'agrément effectif de la suite de chiffrement à utiliser
598     pour la session.</li>
599     <li>Le <dfn>Protocole d'alertes SSL</dfn> pour la transmission de
600     messages d'erreur SSL entre le client et le serveur.</li>
601     </ul>
602
603     <p>Ces protocoles, ainsi que les données du protocole de l'application,
604     sont encapsulés dans le <dfn>Protocole d'enregistrement SSL
605     (SSL Record Protocol)</dfn>, comme
606     le montre la <a href="#figure2">Figure 2</a>. Un protocole encapsulé est
607     tranféré en tant que données par le protocole de la couche de niveau
608     inférieur, qui ne se préoccupe pas du contenu des données. Le protocole
609     encapsulé n'a aucune connaissance du protocole sous-jacent.</p>
610
611     <p class="figure">
612     <img src="../images/ssl_intro_fig2.gif" alt="" width="428" height="217" /><br />
613     <a id="figure2" name="figure2"><dfn>Figure 2</dfn></a>:
614     Pile du protocole SSL</p>
615
616     <p>L'encapsulation des protocoles de contrôle SSL dans le protocole
617     d'enregistrement signifie que si une session active est renégociée, les
618     protocoles de contrôle seront transmis de manière sécurisée. S'il n'y
619     avait pas de session préalable, la suite de chiffrement Null est utilisée,
620     ce qui signifie que les messages ne seront pas chiffrés et ne possèderont
621     pas d'empreinte d'intégrité, jusqu'à ce que la session ait été établie.</p>
622
623
624 <h3><a name="datatransfer" id="datatransfer">Transmission des données</a></h3>
625
626     <p>Le protocole d'enregistrement SSL, comme le montre la
627     <a href="#figure3">Figure 3</a>, est utilisé pour transmettre les données
628     de l'application et les données de contrôle SSL entre le client et le
629     serveur, les données étant nécessairement fragmentées en éléments plus
630     petits, ou plusieurs messages de données avec protocole de niveau
631     supérieur pouvant être combinés en un seul élément. Ce protocole peut
632     joindre des signatures d'empreintes, compresser et chiffrer ces éléments
633     avant de les transmettre en utilisant le protocole fiable de transport
634     sous-jacent (Note : actuellement, aucune implémentation majeure de SSL
635     n'inclut le support de la compression).</p>
636
637     <p class="figure">
638     <img src="../images/ssl_intro_fig3.gif" alt="" width="423" height="323" /><br />
639     <a id="figure3" name="figure3"><dfn>Figure 3</dfn></a>:
640     Protocole d'enregistrement SSL</p>
641
642
643 <h3><a name="securehttp" id="securehttp">Sécurisation des communications HTTP</a></h3>
644
645     <p>Une des utilisations courantes de SSL est la sécurisation des
646     communication HTTP sur le Web entre un navigateur et un serveur web. Ceci
647     n'exclut pas l'utilisation de HTTP non sécurisé - la version sécurisée
648     (appelée HTTPS) est identique à du vrai HTTP sur SSL,
649     mais utilise le préfixe
650     d'URL <code>https</code> au lieu de <code>http</code>, et un port
651     de serveur différent (par défaut le port 443).
652     Ceci constitue pour une large part
653     ce qu'apporte <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> au serveur web Apache.</p>
654
655 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
656 <div class="section">
657 <h2><a name="references" id="references">Références</a></h2>
658
659 <dl>
660 <dt><a id="AC96" name="AC96">[AC96]</a></dt>
661 <dd>Bruce Schneier, <q>Applied Cryptography</q>, 2nd Edition, Wiley,
662 1996. Voir <a href="http://www.counterpane.com/">http://www.counterpane.com/</a> pour diverses autres productions de Bruce
663 Schneier.</dd>
664
665 <dt><a id="ASN1" name="ASN1">[ASN1]</a></dt>
666 <dd>ITU-T Recommendation X.208, <q>Specification of Abstract Syntax Notation
667 One (ASN.1)</q>, dernière mise à jour en 2008. Voir <a href="http://www.itu.int/ITU-T/asn1/">http://www.itu.int/ITU-T/asn1/</a>.
668 </dd>
669
670 <dt><a id="X509" name="X509">[X509]</a></dt>
671 <dd>ITU-T Recommendation X.509, <q>The Directory - Authentication
672 Framework</q>. A titre de référence, voir <a href="http://en.wikipedia.org/wiki/X.509">http://en.wikipedia.org/wiki/X.509</a>.
673 </dd>
674
675 <dt><a id="PKCS" name="PKCS">[PKCS]</a></dt>
676 <dd><q>Public Key Cryptography Standards (PKCS)</q>,
677 RSA Laboratories Technical Notes, Voir <a href="http://www.rsasecurity.com/rsalabs/pkcs/">http://www.rsasecurity.com/rsalabs/pkcs/</a>.</dd>
678
679 <dt><a id="MIME" name="MIME">[MIME]</a></dt>
680 <dd>N. Freed, N. Borenstein, <q>Multipurpose Internet Mail Extensions
681 (MIME) Part One: Format of Internet Message Bodies</q>, RFC2045.
682 Voir par exemple <a href="http://tools.ietf.org/html/rfc2045">http://tools.ietf.org/html/rfc2045</a>.</dd>
683
684 <dt><a id="SSL3" name="SSL3">[SSL3]</a></dt>
685 <dd>Alan O. Freier, Philip Karlton, Paul C. Kocher, <q>The SSL Protocol
686 Version 3.0</q>, 1996. Voir <a href="http://www.netscape.com/eng/ssl3/draft302.txt">http://www.netscape.com/eng/ssl3/draft302.txt</a>.</dd>
687
688 <dt><a id="TLS1" name="TLS1">[TLS1]</a></dt>
689 <dd>Tim Dierks, Christopher Allen, <q>The TLS Protocol Version 1.0</q>,
690 1999. Voir <a href="http://ietf.org/rfc/rfc2246.txt">http://ietf.org/rfc/rfc2246.txt</a>.</dd>
691
692 <dt><a id="TLS11" name="TLS11">[TLS11]</a></dt>
693 <dd><q>Le protocole TLS Version 1.1</q>,
694 2006. Voir <a href="http://tools.ietf.org/html/rfc4346">http://tools.ietf.org/html/rfc4346</a>.</dd>
695
696 <dt><a id="TLS12" name="TLS12">[TLS12]</a></dt>
697 <dd><q>Le protocole TLS Version 1.2</q>,
698 2008. Voir <a href="http://tools.ietf.org/html/rfc5246">http://tools.ietf.org/html/rfc5246</a>.</dd>
699 </dl>
700 </div></div>
701 <div class="bottomlang">
702 <p><span>Langues Disponibles: </span><a href="../en/ssl/ssl_intro.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
703 <a href="../fr/ssl/ssl_intro.html" title="Français">&nbsp;fr&nbsp;</a> |
704 <a href="../ja/ssl/ssl_intro.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a></p>
705 </div><div id="footer">
706 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
707 <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript">
708     if (prettyPrint) {
709         prettyPrint();
710     }
711 </script>
712 </body></html>