You are on page 1of 176

HERV SCHAUER CONSULTANTS

Cabinet de Consultants en Scurit Informatique depuis 1989


Spcialis sur Unix, Windows, TCP/IP et Internet

Fonctionnement des
PKI

Franck Davy
<Franck.Davy@hsc.fr>
Fonctionnement des PKI
-1-
Bases de cryptographie
Plan
Introduction Mcanismes
Notions de base Chiffrement


Signature
Algorithmes


clef secrte
En pratique


clef publique Bote outils




Messagerie lectronique
Fonctions de hachage

scurise avec S/MIME

-3- Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Introduction
Vocabulaire et notions
de base
Vocabulaire
Services de scurit
Confidentialit


Intgrit


Authentification


Non rpudiation


Mcanismes
Mcanismes mettant en oeuvre les services prcdents, fonds sur les algorithmes


cryptographiques
Chiffrement


Signature


Chiffrement et signature troitement lis (chiffrement d'un condenst)




Scellement


Algorithmes
Algorithmes symtriques, clef secrte


Algorithmes asymtriques, clef publique




-6- Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef
secrte
Algorithmes clef secrte (1/4)
Algorithmes dits symtriques
Caractristiques
Oprations de chiffrement et dchiffrement identiques
Clef identique pour les oprations de chiffrement et dchiffrement


Utilisation pour le chiffrement de donnes


Rapidit, et facilit de mise en oeuvre sur des circuits bon march
Problme de la distribution des clefs
1.Transport scuris de la clef de chiffrement ?
Problmatique de l'change de clef


2.Nombre de clefs changes (en n)

-8- Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef secrte (2/4)
Schma de principe
Transmission de la clef de chiffrement
par un canal scuris

Destinataire n1
zno!
DI/. Message
@ ml en
metteur <;L_am clair
du message lZcY
vB

Message Destinataire n2
en
clair CXi^L-
s7Rs:' Message
V}aI en



clair
 





#@U#E
@lCtlJ

-9- Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef secrte (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


Algorithmes clef secrte (4/4)
Principal usage
Service de confidentialit
Subsiste le problme de la distribution des clefs de chiffrement


Peut galement assurer un service d'authentification


Sans service de non rpudiation


L'utilisateur n'est pas le seul pouvoir produire la signature !




Exemple de la Montique :


Cybercomm (systme d'authentification dynamique)




Clef secrte dpendante du porteur (carte puce)




Chiffrement (DES 56 bits) des paramtres suivants :




Montant de la transaction


Identifiant du commerant


Date (contre le rejeu)




Authentification au niveau des DAB




par la piste magntique




- 11 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef
publique
Algorithmes clef publique (1/16)
Algorithmes dits asymtriques
Limitation des algorithmes clef secrte :
Problmatique de l'change de la clef de chiffrement
tablissement pralable d'un canal sr pour la transmission de la clef


Systmes clef publique


Clef de chiffrement e, rendue publique
Clef de dchiffrement d, garde secrte
d non dductible modulo la connaissance de e
Par exemple : utilisation d'une fonction sens unique : f(x) = xe [n]


...sous certaines conditions




Chiffrement d'un message l'aide de la clef publique e




Pas de communication pralable entre les tiers communiquants




- 13 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef publique (2/16)
Chiffrement zno!
Message DI/.
Message
en @ ml
en
clair <;L_am
clair
lZcY
vB

Chiffrement par l'metteur avec Dchiffrement par le destinataire


la clef publique du destinataire avec sa clef prive

Signature
Message Message Message
en en en
clair clair clair

Chiffrement par l'metteur Dchiffrement par les destinataires


avec sa clef prive 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
zno!
DI/.
Message @ ml
en <;L_am
clair lZcY
vB

Clef
de session
zno!
DI/.
@ ml Message
Clef publique <;L_am en
lZcY clair
destinataire
vB

Clef prive
destinataire

- 15 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef publique (4/16)
Algorithme RSA
Publi par Rivest, Shamir et Adelman en 1977
Fond sur la difficult de la factorisation des grands nombres
Scurit dite calculatoire : systme inconditionnellement sr


Schma
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) reprsente la clef publique


L'entier d reprsente la clef prive




- 16 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef publique (5/16)
Chiffrement RSA
Soit le message M, M' est le message chiffr obtenu par exponentiation modulaire
M' = Me [n]
Pour le dchiffrement, on calcule M'd [n]
Med = M [n], car ed = 1 [(p-1)(q-1)] par construction
Signature RSA
Opration de chiffrement, en inversant les rles de e et d
Le message mis est le couple (M, Md [n])
Tout le monde peut vrifier la signature par possession de la clef publique


Service de non rpudiation




Scurit 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 ambigut)
Format ASCII imprimable : object binaire prcdent encod au format PEM
Possibilit de conserver la clef prive RSA chiffre


DES, 3DES ou IDEA (en mode CBC) par exemple


Informations concernant les algorithmes dans les en-ttes 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 gnral 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 chiffrs PEM Part III : Algorithms, Modes, and Identifiers (RFC1423)
Exemple : Chiffrement DES-CBC
En-tte Proc-Type


Identifiant de version de la RFC (4), ENCRYPTED (service de scurit mis en oeuvre)




En-tte 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 cryptosystme 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{
RSAPublicKey::=SEQUENCE{
modulus INTEGER, -- n
publicExponent INTEGER e }
Clef prive RSA ( 11.1.2 Private-key syntax )
RSAPrivateKey
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 gnration d'une clef prive 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 prive RSA au format PEM (sans chiffrement)


Structure ASN.1 encode suivant la syntaxe de transfert DER (Distinguished Encoding Rules)
La suite d'octets (OCTET STRING) obtenue est encode 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
0bG}n


 


 


%&$


!






12


"

*+

-.

/
01
,


( '
)

3
Encodage en base64 du fichier binaire avec enc(1ssl)
$ 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


Algorithmes clef publique (11/16)
Structure ASN.1
$ 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 chiffre
Algorithme symtrique DES, en mode CBC


$ 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-----
En pratique


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 drivs du


mot de passe fourni par l'utilisateur

- 24 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef publique (13/16)
Gnration 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 alatoires
Tests de primalit probabilistes
Test de Sieve
Symbolis par .
Test rapide, prliminaire
Mis en oeuvre dans PGP
Test de Miller-Rabin
Symbolis par +
Mthode dcrite dans Handbook of Applied Cryptography
http://www.cacr.math.uwaterloo.ca/hac/about/chap4.ps
Test caractris 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 paramtres de la clef prive
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
Algorithmes clef publique (15/16)
Principaux usages
Service de confidentialit
Chiffrement avec la clef publique du destinataire


Faible volume de donnes




Mode opratoire 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 numrique
Chiffrement avec la clef prive du signataire


Transport (RSA) ou change (DH) de clef


Rsolution de la problmatique de l'change de clef secrte


- 27 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Algorithmes clef publique (16/16)
Rcapitulatif
Algorithme le plus couramment utilis : RSA
Cryptosystme dcrit 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 : mcanisme de chiffrement de la clef de session avec la clef de chiffrement du
destinataire
Clef dite publique , dpose dans un annuaire par exemple
Une clef de signature d
Signature : mcanisme de chiffrement avec la clef de signature par l'metteur
Service de non-rpudiation
Clef prive
Dcomposition 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 numrique de taille fixe partir d'un message de taille
arbitraire
Opration par blocs
Critres de scurit
Faibles collisions
Collisions : possibilit d'obtenir une mme empreinte pour deux messages distincts
Scurit calculatoire
Sens unique
Difficult d'inversion

- 30 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Fonctions de hachage (2/7)
Principaux algorithmes
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 :
Intgrit et scellement de fichiers
md5sum(1)
$ md5sum image.iso
d41d8cd98f00b204e9800998ecf8427e image.iso

HIDS (Host-Based Intrusion Detection System)


AIDE
Site officiel : http://www.cs.tut.fi/~rammer/aide.html
Brve HSC : http://www.hsc.fr/ressources/breves/aide.html

Tripwire
Stockage non rversible 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}
Gnration de l'empreinte
$ echo -n 'secret' | openssl passwd -1 -salt 'zdgjjRrg' -stdin -table
secret $1$zdgjjRrg$b9oxpVEDX8I4KgWanwbpd.

Signification des diffrents termes


$(1)$(zdgjjRrg)$(b9oxpVEDX8I4KgWanwbpd.)

$1 : Algorithme MD5
$2 : Piment
Protection contre les attaques par dictionnaire prcalcul
Piment en clair (diffrent d'un MAC)
$3 : Empreinte rsultante

- 33 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Fonctions de hachage (5/7)
Gnrateurs de nombres pseudo-alatoires
Sources d'entropie multiples
vnements non dterministes
Fonctions de hachage pour multiplexer la sortie des sources d'entropie et constituer un
pool d'entropie
Dmons collecteurs d'entropie (sous Unix)
Interfaces/pseudo-priphriques
/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 gnrateurs de nombres pseudo-alatoires
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)
Gnration d'identifiants de sessions...
http://lxr.php.net/source/php4/ext/session/session.c

Utilisations multiples !
Pile ou face
Influence du changement d'un caractre de texte clair sur l'empreinte rsultante

$ cat message.txt
Contrle d'intgrit
$ 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


Fonctions de hachage (7/7)
Principaux usages
Signature numrique
Norme de fait : RSA
Mcanisme de chiffrement par une clef prive RSA d'une empreinte MD5 ou SHA-1
Service de non-rpudiation
Scellement
Gnration d'un sceau, ou code d'authentification de message
MAC : Message Authentication Code
Exemple : fonction de hachage sens unique indexe par une clef secrte
Service d'authentificit des donnes
Authentification
Intgrit
Pas de service de non-rpudiation
Cf. SSL/TLS
Horodatage

- 36 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


En pratique :
bote outils
Bote outils : OpenSSL (1/8)
Projet OpenSSL
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), utilises par de nombreuses applications
openssh, apache+mod_ssl, postfix/tls, idx-pki, stunnel etc.
Initi en Dcembre 1998
Fond sur la bibliothque cryptographique SSLeay d'Eric Young et Tim Hudson
http://www.psy.uq.edu.au/~ftp/Crypto/ssleay

Objectifs
Mise en oeuvre des protocoles SSL (Secure Socket Layer)
Protocole de scurisation rseau TCP/IP qui opre au niveau session du modle OSI
Opre au dessus d'un protocole de transport de donnes fiable (TCP RFC793)
Opre au dessus du niveau transport (4) -> applications spcifiques
Ports ddis, attribus par l'IANA : HTTP 80/tcp, mais HTTPS 443/tcp

- 38 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Bote outils : OpenSSL (2/8)
Services de scurit mis en oeuvre
Authentification des parties
Optionnellement mutuelle
Authenticit et confidentialit des donnes
Sans service de non rpudiation
Versions du protocole SSL supportes
Spcifications 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 associs aux protocoles SSL/TLS
Algorithmes symtriques (DES,3DES etc.), asymtriques (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


Bote outils : OpenSSL (3/8)
Interface de programmation en C
Bibliothque SSL/TLS
Bibliothque cryptographique
Suite d'applications en ligne de commande
openssl (1)
Intgration de multiples langages
PHP
Module exprimental
Fonctions mises en oeuvre concernant essentiellement les certificats X.509
Manipulation de clefs RSA (clef publique/clef prive)
Manipulation de certificats X.509 (gnration, validation)
Utilisation dans le cadre de signature et chiffrement de donnes (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
Bote outils : OpenSSL (4/8)
Interface de programmation cryptographique en C, incluant :
Bibliothque SSL/TLS (libssl.a)
Mise en oeuvre des protocoles SSLv2, SSLv3 et TLSv1
Bibliothque 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 bibliothques cryptographiques et SSL/TLS !
Application OpenSSH fonde sur la bibliothque 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
Bote outils : OpenSSL (5/8)
Application en ligne de commande : openssl(1)
Manipulation de paramtres 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 vrification en ligne OCSP dans la branche 0.9.7
Calculs d'empreintes (MD5, SHA etc.) et opration de chiffrement (DES, BF)
dgst, enc
Applications spcifiques
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


Bote outils : OpenSSL (6/8)
Licence portant sur le code source OpenSSL
Licence spcifique
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 effectues par l'quipe de dveloppement OpenSSL

- 43 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Bote 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 lie OpenSSL pouvant tre sous licence GPL suivant le systme 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

Diffrence notable entre la GPL et la licence OpenSSL :


Application lie OpenSSL pouvant tre distribue sous une licence autre de la licence OpenSSL

- 44 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Bote 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


Bote outils : DumpASN.1
DumpASN.1
Tlchargement 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 ralise 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


Bote outils : SSLDump
SSLDump
Tlchargement sur http://www.rtfm.com/ssldump/
Analyseur de trafic SSLv3/TLSv1
Dchiffrement du trafic la vole


modulo la connaissance de la clef prive associe la cl publique contenue dans le certificat


X.509 prsent 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
Gnration des clefs RSA publique et prive de l'metteur et du destinataire
Format PEM, protection par mot de passe


src_rsa.pem, dst_rsa.pem respectivement pour les clefs prives metteur et destinataire


src_rsa_pub.pem, dst_rsa_pub.pem pour les clefs publiques
Gnration des clefs prives 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)

Gnration 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


-----BEGIN PUBLIC KEY-----
MfwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL5ApUqqRf86ZklRhstCbGSP9REkOo2R
Extraction de U3E/q1ZRkGxrxKszYv3PEYatDmwZbhtofbndqVfHRUGULSHFsYP8azcCAwEAAQ==
la clef publique -----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 drivs 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
Mcanisme de chiffrement de l'empreinte avec la clef RSA prive de l'metteur


Chiffrement avec la clef prive 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)0hIWuk{!J
 $
!













(

La signature est place en attachement (non chiffre, dans ce cas)

- 52 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Chiffrement et signature (5/8)
Transport de la clef de session
Paramtres DES drivant du mot de passe


Clef secrte 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
zno!dI/.@ ml<;L_amlZcYvB

Constitution du message final


1. Message chiffr : message.crypt
2. Signature du message chiffr : message.crypt.sign
3. Clef de session chiffre : secret.crypt
4. Paramtres administratifs
Identifiant de la clef RSA de l'metteur
Algorithme utilis (DES en mode CBC)
Nature des diffrents attachements etc.

- 53 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Chiffrement et signature (6/8)
Clef publique
RSA destinataire
Message en clair Secret partag

"Message confidentiel !" "secret"

Chiffrement DES Clef de zno!


IV
en mode CBC session dI/.
@ ml
<;L_am
lZcY
vB
Message chiffr Secret partag chiffr



 










1. Calcul de l'empreinte MD5


2. Chiffrement avec la clef
prive RSA
Clef prive RSA metteur Message chiffr
et sign
Signature
A)0hIWuk{!J
$
!













(

- 54 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Chiffrement et signature (7/8)
Rception du message chiffr sign
Vrification de la signature avec rsa(1ssl)
Utilisation de la clef publique de l'metteur du message pour dchiffrer la signature


Obtention de l'empreinte du message telle que calcule 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 avre




Authentification de l'metteur


Intgrit des donnes




- 55 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Chiffrement et signature (8/8)
Dchiffrement du message par le destinataire
Dchiffrement de la clef de session avec la clef RSA prive du destinataire
$ cat secret.crypt | openssl rsautl -decrypt -inkey dst_rsa.pem
Enter PEM pass phrase:
secret

Dchiffrement 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 scurit suivants :


Authentification des parties


Problme rsiduel de l'authenticit du lien metteur-clef publique


Intgrit et confidentialit des donnes transmises


- 56 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


En pratique :
messagerie scurise
avec S/MIME
Messagerie scurise avec S/MIME
(1/6)
Secure Multi-purpose Internet Mail Extension
Extension au format MIME (RFC 1847)
Ajout du support de services de scurit
Dcrit 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 scurit au niveau applicatif (de bout-en-bout )
Authentification des parties


+ service de non-rpudiation
Confidentialit des donnes


Intgrit des donnes




- 58 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Messagerie scurise avec S/MIME
(2/6)
Format des messages
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

Vrification 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'itinraire 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 scurise 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 scurise 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

Dchiffrement du message par le destinataire




Utilisation de sa clef RSA prive (protge 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 scurise avec S/MIME
(5/6)
Format d'un message chiffr


MIME-Version:
MIME-Version: 1.0
Content-Disposition: attachment; filename="smime.p7m"
Content-Type: application/x-pkcs7-mime;
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 scurise avec S/MIME
(6/6)
Dmonstration 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
Plan
Introduction
De la clef publique au certificat
Clef RSA, clef SSH, clef PGP
Problmatique de la certification
Les certificats X.509
Standard X.509v3 et profil PKIX
Champs standards et extensions v3
En pratique
Panorama des certificats inclus dans IE 5.0
Scurisation 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)
Donne brute, manipulable avec ambigit sur :
Type de clef et d'usage
Algorithme (RSA, DSA)


Chiffrement, Signature, change de clef




Tout autre usage spcifique une application ?




Priode de validit, statut de rvocation


Identit (paramtre administratif ) associe
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


Premire approche :
SSH et drivs (1/5)
Mthodes d'authentification
Ct client
Authentification par mot de passe (permanent ou usage unique)


Authentification par clef publique RSA ou DSA (SSHv2 uniquement)




Ct serveur
Authentification par clef publique (RSA/DSA)


Clef publique transmise au client lors de la premire ouverture de session




Sauvegarde ct 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


Premire approche :
SSH et drivs (2/5)
Exemple d'ouverture de session
Connexion TCP (22/TCP)
Ouverture de session SSH
Notion de clef d'hte


Authentification du serveur est ralise au niveau applicatif


Utilsation de clef RSA ou DSA SSH_RSA_VERIFY
Non ? 5A:51:41:de:62:0c...
Objectif : authentification du serveur au niveau applicatif par sa clef publique


Et non plus simplement identification par adresse IP ou FQDN


Nombreuses attaques sur les protocoles IP, DNS et au niveau rseau...
Attaques de type Man-in-the-Middle


DNS ID Spoofing, DNS Cache poisoning


ProxyARP sur un rseau ethernet commut (dsniff, ettercap)
Ct client


$ 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.

Ct serveur


$ 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


Premire approche :
SSH et drivs (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'hte) ?


192.168.0.1
Attaque de type Man-in-the-middle ? 00:50:fc:20:d8:37

192.168.0.254 Connexion logique


00:60:97:cd:b6:9b
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
Premire approche :
SSH et drivs (4/5)
Problme de l'authenticit de la clef publique prsente
Contact de l'administrateur


Pour une vrification locale de l'empreinte de la clef prsente




Consultation d'un annuaire authentifi centralisant les clefs ou les empreintes




Exemple d'utilisation de DNSSEC




Empreintes places dans l'enregistrement de ressource TXT




Mais il s'agit dj de PKI !

Ncessit d'un mcanisme de vrification hors-bande


Administrateur systme = rle de tiers, garant de l'authenticit de la clef prsente


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


Premire approche :
SSH et drivs (5/5)
Rcapitulatif
Intervention d'un tiers, dit tiers de confiance
Utilisation de mcanismes hors-bande

Premire approche


Introduction d'un tiers de confiance, certifiant les clefs publiques


Recours au mcanisme de signature de la cryptographie asymtrique


Restriction des communications dites hors-bande avec ce tiers


de confiance
Rcupration de la clef publique de signature du tiers de confiance via un


canal sr
Dans l'exemple prcdent (changement de clef d'hte SSH) :
Contact de l'administrateur systme par tlphone


Administrateur


Pralablement connu de l'utilisateur




tiers de confiance


Possdant un accs physique au systme




- 73 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


PGP et le Web of Trust (1/5)
Principe :
Cryptosystme hybride permettant l'change chiffr/authentifi de donnes


Cryptographie clef secrte pour le chiffrement


Cryptographie clef publique pour la signature, le
Principe de l'anneau de confiance ( Web Of Trust


Utilisation adapte aux communauts...




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 rfrenant 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 chane de caractres :


$ 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 mene sur le nom Zimmerman sur le dpt 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
Tlchargement une URL, en HTTP par exemple
Empreinte diffuse par courrier lectronique (en-tte SMTP : X-GPG-Fingerprint)
GnuPG Party
Procdures dcrites dans le GnuPG Keysigning Party HOW-TO

- 76 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


PGP et le Web of Trust (4/5)
Format d'une cl PGP
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
Packet(tag 13)(32 bytes)
User ID - Franck DAVY <Franck.Davy@hsc.fr>
<Franck.Davy@hsc.fr>

- 77 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


PGP et le Web of Trust (5/5)
GnuPG Party
Procdures dcrites 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
Dfinition
Un certificat est un lien de confiance entre :
Une identit
Une clef publique
Une priode de validit
Un usage
Typologie des infrastuctures clef publique (PKI):
Une structure en thorie 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 croise...
2. Autorits de certification intermdiaires
Certificats dlivrs par l'autorit racine
Habilites, par exemple, dlivrer des certificats aux entits terminales
3. Entits terminales (Serveur SSL/TLS, client S/MIME etc.)
- 80 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Itinraire de certification (1/9)
Structure hirarchique
La validation du certificat d'une entit terminale
est ralis de proche en proche :

1. Validation de la signature applique


au certificat de l'entit communicante

2. Validations successives des signatures


appliques aux certificats des autorits
intermdiaires

3. Confiance accorde au certificat


de l'autorit racine....

Communication hors-bande
Communication en ligne

- 81 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Itinraire de certification (2/9)
Exemple : validation d'un certificat serveur SSL/TLS

- 82 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Itinraire 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


Itinraire de certification (4/9)
En pratique :
Certificat = structure certifie
Ensemble clef publique + paramtres administratifs scell par la clef prive de l'autorit
signataire
Pour les diffrentes entits
Possession du certificat de l'autorit racine, uniquement
Parcours de l'itinraire de certification (suivant les applications...) pour valider la chane
des certificats prsents
Organisation hierarchique ?
Multiples autorits de certification
106 autorits de certification, ou autorits dites de confiance dans Windows 2000
Passage d'une organisation du type hierarchy of trust vers une (ds)organisation
spaghetti of doubt (Peter Gutmann)
la charge des applications de permettre au client de vrifier le certificat prsent
Prsentation de la chane de certification dans les protocoles SSL/TLS, S/MIME


- 84 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Itinraire de certification (5/9)
Validation d'un certificat serveur SSL/TLS
Cas d'un serveur correctement configur
Prsentation au client de l'intgralit de la chane de certification
Pour le logiciel client :
Pas de manipulations supplmentaires pour le tlchargement des certificats intermdiaires


Possession pralable du certificat de l'autorit signataire requise, uniquement




Cas d'un serveur mal configur


Les diffrents certificats de la chane ne sont pas prsents au client
Le logiciel client doit-il la complter ?
Explication de la prsence de certificats intermdiaires dans IE ? (leur importation n'est pas gratuite !)
En gnral :
Certificats terminaux, mis par une autorit racine (pathlen = 0)
- 85 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Itinraire de certification (6/9)
Validation SSL/TLS

$ openssl s_client -connect www.webserver.com:443 -CAfile ca/caroot.pem -showcerts


CONNECTED(00000003)
---
Certificate chain
0 s:CN=w
s: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


Itinraire de certification (7/9)
Validation SSL/TLS

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 effectue, par vrification de proche en proche des


certificats constituant la chane de certification

- 87 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Itinraire de certification (8/9)
Validation avec Netscape
Prsent 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


Itinraire de certification (9/9)
Validation avec Netscape correctement effectue

L'metteur du certificat serveur est CA SSL

Seul le certificat de CA ROOT (CN=CA ROOT)


figurait dans la base de donnes locale des
certificats dits de confiance

Prsentation de l'empreinte du certificat calcule


par le navigateur
Empreinte MD5 du certificat au format DER

Analogue au mcanisme employ par OpenSSH,


lorsque la vrification partir de la clef du CA
n'est pas ralisable
- 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) :
Dfinition 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 scurit !




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 normalise (X.208)
Encodage : syntaxe de transfert distinctive
Rgle 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: tBSCertificate
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 signatureAlgorithm
4b:44:66:60:68:64:e4:98:1b:f3:b0:72:e6:95:89:7c:dd:7b:
[...] signatureValue
f8:45

- 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

Reprsentation 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 : dvelopper pour l'internet une PKI fonde sur les certificats X.509

Composantes
Instanciation des certificats X.509v3 et des listes de rvocations X.509 pour une
infrastructure adapte l'Internet (RFC3280)
Protocoles d'exploitation (RFC2559, RFC2585)
Distributions des certificats et listes de rvocation
Protocoles de gestion (RFC2510)
Dialogues entre le diffrentes entits de la PKI
Rgles d'usage et considrations pratiques (RFC2527)
Exigences de scurit
En matire d'identification des sujets, de rvocation 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

Difficults 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
Problme de compatibilit avec les extensions propritaires


X509v3 extensions:
2.5.29.1:
0i.....[...*.9..b.S2.R0P1.0...U....US1^M0...U.
0i.....[...*.9..b.S2.R0P1.0...U....US1^M0...U.
..MSFT1200..U...)Microsoft Authenticode(tm) Root Authority...

En pratique : version 3
Numro de Srie
Identifiant unique d'un certificat (pour une autorit signataire donne)
En pratique :
Incrment alatoirement (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 thorie, constitue un chemin unique vers l'entit possdant le DN rfrenc 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 gnralement 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 gnralement 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 htes 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


Champs standards et X.500 (3/3)
Validit
Dates dterminant la priode de validit d'un certificat
Au del de cette priode, on parle d'expiration
Suspension de validit durant cette priode : rvocation
Remarques :
Certificats rvoqus arrivs 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 vrifient pas correctement ces dates (Netscape)


Exemple : Applet Java signe... 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 scurit


Service de non rpudiation associ ?


Contraintes sur l'itinraire de certification
Longueur maximale de la chane de certification


Informations diverses
Points de distribution des listes de rvocation, de la politique de certification etc.
Extensions propritaires
En pratique :
Considration laisse la discrtion de l'application
Peu d'extensions reconnues ou prises en compte
Avec de potentielles failles de scurit en consquence
CryptoAPI MS02-050


- 100 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Extensions X.509v3 (2/8)
basicContraints
Pathlen : nombre de certificats pouvant apparatre, dans la chane de
certification, sous le certificat portant cette extension
CA : TRUE pour une entit habilite dlivrer des certificats, FALSE sinon

X509v3 Basic Constraints :


CA:TRUE, pathlen:10 CA ROOT

CA OP 1

10 autorits peuvent
apparatre sous CA ROOT

CA OP 10

Entit Entit
terminale terminale

- 101 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Extensions X.509v3 (3/8)
keyUsage
digitalSignature (RSA/DSA)
mcanisme de signature
nonRepudiation (RSA/DSA)
service de non rpudiation
keyEncipherment/dataEncipherment (RSA)
chiffrement de clef (de session, premastersecret) ou de donnes
keyCertSign/cRLSign (RSA/DSA)
signature de certificats/de listes de rvocation
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 tlchargement de la liste de rvocation correspondant au
certificat portant cette extension
DirName (DN) permettant de tlcharger la liste de rvocation via LDAP

X509v3 CRL Distribution Points:


URI:http://crl-acracine.certinomis.com/acracine.crl
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 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


Extensions X.509v3 (6/8)
authorityInfoAccess
Indication relative l'autorit ayant mis le certificat porteur de cette
extension, en terme de service de rvocation 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 utilises par l'IGC dans la gestion des certificats
pratiques qui dpendent de la politique de certification mise en oeuvre. Une IGC doit
publier cette dclaration afin de dcrire les modalits 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:
Authority
.)Microsoft Authenticode(tm) Root Authorit
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 problme
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 intermdiaires peuvent constituer la chane conduisant aux entits




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 prive associe la clef publique dans le certificat de dlivrer
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'itinraire de certification d'une autorit de




confiance connue
- 108 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Faille CryptoAPI (2/2)
Scnario 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'itinraire de certification


Penser bien configurer le relais prsentant le certificat du serveur dtourn pour qu'il renvoie


son tour les diffrents certificats de la chane de certification ;-)


Extensible S/MIME !
Faille dans la CryptoAPI (non spcifique 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 scurise


Confidentialit et authenticit des messages


Entre utilisateurs finaux, avec S/MIME


Entre MTA, avec SMTP-TLS
Scurisation des infrastructures rseau
Tunnels IPSec


Gestion de l'entreprise
Intgration aux ERP


Dmatrialisation des procdures de l'administration


Horodatage des documents, non rpudiation des transactions


Contrle d'accs et gestion de privilges


- 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 Intermdiaire s(autorits de certification non autosignes)
Certificats Personnels (thoriquement non autorises dlivrer 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 livre en standard


Exemple : Exportation des certificats racines
c:\ certmgr -add -all -c -s root -7 win2k_rootcerts.der
Rsultat : 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 : Autorits de certification (1/3)

- 113 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


IE 5.0 : Autorits de certification (2/3)

- 114 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


IE 5.0 : Autorits de certification (3/3)

- 115 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


IE 5.0 : Autorits intermdiaires (1/3)

- 116 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


IE 5.0 : Autorits intermdiaires (2/3)

- 117 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


IE 5.0 : Autorits intermdiaires (3/3)

- 118 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Quelques chiffres... (1/2)
Champs Standards
Nombre de certificats (racines) rfrencs : 106
Rpartition 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 possdant 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


Quelques chiffres... (2/2)
Extensions v3
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


Dmonstrations : HTTPS (1/8)
Le protocole HTTPS
Authentification du serveur par certificat X.509
Authentification du client par certificat X.509 (SSLv3/TLSv1 uniquement)
Importation de la paire certificat/clef prive via PKCS#12


Suivi de session authentifie et gestion des autorisations au niveau du serveur




Restriction d'accs selon :




DN (Organisation, pays etc.)




Plages horaires


Configuration
Serveur Apache + Mod_SSL


OpenSSL, pour la gnration des certificats




- 121 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Dmonstrations : HTTPS (2/8)
Limitations :
incompatibilit entre les protocoles SSL/TLS et HTTP/1.1
Problmatique
Entte 'Host: ' introduite en HTTP/1.1


Extension HTTP/1.0 dans les navigateurs modernes




Hbergement de plusieurs sites pour une mme instance de serveur WEB




Distinction et distribution des requtes suivant :




L'adresse IP


Le nom rfrenc par l'entte Host




Limitation


Utilisation des protocoles SSL/TLS




Protocole SSL/TLS se droulant avant tout dialogue HTTP




Problme de validation d'un certificat




Le nom prsent via le RDN 'CN' dans le certificat X.509 ne concide pas forcment avec le nom de


domaine pleinement qualifi (FQDN) par lequel le serveur HTTPS est accd

- 122 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Dmonstrations : HTTPS (3/8)
Illustration
$ 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


Dmonstrations : HTTPS (4/8)
Htes virtuels par adresse IP
Gnration des certificats
Champ CN gal au FQDN


Gnration classique


Mcanisme transparent pour l'utilisateur




Utilisation de plusieurs adresses IP


Alternative similaire : utiliser des ports diffrents
Htes virtuels par nom
Une et une seule adresse IP
Utilisation d'alias DNS (CNAME)
Un seul certificat X.509 est prsent pour les 2 htes hbergs...


- 124 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Dmonstrations : HTTPS (5/8)
Htes 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

Htes 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
Dmonstrations : HTTPS (6/8)
Mthodes de validation des certificats
Netscape
Gestion des wildcards et expressions rationnelles dans le champ CN


Gestion des CN multivalus




Spcification Netscape (SSLv3) :




http://www.netscape.com/eng/security/ssl_2.0_certificate.html


Internet Explorer
Gestion des subjectAltName multivalus de type dNSName


En cas de subjectAltName non prsent :




Gestion du CN avec wildcards


Conformit partielle la RFC2818 [HTTP/TLS]

- 126 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Dmonstrations : HTTPS (7/8)
Problmatique
Internet Explorer 5.01 ne gre 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 ncessaire
Peu envisageable grande chelle, et face une population cliente non identifie


Solution
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


Ressources et dmonstrations : HTTPS
(8/8)
Pour aller plus loin...
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 :
tldclaration des impts (1/9)
Service de dclaration des impts en ligne
http://www.ir.dgi.minefi.gouv.fr/
Usage du certificat X.509 client gnr


Authentification client SSLv3/TLSv1 (gre par le navigateur)


Restriction de l'accs au site HTTPS
Pour rappel : il n'y a pas de service de non rpudiation en SSL/TLS
La clef utilise pour signer les donnes applicatives n'est pas celle associe la clef publique contenue
dans le certificat
Signature numrique de la dclaration au format lectronique (gre une applet Java)
laquelle est associe un service de non-rpudiation ( imputabilit )
Clef prive et certificat dans un fichier au format PKCS#12 contenant :


1. Les certificats des autorits signataires


a) Autorit de certification racine
b) Autorits de certification intermdiaires
2. Le certificat client et la clef prive associe (chiffre en DES-EDE3-CBC)

- 129 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Exemple de PKI :
tldclaration des impts (2/9)
Tldclaration des impts : architecture
AC Racine AC intermdiaire n1
O=DIRECTION GENERALE DES IMPOTS, O=DIRECTION GENERALE DES IMPOTS,
CN=AC DIRECTION GENERALE DES IMPOTS RACINE CN=AC DIRECTION GENERALE DES IMPOTS

AC intermdiaire n2
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 :
tldclaration des impts (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 :
tldclaration des impts (4/9)
AC intermdiaire n1
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 :
tldclaration des impts (5/9)
Certificat des autorits de certification racine et intermdiaire n1
AC Racine : certificat autodlivr/autosign
subject == issuer
Version 3
Prsence d'extensions X509v3
Clef publique RSA de 2048 bits
Usages :
mission de certificats (Certificate Sign)
mission de listes de rvocation (CRL Sign)
Liste de rvocation associe via l'extension cRLDistributionPoints
Autorits non oprationnelles
$ 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 :
tldclaration des impts (6/9)
AC intermdiaire n2
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 :
tldclaration des impts (7/9)
Certificat de l'autorit de certification n2
AC oprationnelle : dlivre des certificats des entits terminales
Longueur de l'itinraire de certification gal 0


Aucune autorit de certification intermdiaire tolre sous l'autorit CN=AC DIRECTION




GENERALE DES IMPOTS USAGER


Version 3
Prsence 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 rvocation (CRL Sign)
Liste de rvocation associe ce certificat via l'extension cRLDistributionPoints
Autorit oprationnelle
$ 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 :
tldclaration des impts (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 :
tldclaration des impts (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 rpuditation associ (Digital
Signature, Non Repudiation)
OID propritaire 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 rvocation associe 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
Entits et rles respectifs
Gestion/Cycle de vie des certificats
Demande de certificat
Signature de demande de certificat
Publication de certificat
Rvocation de certificat
Politique et nonc des pratiques de certification
Dmonstrations

- 139 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Introduction
Architecture et
composantes
Analogie : Carte d'identit Nationale
Procdure
Retrait d'un formulaire type
http://www.interieur.gouv.fr/cerfa/formulaires/20-3252.pdf
Dpt du formulaire accompagn de pices justificatives ( la mairie)
Acte de naissance, justificatif de domicile, photos d'identit, empreintes digitales etc.


Validation (Formulaire + Pices) par un service metteur


Mairie, commissariat de Police par exemple


Demande transmise la prfecture/sous-prfecture, pour dlivrance de la carte


Mise disposition de la carte d'identit
Mairie


Commissariat de Police


Prfecture/sous-prfecture


- 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 mme communaut d'intrt, considrant 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
autorits considres comme tant dignes de confiance par le serveur.
Les clefs publiques de ces certificats servent la validation, au sens cryptographique


(vrification d'une signature) de l'ventuel certificat prsent par un client lors de la


phase handshake des protocoles SSLv3 et TLSv1.
la vrification, au sens cryptographique, d'une signature s'ajoute la composante


fondamentale qu'est la confiance


SSLVerifyClient none|require|optional|optional_no_ca


Directive spcifiant le caractre obligatoire de la prsentation d'un certificat client.


Des variables d'environnement sont initialises suite la prsentation d'un certificat
client.
Dpendantes de l'implmentation SSL/TLS employe : mod_ssl, apache-ssl ?
Permettent l'accs, en lecture, aux paramtres 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'accs un rpertoire sur la base de l'valuation de l'expression


boolenne Expression, exprime en fonction des variables d'environnement drives
du certificat client prsent
Exemple d'utilisation ( extrait de la documentation de rfrence 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]+$/

Ncessite une authentification pralable du client


Incompatible avec l'utilisation de la directive optional_no_ca !

- 145 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Authentification et autorisation (4/4)
En pratique :
1. Authentifier les utilisateurs sur la base des certificats des autorits publiques
et/ou prives , mais toujours considres 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 drives du
certificat client
Exemple d'utilisation : architecture de type SSO

Session SSLv3/TLS
Authentification mutuelle
par certificat X509v3 Propagation du DN auprs des applications
Ex. Rcriture de la QUERY_STRING par
mod_rewrite

- 146 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


PKI : entits et rles 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 : entits et rles respectifs (2/2)
Autorit de certification prive
Gestion de la PKI et des clefs de l'autorit de certification racine


Autorit de certification publique


Dlivrance de certificat X.509v3 aux utilisateurs finaux


Infogrance de PKI ( Verisign, GTE Cyber Trust, Certplus, Chambersign etc.)




Modle hybride
Ct client : Autorit Locale d'Enregistrement


Contrle du contenu des informations certifies


Gnration des bi-clefs


Enregistrement des demandes




Authentification des entits terminales




Ct prestataire de services : autorit de certification




Fabrication des certificats


Signature des demandes de certificat


Publication et archivage des certificats




Gestion des listes de rvocation ?




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)
Gnration du bi-clef
Dcentralise


Gnration 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 lger (Cf. Netscape)
Suivant le niveau de scurit associ la classe du certificat :
Adresse lectronique valide suffisante
Prsence physique requise
Centralise


D-corrlation des phases d'enregistrement et de gnration du bi-clef


Bi-clef gnr dans un site scuris , puis dlivrance du certificat (sur carte puce, par
exemple) l'utilisateur
Recouvrement des clefs


Exigences de scurit diffrentes


Problme de la non-rpudiation pour la clef prive de signature
CA Publiques : sauvegarde des certificats X.509 seuls
CA Prives : 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)
Gnration 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,
DAVY/Email=Franck.Davy@hsc.fr
O=Herve Schauer Consultants, CN=Franck DAVY/Email=F
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 donnes administratives entres via un formulaire


Clef publique RSA gnre (au format PKCS#1 !)
Champ Signature


Structure ASN.1 'Data:' (encode suivant la syntaxe de transfert DER) signe


Signature avec la clef prive correspondant la clef publique (champ 'RSA Public
Key' figurant dans le certificat (la clef prive n'est pas divulgue 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


Procdure dcrite :


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 : spcifie le token
-key : Nom de la cl : Slot de la carte PCMCIA : Code PIN

Aprs rception 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 lger (5/6)
Client lger : Netscape Navigator (version > 3.0)
Utilisation d'une extension pour la gnration 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 gnre
La clef prive RSA est conserve dans la base de donne locale des certificats
La clef publique et le challenge sont signs par la clef prive
Protection contre le rejeu (les donnes soumises ne sont pas signes !)
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 lger (6/6)
Donnes soumises par formulaire
commonname=John+Doe&
commonname=John+Doe&email
email=doe@foo.com&
=doe@foo.com&org
org=Foobar+Computing+Corp.&
=Foobar+Computing+Corp.&orgunit
orgunit=Bu
=Bu
reau+of+Bureaucracy&locality
reau+of+Bureaucracy&locality=Anytown&
=Anytown&state
state=California&
=California&country
country=US&
=US&key
key=MIHFMH
=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
Donne 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:
00:df:bd:db:40:b1: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)
lments publis
Certificats des autorits de certification/rvocation
Certificats des entits terminales
Listes de rvocation (CRL)
Publication via LDAP
Schma core
objectClass certificationAuthority (2.5.6.16)
Attributs
authorityRevocationList
cACertificate
certificateRevocationList
Schma inetOrgPerson
objectClass inetOrgPerson (2.16.840.1.113730.3.2.2)
Attribut userCertificate
Liste des OID rfrencs : Objects Identifiers Registry
http://www.alvestrand.no/objectid/
- 157 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Publication de certificat (2/4)
Tlchargement des CRL via le protocole LDAP
Extension X509v3 :

X509v3 CRL Distribution Points:


URI:http://crl-acracine.certinomis.com/acracine.crl
URI:h
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...
...spcifiques 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 gnralement, mthode GET classiquement)
Extension cRLDistributionPoints
URI:http://bar/crl/foobar.crl
OCSP (Protocole HTTP, mthode POST)
Extension Authority Information Access
OCSP URI:http://foobar/
- 159 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Publication de certificat (4/4)
Dmonstrations
Messagerie scurise avec S/MIME, avec des certificats clients publis dans un
annuaire LDAP

- 160 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Rvocation de certificat (1/9)
Il appartient l'utilisateur d'un certificat de vrifier qu'un
certificat qu'il se destine utiliser n'a pas t rvoqu

FAQ du DCSSI
http://www.ssi.gouv.fr/fr/faq/faq_igc.html

Rvocation = suspension d'un certificat avant sa date de fin de validit


Raisons pouvant conduire la rvocation d'un certificat
Changement de statut d'une entit
Arrt d'activit d'une autorit
Procdure d'mission du certificat non rglementaire
Perte de la clef prive
Compromission de la clef prive
Demande de rvocation l'initiative de
Autorit signataire
Dtenteur du certificat
Preuve de possession (par partage de secret)
Tierce partie autorise
Implication judiciaire par exemple

- 161 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Rvocation de certificat (2/9)
Mise en oeuvre de mcanismes permettant un utilisateur de s'assurer de la
non-rvocation d'un certificat
Principaux mcanismes de rvocation


(Partiellement) mis en oeuvre dans les navigateurs grand-public




Mcanisme de Listes de Rvocation




CRL ( Certificate Revocation List )




Protocole OCSP ( Online Certificat Status Protocol )




Mcanisme de CRL
Publication d'une liste priodiquement mise jour des certificats rvoqus


Certificats identifis par




Leur autorit signataire




Leur numro de srie, unique pour une autorit signataire donne




Liste signe par l'autorit signataire




Ou une autorit dlgue




Prsence 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


Rvocation de certificat (3/9)
Exemple de liste de rvocation :
$ 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
ROOT/Email=Franck.Davy@hsc.fr
/CN=CA ROOT/Email=F
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


Rvocation de certificat (4/9)
Disponibilit des CRL
Ncessit d'indiquer, sur un certificat X.509 destin tre utilis, l'URL de la liste de
rvocation relative au certificat
Ajout d'une extension X509v3 au certificat : cRLDistributionPoints (CRLDP)
Association au certificat de la liste de rvocation dont il dpend
Client qui n'a pas connatre, au pralable, l'intgralit des adresses o tlcharger
les CRL relatives une autorit signataire pour une famille de certificats donne
Permet une stratgie de partitionnement des CRL
Limitation du nombre de certificats mis portant des CRLDP identiques
Lutte contre la taille croissante des listes de rvocation 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 utiliss


HTTP
LDAP
Mais quel annuaire se connecter ?

- 164 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Rvocation de certificat (5/9)
En pratique :
Connexion au site www.certplus.com
Certificat prsent 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


Rvocation de certificat (6/9)
Tlchargement de la CRL par Internet Explorer
Tlchargement automatique si prsence de l'extension cRLDistributionPoints
Option (avance) non active par dfaut
Vrifier la rvocation 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


Rvocation 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

Tlchargement prliminaire du fichier RSASecureServer.crl


Tlchargement de la page certplus.htm
Latence importante de la taille de la CRL
797ko
Fonctionnalit similaire dans Mozilla et Netscape 6
Avec la possibilit d'effectuer un tlchargement priodique des CRL, et non simplement
ponctuel, la consultation d'un site
- 167 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite
Rvocation de certificat (8/9)
Protocole OCSP
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


Rvocation de certificat (9/9)
Rponse 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


Politique et nonc des pratiques de
certifications (1/4)
Terminologie
Politique de certification Certificate Policies
Ce document dcrit l'ensemble des rgles qui dfinissent 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 cls


http://www.scssi.gouv.fr/fr/faq/faq_igc.html

Politique d'mission des certificats, qui prcise dans quel cadre le certificat peut tre
utilis
Vrification est la charge de l'utilisateur


- 170 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Politique et nonc des pratiques de
certifications (2/4)
Terminologie
nonc des pratiques de certification Certificate Pratice Statement

Ce document nonce les pratiques utilises par l'IGC dans la gestion des certificats,
pratiques qui dpendent de la politique de certification mise en oeuvre. Une IGC doit
publier cette dclaration afin de dcrire les modalits de fonctionnement des services
qu'elle rend

FAQ du DCSSI sur les infrastructures gestion de cls


http://www.scssi.gouv.fr/fr/faq/faq_igc.html

nonc des pratiques employes par l'autorit de certification pour mettre un


certificat

- 171 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Politique et nonc des pratiques de
certifications (3/4)
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 spcifications en terme de :


Responsabilits lgales, juridiques et financires
Fonctionnalits
Administration

PC2
Procdures et politiques de certification de cls
www.ssi.gouv.fr/fr/documents/pc2.pdf

- 172 - Franck Davy - Herv Schauer Consultants 2001-2003 - Reproduction Interdite


Politique et nonc des pratiques de
certifications (4/4)
En pratique :
Extension v3 Certificate policies
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

Autre...

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


Dmonstrations

- 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

You might also like