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