HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Fonctionnement des PKI Franck Davy Franck Davy <Franck.Davy@hsc.fr>
Fonctionnement des PKI - 1 - Bases de cryptographie
Plan Introduction Notions de base Algorithmes à clef secrète à clef publique Fonctions de hachage Mécanismes Chiffrement Signature En pratique Boîte à outils Messagerie électronique sécurisée avec S/MIME - 3 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Introduction
Vocabulaire et notions de base
Vocabulaire Services de sécurité Confidentialité Intégrité Authentification Non répudiation Mécanismes Mécanismes mettant en oeuvre les services précédents, fondés sur les algorithmes cryptographiques Chiffrement Signature Chiffrement et signature étroitement liés (chiffrement d'un condensât) Scellement Algorithmes Algorithmes symétriques, à clef secrète Algorithmes asymétriques, à clef publique - 6 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef secrète
Algorithmes à clef secrète (1/4) Algorithmes dits «symétriques» Caractéristiques Opérations de chiffrement et déchiffrement identiques Clef identique pour les opérations de chiffrement et déchiffrement Utilisation pour le chiffrement de données Rapidité, et facilité de mise en oeuvre sur des circuits «bon marché» Problème de la distribution des clefs 1.Transport sécurisé de la clef de chiffrement? Problématique de l'échange de clef 2.Nombre de clefs échangées (en n²) - 8 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Schéma de principe Algorithmes à clef secrète (2/4) Transmission de la clef de chiffrement par un canal sécurisé Émetteur du message Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî CŽXi^Lè- ¼ s7²r sê:'ñ ävš}aˆùäìi #á@úuåî#eâ @lü «CtlJÕ Destinataire n 1 Message en clair Destinataire n 2 Message en clair - 9 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef secrète (3/4) Algorithmes de chiffrement en continu (stream Cipher) Chiffrement bit à bit Exemple : RC4 (RSA Security) Taille de clef variable (128 bits en pratique) Algorithmes de chiffrement par blocs (Block Cipher) Chiffrement par blocs de texte clair 64 bits (DES), 128 bits (AES) Modes ECB, CBC, CFB, OFB DES (56 bits), 3DES (clef de 168 bits en EDE3, 112 bits en EDE) RC2 (128 bits), Blowfish (128bits, jusqu'à 448 bits), AES (128, 192, 256 bits), IDEA (128 bits, brevet ASCOM en Europe et USA pour un usage commercial) - 10 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Principal usage Algorithmes à clef secrète (4/4) Service de confidentialité Subsiste le problème de la distribution des clefs de chiffrement Peut également assurer un service d'authentification Sans service de non répudiation L'utilisateur n'est pas le seul à pouvoir produire la signature! Exemple de la Monétique : Cybercomm (système d'authentification dynamique) Clef secrète dépendante du porteur (carte à puce) Chiffrement (DES 56 bits) des paramètres suivants : Montant de la transaction Identifiant du commerçant Date (contre le rejeu) Authentification au niveau des DAB par la piste magnétique - 11 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique
Algorithmes à clef publique (1/16) Algorithmes dits «asymétriques» Limitation des algorithmes à clef secrète : Problématique de l'échange de la clef de chiffrement Établissement préalable d'un canal sûr pour la transmission de la clef Systèmes à clef publique Clef de chiffrement e, rendue publique Clef de déchiffrement d, gardée secrète d non déductible modulo la connaissance de e Par exemple : utilisation d'une fonction à sens unique : f(x) = x e [n]...sous certaines conditions Chiffrement d'un message à l'aide de la clef publique e Pas de communication préalable entre les tiers communiquants - 13 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (2/16) Chiffrement Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Message en clair Chiffrement par l'émetteur avec la clef publique du destinataire Déchiffrement par le destinataire avec sa clef privée Signature Message en clair Message en clair Message en clair Chiffrement par l'émetteur avec sa clef privée Déchiffrement par les destinataires avec la clef publique de l'émetteur - 14 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (3/16) Transport de clef de session Message en clair z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Clef de session Clef publique destinataire z n âøo! DIȈ/.ö˵þ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Message en clair Clef privée destinataire - 15 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithme RSA Algorithmes à clef publique (4/16) Publié par Rivest, Shamir et Adelman en 1977 Fondé sur la difficulté de la factorisation des grands nombres Schéma Sécurité dite «calculatoire» : système inconditionnellement sûr 1.On choisit p, q deux «grands» nombres premiers 2.On calcule n=p.q 3.Un entier e est choisi tel que premier avec (p-1) et (q-1) 4.L'entier d tel que ed = 1 [(p-1)(q-1)] est calculé, avec l'algorithme d'euclide le couple d'entier (n, e) représente la clef publique L'entier d représente la clef privée - 16 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement RSA Algorithmes à clef publique (5/16) Soit le message M, M' est le message chiffré obtenu par exponentiation modulaire M' = M e [n] Pour le déchiffrement, on calcule M' d [n] M ed = M [n], car ed = 1 [(p-1)(q-1)] par construction Signature RSA Opération de chiffrement, en inversant les rôles de e et d Le message émis est le couple (M, M d [n]) Tout le monde peut vérifier la signature par possession de la clef publique Service de non répudiation Sécurité calculatoire : repose sur la difficulté de factoriser n - 17 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (6/16) Clef RSA principalement sous 2 formats : Format binaire : encodage de la structure ASN.1 suivant la syntaxe de transfert distinctive DER (sans ambiguïté) Format ASCII imprimable : object binaire précédent encodé au format PEM Possibilité de conserver la clef privée RSA chiffrée DES, 3DES ou IDEA (en mode CBC) par exemple Informations concernant les algorithmes dans les en-têtes PEM (IV, notamment) Format PEM «Privacy Enhanced-Mail» (RFC1421-1424) 1. Executive Summary This document defines message encryption and authentication procedures, in order to provide privacy-enhanced mail (PEM) services for electronic mail transfer in the Internet. It is intended to become one member of a related set of four RFCs. The procedures defined in the current document are intended to be compatible with a wide range of key management approaches, including both symmetric (secret-key) and asymmetric (public-key) approaches for encryption of data encrypting keys. - 18 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (7/16) Format général d'un message au format PEM -----BEGIN PRIVACY-ENHANCED MESSAGE----- Proc-Type: 4,ENCRYPTED Content-Domain: RFC822 DEK-Info: DES-CBC,F8143EDE5960C597 Originator-ID-Symmetric: linn@zendia.enet.dec.com, Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,3 Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A,B70665BB9BF7CBCDA60195DB94F727D3 Recipient-ID-Symmetric: pem-dev@tis.com,ptf-kmc,4 Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26,E2EF532C65CBCFF79F83 A2658132DB47LlrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEU SoH1nvNSIWL9MdXd/H5LMDWnonNvPCwQUHt== -----END PRIVACY-ENHANCED MESSAGE----- Messages chiffrés «PEM Part III : Algorithms, Modes, and Identifiers» (RFC1423) Exemple : Chiffrement DES-CBC En-tête Proc-Type Identifiant de version de la RFC (4), ENCRYPTED (service de sécurité mis en oeuvre) En-tête DEK-Info : Identifiant d'algorithme (DES-CBC), vecteur d'initialisation (F8143EDE5960C597) - 19 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (8/16) «RSA Cryptography Specifications» (RFC2437) Recommandations sur la mise en oeuvre d'un cryptosystème fondé sur RSA http://www.ietf.org/rfc/rfc2437.txt Anciennement : PKCS#1 «RSA Cryptography Standard» Structure ASN.1 Clef publique RSA («11.1.1 Public-key syntax») RSAPublicKey::=SEQUENCE{ modulus INTEGER, -- n publicexponent INTEGER e } Clef privée RSA («11.1.2 Private-key syntax») RSAPrivateKey ::= SEQUENCE { version Version, modulus INTEGER,& -- n publicexponent INTEGER, -- e privateexponent INTEGER, -- d prime1 INTEGER, -- p prime2 INTEGER, -- q exponent1 INTEGER, -- d mod (p-1) exponent2 INTEGER, -- d mod (q-1) coefficient INTEGER -- (inverse of q) mod p } Clef RSA obtenue par encodage DER de la structure ASN.1 (fichier binaire) - 20 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (9/16) Exemple de génération d'une clef privée RSA Modulus n = 512 bits, exposant public e = 3 $ openssl genrsa -3 512 tee rsa.pem Generating RSA private key, 512 bit long modulus e is 3 (0x3) -----BEGIN RSA PRIVATE KEY----- MIIBOQIBAAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2WDZ71Ne+Q2ZvgbqDE9j8S IsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQJAT9VlXvmvn0X7vvzECpSH P0/MMVT3k73/RZSKuLXvfcj5Lsmce/rMWQkNxC2a5G32UzNvDbOrRIW1O3QCXZNh kqihaogrwfk4bnjjejgsgwvvaq3yntyoirfl79ienkczkv7laieayxrk9uua+vek ul1oad2kondzrqdb0snuohepinz3hicciftmcmmgp+8zjbwgkinfyryuqjmxn9gv 2ZxLx+PVxCdBAiAaD4KYJd8tpCQ/7c1dCJ0b9VMziQYp57o0d9Zo4e2dtQIgbxdY Fsf591Z/Q9sZkoxgUMpuSxBBC8qxWyUGHcEF+DY= -----END RSA PRIVATE KEY----- Clef privée RSA au format PEM (sans chiffrement) Structure ASN.1 encodée suivant la syntaxe de transfert DER (Distinguished Encoding Rules) La suite d'octets (OCTET STRING) obtenue est encodée en base 64-21 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (10/16) Comparaison des formats PEM et DER Conversion avec rsa(1ssl) $ openssl rsa -inform PEM -in./rsa.pem -outform DER./rsa.DER $ cat./rsa.der 0b G}»Öƒ¾n $&% # "! Encodage en base64 du fichier binaire avec enc(1ssl), *+ ')( 01 -. / 3 21 $ cat./rsa.der openssl base64 -e MIIBOQIBAAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2WDZ71Ne+Q2ZvgbqDE9j8S IsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQJAT9VlXvmvn0X7vvzECpSH P0/MMVT3k73/RZSKuLXvfcj5Lsmce/rMWQkNxC2a5G32UzNvDbOrRIW1O3QCXZNh kqihaogrwfk4bnjjejgsgwvvaq3yntyoirfl79ienkczkv7laieayxrk9uua+vek ul1oad2kondzrqdb0snuohepinz3hicciftmcmmgp+8zjbwgkinfyryuqjmxn9gv 2ZxLx+PVxCdBAiAaD4KYJd8tpCQ/7c1dCJ0b9VMziQYp57o0d9Zo4e2dtQIgbxdY Fsf591Z/Q9sZkoxgUMpuSxBBC8qxWyUGHcEF+DY= - 22 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Structure ASN.1 Algorithmes à clef publique (11/16) $ dumpasn1./rsa.der 0 30 313: SEQUENCE { 4 02 1: INTEGER 0 7 02 65: INTEGER : 00 B1 96 24 4A 06 00 2E 9F 62 AA 46 F6 F0 B1 D4 : B1 1C 8C 5B 6B 87 0D 96 0D 9E F5 35 EF 90 D9 9B : E0 6E A0 C4 F6 3F 12 22 C8 C4 4A D2 9C D9 46 7F : C3 66 E7 3D CF 24 FB 72 D3 4C 60 93 43 D4 80 76 : C3 74 02 3: INTEGER 65537 79 02 64: INTEGER [...] 145 02 33: INTEGER [...] 180 02 33: INTEGER [...] 215 02 32: INTEGER [...] 249 02 32: INTEGER [...] 283 02 32: INTEGER : 6F 17 58 16 C7 F9 F7 56 7F 43 DB 19 92 8C 60 50 : CA 6E 4B 10 41 0B CA B1 5B 25 06 1D C1 05 F8 36 : } - 23 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (12/16) Clef RSA chiffrée Algorithme symétrique DES, en mode CBC En pratique $ openssl genrsa -3 -DES 512 Generating RSA private key, 512 bit long modulus e is 3 (0x3) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: Vecteur d'initialisation -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,3F05FF3C5103E3BB VjgE0b88PXaA8QzwuqlRyzwVrWtIUu68vXH7FzMtAWaHHrUyK6gjPHh6nHtho+Yy RB1fn9UKMl2pzJi6dJW9J1kYJafjhuLAM09pAJYJ51F9P37qvu2TGnNq5QjutoGy Otz0H2s/OeUNmdWcGFrRnjMwXMQ8Ssaa28SHy/V0sPG8VQXdHxwBGSR3JP/Tf00C /j5y9uzblgw1gt1m4bg5howtvsjvbez1/r83dvzsbgg= -----END RSA PRIVATE KEY----- Chiffrement de la clef RSA (au format DER) en DES (mode CBC) Encodage du binaire obtenu en en base 64 La clef de chiffrement DES et le vecteur d'initialisation (IV, utilisé par le mode CBC) sont dérivés du mot de passe fourni par l'utilisateur - 24 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (13/16) Génération des nombres premiers p et q $ openssl genrsa 1024 Generating RSA private key, 1024 bit long modulus...++++++...++++++ e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY... Tests de primalité Difficulté d'engendrer de «grands» nombres premiers «aléatoires» Tests de primalité probabilistes Test de Sieve Symbolisé par «.» Test rapide, préliminaire Mis en oeuvre dans PGP Test de Miller-Rabin Symbolisé par «+» Méthode décrite dans «Handbook of Applied Cryptography» http://www.cacr.math.uwaterloo.ca/hac/about/chap4.ps Test caractérisé par une probabilité d'erreur 1/2^80 (Cf. ${OPENSSL}/crypto/bn/bn.h) - 25 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Algorithmes à clef publique (14/16) Publication de la clef publique RSA Sous-ensemble des paramètres de la clef privée Modulus n, exposant public e $ openssl rsa -in rsa.pem -pubout -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALGWJEoGAC6fYqpG9vCx1LEcjFtrhw2W DZ71Ne+Q2ZvgbqDE9j8SIsjEStKc2UZ/w2bnPc8k+3LTTGCTQ9SAdsMCAwEAAQ== -----END PUBLIC KEY----- Structure ASN.1 de la clef publique obtenue 0 30 92: SEQUENCE { 2 30 13: SEQUENCE { 4 06 9: OBJECT IDENTIFIER rsaencryption (1 2 840 113549 1 1 1) 15 05 0: NULL : } 17 03 75: BIT STRING 0 unused bits, encapsulates { 20 30 72: SEQUENCE { 22 02 65: INTEGER [...] 89 02 3: INTEGER 3 : } : } : } - 26 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Principaux usages Algorithmes à clef publique (15/16) Service de confidentialité Chiffrement avec la clef publique du destinataire Faible volume de données Mode opératoire par blocs? Protocole TLSv1 : travail sur un et un seul bloc (chunk) PreMasterSecret de 48 octets + bourrage PKCS#1 de 11 octets Taille de clef publique d'un certificat X.509 de 472 bits au minimum Cas d'un certificat client : 376 bits au minimum (signature d'empreinte SHA1+MD5) Signature numérique Chiffrement avec la clef privée du signataire Transport (RSA) ou échange (DH) de clef Résolution de la problématique de l'échange de clef secrète - 27 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Récapitulatif Algorithmes à clef publique (16/16) Algorithme le plus couramment utilisé : RSA Cryptosystème décrit dans la RFC 2437 Formats binaire (encodage DER de la structure ASN.1) et ASCII «imprimable» (PEM) Une clef de chiffrement (n,e) Transport de clef : mécanisme de chiffrement de la clef de session avec la clef de chiffrement du destinataire Clef dite «publique», déposée dans un annuaire par exemple Une clef de signature d Signature : mécanisme de chiffrement avec la clef de signature par l'émetteur Service de non-répudiation Clef privée Décomposition en facteurs premiers du modulus n = p.q p et q, probables grands nombres premiers par construction Tests de primalité probabilistes par les applications (OpenSSL, PGP etc.) - 28 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctions de hachage
Fonctions de hachage (1/7) Fonction de hachage cryptographique Obtention d'une empreinte numérique de taille fixe à partir d'un message de taille arbitraire Opération par blocs Critères de sécurité Faibles collisions Collisions : possibilité d'obtenir une même empreinte pour deux messages distincts Sécurité calculatoire Sens unique Difficulté d'inversion - 30 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Principaux algorithmes Fonctions de hachage (2/7) MD5, «The MD5 Message-Digest Algorithm» (RFC1321) http://www.ietf.org/rfc/rfc1312.txt Empreinte de 128 bits $ openssl md5 -c message.txt MD5(message.txt)= ef:79:ca:b5:4f:9b:2a:d9:8e:79:ef:46:46:e4:93:63 SHA, «Secure Hash Algorithm» (NIST) http://www.itl.nist.gov/fipspubs/fip180-1.htm Empreinte de 160 bits $ openssl sha1 -c message.txt SHA1(message.txt)= af:06:9c:e9:bb:e9:21:29:b1:1a:7e:a8:77:9b:37:09:26:5e:84:b3 Variantes ou autres : dgst(1ssl) $ openssl dgst -h MD2, MD4, MD5, SHA, SHA-1, MDC2, RIPEMD160-31 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctions de hachage (3/7) Exemples d'utilisation : Intégrité et scellement de fichiers md5sum(1) HIDS (Host-Based Intrusion Detection System) AIDE Site officiel : http://www.cs.tut.fi/~rammer/aide.html Brève HSC : http://www.hsc.fr/ressources/breves/aide.html Tripwire $ md5sum image.iso d41d8cd98f00b204e9800998ecf8427e image.iso Stockage non réversible de mots de passe Fichier shadow(5), fondé sur l'algorithme md5 $ sudo grep davy /etc/shadow davy:$1$zdgjjrrg$b9oxpvedx8i4kgwanwbpd.:11924:0:99999:7::: - 32 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctions de hachage (4/7) Utilisation de la commande passwd(1ssl) Syntaxe $ openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-quiet] [-table] {password} Génération de l'empreinte $ echo -n 'secret' openssl passwd -1 -salt 'zdgjjrrg' -stdin -table secret $1$zdgjjRrg$b9oxpVEDX8I4KgWanwbpd. Signification des différents termes $(1)$(zdgjjRrg)$(b9oxpVEDX8I4KgWanwbpd.) $1 : Algorithme MD5 $2 : Piment Protection contre les attaques par dictionnaire précalculé Piment en clair (différent d'un MAC) $3 : Empreinte résultante - 33 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctions de hachage (5/7) Générateurs de nombres pseudo-aléatoires Sources d'entropie multiples Évènements non déterministes Fonctions de hachage pour «multiplexer» la sortie des sources d'entropie et constituer un «pool d'entropie» Démons collecteurs d'entropie (sous Unix) Interfaces/pseudo-périphériques /dev/random (bloquant) /dev/urandom (non-bloquant) /dev/inter_rng, (processeurs intel de type i8xx) PRNGD sous Solaris http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html Analyse de quelques générateurs de nombres pseudo-aléatoires Phrack 59 «Cryptographic random number generators» http://www.phrack.com/show.php?p=59&a=15 DrMungkee <pub@drmungkee.com> Intel RNG (SHA-1), Yarrow (SHA-1), /dev/random/ (MD5) - 34 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctions de hachage (6/7) Génération d'identifiants de sessions... http://lxr.php.net/source/php4/ext/session/session.c Utilisations multiples! «Pile ou face» Influence du changement d'un caractère de texte clair sur l'empreinte résultante $ cat message.txt Contrôle d'intégrité $ cat message.txt openssl md5 -c ef:79:ca:b5:4f:9b:2a:d9:8e:79:ef:46:46:e4:93:63 $ cat message.txt tr C c openssl md5 -c c5:f1:bf:54:2a:7f:27:04:d2:65:78:a1:bc:47:7c:e7-35 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Principaux usages Signature numérique Norme de fait : RSA Fonctions de hachage (7/7) Mécanisme de chiffrement par une clef privée RSA d'une empreinte MD5 ou SHA-1 Service de non-répudiation Scellement Génération d'un sceau, ou code d'authentification de message MAC : «Message Authentication Code» Exemple : fonction de hachage à sens unique indexée par une clef secrète Service d'authentificité des données Authentification Intégrité Pas de service de non-répudiation Cf. SSL/TLS Horodatage - 36 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : «boîte à outils»
Projet OpenSSL Boîte à outils : OpenSSL (1/8) http://www.openssl.org Versions 0.9.7a et 0.9.6i (-engine) (19/02/2003) http://www.openssl.org/source/ ~ 60 000 lignes de code (langage C), utilisées par de nombreuses applications openssh, apache+mod_ssl, postfix/tls, idx-pki, stunnel etc. Initié en Décembre 1998 Objectifs Fondé sur la bibliothèque cryptographique SSLeay d'eric Young et Tim Hudson http://www.psy.uq.edu.au/~ftp/crypto/ssleay Mise en oeuvre des protocoles SSL (Secure Socket Layer) Protocole de sécurisation réseau TCP/IP qui opère au niveau session du modèle OSI Opère au dessus d'un protocole de transport de données fiable (TCP RFC793) Opère au dessus du niveau transport (4) -> applications spécifiques Ports dédiés, attribués par l'iana : HTTP 80/tcp, mais HTTPS 443/tcp - 38 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (2/8) Services de sécurité mis en oeuvre Authentification des parties Optionnellement mutuelle Authenticité et confidentialité des données Sans service de non répudiation Versions du protocole SSL supportées Spécifications Netscape SSLv2 et v3 http://wp.netscape.com/eng/ssl3 Standard TLSv1 (RFC 2246) http://www.ietf.org/rfc/rfc2246.txt Mise en oeuvre des standards cryptographiques associés aux protocoles SSL/TLS Algorithmes symétriques (DES,3DES etc.), asymétriques (RSA, DSA etc.), protocoles d'échanges de clefs ([E]DH), certificats X.509 (compilateur ASN.1), standards PKCS (PKCS#1 ou RFC 2437, PKCS#7, PKCS#8, PKCS#12 etc.) etc. - 39 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (3/8) Interface de programmation en C Bibliothèque SSL/TLS Bibliothèque cryptographique Suite d'applications en ligne de commande openssl (1) Intégration à de multiples langages PHP Module expérimental Fonctions mises en oeuvre concernant essentiellement les certificats X.509 Manipulation de clefs RSA (clef publique/clef privée) Manipulation de certificats X.509 (génération, validation) Utilisation dans le cadre de signature et chiffrement de données (S/MIME, PKCS#7) http://www.php.net/manual/en/ref.openssl.php Modules Perl (OpenCA, Net::SSLeay), Ruby etc. - 40 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (4/8) Interface de programmation cryptographique en C, incluant : Bibliothèque SSL/TLS (libssl.a) Mise en oeuvre des protocoles SSLv2, SSLv3 et TLSv1 Bibliothèque cryptographique (libcrypto.a) Cryptographie clef publique et certificats X509 RSA, DSA, DH Compilateur ASN.1 Chiffrement DES, 3DES, Blowfish, RC2, CAST, IDEA (blocs), RC4 (flux) + modes ECB, CBC, CFB, OFB pour les algorithmes de chiffrement par blocs Hachage MD2, MD4, MD5, SHA, SHA1, MDC2, RIPEMD160 Bien distinguer les bibliothèques cryptographiques et SSL/TLS! Application OpenSSH fondée sur la bibliothèque cryptographique d'openssl (mais protocole SSH!= protocole SSL/TLS) $ ldd /usr/sbin/sshd grep libssl $ ldd /usr/sbin/sshd grep libcrypto => /usr/lib/libcrypto.so.0 (0x40045000) - 41 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (5/8) Application en ligne de commande : openssl(1) Manipulation de paramètres RSA, DSA, DH rsa, genrsa, rsautl, dsa, dsaparam, gendh Manipulation de certificats X509, CRL ou encore CSR asn1parse, ca, req, crl, x509 (+ocsp) Mise en oeuvre du protocole de vérification en ligne OCSP dans la branche 0.9.7 Calculs d'empreintes (MD5, SHA etc.) et opération de chiffrement (DES, BF) dgst, enc Applications spécifiques Client/Serveur SSL/TLS : s_client, s_server Manipulation de fichiers au format S/MIME smime Manipulation de fichiers SPKAC (Netscape), PKCS#12 spkac, pkcs12-42 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (6/8) Licence portant sur le code source OpenSSL Licence spécifique Pas GPL, LGPL ou encore BSD Licence cumulative (ou duale) OpenSSL et SSLeay Licence SSLeay S'applique au code source original d'eric Young Licence OpenSSL S'applique aux modifications effectuées par l'équipe de développement OpenSSL - 43 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (7/8) Conditions d'utilisation d'openssl Licence OpenSSL incompatible avec la licence GPL http://www.gnu.org/copyleft/gpl.html Compatibilité, sous certaines conditions Application liée à OpenSSL pouvant être sous licence GPL suivant le système d'exploitation ou la distribution à la condition suivante : «FAQ about the GNU GPL» http://www.gnu.org/licenses/gpl-faq.html#tocwritingfswithnflibs «I am writing free software that uses non-free libraries. What legal issues come up if I use the GPL? If the libraries that you link with falls within the following exception in the GPL: However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable» Différence notable entre la GPL et la licence OpenSSL : Application liée à OpenSSL pouvant être distribuée sous une licence autre de la licence OpenSSL - 44 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : OpenSSL (8/8) Projets similaires, sous licence GPL GnuTLS Licence GPL Mise en oeuvre des protocoles SSLv3 et TLS Support des certificats X.509, OpenPGP, du protocole SRP Remarque : protocole SRP au statut «Wishes» dans OpenSSL, mais existence d'un correctif Manque de maturité par rapport au projet OpenSSL «Avalaible for Beta testing»... http://www.gnu.org/software/gnutls/ Mozilla NSS Licences MPL et GPL http://www.mozilla.org/mpl Mise en oeuvre des protocoles SSLv2/v3 et TLS Support des formats PKCS#5, PKCS#7, PKCS#11, PKCS#12, des certificats X.509 et du format d'échange applicatif S/MIME http://www.mozilla.org/projects/security/pki/nss/ - 45 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : DumpASN.1 DumpASN.1 Téléchargement sur http://www.cs.auckland.ac.nz/~pgut001 : Source http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.c Fichier de configuration (OID) http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cfg Auteur : Peter Gutmann <pgut001@cs.auckland.ac.nz> Renvoie la structure ASN.1 d'un objet au format DER Syntaxe de transfert DER («Distinguished Encoding Rules») Conversion du format PEM (base64) vers DER (binaire) avec openssl(1) Traduction des OID réalisée via le fichier dumpasn1.cfg Extrait du fichier de configuration : OID = 06 09 2A 86 48 86 F7 0D 01 01 01 Comment = PKCS #1 Description = rsaencryption (1 2 840 113549 1 1 1) - 46 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Boîte à outils : SSLDump SSLDump Téléchargement sur http://www.rtfm.com/ssldump/ Analyseur de trafic SSLv3/TLSv1 Déchiffrement du trafic à la volée modulo la connaissance de la clef privée associée à la clé publique contenue dans le certificat X.509 présenté par le serveur SSL/TLS... GET / HTTP/1.0 Host: www.webserver.com - 47 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : chiffrement et signature
Chiffrement et signature (1/8) Émission d'un message chiffré/signé Génération des clefs RSA publique et privée de l'émetteur et du destinataire Format PEM, protection par mot de passe src_rsa.pem, dst_rsa.pem respectivement pour les clefs privées émetteur et destinataire src_rsa_pub.pem, dst_rsa_pub.pem pour les clefs publiques Génération des clefs privées avec rsa(1ssl) $ openssl genrsa -des 512 tee src_rsa.pem Generating RSA private key, 512 bit long modulus...++++++++++++...++++++++++++ e is 65537 (0x10001) Enter PEM pass phrase: Verifying password - Enter PEM pass phrase: -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,F797B90DFD6AE2BB RujFw/mVRdBjfFI8xzrHCd+AvOpD3JfoD5XMEbXDlmprBR9nOdUc/wvjHUYNO4z6 fq3ogppb8igs9iilzdlls3rdui60m3uhcgmh1hd2p+e= -----END RSA PRIVATE KEY----- - 49 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (2/8) Génération du biclef RSA avec OpenSSL et un PRNGD Biclef RSA format PEM Chiffrement DES-CBC -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-CBC,F797B90DFD6AE2BB RujFw/mVRdBjfFI8xzrHCd+AvOpD3JfoD5XMEbXDlmprBR9nOdUc/wvjHUYNO4z6 fq3ogppb8igs9iilzdlls3rdui60m3uhcgmh1hd2p+e= -----END RSA PRIVATE KEY----- Clef publique RSA format PEM Extraction de la clef publique -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5ApUqqRf86ZklRhstCbGSP9REkOo2R U3E/q1ZRkGxrxKszYv3PEYatDmwZbhtofbndqVfHRUGULSHFsYP8azcCAwEAAQ== -----END PUBLIC KEY----- - 50 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (3/8) Extraction, pour publication, des clefs publiques $ openssl rsa -in src_rsa.pem -pubout tee src_rsa_pub.pem read RSA key Enter PEM pass phrase: writing RSA key -----BEGIN PUBLIC KEY----- MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5ApUqqRf86ZklRhstCbGSP9REkOo2R U3E/q1ZRkGxrxKszYv3PEYatDmwZbhtofbndqVfHRUGULSHFsYP8azcCAwEAAQ== -----END PUBLIC KEY----- Idem pour dst_rsa.pem et dst_rsa_pub.pem Chiffrement du message en DES (mode CBC) avec enc(1ssl) Clef de chiffrement et vecteur d'initialisation dérivés du mot de passe ('secret') $ echo -n "Message confidentiel \!" openssl enc -des-cbc tee message.crypt enter des-cbc encryption password: Verifying password - enter des-cbc encryption password: - 51 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (4/8) Calcul de l'empreinte du message chiffré avec dgst(1ssl) Algorithme md5 $ openssl dgst -md5 -binary message.crypt tee message.crypt.dgst Signature Mécanisme de chiffrement de l'empreinte avec la clef RSA privée de l'émetteur Chiffrement avec la clef privée de l'émetteur (src_rsa.pem) de l'empreinte avec rsautl(1ssl) openssl rsautl -in message.crypt.dgst -sign -inkey src_rsa.pem \ tee message.crypt.sign Enter PEM pass phrase: ½ôýÞAí) óû0ãühiwuk{³û Î!J ( $! La signature est placée en attachement (non chiffrée, dans ce cas) - 52 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (5/8) Transport de la clef de session Paramètres DES dérivant du mot de passe Clef secrète de chiffrement Vecteur d'initialisation Chiffrement du mot de passe avec la clef publique du destinataire par rsautl(1ssl) $ echo -n "secret" openssl rsautl -encrypt -pubin -inkey dst_rsa_pub.pem \ tee secret.crypt z n âøo!dièˆ/.öëµþ@² mlìûîš <;êlè_a Ýmî lz cûáy vâbî Constitution du message final 1. Message chiffré : message.crypt 2. Signature du message chiffré : message.crypt.sign 3. Clef de session chiffrée : secret.crypt 4. Paramètres «administratifs» Identifiant de la clef RSA de l'émetteur Algorithme utilisé (DES en mode CBC) Nature des différents attachements etc. - 53 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (6/8) Message en clair "Message confidentiel!" Secret partagé "secret" Clef publique RSA destinataire Message chiffré Chiffrement DES en mode CBC Clef de session IV z n âøo! dièˆ/.öëµþ @² mlìûîš <;êlè_a Ým î lz cûáy vâbî Secret partagé chiffré 1. Calcul de l'empreinte MD5 2. Chiffrement avec la clef privée RSA Clef privée RSA émetteur Signature ½ôýÞAí) óû0ãühiwuk{³û Î!J! ( $ Message chiffré et signé - 54 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (7/8) Réception du message chiffré signé Vérification de la signature avec rsa(1ssl) Utilisation de la clef publique de l'émetteur du message pour déchiffrer la signature Obtention de l'empreinte du message telle que calculée par l'émetteur $ cat message.crypt.sign openssl rsautl -verify -pubin -inkey src_rsa_pub.pem \ -out dgst1 Calcul de l'empreinte du message chiffré par le destinataire $ cat message.crypt openssl dgst -md5 -binary > dgst2 Comparaison des empreintes $ diff -s dgst1 dgst2 Les fichiers dgst1 et dgst2 sont identiques. Authenticité du message avérée Authentification de l'émetteur Intégrité des données - 55 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Chiffrement et signature (8/8) Déchiffrement du message par le destinataire Déchiffrement de la clef de session avec la clef RSA privée du destinataire $ cat secret.crypt openssl rsautl -decrypt -inkey dst_rsa.pem Enter PEM pass phrase: secret Déchiffrement du message à l'aide de la clef de session $ cat message.crypt openssl enc -d -des-cbc enter des-cbc decryption password: Message confidentiel \! Au final, transmission d'un message avec les services de sécurité suivants : Authentification des parties Problème résiduel de l'authenticité du lien émetteur-clef publique Intégrité et confidentialité des données transmises - 56 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : messagerie sécurisée avec S/MIME
Messagerie sécurisée avec S/MIME (1/6) «Secure Multi-purpose Internet Mail Extension» Extension au format MIME (RFC 1847) Ajout du support de services de sécurité Décrit dans les RFC suivantes : «Cryptographic Message Syntax» (RFC 2630) «Diffie-Hellman Key Agreement Method» (RFC 2631) «S/MIME Version 3 Certificat Handling» (RFC 2632) «S/MIME Version 3 Message Specification» (RFC 2633) Services de sécurité au niveau applicatif (de «bout-en-bout») Authentification des parties + service de non-répudiation Confidentialité des données Intégrité des données - 58 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format des messages Messagerie sécurisée avec S/MIME (2/6) Utilisation de l'outil smime(1ssl) Utilisation de certificats X.509, avec les extensions v3 S/MIME Signature d'un message $ openssl smime -sign -in message.txt -out message_signe.txt \ -text -signer src_rsa_pub.pem -inkey src_rsa.key Vérification de la signature Sauvegarde (option '-signer fichier.pem') du certificat de l'émetteur si OK Automatique sous Netscape Messenger et Microsoft Outlook Attention aux attaques par prolongation de l'itinéraire de certification! $ openssl smime -verify -CAPath./trustees/ -in message_signe.txt \ -signer src_rsa_pub.pem Content-Type: text/plain Ceci est message signé Verification Successful - 59 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Messagerie sécurisée avec S/MIME (3/6) Format d'un message signé au format S/MIME MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="----d53abc9fb71e03185ae729da6dad1931" This is an S/MIME signed message ------D53ABC9FB71E03185AE729DA6DAD1931 Content-Type: text/plain Ceci est un message signé ------D53ABC9FB71E03185AE729DA6DAD1931 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" MIIGuwYJKoZIhvcNAQcCoIIGrDCCBqgCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3 [...] 6BmKU1IbbuR363HVCM/dsPTGQtJHRCDH+b41NneKWBCqJcs+T8Bn0OIhcr2RFLw= ------D53ABC9FB71E03185AE729DA6DAD1931-- Signature au format PKCS#7-60 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Messagerie sécurisée avec S/MIME (4/6) Chiffrement d'un message par l'émetteur Chiffrement de la clef de session (3DES-CBC) avec la clef publique du destinataire Clef publique contenue dans un certificat X.509 $ openssl smime -encrypt -in message.txt -des3 \ -out message_chiffre.txt dst_rsa.pem Déchiffrement du message par le destinataire Utilisation de sa clef RSA privée (protégée par un mot de passe) $ openssl smime -decrypt -in message_chiffre.txt \ -recip dst_rsa_pub.pem \ -inkey dst_rsa.pem Enter PEM pass phrase: Ceci est un message chiffré - 61 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Messagerie sécurisée avec S/MIME (5/6) Format d'un message chiffré MIME-Version: 1.0 Content-Disposition: attachment; filename="smime.p7m" Content-Type: application/x-pkcs7-mime; ; name="smime.p7m" Content-Transfer-Encoding: base64 MIIMvwYJKoZIhvcNAQcDoIIMsDCCDKwCAQAxggE0MIIBMAIBADCBmDCBkjELMAkG [...] 8YMC6VlBeF8VCoBjrP8At7P3ELCdfs812RZB1Dxw2Jddjgwce67eFmsRd8stX9pk Pax1 Structure ASN.1 Ajouter l'option '-outform DER' à l'application smime(1ssl) Utiliser dumpasn1... [...] 338 30 2925: SEQUENCE { 342 06 9: OBJECT IDENTIFIER data (1 2 840 113549 1 7 1) 353 30 20: SEQUENCE { 355 06 8: OBJECT IDENTIFIER des-ede3-cbc (1 2 840 113549 3 7) 365 04 8: OCTET STRING : 48 6F 62 79 91 F8 57 72 : } [...] - 62 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Messagerie sécurisée avec S/MIME (6/6) Démonstration avec Netscape Messenger Message signé Message chiffré Message chiffré/signé - 63 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctionnement des PKI - 2 - De la clef publique au certificat
Introduction De la clef publique au certificat Clef RSA, clef SSH, clef PGP Problématique de la certification Les certificats X.509 Standard X.509v3 et profil PKIX Champs standards et extensions v3 En pratique Plan Panorama des certificats inclus dans IE 5.0 Sécurisation des échanges avec SSL/TLS - 65 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
De la clef publique au certificat
Exemple de clef publique RSA (1/2) Format «imprimable» PEM : $ openssl x509 -in certificate.pem -pubkey -noout -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuRyXFwdFK4QgS7Yapk/D SIVyHqBVN12VRSQy1A9y27f3IWAhAJyipGbZFDaPOnpcwOZ376gdr4XLCRXD9nCA BzNeEpIGBWjvaS8QyABoDuFo+kz01AT4WtAgVePqFydqNYV1eYiJk33B5oDW+zby 4Y5Ldtj014ktO9qjzhqZM94WvjlmMGAfjbmV6QF8JWCl/kotKJr0FjDgXgCykbBY ZgdPKCKgDp6lM3DC1OBSrB8+xlkIiJ5dFJKF1ClkfK0tQpz1B0UdCmhQ7+1Nw2jY Ht+79jN8ULa7zAzlf+lbbFrJ1hoB3YlR6FXf88HrlUGZVbLjX6NNOZIlZYbdYTx9 dwidaqab -----END PUBLIC KEY----- Format «humainement» lisible : $ openssl x509 -in server.pem -pubkey openssl rsa -text -noout -pubin Modulus (2048 bit): 00:b9:1c:97:17:07:45:2b:84:20:4b:b6:1a:a6:4f: [...] c9:d6:1a:01:dd:89:51:e8:55:df:f3:c1:eb:95:41: 99:55:b2:e3:5f:a3:4d:39:92:25:65:86:dd:61:3c: 7d:77 Exponent: 65537 (0x10001) - 67 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de clef publique RSA (2/2) Donnée brute, manipulable avec ambigüité sur : Type de clef et d'usage Algorithme (RSA, DSA) Chiffrement, Signature, Échange de clef Tout autre usage spécifique à une application? Période de validité, statut de révocation Identité (paramètre «administratif») associée Adresse IP (192.0.2.1) Nom DNS pleinement qualifié (www.hsc.fr) RFC822 (franck.davy@hsc.fr) Format à enrichir et à standardiser À l'usage des applications - 68 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Première approche : SSH et dérivés (1/5) Méthodes d'authentification Côté client Authentification par mot de passe (permanent ou à usage unique) Authentification par clef publique RSA ou DSA (SSHv2 uniquement) Côté serveur Authentification par clef publique (RSA/DSA) Clef publique transmise au client lors de la première ouverture de session Sauvegardée côté client Un format de clef minimaliste $ cat ssh_host_key.pub 1024 35 12312312312315016364622805541210905036255388057669 8961735325312313245435645645671203023278678280118194562709 6939937220982467588574628302525586302775483291130879549507 8961735325312313245435645645671203023278678280118194562709 3619651231243454354367454574568832342435454596754237631856 093442973835538980270174901 root@darkstar - 69 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Première approche : SSH et dérivés (2/5) Exemple d'ouverture de session Notion de «clef d'hôte» Authentification du serveur est réalisée au niveau applicatif Utilsation de clef RSA ou DSA Objectif : authentification du serveur au niveau applicatif par sa clef publique Et non plus simplement identification par adresse IP ou FQDN Connexion TCP (22/TCP) Ouverture de session SSH Nombreuses attaques sur les protocoles IP, DNS et au niveau réseau... Attaques de type «Man-in-the-Middle» DNS ID Spoofing, DNS Cache poisoning ProxyARP sur un réseau ethernet commuté (dsniff, ettercap) Côté client SSH_RSA_VERIFY Non? 5A:51:41:de:62:0c... Côté serveur $ ssh darkstar The authenticity of host 'darkstar (192.0.2.1)' can't be established. RSA key fingerprint is 5a:51:41:de:62:0c:d8:e9:c4:00:e1:19:f5:61:57:8c. Are you sure you want to continue connecting (yes/no)? Yes Warning: Permanently added 'server' (RSA) to the list of known hosts. $ ssh-keygen -l -f ssh_host_rsa_key.pub 1024 5a:51:41:de:62:0c:d8:e9:c4:00:e1:19:f5:61:57:8c ssh_host_rsa_key.pub - 70 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Première approche : SSH et dérivés (3/5) Avertissement lors d'un changement de clef publique du serveur @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: POSSIBLE DNS SPOOFING DETECTED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is: 5a:51:41:de:62:0c:d8:e9:c4:00:e1:19:f5:61:57:8c. Please contact your system administrator. Mise à jour du serveur SSH (avec changement de clef d'hôte)? Attaque de type «Man-in-the-middle»? 192.168.0.1 00:50:fc:20:d8:37 192.168.0.254 00:60:97:cd:b6:9b Connexion «logique» Commutateur arp reply 192.168.0.254 is-at 00:48:54:3d:7d:e7 arp reply 192.168.0.1 is-at 00:48:54:3d:7d:e7 192.168.0.253 00:48:54:3d:7d:e7-71 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Première approche : SSH et dérivés (4/5) Problème de l'authenticité de la clef publique présentée Contact de l'administrateur Pour une vérification locale de l'empreinte de la clef présentée Consultation d'un annuaire authentifié centralisant les clefs ou les empreintes Exemple d'utilisation de DNSSEC Empreintes placées dans l'enregistrement de ressource TXT Mais il s'agit déjà de PKI! Nécessité d'un mécanisme de vérification hors-bande Administrateur système = rôle de tiers, garant de l'authenticité de la clef présentée Notion de «tiers de confiance» Tiers certifiant le lien entre clef publique et adresse IP ou un nom pleinement qualifié - 72 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Récapitulatif Première approche : SSH et dérivés (5/5) Intervention d'un tiers, dit «tiers de confiance» Utilisation de mécanismes «hors-bande» Première approche Introduction d'un tiers de confiance, certifiant les clefs publiques Recours au mécanisme de signature de la cryptographie asymétrique Restriction des communications dites «hors-bande» avec ce tiers de confiance Récupération de la clef publique de signature du tiers de confiance via un canal sûr Dans l'exemple précédent (changement de clef d'hôte SSH) : Contact de l'administrateur système par téléphone Administrateur Préalablement connu de l'utilisateur tiers de confiance Possédant un accès physique au système - 73 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
PGP et le «Web of Trust» (1/5) Principe : Cryptosystème hybride permettant l'échange chiffré/authentifié de données Cryptographie à clef secrète pour le chiffrement Cryptographie à clef publique pour la signature, le Principe de l'anneau de confiance («Web Of Trust Utilisation adaptée aux communautés... Notion de COI : «Community of interest» Exemple : le «Debian Keyring Web of Trust» - 74 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
PGP et le «Web of Trust» (2/5) Distribution des clefs Serveurs de clefs et serveurs HTTP référençant les clefs PGP Envoi et recherche de clef sur un serveur de clef avec gpg : $ gpg keyserver hkp://wwwkeys.pgp.net:11371 --send-keys <keyid> $ gpg keyserver hkp://wwwkeys.pgp.net:11371 --recv-keys <keyid> Recherche d'une clef suivant une chaîne de caractères : $ w3m 'http://pgpkeys.pgp.net/ Public Key Server -- Index ``hsc.fr '' Type bits /keyid Date User ID pub 1024D/07ACF6FA 2001/11/22 Thomas Seyrat <Thomas.Seyrat@hsc.fr> pub 1024D/34AFBB17 2001/04/18 Jerome Poggi (Office Key) <jerome.poggi@hsc.fr> pub 1024D/B068C137 1999/10/15 Alain Thivillon <Alain.Thivillon@hsc.fr> pub 1024R/D1D602E3 1999/02/26 Denis Ducamp <Denis.Ducamp@hsc.fr> pub 1024R/0F2C58BD 1997/07/02 Stephane Aubert <aubert@hsc.fr> pub 1024R/57155CC9 1996/11/09 Alain Thivillon <Alain.Thivillon@hsc.fr> pub 1024R/D4ED2595 1995/12/08 Herve Schauer <Herve.Schauer@hsc.fr.net> Exemple d'une recherche menée sur le nom Zimmerman sur le dépôt keyserver.pgp.com Public Key Server Error Search failed The number of certificates returned by this search exceeds the maximum set for this server. - 75 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
PGP et le «Web of Trust» (3/5) Solutions retenues en pratique Téléchargement à une URL, en HTTP par exemple Empreinte diffusée par courrier électronique (en-tête SMTP : X-GPG-Fingerprint) «GnuPG Party» Procédures décrites dans le «GnuPG Keysigning Party» HOW-TO - 76 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format d'une clé PGP PGP et le «Web of Trust» (4/5) Extrait avec PGPDump $./pgpdump ~/.gnupg/franck.davy.asc [...] Old: Public Key Packet(tag 6)(418 bytes) Ver 4 new Public key creation time - Fri Aug 31 16:52:54 CEST 2001 Pub alg - DSA Digital Signature Standard(pub 17) DSA p(1024 bits) -... DSA q(160 bits) -... DSA g(1024 bits) -... DSA y(1020 bits) -... Old: User ID Packet(tag 13)(32 bytes) User ID - Franck DAVY <Franck.Davy@hsc.fr> - 77 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
«GnuPG Party» PGP et le «Web of Trust» (5/5) Procédures décrites dans le «GnuPG Keysigning Party» HOW-TO What do I need for this party? Required Items 1. Physical attendance 2. Positive picture ID 3. Your Key ID, Key type, HEX fingerprint, and Key size 4. A pen/pencil or whatever you'd like to write with... 5. NO computer Why shouldn't I bring a computer? * Someone might have modified the computers programs, operating system, or hardware to steal or modify keys. Format GnuPG Party des clefs +--------+--------------------------------+-------------------------+----+----+ Key ID Key Owner Key Key Key Fingerprint Size Type +--------+----------------------------------------------------------+----+----+ 06E9EB78 Franck DAVY <Franck.Davy@hsc.fr> AD11 1F76 25E2 5614 B07B 1024 DSA EE22 ECA6 AE99 06E9 EB78 +--------+--------------------------------+-------------------------+----+----+ - 78 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Les certificats X.509
Définition Un certificat est un lien de confiance entre : Une identité Une clef publique Une période de validité Un usage Typologie des infrastuctures à clef publique (PKI): Une structure en théorie hierarchique 1. Au sommet : une autorité de certification dite «racine» Une autorité en laquelle la communauté d'utilisateurs a confiance Certificat auto-signé Extension par certification croisée... 2. Autorités de certification intermédiaires Certificats délivrés par l'autorité racine Habilitées, par exemple, à délivrer des certificats aux entités terminales 3. Entités terminales (Serveur SSL/TLS, client S/MIME etc.) - 80 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (1/9) Structure hiérarchique La validation du certificat d'une entité terminale est réalisé de proche en proche : 1. Validation de la signature appliquée au certificat de l'entité communicante 2. Validations successives des signatures appliquées aux certificats des autorités intermédiaires 3. Confiance accordée au certificat de l'autorité racine... Communication «hors-bande» Communication «en ligne» - 81 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (2/9) Exemple : validation d'un certificat serveur SSL/TLS - 82 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (3/9) s:/c=us/o=verisign, Inc./OU=Class 3 Public Primary Certification Authority i:/c=us/o=verisign, Inc./OU=Class 3 Public Primary Certification Authority s:/o=verisign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3 /OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign i:/c=us/o=verisign, Inc./OU=Class 3 Public Primary Certification Authority s:/c=fr/st=paris/l=paris/o=certplus SA/OU=Operations - 2003 /OU=Terms of use at www.certplus.com/rpa (c) 01/OU=Authenticated by Certplus SA /OU=Member, VeriSign Trust Network/CN=www.certplus.com i:/o=verisign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3 /OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign - 83 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : Itinéraire de certification (4/9) Certificat = structure certifiée Ensemble clef publique + paramètres administratifs scellé par la clef privée de l'autorité signataire Pour les différentes entités Possession du certificat de l'autorité racine, uniquement Parcours de l'itinéraire de certification (suivant les applications...) pour valider la chaîne des certificats présentés Organisation hierarchique? Multiples autorités de certification 106 autorités de certification, ou autorités dites de «confiance» dans Windows 2000 Passage d'une organisation du type «hierarchy of trust» vers une (dés)organisation «spaghetti of doubt» (Peter Gutmann) À la charge des applications de permettre au client de vérifier le certificat présenté Présentation de la chaîne de certification dans les protocoles SSL/TLS, S/MIME - 84 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (5/9) Validation d'un certificat serveur SSL/TLS Cas d'un serveur «correctement» configuré Présentation au client de l'intégralité de la chaîne de certification Pour le logiciel client : Pas de manipulations supplémentaires pour le téléchargement des certificats intermédiaires Possession préalable du certificat de l'autorité signataire requise, uniquement Cas d'un serveur mal configuré Les différents certificats de la chaîne ne sont pas présentés au client Le logiciel client doit-il la compléter? Explication de la présence de certificats intermédiaires dans IE? (leur importation n'est pas gratuite!) En général : Certificats terminaux, émis par une autorité racine (pathlen = 0) - 85 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Validation SSL/TLS Itinéraire de certification (6/9) $ openssl s_client -connect www.webserver.com:443 -CAfile ca/caroot.pem -showcerts CONNECTED(00000003) --- Certificate chain 0 s:cn=w CN=www.webserver.com ww.webserver.com i:cn=ca SSL -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- 1 s:cn=ca SSL i:cn=ca ROOT -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- 2 s:cn=ca ROOT i:cn=ca ROOT -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE----- Server certificate subject=/cn=www.webserver.com issuer=/cn=ca SSL - 86 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Validation SSL/TLS Itinéraire de certification (7/9) SSL handshake has read 4104 bytes and written 268 bytes -- New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA Server public key is 1024 bit SSL-Session: Protocol : TLSv1 Cipher : EDH-RSA-DES-CBC3-SHA Session-ID: 269BC84135E313F12A9E624065FAC6FA9452D2F728AE518FEB17E009B8E3FF8B Session-ID-ctx: Master-Key: 95F39BE9741D3B55B418A3B6BC8B0F9B3649CF \ F629B2259DEA36C4EAF16D4AB011FE6F62D914A679F7E915344AE8938E Key-Arg : None Start Time: 1008002520 Timeout : 300 (sec) Verify return code: 0 (ok) --- GET / HTTP/1.0 200 ok Content-type: text/html[...] Seul le certificat de l'autorité racine était initialement connu du navigateur La validation a été correctement effectuée, par vérification de proche en proche des certificats constituant la chaîne de certification - 87 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (8/9) Validation avec Netscape Présent dans Netscape : le certificat de l'autorité racine uniquement CA ROOT autosigné DN du porteur = DN de l'émetteur - 88 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Itinéraire de certification (9/9) Validation avec Netscape correctement effectuée L'émetteur du certificat serveur est CA SSL Seul le certificat de CA ROOT (CN=CA ROOT) figurait dans la base de données locale des certificats dits «de confiance» Présentation de l'empreinte du certificat calculée par le navigateur Empreinte MD5 du certificat au format DER Analogue au mécanisme employé par OpenSSH, lorsque la vérification à partir de la clef du CA n'est pas réalisable - 89 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format X.509 (1/5) Historique Norme ITU-T X.509, fait partie des recommandations X.500 Version 1 (1988) : Définition des champs de base Version 2 (1993) : Ajout de 2 champs optionnels Version 3 (1996) : Ajout d'extensions Avec notion de criticité Importance pour la sécurité! basiccontraints keyusage Etc. - 90 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format X.509 (2/5) Structure ASN.1 Abstract Syntax Notation 1 Syntaxe abstraite normalisée (X.208) Encodage : syntaxe de transfert distinctive Règle d'encodage DER certificate ::= SEQUENCE { tbscertificate TBSCertificate, signaturealgorithm AlgorithmIdentifier, signaturevalue BIT STRING } TBSCertificate ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialnumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectpublickeyinfo SubjectPublicKeyInfo, issueruniqueid [1] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 subjectuniqueid [2] IMPLICIT UniqueIdentifier OPTIONAL, -- If present, version shall be v2 or v3 extensions [3] EXPLICIT Extensions OPTIONAL -- If present, version shall be v3 } - 91 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format X.509 (3/5) Certificate: Data: Version: 1 (0x0) Serial Number: 32:50:33:cf:50:d1:56:f3:5c:81:ad:65:5c:4f:c8:25 Signature Algorithm: md2withrsaencryption Issuer: C=US, O=VeriSign, Inc., OU=Class 1 Public Primary Certification Authority Validity Not Before: Jan 29 00:00:00 1996 GMT Not After : Jan 7 23:59:59 2020 GMT Subject: C=US, O=VeriSign, Inc., OU=Class 1 Public Primary Certification Authority Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:e5:19:bf:6d:a3:56:61:2d:99:48:71:f6:67:de: [...] 2a:2f:31:aa:ee:a3:67:da:db Exponent: 65537 (0x10001) Signature Algorithm: md2withrsaencryption 4b:44:66:60:68:64:e4:98:1b:f3:b0:72:e6:95:89:7c:dd:7b: [...] f8:45 tbscertificate signaturealgorithm signaturevalue - 92 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format X.509 (4/5) Format texte du champ identifiant l'émetteur Issuer: C=US, O=VeriSign, Inc., OU=Class 1 Public Primary Certification Authority Représentation ASN.1 :.. SEQUENCE { :... SET { :.... SEQUENCE { :..... OBJECT IDENTIFIER countryname (2 5 4 6) :..... PrintableString 'US' :..... } :.... } :... SET { :.... SEQUENCE { :..... OBJECT IDENTIFIER organizationname (2 5 4 10) :..... PrintableString 'VeriSign, Inc.' :..... } :.... } :... SET { :.... SEQUENCE { :..... OBJECT IDENTIFIER organizationalunitname (2 5 4 11) :..... PrintableString :...... 'Class 1 Public Primary Certification Authority' :..... } :.... } :... } - 93 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Format X.509 (5/5) Structure ASN.1 pour l'attribut 'issuer' Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeTypeAndValue AttributeTypeAndValue ::= SEQUENCE { type AttributeType, value AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DEFINED BY AttributeType OID pour le RDN Country (C) 2.5.4.6 id-at-countryname countryname ATTRIBUTE ::= { SUBTYPE OF name WITH SYNTAX PrintableString (SIZE (2)) SINGLE VALUE TRUE ID id-at-countryname } Avec : 2.5.4 - X.500 attribute types 2.5 - X.500 Directory Services 2 - ISO/ITU-T jointly assigned OIDs Top of OID tree - 94 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Profil PKIX (1/2) Description Groupe de travail IETF créé en 1995 Objectif : développer pour l'internet une PKI fondée sur les certificats X.509 Composantes Instanciation des certificats X.509v3 et des listes de révocations X.509 pour une infrastructure adaptée à l'internet (RFC3280) Protocoles d'exploitation (RFC2559, RFC2585) Distributions des certificats et listes de révocation Protocoles de gestion (RFC2510) Dialogues entre le différentes entités de la PKI Règles d'usage et considérations pratiques (RFC2527) Exigences de sécurité En matière d'identification des sujets, de révocation des certificats - 95 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Profil PKIX (2/2) Existence de nombreux profils... PKIX, FPKI (US Federal PKI Profile), MISSI (US DoD profile), ISO 15782, SEIS (Secured Electronic Information For Society), Australian Profile, German Profile, Microsoft Profile etc. «You can' be a real country unless you have a beer and a airline. It helps if you have some kind of a football team, or some nuclear weapons, but at the very least, you need a beer.» -- Franck Zappa «And an X.509 profile.» -- Peter Gutmann Difficultés dans le choix des produits (et prestataires) Conformité au profil PKIX requise? Ex : Microsoft - Ignorance du bit keyusage... et de l'extension basicconstraints! (Cf. Faille CryptoAPI) Pour aller plus loin : «X.509 Style Guide» http://www.cs.auckland.ac.nz/~pgut001/ - 96 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Champs standards et X.500 (1/3) Version Indique l'utilisation possible d'extensions Problème de compatibilité avec les extensions propriétaires En pratique : version 3 Numéro de Série Identifiant unique d'un certificat (pour une autorité signataire donnée) En pratique : X509v3 extensions: 2.5.29.1: 0i...[...*.9..b.S2.R0P1.0...U...US1^M0...U..0...U...US1^M0...U...MSFT1200..U...)Microsoft Authenticode(tm) Root Authority... Incrémenté aléatoirement (estimation du nombre de certificats émis?) Champs "Subject" et "Issuer" Comportent respectivement les Distinguished Names (DN) de l'émetteur et du signataire du certificat Pour le certificat d'une autorité de certification racine, ces deux champs sont égaux En théorie, constitue un chemin unique vers l'entité possédant le DN référencé dans le DIT - 97 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Champs standards et X.500 (2/3) En pratique : inexistence d'annuaire X.500... Peu de sens en pratique (sauf contexte LDAP!) Seul le commonname est généralement utilisé Cas des serveurs HTTPS notamment Tous les RDN peuvent importer dans le cas d'un certificat client Gestion des autorisations par exemple Les RDN sont généralement sans grand rapport avec leur fonction originale Issuer= /O=VeriSign Trust Network /OU=VeriSign, Inc. /OU=VeriSign International Server CA - Class 3 /OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign Recommendation PKIX : utiliser l'extension v3 subjectaltname Gestion des alias, pour les hôtes virtuels, ou encore les adresses email multiples dans le cas du courrier électronique chiffré/signé au format S/MIME - 98 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Validité Champs standards et X.500 (3/3) Dates déterminant la période de validité d'un certificat Au delà de cette période, on parle d'expiration Suspension de validité durant cette période : révocation Remarques : Certificats révoqués arrivés à expiration susceptibles de rester dans les CRL Propice à l'accroissement en taille des CRL... Extrait de l'archive de CRL http://crl.verisign.com $ ls -al RSASecureServer* -rw------- 1 davy davy 822074 sep 20 09:01 RSASecureServer.crl -rw------- 1 davy davy 841986 sep 20 09:01 RSASecureServer.crl.0710 -rw------- 1 davy davy 766740 sep 20 09:01 RSASecureServer-p.crl.old -rw------- 1 davy davy 768420 sep 20 09:01 RSASecureServer-p.crl.save Cependant certains navigateurs ne vérifient pas correctement ces dates (Netscape) Exemple : Applet Java signée... mais certificat expiré Http://www.brookscole.com/compsci/aeonline/course/7/2/index.html - 99 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions X.509v3 (1/8) Notion de criticité d'une extension Contraintes d'utilisation, sur l'usage Clef publique de chiffrement (RSA), de signature (RSA/DSA), d'échange de clef (DH)? Exigences de sécurité Service de non répudiation associé? Contraintes sur l'itinéraire de certification Longueur maximale de la chaîne de certification Informations diverses Points de distribution des listes de révocation, de la politique de certification etc. Extensions propriétaires En pratique : Considération laissée à la discrétion de l'application Peu d'extensions reconnues ou prises en compte Avec de potentielles failles de sécurité en conséquence CryptoAPI MS02-050 - 100 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
basiccontraints Extensions X.509v3 (2/8) Pathlen : nombre de certificats pouvant apparaître, dans la chaîne de certification, sous le certificat portant cette extension CA : TRUE pour une entité habilitée à délivrer des certificats, FALSE sinon X509v3 Basic Constraints : CA:TRUE, pathlen:10 CA ROOT CA OP 1 10 autorités peuvent apparaître sous CA ROOT CA OP 10 Entité terminale Entité terminale - 101 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
keyusage Extensions X.509v3 (3/8) digitalsignature (RSA/DSA) mécanisme de signature nonrepudiation (RSA/DSA) service de non répudiation keyencipherment/dataencipherment (RSA) chiffrement de clef (de session, premastersecret) ou de données keycertsign/crlsign (RSA/DSA) signature de certificats/de listes de révocation keyagreement/encipheronly/decipheronly (DH) utilisation de Diffie-Hellman uniquement X509v3 Key Usage: Certificate Sign, CRL Sign - 102 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions X.509v3 (4/8) Variantes autour de l'extension keyusage Extended Key Usage (extendedkeyusage) serverauth, clientauth, codesigning, emailprotection, timestamping, mscodeind, mscodecom, msctlsign, mssgc, msefs, nssgc Netscape Cert Type (nscerttype) objsign, email, server, objca, emailca, sslca X509v3 Extended Key Usage: TLS Web Client Authentication, E-mail Protection Netscape Cert Type: SSL CA, S/MIME CA, Object Signing CA - 103 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions X.509v3 (5/8) crldistributionpoints URI ou DNS: point de téléchargement de la liste de révocation correspondant au certificat portant cette extension DirName (DN) permettant de télécharger la liste de révocation via LDAP X509v3 CRL Distribution Points: URI:h I:http://crl-acracine.certinomis.com/acracine.crl DNS:ldap.certinomis.com DirName:/C=FR/O=CertiNomis/OU=AC Racine - Root CA/CN=CertiNomis Recherche de la CRL via ldapsearch(1) Suite d'outils OpenLDAP http://www.openldap.org # CertiNomis Classe 2+, CertiNomis,FR dn: cn=certinomis Classe 2+, o=certinomis,c=fr certificaterevocationlist;binary:: MIIBJjCBkgIBATANBgkqhki... certificaterevocationlist;base64:: TulJQkpqQ0JrZ0lCQVRBTkJ... objectclass: top objectclass: crldistributionpoint cn: CertiNomis Classe 2+ - 104 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
authorityinfoaccess Extensions X.509v3 (6/8) Indication relative à l'autorité ayant émis le certificat porteur de cette extension, en terme de service de révocation en ligne typiquement (serveur OCSP) Authority Information Access: OCSP URI:http://fd.hsc.fr/ - 105 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions X.509v3 (7/8) certificatepolicies, policyidentifier Pointeur vers l'énoncé des pratiques de certification «[Ce document énonce les] pratiques utilisées par l'igc dans la gestion des certificats pratiques qui dépendent de la politique de certification mise en oeuvre. Une IGC doit publier cette déclaration afin de décrire les modalités de fonctionnement des service s qu'elle rend.«faq du DCSSI sur les infrastructures à gestion de clef http://www.scssi.gouv.fr/fr/faq/faq_igc.html Exemple : X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.1.1 CPS: https://www.verisign.com/cps User Notice: Organization: VeriSign, Inc. Number: 1-106 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions X.509v3 (8/8) X509v3 extensions: Netscape Cert Type: SSL CA, S/MIME CA, Object Signing CA X509v3 CRL Distribution Points: DirName:/C=US/O=Entrust.net/OU=www.entrust.net/CPS incorp. by ref. (limits liab.)/ou=(c) 1999 Entrust.net Limited/CN=Entrust.net Secure Server Certification Authority/CN=CRL1 URI:http://www.entrust.net/CRL/net1.crl X509v3 Private Key Usage Period: Not Before: May 25 16:09:40 1999 GMT, Not After: May 25 16:09:40 2019 GMT X509v3 Key Usage: Certificate Sign, CRL Sign X509v3 Authority Key Identifier: keyid:f0:17:62:13:55:3d:b3:ff:0a:00:6b:fb:50:84:97:f3:ed:62:d0:1a X509v3 Subject Key Identifier: F0:17:62:13:55:3D:B3:FF:0A:00:6B:FB:50:84:97:F3:ED:62:D0:1A X509v3 Basic Constraints: CA:TRUE X509v3 extensions: 2.5.29.10: 0... commonname:.)microsoft Authenticode(tm) Root Authority 2.5.29.1: 0i...[...*.9..b.S2.R0P1.0...U...US1^M0...U...MSFT1200..U...)Microsoft Authenticode(tm) Root Authority... - 107 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Faille CryptoAPI (1/2) «Internet Explorer SSL Vulnerability» (MS02-050) Description du problème Non prise en compte par Internet Explorer (5, 5.5 et 6) de l'extension v3 basiccontraints Exemple : X509v3 Basic Constraints : CA:TRUE, pathlen:10 Signification : Le certificat est celui d'une autorité de certification : CA:TRUE 10 certificats intermédiaires peuvent constituer la chaîne conduisant aux entités terminales : pathlen:10 Ces options n'ont de signification que pour le client manipulant le certificat Absence de l'option critique basicconstraints et permissité concernant les keyusage = possibilité pour la clef privée associée à la clef publique dans le certificat de délivrer un certificat Un certificat terminal peut se comporter comme une autorité de certification Un certificat serveur SSL/TLS valide peut donc certifier une clef publique Le danger est dans le prolongement de l'itinéraire de certification d'une «autorité de confiance» connue - 108 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Faille CryptoAPI (2/2) Scénario d'exploitation Attaque de type «Man-in-the-Middle» http://www.hsc.fr/ressources/presentations/mitm/index.html.fr Certificate chain 0 s:/c=fr/st=hauts de Seine/L=CLICHY/O=WEBSERVER Company.../CN=www.webserver.com i:/o=verisign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3 /OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign 1 s:/o=verisign Trust Network/OU=VeriSign, Inc./OU=VeriSign International Server CA - Class 3 /OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign i:/c=us/o=verisign, Inc./OU=Class 3 Public Primary Certification Authority s:/cn=www.gimmecard.tld i:/c=fr/st=hauts de Seine/L=CLICHY/O=WEBSERVER Company.../CN=www.webserver.com Commutateur www.gimmecard.tld Prolongation de l'itinéraire de certification Penser à bien configurer le «relais» présentant le certificat du serveur détourné pour qu'il renvoie à son tour les différents certificats de la chaîne de certification ;-) Extensible à S/MIME! Faille dans la CryptoAPI (non spécifique à IE) - 109 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique
Utilisation des certificats X.509v3 Commerce électronique, avec HTTPS (HTTP/SSL) Authentification SSL/TLS par certificat, obligatoire pour le serveur Authentification optionnelle pour le client (SSLv3/TLSv1) Message électronique sécurisée Confidentialité et authenticité des messages Entre utilisateurs finaux, avec S/MIME Entre MTA, avec SMTP-TLS Sécurisation des infrastructures réseau Tunnels IPSec Gestion de l'entreprise Intégration aux ERP Dématérialisation des procédures de l'administration Horodatage des documents, non répudiation des transactions Contrôle d'accès et gestion de privilèges - 111 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Les certificats dans IE 5.0 : Panorama Trois grandes classes de certificats X.509 Certificats Racines Certificats Intermédiaire s(autorités de certification non autosignées) Certificats Personnels (théoriquement non autorisées à délivrer de certificats) Manipulation des certificats X.509 Via l'interface graphique Conviviale, mais peu pratique Via la suite d'outils "Authenticode for IE 5.0" Assez «puissante», mais non livrée en standard Exemple : Exportation des certificats racines c:\ certmgr -add -all -c -s root -7 win2k_rootcerts.der Résultat : Liste de 106 certificats, au format PKCS#7 Certificats de confiance? DN : C=hk, O=C&W HKT SecureNet CA SGC Root... DN : C=UY, O=ADMINISTRACION NACIONAL DE CORREOS... DN : C=MX, CN=Autoridad Certificadora del Colegio Nacional de Correduria Publica Mexicana, A.C.,O=Colegio... - 112 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités de certification (1/3) - 113 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités de certification (2/3) - 114 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités de certification (3/3) - 115 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités intermédiaires (1/3) - 116 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités intermédiaires (2/3) - 117 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
IE 5.0 : Autorités intermédiaires (3/3) - 118 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Quelques chiffres... (1/2) Champs Standards Nombre de certificats (racines) référencés : 106 Répartition par pays Pays AU BE BR CH DE ES FI FR GB HK HU IT JP MX NL US UY ZA Ind. 4 2 4 1 7 4 2 7 1 4 3 2 3 2 1 41 1 6 11 Version des certificats Version 1 2 3 44 0 62 Taille des clefs Taille (RSA) 1000 1024 2046 2048 1 62 2 41 Les racines possédant ces clefs exotiques étant : (1000) Issuer: C=US, O=RSA Data Security, Inc., OU=Secure Server Certification Authority (2046) Issuer: C=FR, O=Certiposte, CN=Certiposte Classe A Personne Issuer: C=FR, O=Certiposte, CN=Certiposte Serveur - 119 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Extensions v3 Quelques chiffres... (2/2) X509v3 Key Usage : 40 (14 critical) Certificate Sign : 40 CRL Sign : 38 Digital Signature : 11 Non Repudiation : 7 X509v3 Basic Constraints : 60 (33 critical) CA:TRUE : 60 Pathlen : 15 Pathlen 1 3 4 5 8 10 1 3 3 2 1 5 X509v3 CRL Distribution Points : 22 URI : 13 DirName : 10 Disponibilité des CRL : 404 Not Found : 6 503 Service Unavailable : 2 200 OK : 5-120 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Le protocole HTTPS Démonstrations : HTTPS (1/8) Authentification du serveur par certificat X.509 Authentification du client par certificat X.509 (SSLv3/TLSv1 uniquement) Importation de la paire certificat/clef privée via PKCS#12 Suivi de session authentifiée et gestion des autorisations au niveau du serveur Restriction d'accès selon : DN (Organisation, pays etc.) Plages horaires Configuration Serveur Apache + Mod_SSL OpenSSL, pour la génération des certificats - 121 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations : HTTPS (2/8) Limitations : incompatibilité entre les protocoles SSL/TLS et HTTP/1.1 Problématique Entête 'Host: ' introduite en HTTP/1.1 Extension HTTP/1.0 dans les navigateurs modernes Hébergement de plusieurs sites pour une même instance de serveur WEB Distinction et distribution des requêtes suivant : L'adresse IP Le nom référencé par l'entête Host Limitation Utilisation des protocoles SSL/TLS Protocole SSL/TLS se déroulant avant tout dialogue HTTP Problème de validation d'un certificat Le nom présenté via le RDN 'CN' dans le certificat X.509 ne coïncide pas forcément avec le nom de domaine pleinement qualifié (FQDN) par lequel le serveur HTTPS est accédé - 122 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Illustration Démonstrations : HTTPS (3/8) $ openssl s_client -connect 192.70.106.69:443 CONNECTED(00000003) --- Server certificate -----END CERTIFICATE----- subject=/c=fr/st=ile-de-france/l=levallois-perret/o=herve Schauer Consultants/CN=www.webserver.com issuer=/c=fr/st=ile-de-france/l=levallois-perret/o=herve Schauer Consultants/CN=CA SSL --- No client certificate CA names sent --- SSL handshake has read 3360 bytes and written 320 bytes --- New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA Server public key is 1024 bit SSL-Session: Protocol : TLSv1 Cipher : EDH-RSA-DES-CBC3-SHA Session-ID: 399FF3BB460AE2A297079497F1BE7A0DB73973F99808ED12569C571B59FEF525 Master-Key: 94B3A8FFCEA690E35AA138AFC496AF803CD8F3C70C1617E44AF5AB0919D5F6DB2630C9F1AFB0D6C53FA7F0107E38DFF3 Verify return code: 0 (ok) --- GET / HTTP/1.0 Host: UnAutre.webserver.com HTTP/1.0 200 ok Content-type: text/html - 123 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations : HTTPS (4/8) Hôtes virtuels par adresse IP Génération des certificats Champ CN égal au FQDN Génération «classique» Mécanisme transparent pour l'utilisateur Utilisation de plusieurs adresses IP Alternative similaire : utiliser des ports différents Hôtes virtuels par nom Une et une seule adresse IP Utilisation d'alias DNS (CNAME) Un seul certificat X.509 est présenté pour les 2 hôtes hébergés... - 124 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations : HTTPS (5/8) Hôtes virtuels par nom DNS Standard query A www1.webserver.com DNS Standard query response CNAME www.webserver.com A 192.0.20.1 GET / HTTP/1.0 Host: www1.webserver.com CN=www.webserver.com 192.0.20.1 Hôtes virtuels par adresse IP DNS Standard query A www1.webserver.com DNS Standard query response A 192.0.20.2 GET / HTTP/1.0 Host: www1.webserver.com CN=www1.webserver.com 192.0.20.1 192.0.20.2... - 125 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations : HTTPS (6/8) Méthodes de validation des certificats Netscape Gestion des wildcards et expressions rationnelles dans le champ CN Gestion des CN multivalués Spécification Netscape (SSLv3) : http://www.netscape.com/eng/security/ssl_2.0_certificate.html Internet Explorer Gestion des subjectaltname multivalués de type dnsname En cas de subjectaltname non présent : Gestion du CN avec wildcards Conformité partielle à la RFC2818 [HTTP/TLS] - 126 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Problématique Démonstrations : HTTPS (7/8) Internet Explorer 5.01 ne gère pas les wildcards http://support.microsoft.com/support/kb/articles/q258/8/58.asp http://www.thawte.com/support/server/wildcards.html Application de correctifs nécessaire Solution Peu envisageable à grande échelle, et face à une population cliente non identifiée Certificat «hybride» Valeur du commonname (foo bar).webserver.com ou *.webserver.com X509v3 Subject Alternative Name: DNS:foo.webserver.com, DNS:bar.webserver.com - 127 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Pour aller plus loin... Ressources et démonstrations : HTTPS (8/8) «SSL and TLS Designing and Building Secure Systems» (Eric Rescorla) Addison-Wesley, 2001 ISBN 0-201-61598-3 http://www.rtfm.com/sslbook/ «SSL/TLS : du concept à la pratique» http://www.hsc.fr/~davy/ssl-tls.pdf - 128 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (1/9) Service de déclaration des impôts en ligne http://www.ir.dgi.minefi.gouv.fr/ Usage du certificat X.509 client généré Authentification client SSLv3/TLSv1 (gérée par le navigateur) Restriction de l'accès au site HTTPS Pour rappel : il n'y a pas de service de non répudiation en SSL/TLS La clef utilisée pour «signer» les données applicatives n'est pas celle associée à la clef publique contenue dans le certificat Signature numérique de la déclaration au format électronique (gérée une applet Java) À laquelle est associée un service de non-répudiation («imputabilité») Clef privée et certificat dans un fichier au format PKCS#12 contenant : 1. Les certificats des autorités signataires a) Autorité de certification racine b) Autorités de certification intermédiaires 2. Le certificat client et la clef privée associée (chiffrée en DES-EDE3-CBC) - 129 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (2/9) Télédéclaration des impôts : architecture AC Racine O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS RACINE AC intermédiaire n 1 O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS AC intermédiaire n 2 O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS USAGER pathlen=0 Entité terminale C=fr, O=DIRECTION GENERALE DES IMPOTS, OU=DIRECTION GENERALE DES IMPOTS USAGER, OU=AD - 1, OU=D - 0, CN=XXXXXXXXXXXXX DAVY FRANCK - 130 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (3/9) AC Racine Certificate: Data: Version: 3 (0x2) Serial Number: 7a:7a:cd:e8:d9:d3:65:ee:00:fb:8f:6b:3a:8b:89:70 Signature Algorithm: sha1withrsaencryption Issuer: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS RACINE Validity Not Before: Jul 5 00:00:00 2001 GMT Not After : Jul 4 23:59:59 2013 GMT Subject: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS RACINE Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (2048 bit) Modulus (2048 bit): [...] Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:TRUE X509v3 CRL Distribution Points: URI:http://icp.dgi.minefi.gouv.fr/teleir/AC_DIRECTION_GENERALE_DES_IMPOTS_RACINE.crl X509v3 Key Usage: Certificate Sign, CRL Sign X509v3 Subject Key Identifier: 08:F1:F8:CF:BF:01:4F:88:58:D4:9A:7F:5B:BC:ED:C7:69:69:43:DE X509v3 Authority Key Identifier: keyid:08:f1:f8:cf:bf:01:4f:88:58:d4:9a:7f:5b:bc:ed:c7:69:69:43:de - 131 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (4/9) AC intermédiaire n 1 Certificate: Data: Version: 3 (0x2) Serial Number: 6d:61:71:7a:c0:dc:23:c0:f3:a7:2b:03:ac:21:f0:af Signature Algorithm: sha1withrsaencryption Issuer: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS RACINE Validity Not Before: Jul 5 00:00:00 2001 GMT Not After : Jul 4 23:59:59 2012 GMT Subject: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (2048 bit) Modulus (2048 bit): [...] Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:TRUE X509v3 CRL Distribution Points: URI:http://icp.dgi.minefi.gouv.fr/teleir/AC_DIRECTION_GENERALE_DES_IMPOTS_RACINE.crl X509v3 Key Usage: Certificate Sign, CRL Sign X509v3 Subject Key Identifier: 04:6C:AE:8D:DB:03:C7:21:91:EB:5B:61:35:AD:A5:AF:43:5E:2F:DB X509v3 Authority Key Identifier: keyid:08:f1:f8:cf:bf:01:4f:88:58:d4:9a:7f:5b:bc:ed:c7:69:69:43:de - 132 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (5/9) Certificat des autorités de certification racine et intermédiaire n 1 AC Racine : certificat autodélivré/autosigné Version 3 subject == issuer Présence d'extensions X509v3 Clef publique RSA de 2048 bits Usages : Émission de certificats (Certificate Sign) Émission de listes de révocation (CRL Sign) Liste de révocation associée via l'extension crldistributionpoints Autorités non opérationnelles $ openssl crl -inform DER \ -in AC_DIRECTION_GENERALE_DES_IMPOTS_RACINE.crl -text -noout Certificate Revocation List (CRL): Version 1 (0x0) Signature Algorithm: sha1withrsaencryption Issuer: /O=DIRECTION GENERALE DES IMPOTS/CN=AC DIRECTION GENERALE DES IMPOTS RACINE Last Update: Jul 5 00:00:00 2001 GMT Next Update: Jul 4 23:59:59 2013 GMT No Revoked Certificates. Signature Algorithm: sha1withrsaencryption 91:9f:54:d7:ad:67:1a:f9:b8:f6:13:09-133 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (6/9) AC intermédiaire n 2 Certificate: Data: Version: 3 (0x2) Serial Number: 70:f8:41:2e:35:ab:81:86:b3:ea:6e:77:05:49:2a:1b Signature Algorithm: sha1withrsaencryption Issuer: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS Validity Not Before: Jul 5 00:00:00 2001 GMT Not After : Jul 4 23:59:59 2011 GMT Subject: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS USAGER Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): [...] Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:TRUE, pathlen:0 X509v3 CRL Distribution Points: URI:http://icp.dgi.minefi.gouv.fr/teleir/AC_DIRECTION_GENERALE_DES_IMPOTS.crl X509v3 Key Usage: Certificate Sign, CRL Sign Netscape Cert Type: SSL CA, S/MIME CA X509v3 Subject Alternative Name: DirName:/CN=DGI-1 X509v3 Subject Key Identifier: 03:71:E1:87:C2:F3:73:26:D0:0A:31:24:A0:34:4E:7A:38:81:7F:8A X509v3 Authority Key Identifier: keyid:04:6c:ae:8d:db:03:c7:21:91:eb:5b:61:35:ad:a5:af:43:5e:2f:db - 134 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (7/9) Certificat de l'autorité de certification n 2 AC opérationnelle : délivre des certificats à des entités terminales Version 3 Longueur de l'itinéraire de certification égal à 0 Aucune autorité de certification intermédiaire tolérée sous l'autorité CN=AC DIRECTION GENERALE DES IMPOTS USAGER Présence d'extensions X509v3 Clef publique RSA de 1024 bits Usages : Émission de certificats clients/serveurs SSL/TLS (SSL CA, Certficate Sign) Émission de certificats clients S/MIME (S/MIME CA, Certificate Sign) Émission de listes de révocation (CRL Sign) Liste de révocation associée à ce certificat via l'extension crldistributionpoints Autorité opérationnelle $ openssl crl -inform DER \ -in AC_DIRECTION_GENERALE_DES_IMPOTS.crl -text -noout Certificate Revocation List (CRL): [...] Issuer: /O=DIRECTION GENERALE DES IMPOTS/CN=AC DIRECTION GENERALE DES IMPOTS [...] No Revoked Certificates. - 135 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (8/9) Certificat client Certificate: Data: Version: 3 (0x2) Serial Number: 54:df:be:15:c2:49:d7:02:78:47:cf:8c:ac:04:fd:0d Signature Algorithm: md5withrsaencryption Issuer: O=DIRECTION GENERALE DES IMPOTS, CN=AC DIRECTION GENERALE DES IMPOTS USAGER Validity Not Before: Mar 17 00:00:00 2003 GMT Not After : Mar 16 23:59:59 2006 GMT Subject: C=fr, O=DIRECTION GENERALE DES IMPOTS, OU=DIRECTION GENERALE DES IMPOTS USAGER, OU=AD - 1, OU=D - 0, CN=XXXXXXXXXXXXX DAVY FRANCK Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (512 bit) Modulus (512 bit): [...] Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 CRL Distribution Points: URI:http://onsitecrl.certplus.com/ DIRECTIONGENERALEDESIMPOTSDIRECTIONGENERALEDESIMPOTSUSAGER/LatestCRL X509v3 Key Usage: Digital Signature, Non Repudiation Netscape Cert Type: SSL Client 2.16.840.1.113733.1.6.9:... - 136 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Exemple de PKI : télédéclaration des impôts (9/9) Certificat d'une entité terminale Clef publique RSA de 512 bits Usages : Utilisation comme certificat client SSL/TLS (SSL Client, Digital Signature) Utilisation comme certificat de signature, avec service de non répuditation associé (Digital Signature, Non Repudiation) OID «propriétaire» Verisign : 2.16.840.1.113733.1.6.9 Identifie l'énoncé des pratiques de certification de l'autorité signataire OID value: 2.16.840.1.113733.1.6 OID description: -- VeriSign defined certificate extension sub tree -- (2.16.840.1.113733.1.6) -- id-extensions OBJECT IDENTIFIER ::= {id-pki extensions(6)} URL for further info: http://www.verisign.com/repository/cps/cpsch2.htm Liste de révocation associée à ce certificat via l'extension crldistributionpoints $ date lun mar 31 13:43:41 CEST 2003 $ openssl crl -inform DER -in LatestCRL -text -noout \ grep "Serial Number" wc -l 103405-137 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Fonctionnement des PKI - 3 - Architecture PKI
Plan Introduction Architecture et composantes Analogie : carte d'identité nationale Entités et rôles respectifs Gestion/Cycle de vie des certificats Demande de certificat Signature de demande de certificat Publication de certificat Révocation de certificat Politique et énoncé des pratiques de certification Démonstrations - 139 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Introduction
Architecture et composantes
Analogie : Carte d'identité Nationale Procédure Retrait d'un formulaire type http://www.interieur.gouv.fr/cerfa/formulaires/20-3252.pdf Dépôt du formulaire accompagné de pièces justificatives (à la mairie) Acte de naissance, justificatif de domicile, photos d'identité, empreintes digitales etc. Validation (Formulaire + Pièces) par un service émetteur Mairie, commissariat de Police par exemple Demande transmise à la préfecture/sous-préfecture, pour délivrance de la carte Mise à disposition de la carte d'identité Mairie Commissariat de Police Préfecture/sous-préfecture - 142 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Authentification et autorisation (1/4) Par analogie avec la carte nationale d'identité, le certificat X509v3 offre uniquement un service d'authentification Ne pas confondre authentification et autorisation! Authentification : n.f. Action d'authentifier Authentifier : v.tr. Certifier authentifique, conforme, certain Autorisation : n.f. Action d'autoriser Autoriser : v.tr. Accorder à quelqu'un la permission de (faire quelquechose) Le certificat X509v3 certifie le lien entre DN et clef publique Seul un service d'authentification est rendu Au sein d'une même communauté d'intérêt, considérant l'autorité de certification racine comme une autorité «de confiance» - 143 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Authentification et autorisation (2/4) Authentification et autorisation dans Apache/mod_ssl Service d'authentification assuré via les directives suivantes : SSLCACertificateFile/SSLCACertificatePath File Path Fichier ou chemin pointant vers les fichiers, au format PEM, contenant les certificats des autorités considérées comme étant dignes «de confiance» par le serveur. Les clefs publiques de ces certificats servent à la validation, au sens cryptographique (vérification d'une signature) de l'éventuel certificat présenté par un client lors de la phase handshake des protocoles SSLv3 et TLSv1. À la vérification, au sens cryptographique, d'une signature s'ajoute la composante fondamentale qu'est la confiance SSLVerifyClient none require optional optional_no_ca Directive spécifiant le caractère obligatoire de la présentation d'un certificat client. Des variables d'environnement sont initialisées suite à la présentation d'un certificat client. Dépendantes de l'implémentation SSL/TLS employée : mod_ssl, apache-ssl? Permettent l'accès, en lecture, aux paramètres du certificat par une application - 144 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Authentification et autorisation (3/4) Service d'autorisation assuré via la directive SSLRequire SSLRequire Expression Accorde ou refuse l'accès à un répertoire sur la base de l'évaluation de l'expression booléenne Expression, exprimée en fonction des variables d'environnement dérivées du certificat client présenté Exemple d'utilisation ( extrait de la documentation de référence de mod_ssl) : SSLRequire ( %{SSL_CIPHER}!~ m/^(exp NULL)-/ \ and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \ and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \ and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/ Nécessite une authentification préalable du client Incompatible avec l'utilisation de la directive optional_no_ca! - 145 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : Authentification et autorisation (4/4) 1. Authentifier les utilisateurs sur la base des certificats des autorités «publiques» et/ou «privées», mais toujours considérées comme «dignes de confiance» Exemple : base de certificats de Windows 2000 http://www.hsc.fr/~davy/certs/trustees.pem 2. Autoriser les utilisateurs sur la base des variables d'environnement dérivées du certificat client Exemple d'utilisation : architecture de type SSO Session SSLv3/TLS Authentification mutuelle par certificat X509v3 Propagation du DN auprès des applications Ex. Réécriture de la QUERY_STRING par mod_rewrite - 146 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
PKI : entités et rôles respectifs (1/2) Internet X509 PKI : Certificates Management Protocols (RFC2510) +---+ C +------------+ e <--------------------> End entity r Operational +------------+ t transactions ^ and management Management / transactions transactions PKI users C v R -------------------+--+-----------+---------------- L ^ ^ PKI management v entities R +------+ e <--------------------- RA <---+ p Publish certificate +------+ o s I v v t +------------+ o <------------------------------ CA r Publish certificate +------------+ y Publish CRL ^ +---+ Management Transaction v +------+ CA +------+ - 147 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
PKI : entités et rôles respectifs (2/2) Autorité de certification privée Gestion de la PKI et des clefs de l'autorité de certification racine Autorité de certification publique Délivrance de certificat X.509v3 aux utilisateurs finaux Infogérance de PKI ( Verisign, GTE Cyber Trust, Certplus, Chambersign etc.) Modèle hybride Côté client : Autorité Locale d'enregistrement Contrôle du contenu des informations certifiées Génération des bi-clefs Enregistrement des demandes Authentification des entités terminales Côté prestataire de services : autorité de certification «Fabrication» des certificats Signature des demandes de certificat Publication et archivage des certificats Gestion des listes de révocation? Fourniture de services (horadatage etc.) - 148 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Cycle de vie des certificats X.509
Demande de certificat (1/6) Génération du bi-clef Décentralisée Génération du bi-clef à l'enregistrement sur le poste client Support : carte à puce, disque dur, dongle USB, carte pcmcia etc. Demande de certificat pouvant être émise par un client léger (Cf. Netscape) Suivant le niveau de sécurité associé à la classe du certificat : Adresse électronique valide suffisante Présence physique requise Centralisée Dé-corrélation des phases d'enregistrement et de génération du bi-clef Bi-clef généré dans un site «sécurisé», puis délivrance du certificat (sur carte à puce, par exemple) à l'utilisateur Recouvrement des clefs Exigences de sécurité différentes Problème de la non-répudiation pour la clef privée de signature CA Publiques : sauvegarde des certificats X.509 seuls CA Privées : sauvegarde du certificat de signature et du bi-clef de chiffrement - 150 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Demande de certificat (2/6) Génération d'une demande de certificat Demande de certificat au format PKCS#10 «Certificate Request Syntax Standard» http://www.rsasecurity.com/rsalabs/pkcs/pkcs-10/ Utilisation de l'utilitaire req(1ssl) $ openssl req -new -config./openssl.cnf -newkey rsa:1024 -nodes \ -keyout private_key.pem -out req.csr Exemple de formulaire de demande de certificat You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Pays [FR]: Departement [Ile-de-France]: Localite (e.g. Ville) [Levallois-Perret]: Organisation [Herve Schauer Consultants]: Nom ou URL []:Franck Davy Adresse Email []:Franck.Davy@hsc.fr Challenge []:secret - 151 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Demande de certificat (3/6) Format de la demande de certificat Certificate Request: Data: Version: 0 (0x0) Subject: C=FR, ST=Ile-de-France, L=Levallois-Perret, O=Herve Schauer Consultants, CN=Franck DAVY/Email=Franck.Davy@hsc.fr Subject Public Key Info: Public Key Algorithm: rsaencryption RSA Public Key: (1024 bit) Modulus (1024 bit): [...] Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: md5withrsaencryption [...] Champ Data Ensemble des données «administratives» entrées via un formulaire Clef publique RSA générée (au format PKCS#1!) Champ Signature Structure ASN.1 'Data:' (encodée suivant la syntaxe de transfert DER) signée Signature avec la clef privée correspondant à la clef publique (champ 'RSA Public Key' figurant dans le certificat (la clef privée n'est pas divulguée à l'autorité signataire!) - 152 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Demande de certificat : carte à puce (4/6) Utilisation d'openssl-engine Carte PCMCIA Carte Chrysalis-ITS Luna2 PC Card Procédure décrite : «Using a Cryptographic Hardware Token with Linux» http://www.linuxjournal.com/article.php?sid=4744 Initialisation $ openssl req -engine luna2 -keyform engine -text -key DSA-public:1:1234 \ -out request.csr -engine : spécifie le token -key : Nom de la clé : Slot de la carte PCMCIA : Code PIN Après réception du certificat certificate.pem $ openssl smime -sign -engine luna2 -in email.txt -out signed.email.txt \ -signer certficate.pem -keyform engine -inkey DSA-Public:1:1234-153 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Demande de certificat : client léger (5/6) Client léger : Netscape Navigator (version > 3.0) Utilisation d'une extension pour la génération de clef http://wp.netscape.com/eng/security/ca-interface.html Tag HTML 'KEYGEN' <KEYGEN NAME="name" CHALLENGE="challenge string"> Une clef RSA de 512 (export), 768 ou 1024 bits est générée La clef privée RSA est conservée dans la base de donnée locale des certificats La clef publique et le challenge sont signés par la clef privée Protection contre le rejeu (les données soumises ne sont pas signées!) Encodage DER de la structure PublicKeyAndChallenge PublicKeyAndChallenge ::= SEQUENCE { spki SubjectPublicKeyInfo, challenge IA5STRING } SignedPublicKeyAndChallenge ::= SEQUENCE { publickeyandchallenge PublicKeyAndChallenge, signaturealgorithm AlgorithmIdentifier, signature BIT STRING } - 154 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Demande de certificat : client léger (6/6) Données soumises par formulaire commonname=john+doe& =John+Doe&email=doe@foo.com& =doe@foo.com&org=foobar+computing+corp.& =Foobar+Computing+Corp.&orgunit=Bu reau+of+bureaucracy&locality locality=anytown& =Anytown&state=California& =California&country=US& =US&key=MIHFMH EwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAnX0TILJrOMUue%2BPtwBRE6XfV%0AWtKQbsshxk5Z hcuwcwyvcniq9b82qhjdoacdd34rqfcaind46fxkqunb0mvkzqid%0aaqabfhfnb3ppbgxhsxnn euzyawvuzdanbgkqhkig9w0baqqfaanbaakv2eex2n%2fs%0ar%2f7ijnrowlszsmttiqteb%2b ADWHGj9u1xrUrOilq%2Fo2cuQxIfZcNZkYAkWP4DubqW%0Ai0%2F%2FrgBvmco%3D Champ key encodé en base 64, au format SPKAC Acronyme Netscape de «Signed Public Key and Challenge» Donnée manipulable par l'outil spkac(1ssl) $ openssl spkac -key private.key -challenge 'secret' -out spki.cnf $ openssl spkac -in spki.cnf Netscape SPKI: Public Key Algorithm: rsaencryption RSA Public Key: (512 bit) Modulus (512 bit): 00:df:bd:db:40:b1:cb:28:17:42:c9:57:15:63:f8: :cb:28:17:42:c9:57:15:63:f8: [...] Exponent: 65537 (0x10001) Challenge String: secret Signature Algorithm: md5withrsaencryption -----BEGIN PUBLIC KEY----- MdwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAN+920CxyygXQslXFWP4JM4B4AqTNmH9 [...] -----END PUBLIC KEY----- - 155 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Signature de demande de certificat Signature de la demande de certificat par l'autorité de certification Signature du champ 'data' de la demande de certificat au format PKCS#10, éventuellement modifié (conformité à la politique de certification) et augmenté d'extensions v3 Remarques Version 0 pour la demande de certificat Possibilité d'inclure des extensions dans la demande de certificat En pratique, avec ca(1ssl) openssl.cnf : fichier de configuration openssl Chargement des extensions à incorporer au certificat final keyusage, crldistributionpoints, etc. $ openssl ca -config./openssl.cnf -extensions SMIME -in smime.csr \ -out smime.pem Cas d'une autorité racine : certificat auto-signé $ openssl req -new -x509 -config./openssl.cnf -extensions CA -sha1 \ -newkey rsa:1024 -nodes -days 3650 -keyout ca/ca.key -out ca/ca.pem - 156 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Publication de certificat (1/4) Éléments publiés Certificats des autorités de certification/révocation Certificats des entités terminales Listes de révocation (CRL) Publication via LDAP Schéma core objectclass certificationauthority (2.5.6.16) Attributs authorityrevocationlist cacertificate certificaterevocationlist Schéma inetorgperson objectclass inetorgperson (2.16.840.1.113730.3.2.2) Attribut usercertificate Liste des OID référencés : «Objects Identifiers Registry» http://www.alvestrand.no/objectid/ - 157 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Publication de certificat (2/4) Téléchargement des CRL via le protocole LDAP Extension X509v3 : X509v3 CRL Distribution Points: URI:http://crl-acracine.certinomis.com/acracine.crl DNS:ldap.certinomis.com DirName:/C=FR/O=CertiNomis/OU=AC Racine - Root CA/CN=CertiNomis Recherche par ldapsearch(1) sur ldap.certinomis.com # CertiNomis Classe 2+, CertiNomis,FR dn: cn=certinomis Classe 2+, o=certinomis,c=fr certificaterevocationlist;binary:: MIIBJjCBkgIBATANBgkqhkiG9w0BAQUFADBBMQswCQY [..] tsyl7hmtqh/0z2hhjv63yek1hljuj4s//53cwnzfym+607g== certificaterevocationlist;base64:: TulJQkpqQ0JrZ0lCQVRBTkJna3Foa2lHOXcwQkFRVUZ [...] zfotgp1sjrzly8kntnjd056rnlnkzywn2c9pqo= objectclass: top objectclass: crldistributionpoint cn: CertiNomis Classe 2+ Certificat DER encodé en base 64 (# Format PEM) - 158 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Publication de certificat (3/4) Publication via le protocole HTTP Types MIME (RFC2585).cer application/pkix-cert.crl application/pkix-crl Autres......spécifiques aux applications.cer application/x-x509-ca-cert.crl application/pkcs-crl.crt application/pkix-cert.crt application/x-x509-ca-cert.crt application/x-x509-user-cert etc. Points de publication CRL (Protocole HTTP généralement, méthode GET classiquement) Extension crldistributionpoints URI:http://bar/crl/foobar.crl OCSP (Protocole HTTP, méthode POST) Extension Authority Information Access OCSP URI:http://foobar/ - 159 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations Publication de certificat (4/4) Messagerie sécurisée avec S/MIME, avec des certificats clients publiés dans un annuaire LDAP - 160 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (1/9) «Il appartient à l'utilisateur d'un certificat de vérifier qu'un certificat qu'il se destine à utiliser n'a pas été révoqué» FAQ du DCSSI http://www.ssi.gouv.fr/fr/faq/faq_igc.html Révocation = suspension d'un certificat avant sa date de fin de validité Raisons pouvant conduire à la révocation d'un certificat Changement de statut d'une entité Arrêt d'activité d'une autorité Procédure d'émission du certificat non réglementaire Perte de la clef privée Compromission de la clef privée Demande de révocation à l'initiative de Autorité signataire Détenteur du certificat Preuve de possession (par partage de secret) Tierce partie autorisée Implication judiciaire par exemple - 161 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (2/9) Mise en oeuvre de mécanismes permettant à un utilisateur de s'assurer de la non-révocation d'un certificat Principaux mécanismes de révocation (Partiellement) mis en oeuvre dans les navigateurs grand-public Mécanisme de Listes de Révocation CRL («Certificate Revocation List») Protocole OCSP ( «Online Certificat Status Protocol») Mécanisme de CRL Publication d'une liste périodiquement mise à jour des certificats révoqués Certificats identifiés par Leur autorité signataire Leur numéro de série, unique pour une autorité signataire donnée Liste signée par l'autorité signataire Ou une autorité déléguée Présence de l'extension v3 crlsign dans le certificat de l'autorité émettant la CRL : X509v3 Key Usage: CRL Sign - 162 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (3/9) Exemple de liste de révocation : $ openssl crl -in crl.pem -text -noout -CApath /etc/ssl/trusted verify OK Certificate Revocation List (CRL): Version 1 (0x0) Signature Algorithm: md5withrsaencryption Issuer: /C=FR/L=Levallois-Perret/O=Herve Schauer Consultants /CN=CA ROOT/Email=Franck.Davy@hsc.fr Last Update: Aug 27 21:34:33 2001 GMT Next Update: Sep 26 21:34:33 2001 GMT Revoked Certificates: Serial Number: 03 Revocation Date: Aug 17 21:33:46 2001 GMT Serial Number: 06 Revocation Date: Aug 26 18:10:10 2001 GMT Serial Number: 07 Revocation Date: Aug 26 18:15:12 2001 GMT Signature Algorithm: md5withrsaencryption 56:1a:c1:b6:d9:2d:03:8f:4a:aa:dc:1a:46:74:2d:f6:42:ed: [...] a1:c0:42:e6-163 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (4/9) Disponibilité des CRL Nécessité d'indiquer, sur un certificat X.509 destiné à être utilisé, l'url de la liste de révocation relative au certificat Ajout d'une extension X509v3 au certificat : crldistributionpoints (CRLDP) Association au certificat de la liste de révocation dont il dépend Client qui n'a pas à connaître, au préalable, l'intégralité des adresses où télécharger les CRL relatives à une autorité signataire pour une famille de certificats donnée Permet une stratégie de partitionnement des CRL Limitation du nombre de certificats émis portant des CRLDP identiques Lutte contre la taille croissante des listes de révocation émises X509v3 extensions: X509v3 Subject Alternative Name: DirName:/CN=OCSP 1-4 X509v3 CRL Distribution Points: URI:http://crl.verisign.com/RSASecureServer-p.crl Protocoles de distribution utilisés HTTP LDAP Mais à quel annuaire se connecter? - 164 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (5/9) En pratique : Connexion au site www.certplus.com Certificat présenté comportant les extensions X509.v3 suivantes : X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 CRL Distribution Points: URI:http://crl.verisign.com/RSASecureServer.crl X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.1.1 CPS: https://www.verisign.com/cps User Notice: Organization: VeriSign, Inc. Number: 1 Explicit Text: VeriSign's CPS incorp. by reference liab. ltd. (c)97 VeriSign X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication Authority Information Access: OCSP - URI:http://ocsp.verisign.com - 165 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (6/9) Téléchargement de la CRL par Internet Explorer Téléchargement automatique si présence de l'extension crldistributionpoints Option (avancée) non activée par défaut «Vérifier la révocation des certificats» Connexion sur le site http://www.certplus.com Sortie de TDIMon http://www.sysinternals.com 28 0.60371751 IEXPLORE.EXE:964 TDI_SEND TCP:0.0.0.0:1183 195.101.88.66:443 42 0.97214981 IEXPLORE.EXE:964 IRP_MJ_CREATE TCP:Connection obj SUCCESS Context:0x80118948 43 0.97217551 IEXPLORE.EXE:964 TDI_ASSOCIATE_ADDRESS TCP:Connection obj SUCCESS TCP:0.0.0.0:1184 44 0.97220513 IEXPLORE.EXE:964 TDI_CONNECT TCP:0.0.0.0:1184 216.168.253.32:80 195.101.88.66 : www.certplus.com 216.168.253.32 : crl.verisign.net - 166 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (7/9) Sortie de FILEMon http://www.systinternals.com 1731 20:22:08 IEXPLORE.EXE:964 IRP_MJ_CREATE C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files\ Content.IE5\XH7R96CX\RSASecureServer[1].crl SUCCESS Attributes: N Options: Create 1732 20:22:08 IEXPLORE.EXE:964 IRP_MJ_WRITE C:\Documents and Settings\Administrateur\Local Settings\Temporary Internet Files\ Content.IE5\XH7R96CX\RSASecureServer[1].crl SUCCESS Offset: 0 Length: 685 [...] 2535 20:22:23 IEXPLORE.EXE:964 IRP_MJ_CREATE C:\Documents and Settings\Administrateur\ Local Settings\Temporary Internet Files\Content.IE5\4XKXAXPM\certplus[1].htm SUCCESS Attributes: N Options: Create Téléchargement préliminaire du fichier RSASecureServer.crl Téléchargement de la page certplus.htm Latence importante dûe à la taille de la CRL 797ko Fonctionnalité similaire dans Mozilla et Netscape 6 Avec la possibilité d'effectuer un téléchargement périodique des CRL, et non simplement ponctuel, à la consultation d'un site - 167 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Protocole OCSP Révocation de certificat (8/9) Mis en oeuvre dans Mozilla Exemple avec l'application cliente ocsp(1) d'openssl $ openssl ocsp -url http://ocsp.verisign.com -issuer./trust/ca.pem \ -CAfile./trust/ca.pem -cert./certplus.pem -text OCSP Request Data: Version: 1 (0x0) Requestor List: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: 0E9290B27AA8BAF65D3C9229AFE8F31DB953B2DA Issuer Key Hash: 034FA3A36BCBEC6D0760176CEC9ABF67C542F26A Serial Number: 47C1C31DC6D28C5C2000373C7F5D90C1 Request Extensions: OCSP Nonce: 705BFEE68E6F0B631DDF3C57AEDC4AD8-168 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Révocation de certificat (9/9) Réponse du serveur OCSP Response Data: OCSP Response Status: successful (0x0) Response Type: Basic OCSP Response Version: 1 (0x0) Responder Id: O = "VeriSign, Inc.", OU = VeriSign Trust Network, OU = Terms of use at https://www.verisign.com/rpa (c)00, CN = Secure Server OCSP Responder Produced At: Jun 16 13:29:56 2002 GMT Responses: Certificate ID: Hash Algorithm: sha1 Issuer Name Hash: 0E9290B27AA8BAF65D3C9229AFE8F31DB953B2DA Issuer Key Hash: 034FA3A36BCBEC6D0760176CEC9ABF67C542F26A Serial Number: 47C1C31DC6D28C5C2000373C7F5D90C1 Cert Status: good This Update: Jun 16 13:29:56 2002 GMT Response Extensions: OCSP Nonce: 705BFEE68E6F0B631DDF3C57AEDC4AD8-169 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Terminologie Politique et énoncé des pratiques de certifications (1/4) Politique de certification Certificate Policies «Ce document décrit l'ensemble des règles qui définissent le type d'application auxquelles un certificat est adapté. Un certificat de clé publique contient l'identifiant de la politique de certification avec laquelle il a été émis, et selon laquelle il est destiné à être utilisé.» FAQ du DCSSI sur les infrastructures à gestion de clés http://www.scssi.gouv.fr/fr/faq/faq_igc.html Politique d'émission des certificats, qui précise dans quel cadre le certificat peut être utilisé Vérification est à la charge de l'utilisateur - 170 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Terminologie Politique et énoncé des pratiques de certifications (2/4) Énoncé des pratiques de certification Certificate Pratice Statement «Ce document énonce les pratiques utilisées par l'igc dans la gestion des certificats, pratiques qui dépendent de la politique de certification mise en oeuvre. Une IGC doit publier cette déclaration afin de décrire les modalités de fonctionnement des services qu'elle rend» FAQ du DCSSI sur les infrastructures à gestion de clés http://www.scssi.gouv.fr/fr/faq/faq_igc.html Énoncé des pratiques employées par l'autorité de certification pour émettre un certificat - 171 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Profil PKIX «Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework» (RFC2527) http://www.ietf.org/rfc/rfc2527.txt Description d'un ensemble de spécifications en terme de : Responsabilités légales, juridiques et financières Fonctionnalités Administration Politique et énoncé des pratiques de certifications (3/4) PC2 «Procédures et politiques de certification de clés» www.ssi.gouv.fr/fr/documents/pc2.pdf - 172 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
En pratique : Politique et énoncé des pratiques de certifications (4/4) Extension v3 Certificate policies Autre... Issuer: O=VeriSign, OU=VeriSign Class 2 OnSite Individual CA X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.1.1 CPS: https://www.verisign.com/cps User Notice: Organization: VeriSign, Inc. Number: 1 Explicit Text: VeriSign's CPS incorp. by reference liab. ltd. (c)97 VeriSign Issuer: O=VeriSign Trust Network, OU=VeriSign, Inc., OU=VeriSign International Server CA - Class 3, OU=www.verisign.com/CPS Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign - 173 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Démonstrations - 174 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Questions? - 175 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite
Remerciements. à Hervé Schauer, Ghislaine Labouret et à l'ensemble des consultants du cabinet HSC, pour leurs conseils et leur relecture à Ahmed Serhrouchni, pour son encadrement et ses enseignements à l'enst - 176 - Franck Davy - Hervé Schauer Consultants 2001-2003 - Reproduction Interdite