PKI : Public Key Infrastructure

Diplômant Professeur responsable Collaboration avec : : : Denis Cotte Gérald Litzistorf 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: d-cotte@wanadoo.fr _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: d-cotte@wanadoo.fr _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
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 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
Client: Alice Ÿ Ÿ Navigateur Echange des certificats Protocole SSL Serveur Apache 1.3.22 Apache core Apache API mod_ssl OpenSSL

client OCSP

Ÿ Ÿ

Protocole OCSP Commande OpenSSL

Ÿ Ÿ Ÿ

Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)

répondeur OCSP Enrollment Server

Autorité de Certification Keon (CA)
7

Diplôme en transmission de données

Enrollment : Principe
Client
Ÿ Génère une paire de clés

Autorité de certification

PKCS#10

Ÿ

Fournit différentes informations Informations

Ÿ Ÿ Ÿ Ÿ Ÿ

Nom Adresse e-mail Organisation Localité ,...

Informations Clé Publique Signature

Installation

PKCS#7

Diplôme en transmission de données

8

démo1

Enrollment : Architecture CA Keon
CA Keon
Port 446

SCEP Server
Secure Directory Server + Administration Server Web Server Database

Port 90 Port 444

OCSP Responder

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

Certificate Request: Data: Version: Version: 0 (0x0) Subject: Subject : C=CH, ST=GVA, L=Geneve, O=eig, CN=cot2/Email=d-cotte@wanadoo.fr CN=cot2/Email=dSubject 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: md5WithRSAEncryption Algorithm: 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-----

Enrollment : PKCS#10 avec OpenSSL

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 signedAndEnvelopedData or digestedData or encryptedData

Client

CA

Diplôme en transmission de données

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
Client: Alice Ÿ Ÿ Navigateur Echange des certificats Protocole SSL Serveur Apache 1.3.22 Apache core Apache API mod_ssl OpenSSL

client OCSP

Ÿ Ÿ

Protocole OCSP Commande OpenSSL

Ÿ Ÿ Ÿ

Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)

répondeur OCSP Enrollment Server

Autorité de Certification Keon (CA)
14

Diplôme en transmission de données

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
reqCert hashAlgorithm issuerNameHash

CA Keon

Client OCSP
issuerKeyHash serialNumber singleRequestExtention

Répondeur OCSP

requestExtentions

optionalSignature
signatureAlgorithm signature certs

Diplôme en transmission de données

16

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

CA Keon
malformedRequest internalError tryLater

Client OCSP

sigRequired unauthorized

Répondeur OCSP

responseBytes
responseType(OID) response
responses version certStatus thisUpdate nextUpdate singleExtensions revoked unknown good
CHOICE

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 certificat valide ?

Repondeur OCSP OCSP Requête

certificat Bon T12 : delai d'expiration de la réponse

OCSP reponse T1:thisUpdate

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
Client : Alice Ÿ Ÿ Navigateur Echange des certificats Protocole SSL Serveur Apache configuration httpd.conf Apache API mod_ssl OpenSSL

client OCSP

Ÿ Ÿ

Protocole OCSP Commande OpenSSL

Ÿ Ÿ Ÿ

Procédure d'inscription (enrollment) Format PKCS#10 (requête) Format PKCS#7 (réponse)

répondeur OCSP Enrollment Server

Autorité de Certification (CA)
21

Diplôme en transmission de données

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> Listen 443 </IfDefine> . <VirtualHost _default_:443> SSLEngine on . . SSLCertificateFile /usr/../ssl.crt/certificat_apache.crt . . SSLCertificateKeyFile /usr/../ssl.key/certificat_apache.key SSLCACertificateFile /usr/../ssl.crt/rootscepca.crt SSLVerifyClient require SSLVerifyDepth
. .

HTTPS sur port 443 Active/Désactive SSL Certificat du serveur Apache Clé associée au certificat Certificat du CA racine Authentification Client Profondeur de vérification

4

Diplôme en transmission de données

23

Apache : L’authentification
Client : Alice Ÿ Ÿ Navigateur Echange des certificats Protocole SSL Serveur Apache configuration httpd.conf

Authentification Client avec les directives: (SSLVerifyClient, SSLVerifyDepth, SSLCACertificateFile)

Authentification Serveur avec les directives: (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.
25

Diplôme en transmission de données

démo3

Apache : Utilisation d’ OCSP
Httpd.conf: SSLOCSPVerify enable #SSLCARevocationFile
Serveur Apache Autorité de certification

Client OCSP

Répondeur OCSP

Certificat Client SSL

État =

?

Requête OCSP

Accès aux ressources du serveur Apache

Valide Revoqué, Inconnu

Réponse OCSP

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
n n n n

démo3

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) Lecture du fichier contenant la réponse OCSP.
fonction i2d_X509_fp

conversion grâce à OpenSSL convert
fichier contenant certificat au format DER clientapache.der

Certificat au format X509

fichier contenant certificat au format PEM clientapache.pem

ocsprequest
Affectation Variable d'Etat analyse

fichier contenant resultat commande OCSP ocspresult.txt

commande OCSP avec openSSL

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 A B C D E F G H A C Descritption Installation + prise en main de la CA Keon Recherche d'Informations sur les protocoles de gestion des PKI Mise en pratique de la procédure d'inscription Etude du protocole OCSP; comparaison avec les CRLs Installation et configuration du Serveur Apache Etude du module SSL Implémentation Fonction OCSP Ecriture du mémoire E G semaines 1 2 3 B 4 5 D 6 7 8 F 9 10 H 11 Point 3 Points 1&2

Point 4

Diplôme en transmission de données

30

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master Your Semester with a Special Offer from Scribd & The New York Times

Cancel anytime.