/usr/share/doc/HOWTO/fr-html/SSL-Certificates-HOWTO.html is in doc-linux-fr-html 2013.01-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<title>Guide pratique des certificats SSL</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
</head>
<body class="BOOK" bgcolor="#FFFFFF" text="#000000" link="#0000FF"
vlink="#840084" alink="#0000FF">
<div class="BOOK"><a name="AEN1" id="AEN1"></a>
<div class="TITLEPAGE">
<h1 class="TITLE"><a name="AEN2" id="AEN2">Guide pratique des
certificats SSL</a></h1>
<h2 class="SUBTITLE">Version française du <i class=
"FOREIGNPHRASE">SSL Certificates HOWTO</i></h2>
<h3 class="AUTHOR"><a name="AEN8" id="AEN8"></a>Franck Martin</h3>
<div>
<div class="ABSTRACT"><a name="AEN58" id="AEN58"></a>
<p>Une expérience de gestion d'une autorité de
certification. La création et la signature de certificats
destinés à la sécurisation des transactions
web, au courrier, à la signature du code et à
d'autres usages.</p>
</div>
</div>
<hr></div>
<div class="TOC">
<dl>
<dt><b>Table des matières</b></dt>
<dt>1. <a href="#AEN60">Principes généraux</a></dt>
<dd>
<dl>
<dt><a href="#AEN62">Introduction</a></dt>
<dd>
<dl>
<dt><a href="#COPYRIGHT">Droits d'utilisation et limitation de
responsabilité</a></dt>
<dt><a href="#AEN91">Disclaimer and Licence</a></dt>
<dt><a href="#AEN108">Pré-requis</a></dt>
</dl>
</dd>
<dt><a href="#AEN111">Que sont SSL et les
certificats ?</a></dt>
<dd>
<dl>
<dt><a href="#AEN132">Clef publique / clef
privée</a></dt>
<dt><a href="#AEN137">Le certificat</a></dt>
<dt><a href="#AEN144">La clef symétrique</a></dt>
<dt><a href="#AEN148">Les algorithmes de chiffrement</a></dt>
<dt><a href="#AEN151">Le hachage</a></dt>
<dt><a href="#AEN155">La signature</a></dt>
<dt><a href="#AEN160">Le mot de passe</a></dt>
<dt><a href="#AEN163">L'infrastructure de clefs publiques</a></dt>
</dl>
</dd>
<dt><a href="#AEN166">Qu'en est-il de S/MIME et des autres
protocoles ?</a></dt>
</dl>
</dd>
<dt>2. <a href="#AEN170">Gestion des certificats</a></dt>
<dd>
<dl>
<dt><a href="#AEN172">Installation</a></dt>
<dd>
<dl>
<dt><a href="#AEN179">L'utilitaire CA.pl</a></dt>
<dt><a href="#AEN184">Le fichier openssl.cnf</a></dt>
<dt><a href="#AEN207">Création de l'autorité de
certification</a></dt>
</dl>
</dd>
<dt><a href="#AEN212">Création d'une autorité de
certification racine</a></dt>
<dt><a href="#AEN224">Création d'une autorité de
certification non-racine</a></dt>
<dt><a href="#AEN228">Mise en place du certificat de CA racine
comme certificat fiable.</a></dt>
<dd>
<dl>
<dt><a href="#AEN235">Netscape/Mozilla</a></dt>
<dt><a href="#AEN238">Galeon</a></dt>
<dt><a href="#AEN241">Opera</a></dt>
<dt><a href="#AEN244">Internet Explorer</a></dt>
</dl>
</dd>
<dt><a href="#AEN248">Gestion des certificats</a></dt>
<dd>
<dl>
<dt><a href="#AEN250">Création et signature de demandes de
certificats</a></dt>
<dt><a href="#AEN259">Révocation de certificat</a></dt>
<dt><a href="#AEN268">Renouvellement d'un certificat</a></dt>
<dt><a href="#AEN276">Affichage d'un certificat</a></dt>
<dt><a href="#AEN280">Le fichier index.txt</a></dt>
<dt><a href="#AEN283">Élaborer son service web
d'autorité de certification</a></dt>
</dl>
</dd>
</dl>
</dd>
<dt>3. <a href="#AEN297">Emploi des certificats avec les
applications</a></dt>
<dd>
<dl>
<dt><a href="#AEN299">Sécurisation des protocoles
Internet</a></dt>
<dd>
<dl>
<dt><a href="#AEN301">mod_ssl (Apache) et les certificats</a></dt>
<dt><a href="#AEN312">IMAPS et les certificats</a></dt>
<dt><a href="#AEN315">POPS et les certificats</a></dt>
<dt><a href="#AEN319">Postfix et les certificats</a></dt>
<dt><a href="#AEN322">Stunnel et les certificats</a></dt>
<dt><a href="#AEN325">Création et signature de clef avec
Microsoft Key Manager</a></dt>
</dl>
</dd>
<dt><a href="#AEN335">Sécurisation du courrier
électronique</a></dt>
<dd>
<dl>
<dt><a href="#AEN337">Création et emploi d'un certificat
S/MIME</a></dt>
<dt><a href="#AEN343">Emploi du certificat S/MIME avec MS
Outlook</a></dt>
<dt><a href="#AEN355">Emploi du certificat S/MIME avec MS Outlook
Express</a></dt>
<dt><a href="#AEN358">Emploi du certificat S/MIME avec Netscape
Messenger</a></dt>
<dt><a href="#AEN361">Emploi du certificat S/MIME avec
Evolution</a></dt>
<dt><a href="#AEN364">Emploi du certificat S/MIME avec
Balsa</a></dt>
<dt><a href="#AEN367">Emploi du certificat S/MIME avec
KMail</a></dt>
</dl>
</dd>
<dt><a href="#AEN370">Protection des fichiers</a></dt>
<dd>
<dl>
<dt><a href="#AEN372">WinCrypt</a></dt>
</dl>
</dd>
<dt><a href="#AEN383">Sécurisation des programmes</a></dt>
<dd>
<dl>
<dt><a href="#AEN385">Micosoft Code</a></dt>
</dl>
</dd>
<dt><a href="#AEN394">IPSec</a></dt>
<dd>
<dl>
<dt><a href="#AEN397">FreeS/WAN</a></dt>
</dl>
</dd>
</dl>
</dd>
<dt>4. <a href="#AEN451">PKI Globale</a></dt>
<dd>
<dl>
<dt><a href="#AEN453">PKIs existantes</a></dt>
<dt><a href="#AEN458">Le besoin d'une PKI globale</a></dt>
</dl>
</dd>
</dl>
</div>
<div class="CHAPTER">
<hr>
<h1><a name="AEN60" id="AEN60"></a>Chapitre 1. Principes
généraux</h1>
<div class="SECT1">
<h2 class="SECT1"><a name="AEN62" id="AEN62">Introduction</a></h2>
<p>Comme moi, vous avez sûrement lu avec attention les pages
de manuel des applications fournies par le projet <a href=
"http://www.openssl.org/" target="_top">OpenSSL</a> et, comme moi
autrefois, vous ne voyez pas trop par où commencer ni
comment travailler de façon sécurisée avec des
certificats. Ce document répond à l'essentiel de vos
questions.</p>
<p>Ce guide pratique traite aussi d'applications hors du monde
Linux. Il ne sert à rien d'émettre des certificats
qu'on ne peut pas utiliser … Toutes les applications ne
figurent pas ici. Envoyez moi donc s'il vous plaît vos ajouts
et corrections. On peut me contacter en anglais à l'adresse
suivante : <code class="EMAIL"><<a href=
"mailto:franck@sopac.org">franck@sopac.org</a>></code>.</p>
<p>La version originale de ce guide pratique est publié via
le <a href="http://www.tldp.org/" target="_top">Projet de
documentation Linux</a>. Vous y trouverez la dernière
version originale de ce document.</p>
<p>La version française de ce document est publiée
par le projet de traduction <a href="http://www.traduc.org" target=
"_top">traduc.org</a>. Vous y trouverez notamment la
dernière <a href=
"http://www.traduc.org/docs/HOWTO/lecture/SSL-Certificates-HOWTO.html"
target="_top">version française</a> de ce document.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="COPYRIGHT" id="COPYRIGHT">Droits
d'utilisation et limitation de responsabilité</a></h3>
<p>Ce document est distribué dans l'espoir qu'il se
révélera utile, mais SANS AUCUNE GARANTIE sans
même la garantie implicite qu'il soit PROPRE À LA
VENTE ou ADAPTÉ À UN BESOIN PARTICULIER.</p>
<p>En résumé, si les conseils qui vous sont
prodigués ici annihilent la sécurité de votre
application de commerce électronique, eh bien, tant pis pour
vous — ce n'est jamais de notre faute.
Désolé.</p>
<p>Copyright © 2001 Franck Martin et divers membres de la
liste de diffusion openssl-users. Ce document est diffusé
selon les termes de la licence de documentation libre <a href=
"http://www.gnu.org/" target="_top">GNU</a> (GFDL). Une version
française officieuse de la version 1.1 de cette licence est
disponible sur <a href=
"http://www.linux-france.org/prj/jargonf/general/gfdl.html" target=
"_top">http://www.linux-france.org/prj/jargonf/general/gfdl.html</a>.</p>
<p>Vous pouvez librement copier et distribuer (commercialement ou
gratuitement) ce document dans n'importe quel format. Il vous est
demandé de faire parvenir vos corrections et commentaires au
responsable actuel de ce document. Vous pouvez créer des
travaux dérivés de celui-ci et les distribuer si vous
respectez les conditions suivantes :</p>
<ol type="1">
<li>
<p>Faire parvenir vos travaux dérivés (dans le format
le plus approprié tel que SGML) au Projet de documentation
Linux (<a href="http://www.tldp.org" target="_top">LDP</a>), ou
à un projet du même type pour qu'il soit
diffusé sur internet. Si vous n'envoyez pas votre document
au LDP, informez le LDP de l'endroit où votre document est
disponible.</p>
</li>
<li>
<p>Diffuser vos travaux dérivés sous la même
licence, ou sous la licence publique GNU (GPL). Inclure la notice
précisant les droits d'utilisation, et au moins un pointeur
sur la licence utilisée.</p>
</li>
<li>
<p>Reconnaître la contribution des précédents
auteurs et contributeurs principaux. Si vous envisagez de
réaliser un travail dérivé autre qu'une
traduction, il vous est demandé d'en discuter au
préalable avec le responsable actuel de ce document.</p>
</li>
</ol>
<p>Il vous est également demandé que si vous publiez
ce guide pratique dans un format papier, vous envoyiez à ses
auteurs quelques exemplaires à des fins d'<span class=
"emphasis"><i class=
"EMPHASIS">évaluation</i></span> :-). Vous voudrez
peut-être également m'envoyer quelque chose pour
assaisonner mes épinards ;-)</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN91" id="AEN91">Disclaimer and
Licence</a></h3>
<div class="NOTE">
<blockquote class="NOTE">
<p><b>Note :</b> La licence de ce document nous oblige
à inclure une copie en anglais de ce texte. La version
française de ce texte se trouve à la section
précédente.</p>
</blockquote>
</div>
<p>This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
<p>In short, if the advises given here break the security of your
e-commerce application, then tough luck- it's never our fault.
Sorry.</p>
<p>Copyright © 2001 by Franck Martin and others from the
openssl-users mailing list under GFDL (the <a href=
"http://www.gnu.org/" target="_top">GNU</a> Free Documentation
License).</p>
<p>Please freely copy and distribute (sell or give away) this
document in any format. It's requested that corrections and/or
comments be forwarded to the document maintainer. You may create a
derivative work and distribute it provided that you:</p>
<ol type="1">
<li>
<p>Send your derivative work (in the most suitable format such as
sgml) to the LDP (Linux Documentation Project) or the like for
posting on the Internet. If not the LDP, then let the LDP know
where it is available.</p>
</li>
<li>
<p>License the derivative work with this same license or use GPL.
Include a copyright notice and at least a pointer to the license
used.</p>
</li>
<li>
<p>Give due credit to previous authors and major contributors. If
you're considering making a derived work other than a translation,
it's requested that you discuss your plans with the current
maintainer.</p>
</li>
</ol>
<p>It is also requested that if you publish this HOWTO in hardcopy
that you send the authors some samples for 'review purposes' :-).
You may also want to send something to cook my noodles ;-)</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN108" id=
"AEN108">Pré-requis</a></h3>
<p>Comme indiqué dans l'introduction, ce document est un
aide-mémoire et vous devez donc consulter les pages de
manuel du paquet OpenSSL. La lecture de documents relatifs à
la sécurité est vivement conseillée afin de
comprendre comment votre sécurité peut être
compromise. Les certificats sont destinés à
améliorer la sécurité des transactions et il
donc important que vous compreniez les implications de vos actes en
terme de sécurité ainsi que les limitations
d'OpenSSL.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN111" id="AEN111">Que sont SSL et les
certificats ?</a></h2>
<p>Le protocole SSL (<span class="emphasis"><i class=
"EMPHASIS">Secure Socket Layer</i></span>) a été
créé par Netscape pour sécuriser les
transactions entre les serveur web et les outils de navigation. Il
a recours à un tiers, l'autorité de certification
(<span class="emphasis"><i class="EMPHASIS">CA/Certificate
Authority</i></span>) qui identifie n'importe laquelle des
extrémités ou les deux. Il s'agit du fonctionnement
en très résumé.</p>
<ol type="1">
<li>
<p>Un navigateur demande une page web sécurisée (en
général https://).</p>
</li>
<li>
<p>Le serveur web émet sa clef publique accompagnée
de son certificat.</p>
</li>
<li>
<p>Le navigateur vérifie que le certificat a
été émis par un tiers fiable (en
général une autorité de certification racine),
qu'il est toujours valide et qu'il se rapporte bien au site en
cours.</p>
</li>
<li>
<p>Le navigateur emploie la clef publique du serveur pour chiffrer
une clef de chiffrement symétrique aléatoire et
l'envoie au serveur web avec l'URL demandée et diverses
données HTTP chiffrées.</p>
</li>
<li>
<p>Le serveur web déchiffre la clef de chiffrement
symétrique grâce à sa sa clef privée et
utilise la clef de chiffrement symétrique pour
récupérer l'URL et les données HTTP.</p>
</li>
<li>
<p>Le serveur renvoie le document html et les données HTTP
chiffrées avec la clef symétrique.</p>
</li>
<li>
<p>Le navigateur déchiffre l'ensemble avec la clef
symétrique et affiche les informations.</p>
</li>
</ol>
<p>Plusieurs concepts méritent d'être
assimilés.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN132" id="AEN132">Clef publique /
clef privée</a></h3>
<p>Le chiffrement à base de clef publique garantit qu'une
donnée chiffrée par une clef, publique ou
privée, ne peut être déchiffrée que par
la clef associée. Cela peut paraître surprenant mais
croyez moi, ça fonctionne. Les clefs sont de même
nature et leurs rôles peuvent être
inversés : ce que l'une chiffre est déchiffrable
par l'autre. La paire de clef repose sur des nombres premiers et
leur longueur, exprimée en digits binaires, traduit la
difficulté qu'il y a à déchiffrer un message
sans connaissance à priori de la clef nécessaire.
L'astuce consiste à conserver une clef secrète (la
clef privée) et à distribuer l'autre clef (la clef
publique) à tout le monde. N'importe qui peut vous envoyer
un message chiffré mais personne d'autre que vous ne peut le
déchiffrer tant que vous êtes le seul à
conserver un des deux membres de la paire de clefs. On peut
également prouver qu'un message provient de vous en le
chiffrant avec votre clef privée : seule la clef
publique correspondante le déchiffrera. Notez que le message
n'est pas protégé parce que vous le signez. Tout le
monde a accès à la clef de déchiffrement, ne
l'oubliez pas.</p>
<p>Le problème consiste à obtenir la clef publique du
correspondant. En général, vous lui demanderez de la
transmettre via un message signé qui la contiendra
accompagnée d'un certificat.</p>
<pre class="PROGRAMLISTING">
Message-->[Clef publique]-->Message chiffré-->[Clef privée]-->Message
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN137" id="AEN137">Le
certificat</a></h3>
<p>Qu'est-ce qui vous garantit que vous dialoguez bien avec la
bonne personne ou le bon site web ? En principe, quelqu'un
aura fait l'effort (s'il est sérieux) de vérifier que
les propriétaires du site sont bien ceux qu'ils affirment
être. On fait naturellement confiance à ce
quelqu'un : son certificat, un certificat racine, est
incorporé à votre navigateur. Un certificat contient
des informations relatives à son propriétaire comme
une adresse électronique, un nom, l'usage prévu du
certificat, une durée de validité, un identifiant de
localisation ou un nom qualifié (<span class=
"emphasis"><i class="EMPHASIS">DN/Distinguished Name</i></span>)
qui comprend le nom d'usage (<span class="emphasis"><i class=
"EMPHASIS">CN/Common Name</i></span>) et l'identifiant du
signataire du certificat. Le certificat comprend également
la clef publique et un haché pour garantir
l'intégrité du message. Comme vous avez
décidé de faire confiance au signataire du
certificat, vous accordez du crédit à son contenu. On
parle d'arbre de confiance de certification ou de chemin de
certification. En général, le navigateur et les
applications incluent d'office le certificat racine
d'autorités de certification bien connues. L'autorité
de certification tient à jour une liste des certificats
signés ainsi qu'une liste des certificats
révoqués. Un certificat n'est pas fiable tant qu'il
n'est pas signé puisque seul un certificat signé ne
peut pas être modifié. Un certificat peut se signer
lui-même. On parle alors de certificat auto-signé.
Tous les certificats de CA racines sont ce type.</p>
<pre class="PROGRAMLISTING">
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root CA/Email=administrator@sopac.org
Validity
Not Before: Nov 20 05:47:44 2001 GMT
Not After : Nov 20 05:47:44 2002 GMT
Subject: C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=www.sopac.org/Email=administrator@sopac.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:ba:54:2c:ab:88:74:aa:6b:35:a5:a9:c1:d0:5a:
9b:fb:6b:b5:71:bc:ef:d3:ab:15:cc:5b:75:73:36:
b8:01:d1:59:3f:c1:88:c0:33:91:04:f1:bf:1a:b4:
7a:c8:39:c2:89:1f:87:0f:91:19:81:09:46:0c:86:
08:d8:75:c4:6f:5a:98:4a:f9:f8:f7:38:24:fc:bd:
94:24:37:ab:f1:1c:d8:91:ee:fb:1b:9f:88:ba:25:
da:f6:21:7f:04:32:35:17:3d:36:1c:fb:b7:32:9e:
42:af:77:b6:25:1c:59:69:af:be:00:a1:f8:b0:1a:
6c:14:e2:ae:62:e7:6b:30:e9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
FE:04:46:ED:A0:15:BE:C1:4B:59:03:F8:2D:0D:ED:2A:E0:ED:F9:2F
X509v3 Authority Key Identifier:
keyid:E6:12:7C:3D:A1:02:E5:BA:1F:DA:9E:37:BE:E3:45:3E:9B:AE:E5:A6
DirName:/C=FJ/ST=Fiji/L=Suva/O=SOPAC/OU=ICT/CN=SOPAC Root CA/Email=administrator@sopac.org
serial:00
Signature Algorithm: md5WithRSAEncryption
34:8d:fb:65:0b:85:5b:e2:44:09:f0:55:31:3b:29:2b:f4:fd:
aa:5f:db:b8:11:1a:c6:ab:33:67:59:c1:04:de:34:df:08:57:
2e:c6:60:dc:f7:d4:e2:f1:73:97:57:23:50:02:63:fc:78:96:
34:b3:ca:c4:1b:c5:4c:c8:16:69:bb:9c:4a:7e:00:19:48:62:
e2:51:ab:3a:fa:fd:88:cd:e0:9d:ef:67:50:da:fe:4b:13:c5:
0c:8c:fc:ad:6e:b5:ee:40:e3:fd:34:10:9f:ad:34:bd:db:06:
ed:09:3d:f2:a6:81:22:63:16:dc:ae:33:0c:70:fd:0a:6c:af:
bc:5a
-----BEGIN CERTIFICATE-----
MIIDoTCCAwqgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBiTELMAkGA1UEBhMCRkox
DTALBgNVBAgTBEZpamkxDTALBgNVBAcTBFN1dmExDjAMBgNVBAoTBVNPUEFDMQww
CgYDVQQLEwNJQ1QxFjAUBgNVBAMTDVNPUEFDIFJvb3QgQ0ExJjAkBgkqhkiG9w0B
CQEWF2FkbWluaXN0cmF0b3JAc29wYWMub3JnMB4XDTAxMTEyMDA1NDc0NFoXDTAy
MTEyMDA1NDc0NFowgYkxCzAJBgNVBAYTAkZKMQ0wCwYDVQQIEwRGaWppMQ0wCwYD
VQQHEwRTdXZhMQ4wDAYDVQQKEwVTT1BBQzEMMAoGA1UECxMDSUNUMRYwFAYDVQQD
Ew13d3cuc29wYWMub3JnMSYwJAYJKoZIhvcNAQkBFhdhZG1pbmlzdHJhdG9yQHNv
cGFjLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAulQsq4h0qms1panB
0Fqb+2u1cbzv06sVzFt1cza4AdFZP8GIwDORBPG/GrR6yDnCiR+HD5EZgQlGDIYI
2HXEb1qYSvn49zgk/L2UJDer8RzYke77G5+IuiXa9iF/BDI1Fz02HPu3Mp5Cr3e2
JRxZaa++AKH4sBpsFOKuYudrMOkCAwEAAaOCARUwggERMAkGA1UdEwQCMAAwLAYJ
YIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1Ud
DgQWBBT+BEbtoBW+wUtZA/gtDe0q4O35LzCBtgYDVR0jBIGuMIGrgBTmEnw9oQLl
uh/anje+40U+m67lpqGBj6SBjDCBiTELMAkGA1UEBhMCRkoxDTALBgNVBAgTBEZp
amkxDTALBgNVBAcTBFN1dmExDjAMBgNVBAoTBVNPUEFDMQwwCgYDVQQLEwNJQ1Qx
FjAUBgNVBAMTDVNPUEFDIFJvb3QgQ0ExJjAkBgkqhkiG9w0BCQEWF2FkbWluaXN0
cmF0b3JAc29wYWMub3JnggEAMA0GCSqGSIb3DQEBBAUAA4GBADSN+2ULhVviRAnw
VTE7KSv0/apf27gRGsarM2dZwQTeNN8IVy7GYNz31OLxc5dXI1ACY/x4ljSzysQb
xUzIFmm7nEp+ABlIYuJRqzr6/YjN4J3vZ1Da/ksTxQyM/K1ute5A4/00EJ+tNL3b
Bu0JPfKmgSJjFtyuMwxw/Qpsr7xa
-----END CERTIFICATE-----
</pre>
<p>Comme vous avez pu le remarquer, le certificat mentionne son
émetteur, contient la clef publique de son
propriétaire, la période de validité du
certificat et une signature pour vérifier qu'il n'a pas
été modifié. Le certificat ne contient PAS la
clef privée qui ne doit jamais être
révélée. Ce certificat contient tous les
éléments nécessaires pour envoyer un message
chiffré à son propriétaire ou pour
vérifier un message dont la signature lui est
attribuée.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN144" id="AEN144">La clef
symétrique</a></h3>
<p>Les algorithmes de chiffrement à paire de clefs
publique/privée sont intéressants mais pas toujours
pratiques. Ils sont asymétriques parce que des clefs
différentes sont requises au chiffrement et au
déchiffrement. La même clef ne peut remplir les deux
rôles. Les algorithmes symétriques actuels sont
nettement plus rapides que les algorithmes asymétriques. Une
clef symétrique est toutefois potentiellement peu
sûre. Il suffit qu'un individu nuisible se la procure et il
n'y a plus d'information protégée. La clef
symétrique doit donc être transmise au correspondant
sans être interceptée. Rien n'est sûr dans
l'Internet. La solution consiste à envelopper la clef
symétrique dans un message chiffré au moyen d'un
algorithme asymétrique. Comme personne d'autre que vous ne
connaît la clef privée, le message chiffré avec
la clef privée est sûr (enfin, relativement, rien
n'est garanti en ce bas monde sinon la mort et les impôts).
La clef de chiffrement symétrique est choisie
aléatoirement de telle sorte qu'une compromission
accidentelle n'ait pas d'impact sur les transactions futures.</p>
<pre class="PROGRAMLISTING">
Clef symétrique-->[Clef publique]-->Clef de session chiffrée-->[Clef privée]-->Clef symétrique
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN148" id="AEN148">Les algorithmes de
chiffrement</a></h3>
<p>Différents algorithmes existent, symétriques ou
non, avec diverses longueurs de clef. En principe les algorithmes
ne peuvent pas être brevetés. Si Henri Poincaré
l'avait fait, il aurait pu poursuivre Albert Einstein …
Les algorithmes ne peuvent donc pas être brevetés,
à l'exception toutefois des États-Unis. OpenSSL est
mis au point dans des pays où les algorithmes ne sont pas
brevetés et où l'usage de la cryptographie n'est pas
réservé à des agences d'état pour des
fins militaires ou d'espionnage. Lors de la négociation
entre le navigateur et le serveur web, les applications fournissent
l'une à l'autre une liste d'algorithmes qu'elles peuvent
traiter, classés par ordre de préférence.
L'algorithme préféré en commun est choisi.
OpenSSL peut être compilé sans inclure la gestion de
certains algorithmes de façon à rester utilisable
dans des pays où l'usage de la cryptographie est
réglementé.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN151" id="AEN151">Le hachage</a></h3>
<p>Un hachage s'obtient par application d'une fonction, dite
à sens unique, à un message. La fonction
présente cette propriété qu'il n'est pas
possible de former un message initial à partir du
haché. En outre, le haché est complètement
modifié en cas de changement, même mineur, du message
d'origine. Il est donc pratiquement impossible de modifier un
message à haché constant. Les fonctions de hachage
s'emploient dans des mécanismes à base de mot de
passe, des vérifications d'intégrité (MD5) et
en général pour vérifier que des
données n'ont pas été altérées.
L'IETF (<span class="emphasis"><i class="EMPHASIS">Internet
Engineering Task Force</i></span>) préfère
apparemment SHA1 à MD5 pour diverses raisons techniques (cf
RFC2459 7.1.2 and 7.1.3).</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN155" id="AEN155">La
signature</a></h3>
<p>La signature d'un message consiste à associer une
identité à son contenu. Le plus souvent il s'agit de
prouver qui en est l'auteur mais ce n'est pas toujours le cas. Le
message peut être textuel ou être le certificat de
quelqu'un d'autre. Pour signer un message, son haché est
d'abord créé puis ce dernier est chiffré avec
la clef privée. Le résultat et votre certificat
accompagnent ensuite le message d'origine. Le destinataire de
l'ensemble recalcule le haché et le compare au
résultat du déchiffrement de la signature avec votre
clef publique supposée. Il vérifie ensuite la
validité de votre certificat.</p>
<p>Ce type de signature permet de transmettre la clef publique et
le certificat à chaque correspondant.</p>
<p>Il y a deux façons de signer, soit en incluant le message
à la signature, soit en chiffrant le message et sa
signature. Cette dernière forme n'est qu'un chiffrement
très pauvre car n'importe quelle application qui dispose de
la clef publique peut l'inverser. La première forme permet
de passer un contenu textuel à l'utilisateur en toute
circonstance tandis que la deuxième l'interdit dès
que le message a été altéré.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN160" id="AEN160">Le mot de
passe</a></h3>
<p>Le mot de passe correspond à un mot de passe originel
Unix à ceci près qu'il est normalement plus long que
8 caractères et ne se limite pas forcément à
un seul mot. De nos jours les systèmes Unix utilisent des
hachés MD5 ou autres qui n'imposent plus de limitation de
longueur de mot de passe.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN163" id="AEN163">L'infrastructure de
clefs publiques</a></h3>
<p>L'infrastructure de clefs publiques (PKI/Public Key
Infrastructure) désigne le système de gestion et la
base de données qui permettent de signer les certificats, de
tenir à jour une liste de certificats révoquer, de
distribuer les clefs publiques, etc. Il est le plus souvent
accessible via un site web ou un serveur LDAP. Certaines
entités sont également chargées de
vérifier que vous êtes bien qui vous prétendez
être. On peut avoir recours à une PKI commerciale
connue dont le certificat racine se trouve déjà dans
votre application. Un problème apparaît au niveau du
courrier électronique pour lequel vous avez le choix entre
l'emploi d'un certificat générique ou une facturation
d'environ 100E par an pour chaque adresse électronique. De
plus, il n'y a aucun moyen d'obtenir la clef publique de quelqu'un
sans avoir reçu auparavant de ce correspondant son
certificat (accompagné de sa clef publique).</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN166" id="AEN166">Qu'en est-il de
S/MIME et des autres protocoles ?</a></h2>
<p>Bien que SSL ait été mis au point pour les
services web, il peut s'appliquer au chiffrement de n'importe quel
protocole. C'est le cas d'IMAPS, de POPS, de SMTPS …
Ces protocoles dupliquent sur un port alternatif leur service
originel non-sécurisé. SSL peut également
chiffrer n'importe quelle transaction sans qu'elle ait besoin
d'être en ligne. S/MIME est construit de cette façon
en insérant un message chiffré dans un courrier
électronique usuel. Le message est chiffré avec la
clef publique du destinataire. Si vous n'êtes pas en contact
avec votre correspondant, vous devez connaître sa clef
publique, soit que vous l'ayez récupérée
depuis son site web, depuis un annuaire ou qu'il vous l'ait
envoyée au préalable par courrier électronique
accompagnée de son certificat (pour s'assurer qu'il s'agit
bien de la personne souhaitée).</p>
<p>Dans l'autre sens, un navigateur peut transmettre son propre
certificat au serveur web afin de se faire identifier.</p>
</div>
</div>
<div class="CHAPTER">
<hr>
<h1><a name="AEN170" id="AEN170"></a>Chapitre 2. Gestion des
certificats</h1>
<div class="SECT1">
<h2 class="SECT1"><a name="AEN172" id=
"AEN172">Installation</a></h2>
<p>De nos jours l'installation d'OpenSSL ne soulève
guère de difficultés. Les distributions incluent des
gestionnaires de paquets. Reportez-vous à la documentation
de votre distribution ou aux fichiers README et INSTALL qu'inclut
l'archive tar d'OpenSSL. Ce guide pratique n'a pas pour objectif de
traiter de l'installation mais de l'utilisation.</p>
<p>Je décris quelques options d'installation standard dont
la connaissance est nécessaire pour les exemples qui
suivent. Votre installation peut différer.</p>
<p>Les certificats OpenSSL sont stockés dans /var/ssl.
Toutes les commandes et répertoires de ce document partent
de /var/ssl. Ce n'est pas indispensable mais les exemples en sont
facilité.</p>
<p>OpenSSL cherche par défaut son fichier de configuration
dans /usr/lib/ssl/openssl.cnf. Ajoutez donc systématiquement
-config /etc/openssl.cnf aux commandes telles openssl ca et openssl
req (par exemple). Je me sers de /etc/openssl.cnf pour maintenir
l'ensemble des fichiers de configuration dans /etc.</p>
<p>Les utilitaires et diverses bibliothèques se trouvent
dans /usr/lib/ssl</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN179" id="AEN179">L'utilitaire
CA.pl</a></h3>
<p>Vérifiez que CA.pl se trouve dans un répertoire
qui figure dans le chemin d'accès par défaut aux
programmes. Il peut se trouver dans le répertoire
/usr/lib/ssl. CA.pl permet de masquer la complexité des
commandes openssl. Je l'utilise dans tous les exemples en indiquant
entre crochets l'équivalent openssl.</p>
<p>Modifiez CA.pl de façon à ce que les appels
à openssl ca et openssl req incluent l'option -config
/etc/openssl.cnf.</p>
<pre class="PROGRAMLISTING">
#$SSLEAY_CONFIG=$ENV{"SSLEAY_CONFIG"};
$SSLEAY_CONFIG="-config /etc/openssl.cnf";
#$CATOP="./demoCA";
$CATOP="/var/ssl";
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN184" id="AEN184">Le fichier
openssl.cnf</a></h3>
<p>/etc/openssl.cnf doit être configuré de
façon à minimiser les données à
renseigner à chaque invocation des utilitaires.</p>
<pre class="PROGRAMLISTING">
#---Begin---
#
# Fichier de configuration pour OpenSSL.
# S'emploie surtout pour les demandes de certificats.
#
# NdT: autre chose que de l'ASCII dans les fichiers de
# configuration me rend nerveux. Il y a donc un zest de triche
# dans ce qui suit. Vous ne voudriez pas me rendre nerveux, non ? :o)
#
RANDFILE = $ENV::HOME/.rnd
oid_file = $ENV::HOME/.oid
oid_section = new_oids
# Section des extension X.509v3 pour se servir du
# fichier avec l'option -extfile de la commande
# "openssl x509"
# extensions =
# (Variante: employer un fichier de configuration qui
# n'a que des extensions X.509v3 dans sa section
# principale [= default])
[ new_oids ]
# On ajoute des OID pour les commandes 'ca' et 'req'.
# Par exemple:
# testoid1=1.2.3.4
# L'emploi de substitutions est possible:
# testoid2=${testoid1}.5.6
####################################################################
[ ca ]
default_ca = CA_default # Section de la CA standard
####################################################################
[ CA_default ]
dir = /var/ssl # Emplacement de base
certs = $dir/certs # Emplacement de stockage des nouveaux certificats
crl_dir = $dir/crl # Emplacement des nouvelles CRL
database = $dir/index.txt # Fichier d'index
new_certs_dir = $dir/newcerts # Emplacement des nouveaux certificats
certificate = $dir/cacert.pem # Certificat de la CA
serial = $dir/serial # Numero de serie en cours
crl = $dir/crl.pem # CRL en cours
private_key = $dir/private/cakey.pem # Clef privee
RANDFILE = $dir/private/.rand # Fichier d'alea
x509_extensions = usr_cert # Extensions pour les certificats
# Extensions pour la CRL. Remarque: Netscape communicator n'aime pas les CRL de version 2,
# on commente donc pour avoir une CRL version 1
# crl_extensions = crl_ext
default_days = 365 # Duree de vie d'un certificat
default_crl_days= 7 # Intervalle entre CRLs
default_md = sha1 # Algorithme de hachage
preserve = no # Conserve-t-on l'ordre du DN ?
# Diverses facons de specifier l'allure des requetes
# Pour une requete de type CA, les attributs doivent etre les memes
# Les champs 'optional' et 'supplied' correspondent respectivement
# a des champs optionnels et fournis :o)
policy = policy_match
# Typage CA
[ policy_match ]
countryName = match
stateOrProvinceName = optional
localityName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
# Typage tout-venant
# Tous les types d'objets acceptables doivent etre enumeres
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
default_md = sha1
x509_extensions = v3_ca # Extensions pour un certificat auto-signant
# Mot de passe pour les clefs privees (l'application le demande s'il est vide).
# input_password = secret
# output_password = secret
# Masque pour les types de chaines valides. Plusieurs choix sont possibles.
# default: PrintableString, T61String, BMPString.
# pkix : PrintableString, BMPString.
# utf8only: only UTF8Strings.
# nombstr : PrintableString, T61String (pas de BMPStrings ni de UTF8Strings).
# MASK:XXXX valeur litterale.
# Attention: certaines versions de Netscape plantent sur les BMPStrings ou les UTF8Strings.
# A utiliser avec prudence!
string_mask = nombstr
# req_extensions = v3_req # Extensions pour une demande de certificat
[ req_distinguished_name ]
countryName = Nom du pays (code sur 2 lettres)
countryName_default = FJ
countryName_min = 2
countryName_max = 2
stateOrProvinceName = Etat ou province (nom complet)
stateOrProvinceName_default = Fiji
localityName = Ville
localityName_default = Suva
0.organizationName = Organisation (nom de l'entreprise par exemple)
0.organizationName_default = SOPAC
# Possible mais pas normalement pas necessaire :-)
#1.organizationName = Second nom de l'organization
#1.organizationName_default = World Wide Web SARL
organizationalUnitName = Nom du departement dans l'organisation
organizationalUnitName_default = ITU
commonName = Nom d'usage
commonName_max = 64
emailAddress = Addresse e-mail
emailAddress_max = 40
# SET-ex3 = SET extension number 3
[ req_attributes ]
challengePassword = Un mot de passe de challenge
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = Nom optionnel
[ usr_cert ]
# Extensions ajoutees quand 'ca' signe une requete.
# Contraire aux suggestions PKIX mais des CA le font et certains
# logiciels le demandent pour ne pas confondre un certificat
# utilisateur avec un certificat de CA
basicConstraints=CA:FALSE
# Examples d'utilisation de nsCertType. En cas d'omission,
# le certificat peut servir a tout sauf a signer des objets
# Serveur SSL
# nsCertType = server
# Certificat promis a signer des objets.
# nsCertType = objsign
# Client normal.
# nsCertType = client, email
# Tout.
# nsCertType = client, email, objsign
# Classique pour un certificat client.
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment
# Pour la boiboite de commentaire de Netscape.
nsComment = "Certificate issued by https://www.sopac.org/ssl/"
# Recommandations PKIX sans effets secondaires facheux.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
# On importe l'adresse e-mail
# pour les attributs subjectAltName et issuerAltname.
# subjectAltName=email:copy
# Informations relatives au sujet.
# issuerAltName=issuer:copy
# Adresse de base des autres URL si on n'en donne pas
# au cas par cas.
nsBaseUrl = https://www.sopac.org/ssl/
# Adresse de la CRL du moment.
nsCaRevocationUrl = https://www.sopac.org/ssl/sopac-ca.crl
# Adresse pour revoquer un certificat.
nsRevocationUrl = https://www.sopac.org/ssl/revocation.html?
# Adresse pour renouveller un certificat.
nsRenewalUrl = https://www.sopac.org/ssl/renewal.html?
# Adresse des pratiques de la CA.
nsCaPolicyUrl = https://www.sopac.org/ssl/policy.html.
# Adresse du certificat du signataire.
issuerAltName = URI:https://www.sopac.org/ssl/sopac.crt.
# Adresse de la CRL du moment.
crlDistributionPoints = URI:https://www.sopac.org/ssl/sopac-ca.crl
[ v3_ca ]
# Extensions d'une CA standard
# Recommandation PKIX
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
# Recommandation PKIX que certains bugware n'aiment pas
# basicConstraints = critical,CA:true
# On utilise donc plutot ceci
basicConstraints = CA:true
# Emploi de la clef: typique d'un certificat de CA.
# On le laisse inactif pour prevenir l'emploi d'un
# certificat auto-signant de test.
# keyUsage = cRLSign, keyCertSign
# En fonction des besoins.
# nsCertType = sslCA, emailCA
# On inclut l'adresse e-mail dans le nom alternatif du sujet (recommendation PKIX)
# subjectAltName=email:copy
# On copie les informations du signataire
# issuerAltName=issuer:copy
# Encodage DER en base 16 d'une extension: licence de pilotage requise!
# 1.2.3.5=RAW:02:03
# On peut surcharger une extension standard:
# basicConstraints= critical, RAW:30:03:01:01:FF
# Message pour la boite d'affichage de Netscape.
nsComment = "Certificat en provenance de https://www.sopac.org/ssl/"
# Adresse de base des autres URL si on n'en donne pas
# au cas par cas.
nsBaseUrl = https://www.sopac.org/ssl/
# Adresse de la CRL du moment.
nsCaRevocationUrl = https://www.sopac.org/ssl/sopac-ca.crl
# Adresse pour revoquer un certificat.
nsRevocationUrl = https://www.sopac.org/ssl/revocation.html?
# Adresse pour renouveller un certificat.
nsRenewalUrl = https://www.sopac.org/ssl/renewal.html?
# Adresse des pratiques de la CA.
nsCaPolicyUrl = https://www.sopac.org/ssl/policy.html
# Adresse du certificat du signataire.
issuerAltName = URI:https://www.sopac.org/ssl/sopac.crt
# Adresse de la CRL du moment.
crlDistributionPoints = URI:https://www.sopac.org/ssl/sopac-ca.crl
[ crl_ext ]
# Extensions de CRL
# Seuls issuerAltName et authorityKeyIdentifier se justifient dans une CRL.
# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always
#----End----
</pre>
<p>Quelques remarques au sujet du fichier openssl.cnf</p>
<ul>
<li>
<p>Plusieurs variables se présentent avec les suffixes
_default, _min et _max pour leurs valeurs minimales ou leurs
nombres minimaux et maximaux de caractères
respectivement.</p>
</li>
<li>
<p>Le fichier est basé sur des &lsqb;Sections&rsqb;
de variables.</p>
</li>
</ul>
<div class="VARIABLELIST">
<dl>
<dt>dir :</dt>
<dd>
<p>répertoire de base.</p>
</dd>
<dt>default_ca :</dt>
<dd>
<p>désigne la section des variables pour un certificat dont
le type n'est pas spécifié.</p>
</dd>
<dt>basicConstraints :</dt>
<dd>
<p>définit l'usage du certificat. CA:TRUE désigne un
certificat de CA racine par exemple.</p>
</dd>
</dl>
</div>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN207" id="AEN207">Création de
l'autorité de certification</a></h3>
<p>Utilisez la commande suivante après avoir modifié
de façon adéquate le fichier openssl.cnf :</p>
<pre class="PROGRAMLISTING">
CA.pl -newca
</pre>
<p>L'utilitaire demande de choisir un fichier contenant le
certificat de l'AC ou bien il propose d'en créer un. A titre
d'exercice, laissez vous guider dans la création d'une AC.
La partie suivante remplace cette AC par une AC de durée de
vie plus importante. CA.pl ne génère que des
certificats valables 365 jours.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN212" id="AEN212">Création
d'une autorité de certification racine</a></h2>
<p>La commande suivante crée un certificat auto-signé
(pour une autorité de certification donc).</p>
<pre class="PROGRAMLISTING">
CA.pl -newcert
openssl req -config /etc/openssl.cnf -new -x509 -keyout newreq.pem \
-out newreq.pem -days 365
</pre>
<p>Le nouveau certificat se trouve dans le fichier newreq.pem.
Utilisez un CN du type « ACME root
Certificate ». Le fichier est à diviser en deux
parties, cacert.pem et private/cakey.pem. La partie
délimitée par -RSA PRIVATE KEY- va dans le fichier
private/cakey.pem tandis que la partie -CERTIFICATE- est
destinée au fichier cacert.pem. Supprimez newreq.pem une
fois l'opération effectuée.</p>
<p>Vérifiez à présent que le fichier index.txt
est vide et que le fichier serial contient la valeur 01.</p>
<p>Afin de ne pas avoir à renouveler tous les certificats
émis par une AC lorsque son certificat racine expire, il est
souhaitable d'augmenter la durée de vie de ce dernier. Les
autorités de certification commerciales emploient des
durées de 5 à 10 ans.</p>
<pre class="PROGRAMLISTING">
openssl req -config /etc/openssl.cnf -new -x509 -keyout private/cakey.pem \
-out cacert.pem -days 3650
</pre>
<p>La commande précédente est plus efficace que
« CA.pl -newcert » car elle place les
fichiers créés à l'emplacement souhaité
et génère une AC racine valable 10 ans.</p>
<p>Il reste à s'assurer que le certificat auto-signé
racine n'est employé que pour signer des certificats. La
confidentialité de la clef privée est très
importante. Ne la compromettez jamais en ôtant le mot de
passe. On peut envisager de la ranger sur un support amovible et de
n'y accéder qu'en cas de besoin. Si la machine est
compromise, la clef privée est ailleurs.</p>
<p>On dispose maintenant d'une autorité de certification
racine. Les utilisateurs doivent faire confiance à votre
certificat de CA et donc le récupérer et le charger
dans leurs navigateurs.</p>
<p>Il faudra renseigner le mot de passe lors de la signature de
chaque certificat.</p>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN224" id="AEN224">Création
d'une autorité de certification non-racine</a></h2>
<p>CORRIGEZ-MOI parce que je ne suis pas tout à fait
sûr de la procédure.</p>
<p>Un certificat peut être employé pour en signer un
autre pourvu qu'il soit valide et ait été
autorisé à le faire lors de sa création. On
peut donc créer une demande de certificat et une clef
privée, faire signer le certificat par un tiers et installer
le certificat signé et la clef privée. La partie
-PRIVATE KEY- va dans le fichier private/cakey.pem tandis que la
partie -CERTIFICATE- va dans cacert.pem.</p>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN228" id="AEN228">Mise en place du
certificat de CA racine comme certificat fiable.</a></h2>
<p>On commence par ôter du certificat tout ce qui
n'appartient pas à la section -CERTIFICATE-.</p>
<pre class="PROGRAMLISTING">
openssl x509 -in cacert.pem -out cacert.crt
</pre>
<p>On place ensuite le fichier obtenu sur son site web, par exemple
http://mysite.com/ssl/cacert.crt. Le serveur web doit
intégrer une description MIME pour les fichiers .crt. Le
certificat est prêt à être
téléchargé et utilisé par n'importe
quel navigateur.</p>
<p>Il est important de publier son certificat racine de CA sur un
site web car il est peu probable que les utilisateurs l'aient
déjà d'inclus dans leur navigateur. Notez que
n'importe qui peut imiter votre site web et votre certificat de CA
racine. Dans la mesure où on dispose de plusieurs chemins
pour transmettre l'information, il devient fortement improbable
qu'un attaquant arrive à tout contrôler.</p>
<p>Microsoft propose un service de mise à jour de Windows
qui propagera votre certificat racine aux programmes Internet
Explorer en circulation. Contactez Microsoft pour que votre
certificat soit ajouté à leur base de données
et intégré à leurs futurs paquets.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN235" id=
"AEN235">Netscape/Mozilla</a></h3>
<p>On récupère le certificat depuis le web ou le
système de fichiers avec Netscape. Ce dernier identifie
automatiquement le fichier comme un certificat racine et propose de
l'intégrer. Un assistant guide dans l'installation. A la fin
du processus, on précise le domaine d'application du
certificat : sécurisation web, signature de courrier
électronique ou signature de code.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN238" id="AEN238">Galeon</a></h3>
<p>Galeon fonctionne comme Mozilla en ce qu'il repose sur le
même moteur de rendu HTML. Il n'inclut toutefois pas d'outil
de gestion des certificats.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN241" id="AEN241">Opera</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN244" id="AEN244">Internet
Explorer</a></h3>
<p>On commence par aller à l'adresse de
téléchargement du certificat avant de le sauvegarder
en local. L'assistant d'installation de certificat est
invoqué par double-clic sur le fichier de certificat.
Internet Explorer installe spontanément les certificats
auto-signés dans la liste des autorités de
certification. A partir de ce point, Internet Explorer cesse
d'émettre des avertissements et considère comme
fiables les certificats signés avec ce certificat de CA
racine.</p>
<p>Il est également possible d'ouvrir le certificat depuis
Internet Explorer qui en affiche alors le contenu. L'assistant
démarre ensuite en appuyant sur le bouton d'installation du
certificat.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN248" id="AEN248">Gestion des
certificats</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN250" id="AEN250">Création et
signature de demandes de certificats</a></h3>
<pre class="PROGRAMLISTING">
CA.pl -newreq
(openssl req -config /etc/openssl.cnf -new -keyout newreq.pem \
-out newreq.pem -days 365)
</pre>
<p>La commande précédente crée une nouvelle
clef privée et une demande de certificat qu'elle place dans
newreq.pem. Pour sécuriser un site web, par exemple
www.sopac.org, on utilise le nom d'usage (CN) www.sopac.org. Pour
le courrier électronique de franck@sopac.org, on utiliserait
franck@sopac.org.</p>
<pre class="PROGRAMLISTING">
CA.pl -sign
(openssl ca -config /etc/openssl.cnf -policy policy_anything \
-out newcert.pem -infiles newreq.pem)
</pre>
<p>Cette commande signe la demande avec cacert.pem et sauve le
certificat dans newcert.pem. Le mot de passe de cacert.pem (le
certificat de CA) est nécessaire. Un fichier newcerts/xx.pem
est créé et les fichiers index.txt, serial sont mis
à jour.</p>
<p>La clef privée se trouve donc dans la section -PRIVATE
KEY- de newreq.pem et le certificat dans la section -CERTIFICATE-
de newcert.pem.</p>
<p>Une copie de newcert.pem est émise dans le
répertoire newcerts/ et l'enregistrement correspondant
ajouté à index.txt de telle sorte qu'un client puisse
accéder à l'information via un serveur web et
vérifier l'authenticité du certificat.</p>
<p>On note que le fichier newreq.pem contient aussi bien la demande
de certificat que la clef privée. La section -PRIVATE KEY-
n'est pas nécessaire à la signature et il faut
absolument la retirer avant de transmettre la demande à
quelqu'un d'autre pour qu'il la signe. De même, pour signer
une demande de certificat, il suffit d'obtenir la section
-CERTIFICATE REQUEST-. Il n'y a aucune raison de demander la clef
privée.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN259" id="AEN259">Révocation de
certificat</a></h3>
<p>La commande suivante révoque un certificat :</p>
<pre class="PROGRAMLISTING">
openssl -revoke newcert.pem
</pre>
<p>La base de données index.txt est modifiée en
conséquence et le certificat est annoté comme
révoqué. Il reste à
régénérer la liste de révocation des
certificats :</p>
<pre class="PROGRAMLISTING">
openssl ca -gencrl -config /etc/openssl.cnf -out crl/sopac-ca.crl
</pre>
<p>La liste de révocation (CRL/Certificate Revokation List)
doit être rendue publique, par exemple sur un site web.</p>
<p>Les paramètres crldays, crlhours permettent de
préciser la prochaine date de mise à jour de la CRL.
crlexts spécifie la section du fichier openssl.cnf à
employer pour créer une CRL de version 2 en place d'une CRL
de version 1.</p>
<pre class="PROGRAMLISTING">
openssl ca -gencrl -config /etc/openssl.cnf -crldays 7 \
-crlexts crl_ext -out crl/sopac-ca.crl
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN268" id="AEN268">Renouvellement d'un
certificat</a></h3>
<p>L'utilisateur transmet son ancienne demande de certificat ou en
régénère une nouvelle basée sur sa clef
privée.</p>
<p>Il faut alors révoquer l'ancien certificat et signer la
nouvelle demande de certificat.</p>
<p>L'ancien certificat se retrouve en cherchant dans le fichier
index.txt le nom qualifié (DN) qui correspond à la
requête. La procédure de révocation s'effectue
ensuite avec le numéro de série <xx> et le
fichier de certificat cert/<xx>.pem.</p>
<p>La signature de la nouvelle requête peut être
manuelle pour s'assurer que les dates de validité du
certificat seront correctes.</p>
<pre class="PROGRAMLISTING">
openssl ca -config /etc/openssl.cnf -policy policy_anything -out newcert.pem \
-infiles newreq.pem -startdate [now] -enddate [previous enddate+365days]
</pre>
<p>&lsqb;now&rsqb; et &lsqb;previous
enddate+365days&rsqb; sont à remplacer par des valeurs
adéquates.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN276" id="AEN276">Affichage d'un
certificat</a></h3>
<p>L'affichage sous forme textuelle du contenu d'un certificat sous
forme codée s'effectue avec la commande suivante :</p>
<pre class="PROGRAMLISTING">
openssl x509 -in newcert.pem -noout -text
</pre></div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN280" id="AEN280">Le fichier
index.txt</a></h3>
<p>Le fichier index.txt contient les références des
certificats créés par OpenSSL. Les enregistrements
sont annotés avec un R pour indiquer que le certificat est
révoqué, V qu'il est valide et E qu'il a
expiré.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN283" id="AEN283">Élaborer son
service web d'autorité de certification</a></h3>
<p>Être une autorité de certification implique
certaines tâches :</p>
<ol type="1">
<li>
<p>publier le certificat de CA racine pour qu'il puisse être
déployé dans les applications ;</p>
</li>
<li>
<p>publier la liste de révocation ;</p>
</li>
<li>
<p>afficher le contenu détaillé des certificats,
notamment leur numéro de série ;</p>
</li>
<li>
<p>fournir un formulaire de demande de certificats.</p>
</li>
</ol>
<p>Un serveur web et quelques scripts permettent de réaliser
toutes ces fonctions.</p>
<p>COMPLÉTEZ-MOI : code de l'interface web.</p>
</div>
</div>
</div>
<div class="CHAPTER">
<hr>
<h1><a name="AEN297" id="AEN297"></a>Chapitre 3. Emploi des
certificats avec les applications</h1>
<div class="SECT1">
<h2 class="SECT1"><a name="AEN299" id="AEN299">Sécurisation
des protocoles Internet</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN301" id="AEN301">mod_ssl (Apache) et
les certificats</a></h3>
<p>Il ne faut jamais se servir du certificat auto-signé de
la CA racine avec quelque application que ce soit, notamment avec
Apache qui oblige à supprimer le mot de passe de protection
de la clef privée.</p>
<p>On commence par créer et signer une demande de certificat
dont le nom d'usage (CN) est du type www.mysite.com. On ne conserve
que la section ---CERTIFICATE --- du certificat.</p>
<p>La clef doit être déverrouillée en en
autorisant l'usage sans devoir rentrer le mot de passe. On supprime
donc le mot de passe du fichier newreq.pem :</p>
<pre class="PROGRAMLISTING">
openssl rsa -in newreq.pem -out wwwkeyunsecure.pem
</pre>
<p>Comme la clef privée n'est plus protégée,
on a intérêt à savoir ce qu'on fait et
notamment à vérifier les droits d'accès aux
fichiers. Si quelqu'un arrive à s'en emparer, le site est
compromis. On peut à présent utiliser newcert et
wwwkeyunsecure.pem avec Apache.</p>
<p>On copie wwwkeyunsecure.pem et newcert.pem dans le
répertoire /etc/httpd/conf/ssl/ dans les fichiers
wwwkeyunsecure.pem et wwwcert.crt respectivement.</p>
<p>On édite ensuite
/etc/httpd/conf/ssl/ssl.default-vhost.conf :</p>
<pre class="PROGRAMLISTING">
----
# Server Certificate:
# SSLCertificateFile doit pointer vers un certificat en PEM.
# Si on verrouille le certificat, un mot de passe est requis.
# kill -HUP demande de nouveau le certificat. On cree un
# certificat de test via `make certificate' lors de la
# compilation.
#SSLCertificateFile conf/ssl/ca.crt
SSLCertificateFile wwwcert.crt
# Clef secrete du serveur:
# A employer lorsque la clef est separee du certificat.
#SSLCertificateKeyFile conf/ssl/ca.key.unsecure
SSLCertificateKeyFile wwwkeyunsecure.pem
----
</pre>
<p>On arrête httpd (/etc/rc.d/init.d/httpd stop) puis on
vérifie que tous les processus ont disparu (killall httpd)
avant de relancer le démon (/etc/rc.d/init.d/httpd
start).</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN312" id="AEN312">IMAPS et les
certificats</a></h3>
<p>Se reporter au paragraphe « POPS et les
certificats » pour davantage de détails.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN315" id="AEN315">POPS et les
certificats</a></h3>
<p>Un fichier pem pour ipop3sd se crée en
générant un certificat, en déverrouillant la
clef privée et et combinant les deux dans le fichier
/etc/ssl/imap/ipop3sd.pem. Ce dernier fichier correspond à
l'emplacement attendu par le rpm de la Mandrake 9.0. La
même procédure s'applique à imap avec le
fichier /etc/ssl/imap/imapsd.pem.</p>
<p>Le CN doit correspondre au nom auquel le client de messagerie se
connecte (par exemple mail.xyz.org). Avec MS-Outlook, le nom du
serveur pop se rentre dans l'onglet à cet effet et on active
l'option « This server requires a secure connection
(SSL) » dans les propriétés
avancées. Les connexions s'effectuent alors sur le port 995
(imaps). Le certificat de la CA doit être installé
dans MS Internet Explorer pour que le certificat de mail.xyz.org
soit validé.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN319" id="AEN319">Postfix et les
certificats</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN322" id="AEN322">Stunnel et les
certificats</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN325" id="AEN325">Création et
signature de clef avec Microsoft Key Manager</a></h3>
<p>Dans Microsoft Key Manager, on choisit le service pour lequel on
souhaite créer un certificat, par exemple IMAP (ou WWW).
L'assistant permet de générer une nouvelle clef. Il
faut s'assurer de ce que le nom qualifié n'est pas identique
à celui d'une clef existante. Un nom d'usage (CN) tel
imap.mycompany.com fait l'affaire. L'assistant sauve la demande
dans le fichier C:&bsol;NewKeyRq.txt. Key Manager indique la
clef avec un signe qui signale qu'elle n'est pas signée.</p>
<p>On copie ce fichier dans le répertoire /var/ssl d'OpenSSL
sous le nom newreq.pem et on signe la requête comme à
l'accoutumé.</p>
<pre class="PROGRAMLISTING">
CA.pl -sign
</pre>
<p>newcert.pem n'est pas intelligible par Key Manager car il
contient du texte et une section -CERTIFICATE-. Il faut supprimer
le texte :</p>
<pre class="PROGRAMLISTING">
openssl x509 -in newcert.pem -out newcertx509.pem
</pre>
<p>Un éditeur remplit également cette
tâche.</p>
<p>newcertx509.pem ne contient plus qu'une section
-CERTIFICATE-.</p>
<p>On recopie newcertx509.pem sur la machine où
s'exécute Key Manager. Il suffit alors de cliquer du bouton
droit dessus dans l'application Key Manager et de renseigner le mot
de passe. La clef est alors fonctionnelle.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN335" id="AEN335">Sécurisation
du courrier électronique</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN337" id="AEN337">Création et
emploi d'un certificat S/MIME</a></h3>
<p>Il faut simplement générer et signer une demande
de certificat avec l'adresse électronique en guise de nom
d'usage (CN).</p>
<p>On peut alors signer un message de test test.txt avec le nouveau
certificat newcert.pem et la clef newreq.pem :</p>
<pre class="PROGRAMLISTING">
openssl smime -sign -in test.txt -text -out test.msg -signer newcert.pem -inkey newreq.pem
</pre>
<p>test.msg peut être transmis à n'importe qui et
cette procédure s'applique pour émettre des notes
signées ou tout autre document signé destiné
à être publié électroniquement.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN343" id="AEN343">Emploi du certificat
S/MIME avec MS Outlook</a></h3>
<p>Il faut l'importer dans Outlook sous forme de fichier pkcs12. La
création du fichier pkcs12 s'effectue comme suit :</p>
<pre class="PROGRAMLISTING">
CA.pl -pkcs12 "Franck Martin"
(openssl pkcs12 -export -in newcert.pem -inkey newreq.pem \
-out newcert.p12 -name "Franck Martin")
</pre>
<p>Il est possible de lier le certificat de signature au fichier
pkcs12 :</p>
<pre class="PROGRAMLISTING">
openssl pkcs12 -export -in newcert.pem -inkey newreq.pem \
-certfile cacert.pem -out newcert.p12 -name "Franck Martin"
</pre>
<p>Ce certificat contient les clefs privées et publique.
Seul le mot de passe protège cette dernière. Le
fichier ne doit donc pas traîner n'importe où.</p>
<p>On suit les menus Tools, Options et Security de MS Outlook. Un
clic sur le bouton import/export active l'import du fichier pkcs12.
Il n'y a plus qu'à renseigner le mot de passe d'export et
l'identité de l'utilisateur, "Franck Martin" dans mon cas
(à adapter).</p>
<p>On clique ensuite sur le bouton Settings puis, MS Outlook ayant
normalement sélectionné les choix par défaut,
sur New. Il est alors possible d'envoyer des courriers
électroniques signés. La clef publique est transmise
en même temps que les messages signés et le
destinataire est donc en mesure de renvoyer des données
chiffrées.</p>
<p>Comme le certificat a été
généré à partir d'un certificat
auto-signé, le chemin de validation ne sera pas valide tant
que l'application ne connaît pas le certificat de l'AC
racine. On se reportera à la section d'installation du
certificat de l'AC racine dans Internet Explorer pour la
détail de la marche à suivre.</p>
<p>Le message est envoyé signé/chiffré ou
simplement signé en clair. Le chiffrement n'en est pas
vraiment un dans la mesure où le message contient tout le
nécessaire pour effectuer le déchiffrement.</p>
<p>Certaines anciennes versions de MS Outlook pour XP parcourent
Internet pour vérifier la validité du certificat.
Plusieurs secondes peuvent alors s'écouler avant que le
courrier ne soit affiché, voire plusieurs minutes pour que
le hors-temps de MS Outlook ne se déclenche si on n'est pas
connecté en permanence. Ce processus bloque toute la machine
jusqu'à ce que MS Outlook l'ait achevé d'une
façon ou d'une autre.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN355" id="AEN355">Emploi du certificat
S/MIME avec MS Outlook Express</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN358" id="AEN358">Emploi du certificat
S/MIME avec Netscape Messenger</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN361" id="AEN361">Emploi du certificat
S/MIME avec Evolution</a></h3>
<p>Evolution 1.0 ne gère pas S/MIME mais seulement PGP. La
prise en charge S/MIME est prévue pour une version
ultérieure (d'après la base de données de
suivi des bogues d'Evolution). Evolution remarque quand même
parfois que le document est signé en clair et l'affiche
correctement bien qu'il ne puisse en vérifier la
validité. Des versions antérieures d'Evolution
n'assimilaient pas un des trois types MIME de signature que MS
Outlook emploie hélas assez souvent.</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN364" id="AEN364">Emploi du certificat
S/MIME avec Balsa</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN367" id="AEN367">Emploi du certificat
S/MIME avec KMail</a></h3>
<p>COMPLÉTEZ-MOI</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN370" id="AEN370">Protection des
fichiers</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN372" id="AEN372">WinCrypt</a></h3>
<p><a href="http://www.wincrypt.de/" target="_top">WinCrypt</a>
s'appuie sur l'API de chiffrage de Microsoft pour chiffrer et
signer les fichiers. Il crée en outre de façon
optionnelle une archive zip avant la signature. Il dispose d'un
frontal pour gérer la liste des certificats, les parcourir,
en installer, en supprimer et choisir celui à employer avec
WinCrypt.</p>
<p>La procédure de création d'un certificat est
identique à celle de Microsoft Outlook. La même liste
de certificats est utilisée par les deux applications.</p>
<p>Un fichier filename.sgn signé avec WinCrypt se
vérifie avec la commande :</p>
<pre class="PROGRAMLISTING">
openssl smime -verify -inform der -in filename.sgn -CAfile cacert.crt
</pre>
<p>La commande suivante permet de signer un fichier avec OpenSSL de
façon compatible :</p>
<pre class="PROGRAMLISTING">
openssl smime -sign -outform der -nodetach -out filename.sgn \
-signer certificate.pem -in filename.txt
</pre>
<p>Pour visualiser l'organisation d'un fichier
signé :</p>
<pre class="PROGRAMLISTING">
openssl asn1parse -inform der -in filename.sgn
</pre></div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN383" id="AEN383">Sécurisation
des programmes</a></h2>
<div class="SECT2">
<h3 class="SECT2"><a name="AEN385" id="AEN385">Micosoft
Code</a></h3>
<p>Il est possible de signer ses programmes et ses applets pour
prouver qu'on en est l'auteur. Il est important pour les clients de
savoir que personne n'a modifié le code en y insérant
un virus ou un cheval de Troie. L'étape de signature
nécessite le SDK Microsoft Authenticode. Ce dernier est
disponible dans la section MSDN du site web de Microsoft.</p>
<p>On génère un certificat comme à
l'accoutumé mais avec un nom d'usage de la forme
« ACME Software Cert ». Le certificat doit
ensuite être signé par l'autorité de
certification et converti au format pkcs12.</p>
<pre class="PROGRAMLISTING">
CA.pl -newreq
CA.pl -sign
CA.pl -pkcs12 "ACME Software Cert"
</pre>
<p>On obtient un fichier newcert.p12 qu'on importe dans la liste
des certificats en cliquant dessus une fois sous MS Windows.</p>
<p>Le certificat peut alors servir à signer du
code :</p>
<pre class="PROGRAMLISTING">
signcode -cn "ACME Software cert" -tr 5 -tw 2 -n "My Application" \
-i http://www.acme.com/myapp/ \
-t http://timestamp.verisign.com/scripts/timstamp.dll myapp.exe
</pre>
<p>A l'installation et à l'exécution de
l'application, une boite de dialogue apparaît sous le nom
« My Application » avec le lien pointé
par l'argument -i.</p>
</div>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN394" id="AEN394">IPSec</a></h2>
<p>IPSec est un nouveau protocole basé sur IP qui autorise
les liens chiffrés à la demande entre deux machines.
La mise en œuvre d'IPSec est obligatoire dans le cadre d'IPv6
et peut être incorporée dans IPv4. Qu'IPSec soit
obligatoire pour IPv6 ne signifie pas pour autant qu'il est
systématiquement déployé par les
administrateurs réseau. IPSec n'est pas facile à
mettre en œuvre à cause des mécanismes de
déploiement automatiques des clefs. Le DNS peut aider mais
cette méthode n'est pas encore courante. En outre, les
autorités de certification ne proposent pas d'outils pour un
déploiement à grande échelle en
entreprise.</p>
<div class="SECT2">
<hr>
<h3 class="SECT2"><a name="AEN397" id="AEN397">FreeS/WAN</a></h3>
<p><a href="http://www.freeswan.org/" target="_top">FreeS/WAN</a>
est une souche IPSec renommée pour GNU/Linux. La version
actuelle (1.9.7) doit être patchée pour gérer
les certificats X.509v3. Une telle version modifiée est
disponible sur ce <a href="http://www.freeswan.ca/" target=
"_top">site</a>. Certaines distributions l'incluent en standard, il
est donc conseillé de commencer par vérifier si c'est
le cas pour celle qu'on utilise. Cette version présente
l'intérêt de permettre l'usage d'OpenSSL pour la
création des certificats de FreeS/WAN et des enregistrements
CERT du DNS. En outre, l'interaction avec la souche IPSec de
Microsoft est réalisable. On se reportera à la page
de <a href="http://www.natecarlson.com/linux/ipsec-x509.php"
target="_top">Nate's</a> pour davantage d'informations.</p>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN403" id="AEN403">Passerelle
FreeS/WAN</a></h4>
<p>On crée un certificat dont le CN correspond au nom de
domaine complètement qualifié de la passerelle IPSec,
par exemple host.example.com. Ne pas oublier de signer le
certificat. On dispose des deux fichiers newcert.pem et newreq.pem.
Le fichier newreq.pem doit être édité pour ne
plus contenir que la clef privée : on supprime tout ce
qui n'est pas compris entre les balises --BEGIN RSA PRIVATE KEY--
et --END RSA PRIVATE KEY--. Il faut ensuite copier ces fichiers sur
la passerelle en faisant attention à ce que le transfert
soit sécurisé. Les fichiers de configuration de
FreeS/WAN se trouvent dans le répertoire /etc/freeswan pour
ma distribution. À ajuster suivant les cas.</p>
<pre class="PROGRAMLISTING">
mv newreq.pem /etc/freeswan/ipsec.d/private/host.example.com.key
mv newcert.pem /etc/freeswan/ipsec.d/host.example.com.pem
</pre>
<p>On copie le certificat racine dans le répertoire de
configuration de FreeS/WAN. Il ne faut copier que le certificat,
pas la clef.</p>
<pre class="PROGRAMLISTING">
mv cacert.pem /etc/freeswan/ipsec.d/cacerts
</pre>
<p>On génère une liste de révocation ou on
copie l'existante à l'emplacement adéquat :</p>
<pre class="PROGRAMLISTING">
openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem
</pre>
<p>Toujours sur la passerelle, on inclut dans le fichier
ipsec.secrets la ligne ci-dessous :</p>
<pre class="PROGRAMLISTING">
: RSA host.example.com.key
"password"
</pre>
<p>Le mot de passe est celui qui a servi à créer la
paire de clef. On configure le fichier ipsec.conf comme
suit :</p>
<pre class="PROGRAMLISTING">
config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=1
compress=yes
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
conn roadwarrior-net
leftsubnet=<sous_reseau>/<masque_de_sous_reseau>
also=roadwarrior
conn roadwarrior
right=%any
left%defaultroute
leftcert=host.example.com.pem
auto=add
pfs=yes
</pre>
<p>Comme on peut le voir, deux liens sont établis, l'un avec
la passerelle, l'autre avec le réseau situé
derrière la passerelle. Ceci s'avère très
pratique si un pare-feu ou un traducteur d'adresses est actif sur
la passerelle. La configuration autorise tout propriétaire
d'un certificat valide à se connecter à la
passerelle.</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN416" id="AEN416">Client
FreeS/WAN</a></h4>
<p>La procédure est semblable. Il faut créer un
certificat dont le CN correspond au nom de domaine
complètement qualifié de l'hôte, par exemple
clienthost.example.com. Le certificat doit être signé
par la même autorité de certification que la
passerelle. Le lien est alors autorisé.</p>
<p>Comme pour la passerelle, on copie de façon
sécurisée les fichiers suivants dans les
répertoires de configuration :</p>
<pre class="PROGRAMLISTING">
mv newreq.pem /etc/freeswan/ipsec.d/private/clienthost.example.com.key
mv newcert.pem /etc/freeswan/ipsec.d/clienthost.example.com.pem
</pre>
<p>On copie le certificat racine dans le répertoire de
configuration de FreeS/WAN. Il ne faut copier que le certificat,
pas la clef.</p>
<pre class="PROGRAMLISTING">
mv cacert.pem /etc/freeswan/ipsec.d/cacerts
</pre>
<p>On génère une liste de révocation ou on
copie l'existante à l'emplacement adéquat :</p>
<pre class="PROGRAMLISTING">
openssl ca -genrcl -out /etc/freeswan/ipsec.d/crls/crl.pem
</pre>
<p>Enfin, on copie le certificat (mais pas la clef privée)
de la passerelle :</p>
<pre class="PROGRAMLISTING">
mv host.example.com.pem /etc/fresswan/ipsec.d/host.example.com.pem
</pre>
<p>Le fichier ipsec.secrets est édité de la
même façon pour charger la clef
privée :</p>
<pre class="PROGRAMLISTING">
: RSA clienthost.example.com.key
"password"
</pre>
<p>On édite le fichier ipsec.conf pour activer la
connexion :</p>
<pre class="PROGRAMLISTING">
config setup
interfaces=%defaultroute
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=0
compress=yes
disablearrivalcheck=no
authby=rsasig
leftrsasigkey=%cert
rightrsasigkey=%cert
conn roadwarrior-net
left=(ip of host)
leftsubnet=(gateway_host_subnet)/(gateway_host_netmask)
also=roadwarrior
conn roadwarrior
left=(ip of host)
leftcert=host.example.com.pem
right=%defaultroute
rightcert=clienthost.example.com.pem
auto=add
pfs=yes
</pre>
<p>On met ensuite le VPN en action :</p>
<pre class="PROGRAMLISTING">
ipsec auto --up roadwarrior
ipsec auto --up roadwarrior-net
</pre>
<p>Afin que le lien s'établisse automatiquement, on remplace
dans le fichier de configuration la directive
« auto=add » par
« auto=start ».</p>
</div>
<div class="SECT3">
<hr>
<h4 class="SECT3"><a name="AEN434" id="AEN434">Client MS Windows
2000/XP</a></h4>
<p>La procédure est identique à celle du client
FreeS/WAN. On crée un certificat, par exemple pour
winhost.example.com, qui doit à présent être
converti au format pkcs12. On se reportera à la section
« MS Outlook et les certificats » pour le
détail de la marche à suivre. On s'assure de ce que
le fichier .p12 est attaché au certificat de
l'autorité de certification racine.</p>
<p>On note le résultat de la commande :</p>
<pre class="PROGRAMLISTING">
openssl x509 -in cacert.pem -noout -subject
</pre>
<p>Ce fichier doit être copié de façon
sécurisée sur la machine MS Windows.</p>
<p>On installe à présent l'utilitaire <a href=
"http://vpn.ebootis.de/" target="_top">ipsec.exe</a> de Marcus
Muller, par exemple dans le répertoire
c:&bsol;ipsec.</p>
<p>On ouvre la console de gestion Microsoft (Microsoft Management
Console/MMC) puis on clique sur « Add/Remove
Snap-in », « Add »,
« Certificates »,
« Add », « Computer
Account » et « Next ». On choisit
alors « Local computer » et
« Finish ». Dans « IP Security
Policy Management », choisir
« Add », « Local
Computer » puis « Finish »,
« Close » et enfin
« OK ».</p>
<p>On peut à présent ajouter le certificat .p12.</p>
<p>On clique sur la flèche d'ajout pour
« Certificates (Local Computer) » puis avec
le bouton droit sur « Personal » avant de
cliquer sur « All Tasks »,
« Import » et « Next ».
On renseigne ensuite le chemin d'accès au fichier .p12 (ou
on navigue pour atteindre le fichier) et on clique sur
« Next ». On rentre alors le mot de passe de
protection du fichier puis on clique sur
« Next ». On choisit
« Automatically select the certificate store based on
the type of certificate »,
« Next », « Finish » et
on répond positivement à toutes les questions qui se
présentent. On sort de la console et on enregistre la
séquence correspondante dans un fichier pour ne pas avoir
à se la farcir à chaque fois.</p>
<p>On installe ipsecpol.exe (Windows 2000) ou ipseccmd.exe (Windows
XP) comme indiqué dans la documentation de l'utilitaire
ipsec. On édite le fichier ipsec.conf de la machine MS
Windows en remplaçant "RightCA" par la sortie de la commande
« openssl x509 -in cacert.pem -noout
-subject »; mise en forme comme indiqué ci
dessous (il faut remplacer les / par des virgules et changer le nom
de quelques champs comme indiqué dans l'exemple) :</p>
<pre class="PROGRAMLISTING">
conn roadwarrior
left=%any
right=(ip_du_systeme_distant)
rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root"
network=auto
auto=start
pfs=yes
conn roadwarrior-net
left=%any
right=(ip_du_systeme_distant)
rightsubnet=(sous_reseau)/(masque_de_sous_reseau)
rightca="C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root"
network=auto
auto=start
pfs=yes
</pre>
<p>On démarre à présent le lien.</p>
<p>Pour cela on invoque la commande
« ipsec.exe ». Voici un exemple de sortie de
cette commande :</p>
<pre class="PROGRAMLISTING">
C:\ipsec>ipsec
IPSec Version 2.1.4 (c) 2001,2002 Marcus Mueller
Getting running Config ...
Microsoft's Windows XP identified
Host name is: (local_hostname)
No RAS connections found.
LAN IP address: (local_ip_address)
Setting up IPSec ...
Deactivating old policy...
Removing old policy...
Connection roadwarrior:
MyTunnel : (local_ip_address)
MyNet : (local_ip_address)/255.255.255.255
PartnerTunnel: (ip_of_remote_system)
PartnerNet : (ip_of_remote_system)/255.255.255.255
CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...
Connection roadwarrior-net:
MyTunnel : (local_ip_address)
MyNet : (local_ip_address)/255.255.255.255
PartnerTunnel: (ip_of_remote_system)
PartnerNet : (remote_subnet)/(remote_netmask)
CA (ID) : C=FJ, ST=Fiji, L=Suva, O=SOPAC, OU=ICT, CN=SOPAC Root...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...
C:\ipsec>
</pre>
<p>On émet un ping vers la passerelle qui devrait afficher
« Negotiating IP Security » pendant quelques
instants avant de répondre au ping. Pour une T1 qui attaque
un VPN derrière un modem cable, il s'écoule
typiquement de trois à quatre pings. Une fois la même
chose faite depuis le réseau interne à l'autre
extrémité du lien, ce dernier devrait être
opérationnel.</p>
</div>
</div>
</div>
</div>
<div class="CHAPTER">
<hr>
<h1><a name="AEN451" id="AEN451"></a>Chapitre 4. PKI Globale</h1>
<div class="SECT1">
<h2 class="SECT1"><a name="AEN453" id="AEN453">PKIs
existantes</a></h2>
<p>Aujourd'hui on a le choix entre avoir recours à une PKI
commerciale ou utiliser la sienne. Les PKI commerciales ont
été créées à l'origine pour
permettre le commerce électronqiue via Internet et plus
particulièrement sur le web. Le prix des certificats
dépendait du nombre d'hôtes. Le prix est plus
élevé que pour un nom de domaine parce que les
coûts d'identification des demandeurs sont plus
élevés et parce qu'il n'y a pas de raison de se
priver d'un pourcentage sur l'activité des sites marchands.
Etrangement ce type de vision atteint assez vite ses limites quand
il ne s'agit plus seulement de sécuriser quelques serveurs,
fussent-ils POP ou IMAP, mais que chaque hôte a besoin de son
certificat quand ce n'est pas chaque utilisateur ou chaque
application. Le coût s'envole avec l'espoir d'un
système un tant soit peu administrable.</p>
<p>Pourquoi ne pas voir un certificat pour signer tous les
autres ? Pour l'instant la seule solution consiste à
construire sa propre autorité de certification, ce qui
permet une gestion souple mais limite la portée du
procédé à l'organisation qui y a recours. Le
reste du monde doit récupérer des clefs
d'autorités de certification racine au cas par cas.</p>
<p>La solution consiste en une PKI unique gérée par
une entité centrale de façon analogue au DNS. On
parle alors de PKI globale.</p>
</div>
<div class="SECT1">
<hr>
<h2 class="SECT1"><a name="AEN458" id="AEN458">Le besoin d'une PKI
globale</a></h2>
<p>La sécurité des ordinateurs personnels est devenu
un sujet d'une telle importance aujourd'hui que Bill Gates a
annoncé que Microsoft choisirait à présent la
sécurité aux fonctionnalités si la
décision devait être prise (NdT : il _peut_ le
dire).</p>
<p>Le nombre de nuisibles sur l'Internet a augmenté.
N'importe qui peut envoyer n'importe quoi n'importe où et
essayer de faire installer diverses saloperies sur les machines des
autres. Une fois tout le monde identifié, on sait au moins
de qui se plaindre en cas de problème. C'est
particulièrement vrai dans le cas du courrier
non-sollicité pour lequel il est souvent difficile
d'authentifier l'émetteur d'origine. Le traitement d'une
donnée peut être différent si elle n'est pas
traçable au moyen d'un certificat. Il s'agit de la
même approche que celle de la présentation du
numéro d'appel téléphonique. Les certificats
X.509v3 l'autorisent pour toutes les applications sur Internet,
pour le courrier électronique (S/MIME), les transactions
commerciales (HTTPS), les installations de logiciel …
Ils ne sont toutefois pas très répandus en raison de
leur coût quand il faut les déployer à grande
échelle. Combien d'utilisateurs de Yahoo mail, d'Hotmail, de
CA Online peuvent s'offrir un certificat électronique ?
Il existe des projets de certificats gratuits mais ils ne peuvent
prouver que l'existence d'une adresse électronique et n'ont
pas les moyens de garantir l'identité de leur
propriétaire.</p>
<p>Une PKI Globale est nécessaire. Les protocoles et les
standards existent sans qu'il y ait besoin de réinventer la
roue. L'<a href="http://www.ietf.org/" target="_top">IETF</a>
dispose de l'outillage nécessaire. Un serveur LDAP peut
stocker les certificats, le DNS les annoncer et S/MIME
sécuriser les courriers. Il ne reste plus qu'un
problème de politique : quels services doivent
coopérer au sein d'une PKI globale, qui doit offrir un tel
service, quel sera le niveau de sécurité
offert ?</p>
<p>Cette partie sera tenue à jour au fur et à mesure
de l'avancement des travaux du groupe de travail PKI de l'<a href=
"http://www.isoc.org/" target="_top">Internet Society</a>. L'ISOC
gère également le TLD .org et dispose donc de moyens
pour s'attaquer au problème du spam.</p>
</div>
</div>
</div>
</body>
</html>
|