Vous êtes sur la page 1sur 30

PKI : Public Key Infrastructure

Diplômant : Denis Cotte


Professeur responsable : Gérald Litzistorf

Collaboration avec : Sylvain Maret e-Xpert solutions

Diplôme en transmission de données 1


Sommaire

n PKI : Infrastructure à clé publique


n Enrollment : Procédure d’inscription
n Protocole OCSP
n Server Apache
n Conclusion

Diplôme en transmission de données 2


PKI : Certificats numérique
n Constitution
Certificat

Informations:

_autorité de certification: RSA Keon


_nom du propriétaire: Denis COTTE
Hash
_Email: d-cotte@wanadoo.fr
_Validité: 18/10/2001 au 18/10/2006
_Clé Publique: 1a:b6:f7:45:c3:2d:cd:af
_Algorithme : sha1

Signature:

3d:c5:b12:9a:bd:e6

Signature avec la clé privée de


l'autorité de certification

Diplôme en transmission de données 3


PKI : Vérifier un certificat
n Comparaison des condensés
Certificat

Informations:

_autorité de certification: RSA Keon Hash


_nom du propriétaire: Denis COTTE
_Email: d-cotte@wanadoo.fr
_Validité: 18/10/2001 au 18/10/2006
_Clé Publique: 1a:b6:f7:45:c3:2d:cd:af Comparaison
_Algorithme : sha1
des condensés

Signature:

3d:c5:b12:9a:bd:e6

Déchiffrement à l'aide de la clé


publique de l'autorité de
certification
Diplôme en transmission de données 4
PKI : Format DER et PEM
2 formats pour représenter un certificat numérique
• DER: Distinguished Encoding Rules
Utilisation des règles d’encodage DER sur la notation ASN1 (utilisée dans les RFCs)
ASN1: Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING
}

• PEM: Privacy Enhanced Mail


Utilisation de l’encodage base64 pour passer au format à PEM.
-----BEGIN CERTIFICATE-----
MIIDDzCCAnigAwIBAgIQQCGkq2tbn5cBywZjDwhu0DANBgkqhkiG9w0BAQUFADCB
gjELMAkGA1UEBhMCQ0gxDDAKBgNVBAgTA2d2YTEPMA0GA1UEBxMGZ2VuZXZlMQww
...
mPQSr7GBdiIad3n9e4DOrwDOZ59MQ65Vh9NyNCUq2NhGd6vkPYgMJ08UD0wTqzh7
JfxrKZ7K3T80mgiLvB+0QYKUZvlQY3ot6d1Jd9qwbc+FL6ykA2qnIJ2zvQGqghfo
4saPp8qkCrOYOj5ruR398J4YKA==
-----END CERTIFICATE-----

Diplôme en transmission de données 5


Sommaire

n PKI : Infrastructure à clé publique


n Enrollment : Procédure d’inscription
n Protocole OCSP
n Server Apache
n Conclusion

Diplôme en transmission de données 6


Enrollment : Architecture
Serveur Apache
Client: Alice 1.3.22

Ÿ Echange des certificats


Ÿ Protocole SSL Apache core
Navigateur
Apache API
mod_ssl OpenSSL
client OCSP

Ÿ Protocole OCSP
Ÿ Commande OpenSSL

Ÿ Procédure d'inscription (enrollment) répondeur


Ÿ Format PKCS#10 (requête) OCSP
Autorité de
Ÿ Format PKCS#7 (réponse) Enrollment
Certification
Server Keon (CA)
Diplôme en transmission de données 7
Enrollment : Principe
Client Autorité de certification
Ÿ Génère une paire de clés

PKCS#10

Ÿ Fournit différentes informations


Informations

Ÿ Nom Informations
Ÿ Adresse e-mail
Ÿ Organisation Clé Publique
Ÿ Localité
Ÿ ,...
Signature

PKCS#7
Installation

Diplôme en transmission de données 8


démo1

Enrollment : Architecture CA
Keon
CA Keon

Port
446 SCEP Server
Secure
Directory
Port
OCSP Responder Server
90

Port +
444 Administration
Server Database
Web Server
Port
443 Enrollment Server

Logging server

Diplôme en transmission de données 9


Enrollment : requête PKCS#10
PKCS#10

CertificationRequest

CertificationRequestInfo

Version

Name

subjectPublicKeyInfo

Client
[attributes]
CA

signatureAlgorithm

digital signature

Diplôme en transmission de données 10


Enrollment : PKCS#10 avec
Data:OpenSSL
Certificate Request:

Version:: 0 (0x0)
Version
Subject:: C=CH, ST=GVA, L=Geneve, O=eig, CN=cot2/Email=d-
Subject CN=cot2/Email=d-cotte@wanadoo.fr
Subject Public Key Info:
Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (512 bit)
Modulus (512 bit):
00:aa:f0:7a:56:4b:01:89:d3:12:9f:a0:05:70:30::
00:aa:f0:7a:56:4b:01:89:d3:12:9f:a0:05:70:30
66:46:72:30:9d:ac:44:52:6d:1d:e7:0a:41:a7:2c::
66:46:72:30:9d:ac:44:52:6d:1d:e7:0a:41:a7:2c
52:60:e4:2e:36:1a:6d:77:f7:e5:ca:85:d8:2e:db:
fa:3f:c4:7c:83:5e:f2:4f:ae:fc:18:bf:71:64:e7::
fa:3f:c4:7c:83:5e:f2:4f:ae:fc:18:bf:71:64:e7
8c:36:0b:dc:37
Exponent: 65537 (0x10001)
Attributes::
Attributes
a0:00
Signature Algorithm:
Algorithm: md5WithRSAEncryption
40:f3:47:7a:90:9d:f6:66:35:3e:0b:2a:22:1f:a4:b3:8b:33:
1e:d2:aa:11:02:89:70:3a:59:39:0e:87:bf:04:e3:e5:14:fe:
05:6d:dc:03:f3:ba:65:73:01:2e:20:c8:4c:c6:4f:fc:ed:8a:
e7:22:ae:96:51:eb:1e:0e:d4:96
-----BEGIN
----- BEGIN CERTIFICATE REQUEST -----
MIIBJjCB0QIBADBsMQswCQYDVQQGEwJDSDEMMAoGA1UECBMDR1ZBMQ8wDQYDVQQH
EwZHZW5ldmUxDDAKBgNVBAoTA2VpZzENMAsGA1UEAxMEY290MjEhMB8GCSqGSIb3
DQEJARYSZC1jb3R0ZUB3YW5hZG9vLmZyMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB
AKrwelZLAYnTEp+gBXAwZkZyMJ2sRFJtHecKQacsUmDkLjYabXf35cqF2C7b+j/E
fINe8k+u/Bi/cWTnjDYL3DcCAwEAAaAAMA0GCSqGSIb3DQEBBAUAA0EAQPNHepCd
9mY1PgsqIh+ks4szHtKqEQKJcDpZOQ6HvwTj5RT+BW3cA/O6ZXMBLiDITMZP/O2K
5yKullHrHg7Ulg==
-----END
----- END CERTIFICATE REQUEST-----
REQUEST-----

Diplôme en transmission de données 11


Enrollment : Réponse PKCS#7
PKCS#7

contentType (OID)

content :

de Type : Data or
signedData or
envelopedData or
Client signedAndEnvelopedData or CA
digestedData or
encryptedData

Diplôme en transmission de données 12


Sommaire

n PKI : Infrastructure à clé publique


n Enrollment : Procédure d’inscription
n Protocole OCSP
n Server Apache
n Conclusion

Diplôme en transmission de données 13


OCSP : Architecture
Serveur Apache
Client: Alice 1.3.22

Ÿ Echange des certificats


Ÿ Protocole SSL Apache core
Navigateur
Apache API
mod_ssl OpenSSL
client OCSP

Ÿ Protocole OCSP
Ÿ Commande OpenSSL

Ÿ Procédure d'inscription (enrollment) répondeur


Ÿ Format PKCS#10 (requête) OCSP
Autorité de
Ÿ Format PKCS#7 (réponse) Enrollment
Certification
Server Keon (CA)

Diplôme en transmission de données 14


OCSP : Principe
n OCSP : Online Certificate Status Protocol
n Vérifie l’état d’un certificat.
n Mécanisme Requête/Réponse.
états
possibles

Bon
certificat
Remarque:
révoqué Ces états
sont
exclusifs

inconnu

Diplôme en transmission de données 15


OCSP : Constitution d’une Requête
OCSP request
tbsRequest
Version

requestorName
Serveur Apache requestList CA Keon
reqCert

hashAlgorithm

issuerNameHash
Répondeur
Client OCSP
issuerKeyHash OCSP

serialNumber

singleRequestExtention

requestExtentions

optionalSignature
signatureAlgorithm

signature

certs

Diplôme en transmission de données 16


OCSP : Constitution d’une Réponse
OCSP response
responseStatus
successful
Serveur Apache CA Keon
malformedRequest

internalError

tryLater
Répondeur
Client OCSP sigRequired OCSP
unauthorized

responseBytes
responseType(OID)

response

responses
version
good
certStatus revoked CHOICE
unknown
thisUpdate

nextUpdate

singleExtensions

Diplôme en transmission de données 17


Remarques
n Utilisation des CRLs comme sources d’informations.

mise à jour quotidienne

CRL CRL CRL

? ? ?
information
périmée depuis
plusieurs heures
Répondeur OCSP

CA Serveur Apache

Diplôme en transmission de données 18


n Les réponses OCSP pré calculées

Client OCSP Repondeur OCSP


certificat
valide ? OCSP Requête

certificat OCSP reponse


Bon T1:thisUpdate
T12 : delai d'expiration de la

certificat
réponse

revoqué
OCSP Requête rejouée

OCSP reponse :Bon si reponse pré calculée

T2:nextUpdate

temps
Diplôme en transmission de données 19
Sommaire

n PKI : Infrastructure à clé publique


n Enrollment : Procédure d’inscription
n Protocole OCSP
n Server Apache
n Conclusion

Diplôme en transmission de données 20


Apache : Architecture
Serveur
Client : Alice Apache

Ÿ Echange des certificats


Ÿ Protocole SSL configuration httpd.conf
Navigateur
Apache API
mod_ssl OpenSSL
client OCSP

Ÿ Protocole OCSP
Ÿ Commande OpenSSL

répondeur
Ÿ Procédure d'inscription (enrollment)
OCSP Autorité de
Ÿ Format PKCS#10 (requête)
Ÿ Format PKCS#7 (réponse) Enrollment Certification
Server (CA)

Diplôme en transmission de données 21


Apache: Architecture du module
SSL
Utilisation de la
librairie d’OpenSSL

Utilisation des fonctions


de base d’Apache

Série de patchs
additionnels à Apache
(Extended API)

Diplôme en transmission de données 22


Apache : Configuration httpd.conf
# httpd.conf
.
<IfDefine SSL>
HTTPS sur port 443 Listen 443
</IfDefine>
.
<VirtualHost _default_:443>
Active/Désactive SSL SSLEngine on
.
Certificat du serveur .
SSLCertificateFile /usr/../ssl.crt/certificat_apache.crt
Apache .
.
Clé associée au certificat SSLCertificateKeyFile /usr/../ssl.key/certificat_apache.key

Certificat du CA racine SSLCACertificateFile /usr/../ssl.crt/rootscepca.crt

Authentification Client SSLVerifyClient require

Profondeur de vérification SSLVerifyDepth 4


.
.

Diplôme en transmission de données 23


Apache : L’authentification Serveur Apache
Client : Alice

Ÿ Echange des certificats


Ÿ Protocole SSL configuration httpd.conf
Navigateur

Authentification Client avec les Authentification Serveur avec les


directives: directives:
(SSLVerifyClient, SSLVerifyDepth, (SSLCertificateFile, SSLCertificateKeyFile)
SSLCACertificateFile)

24
Apache : utilisation démo2

CRL
Générer une CRL et l'exporter sur le serveur Apache

Floppy

Serveur Apache Autorité de certification

Placer la CRL sur le serveur Apache et


configurer

# httpd.conf
.
.
SSLCACertificateFile /usr/../ssl.crt/rootscepca.crt

Fichier contenant la CRL SSLCARevocationFile /usr/../ssl.crl/rootscepcrl.crl

SSLVerifyClient require
.
.
Certificat Client

SSL
Recherche le numéro de série du certificat dans la CRL.

Diplôme en transmission de données 25


démo3

Apache : Utilisation d’ OCSP


Httpd.conf:
SSLOCSPVerify enable
Serveur Apache Autorité de certification
#SSLCARevocationFile
Client OCSP Répondeur OCSP

?
Certificat Client Requête OCSP
État =
SSL

Valide Réponse OCSP


Accès aux ressources Revoqué,
du serveur Apache Inconnu

Accès au serveur Apache refusé

Diplôme en transmission de données 26


Fonction OCSP avec OpenSSL

n Commande OpenSSL:
> Openssl ocsp –url http://129.194.187.55:90/ocsp.xuda -issuer
rootscepca.crt –VAfile ocsproot.crt –cert clientapache.crt

n Réponse associée:

Response verify : OK
clientapache.crt : good
This UpDate : Oct 17 10 :12 :03 2001 GMT

Diplôme en transmission de données 27


démo3
Codage Client OCSP
n Récupérer le certificat du client lors de la phase d’authentification
au format DER (fonction i2d_X509_fp)
n Convertir le certificat du format DER au format PEM. (OpenSSL)
n Envoyer la requête au répondeur OCSP. (OpenSSL)
n Lecture du fichier contenant la réponse OCSP.
fonction conversion grâce
à OpenSSL
i2d_X509_fp

convert

fichier contenant fichier contenant


certificat au format certificat au format
Certificat au format X509 DER PEM

clientapache.der clientapache.pem

ocsprequest
Affectation fichier contenant
Variable d'Etat resultat commande commande OCSP
analyse OCSP avec openSSL

ocspresult.txt

Diplôme en transmission de données 28


Conclusion

n Procédure d’inscription (enrollment)


n Etude protocole OCSP
n Vérification par CRL
n Vérification par OCSP
n Possibilités d’optimisation

Diplôme en transmission de données 29


Planning du diplôme
Tâche Descritption

A Installation + prise en main de la CA Keon


Recherche d'Informations sur les protocoles
B Points 1&2
de gestion des PKI
C Mise en pratique de la procédure d'inscription
Etude du protocole OCSP; comparaison avec
D Point 3
les CRLs
Installation et configuration du Serveur
E
Apache
F Etude du module SSL
Point 4
G Implémentation Fonction OCSP

H Ecriture du mémoire

A C E G

semaines
1 2 3 4 5 6 7 8 9 10 11

B D F H

Diplôme en transmission de données 30

Vous aimerez peut-être aussi