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 n n n n
PKI : Infrastructure à clé publique Enrollment : Procédure d’inscription Protocole OCSP Server Apache 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 _Email:
[email protected] _Validité: 18/10/2001 au 18/10/2006 _Clé Publique: 1a:b6:f7:45:c3:2d:cd:af _Algorithme : sha1
Hash
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 _nom du propriétaire: Denis COTTE _Email:
[email protected] _Validité: 18/10/2001 au 18/10/2006 _Clé Publique: 1a:b6:f7:45:c3:2d:cd:af _Algorithme : sha1
Hash
Comparaison des condensés
Signature: 3d:c5:b12:9a:bd:e6
Diplôme en transmission de données
Déchiffrement à l'aide de la clé publique de l'autorité de certification
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 n n n n
PKI : Infrastructure à clé publique Enrollment : Procédure d’inscription Protocole OCSP Server Apache Conclusion
Diplôme en transmission de données
6
Enrollment : Architecture Serveur Apache 1.3.22
Client: Alice Ÿ Ÿ
Echange des certificats Protocole SSL
Navigateur
Apache core Apache API mod_ssl
OpenSSL
client OCSP
Ÿ Ÿ
Ÿ Ÿ Ÿ
Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)
Diplôme en transmission de données
Protocole OCSP Commande OpenSSL
répondeur OCSP Enrollment Server
Autorité de Certification Keon (CA) 7
Enrollment : Principe Client Ÿ
Autorité de certification
Génère une paire de clés
PKCS#10
Ÿ
Fournit différentes informations Informations
Ÿ Ÿ Ÿ Ÿ Ÿ
Informations
Nom Adresse e-mail Organisation Localité ,...
Clé Publique Signature
Installation
Diplôme en transmission de données
PKCS#7
8
démo1
Enrollment : Architecture CA Keon CA Keon
Port 446
Port 90 Port 444
SCEP Server
OCSP Responder
Secure Directory Server +
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 OpenSSL
Certificate Request: Data: Version:: 0 (0x0) Version Subject:: C=CH, ST=GVA, L=Geneve, O=eig, CN=cot2/Email=dSubject CN=cot2/
[email protected] 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 :
Client
de Type : Data or signedData or envelopedData or signedAndEnvelopedData or digestedData or encryptedData
Diplôme en transmission de données
CA
12
Sommaire n n n n n
PKI : Infrastructure à clé publique Enrollment : Procédure d’inscription Protocole OCSP Server Apache Conclusion
Diplôme en transmission de données
13
OCSP : Architecture Serveur Apache 1.3.22
Client: Alice Ÿ Ÿ
Echange des certificats Protocole SSL
Navigateur
Apache core Apache API mod_ssl
OpenSSL
client OCSP
Ÿ Ÿ
Ÿ Ÿ Ÿ
Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)
Diplôme en transmission de données
Protocole OCSP Commande OpenSSL
répondeur OCSP Enrollment Server
Autorité de Certification Keon (CA) 14
OCSP : Principe n n n
OCSP : Online Certificate Status Protocol Vérifie l’état d’un certificat. Mécanisme Requête/Réponse. états possibles Bon certificat révoqué
Remarque: 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
Client OCSP issuerKeyHash
Répondeur 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
Client OCSP
Répondeur OCSP
sigRequired unauthorized
responseBytes responseType(OID) response responses version certStatus
revoked unknown
good CHOICE
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
Diplôme en transmission de données
Serveur Apache
18
n
Les réponses OCSP pré calculées
Client OCSP certificat valide ?
certificat Bon
Repondeur OCSP OCSP Requête
OCSP reponse T1:thisUpdate
T12 : delai d'expiration de la réponse
OCSP Requête rejouée
certificat revoqué
OCSP reponse :Bon si reponse pré calculée T2:nextUpdate
temps
Diplôme en transmission de données
19
Sommaire n n n n n
PKI : Infrastructure à clé publique Enrollment : Procédure d’inscription Protocole OCSP Server Apache Conclusion
Diplôme en transmission de données
20
Apache : Architecture Serveur Apache
Client : Alice Ÿ Ÿ
Echange des certificats Protocole SSL
Navigateur
configuration httpd.conf Apache API mod_ssl
OpenSSL
client OCSP
Ÿ Ÿ
Ÿ Ÿ Ÿ
Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)
Diplôme en transmission de données
Protocole OCSP Commande OpenSSL
répondeur OCSP Enrollment Server
Autorité de Certification (CA) 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
HTTPS sur port 443 Active/Désactive SSL Certificat du serveur Apache Clé associée au certificat
# httpd.conf .
Listen 443 .
SSLEngine on . . SSLCertificateFile /usr/../ssl.crt/certificat_apache.crt . . 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 directives:
Authentification Serveur avec les directives:
(SSLVerifyClient, SSLVerifyDepth, SSLCACertificateFile)
(SSLCertificateFile, SSLCertificateKeyFile)
24
Apache : utilisation CRL
démo2 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
#SSLCARevocationFile
Client OCSP
Accès aux ressources du serveur Apache
Répondeur OCSP
?
Requête OCSP
Valide Revoqué, Inconnu
Réponse OCSP
Certificat Client SSL
Autorité de certification
État =
Accès au serveur Apache refusé Diplôme en transmission de données
26
Fonction OCSP avec OpenSSL Commande OpenSSL: > Openssl ocsp –url http://129.194.187.55:90/ocsp.xuda -issuer rootscepca.crt –VAfile ocsproot.crt –cert clientapache.crt n
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
Codage Client OCSP
démo3
n
Récupérer le certificat du client lors de la phase d’authentification au format DER (fonction i2d_X509_fp) Convertir le certificat du format DER au format PEM. (OpenSSL) Envoyer la requête au répondeur OCSP. (OpenSSL)
n
Lecture du fichier contenant la réponse OCSP.
n
n
conversion grâce à OpenSSL
fonction i2d_X509_fp
convert
Certificat au format X509
fichier contenant certificat au format DER
fichier contenant certificat au format PEM
clientapache.der
clientapache.pem
ocsprequest Affectation Variable d'Etat analyse
fichier contenant resultat commande OCSP
commande OCSP avec openSSL
ocspresult.txt
Diplôme en transmission de données
28
Conclusion n n n n n
Procédure d’inscription (enrollment) Etude protocole OCSP Vérification par CRL Vérification par OCSP 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
B
Recherche d'Informations sur les protocoles de gestion des PKI
C
Mise en pratique de la procédure d'inscription Etude du protocole OCSP; comparaison avec les CRLs Installation et configuration du Serveur Apache
D E F
Etude du module SSL
G
Implémentation Fonction OCSP
H
Ecriture du mémoire
A
C
E
Points 1&2
Point 3
Point 4
G semaines
1
2
3 B
4
5
6 D
Diplôme en transmission de données
7
8 F
9
10
11 H
30