Strong Authentication with PKI

2 184 vues

Publié le

Publié dans : Technologie, Formation
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 184
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
145
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Strong Authentication with PKI

  1. 1. La citadelle électronique Authentification PKI Sylvain Maret (sylvain.maret@e-xpertsolutions.com) Novembre 2002 Version 1.21
  2. 2. Agenda <ul><li>Authentification à clé publique </li></ul><ul><ul><li>Challenge Response </li></ul></ul><ul><ul><li>RSA et DSS </li></ul></ul><ul><ul><li>Exemple avec SSH </li></ul></ul><ul><li>Authentification basée sur les certificats X509 </li></ul><ul><ul><li>Certificats (X509) </li></ul></ul><ul><ul><li>CA (ancre de confiance) </li></ul></ul><ul><ul><li>Révocation </li></ul></ul><ul><ul><li>Exemple avec SSL </li></ul></ul>
  3. 3. Agenda <ul><li>Sécurité de la clé privée </li></ul><ul><ul><li>Génération des clés </li></ul></ul><ul><ul><li>Stockage de la clé privée </li></ul></ul><ul><ul><li>Les smartcards </li></ul></ul><ul><ul><li>Stockage des clés sur un serveur </li></ul></ul><ul><ul><ul><li>HSM </li></ul></ul></ul><ul><ul><ul><li>Web serveur SSL </li></ul></ul></ul>
  4. 4. Authentification à clé publique
  5. 5. Authentification à clé publique <ul><li>Basé sur les algorithmes à clés publiques </li></ul><ul><ul><li>Une clé privée </li></ul></ul><ul><ul><li>Une clé publique </li></ul></ul><ul><ul><li>Lié mathématiquement </li></ul></ul><ul><li>Fournit la non-répudiation </li></ul><ul><ul><li>Pas de partage de « secret » entre les deux parties </li></ul></ul><ul><ul><ul><li>Entre un client et un serveur par exemple </li></ul></ul></ul>
  6. 6. Authentification à clé publique <ul><li>Deux méthodes pour l’authentification </li></ul><ul><ul><li>Challenge response avec signature digital d’un nonce </li></ul></ul><ul><ul><li>Challenge response avec l’encryption d’un nonce </li></ul></ul><ul><ul><ul><li>Pas utilisé </li></ul></ul></ul><ul><li>Mécanisme d’authentification « off-line » </li></ul><ul><ul><li>Pas de contact avec un serveur d’authentification </li></ul></ul><ul><ul><li>Uniquement la copie des clés publiques </li></ul></ul><ul><ul><ul><li>« Base de confiance » </li></ul></ul></ul>
  7. 7. Authentification à clé publique: signature digital d’un nonce Clé privée nonce BOB Signature = Vérification ? nonce signé Clé publique Clé publique de BOB
  8. 8. Authentification à clé publique: encryption d’un nonce Clé privée nonce BOB décryption Encryption nonce encrypté nonce décrypté = Vérification ? Clé publique Clé Publique De BOB
  9. 9. Authentification à clé publique: trust direct <ul><li>Contrôle manuel ou « off-line » de chaque clé publique </li></ul><ul><ul><li>Trust direct (même esprit que PGP) </li></ul></ul>Fingerprint Contrôle manuel Clé publique Clé publique
  10. 10. Authentification à clé publique: algorithme RSA <ul><li>Rivest, Shamir, Adleman en 1977 </li></ul><ul><li>Algorithme très connue </li></ul><ul><li>Fournit les services suivants: </li></ul><ul><ul><li>Confidentialité (encryption) </li></ul></ul><ul><ul><li>Non-répudation (signature) </li></ul></ul><ul><li>Algorithme dit « réversible » </li></ul><ul><li>Longueur de clé jusqu’à 4096 </li></ul><ul><li>Dans le domaine publique depuis septembre 2000 </li></ul>
  11. 11. Authentification à clé publique: algorithme DSS / DSA <ul><li>Compatible avec le standard du NIST </li></ul><ul><ul><li>D igital S ignature S tandard (DSS) </li></ul></ul><ul><li>Publié en 1994 </li></ul><ul><li>Fournit uniquement la non-repudation </li></ul><ul><ul><li>Signature </li></ul></ul><ul><li>Algorithme non « réversible » </li></ul><ul><li>Bonne performance sur les smartcards </li></ul>
  12. 12. Authentification à clé publique: SSH <ul><li>Secure Shell </li></ul><ul><li>Solution de remplacement de telnet, FTP et les commandes R (Unix) </li></ul><ul><li>Defacto Standard maintenant </li></ul><ul><ul><li>5 millions d’utilisateurs </li></ul></ul><ul><li>Fournit </li></ul><ul><ul><li>Authentification </li></ul></ul><ul><ul><li>Chiffrement (3DES, AES, Blowfish, etc.) </li></ul></ul><ul><ul><li>Intégrité (sha1, md5) </li></ul></ul>
  13. 13. Pourquoi utiliser SSH ? Sniffer Network Original TCP Packet Login: dupont Password: abc123 Unix Host Telnet to Unix Host
  14. 14. Authentification avec SSH <ul><li>Standard ouvert pour l’authentification </li></ul><ul><ul><li>Username et Password </li></ul></ul><ul><ul><li>Public Key </li></ul></ul><ul><ul><li>PKI (smartcard) </li></ul></ul><ul><ul><li>RSA SecurID </li></ul></ul><ul><ul><li>PAM </li></ul></ul><ul><ul><li>Kerberos </li></ul></ul><ul><ul><li>Etc. </li></ul></ul>
  15. 15. Authentification à clé publique: exemple avec SSH <ul><li>Génération de la paire de clés sur le client SSH </li></ul><ul><ul><li>Protection de la clé privée par un PIN </li></ul></ul><ul><li>« Upload » de la clé publique sur le serveur </li></ul><ul><ul><li>Mise à jour de la « base de confiance » </li></ul></ul><ul><ul><li>Très sensible aux attaques </li></ul></ul><ul><li>Configuration SSH serveur pour supporter l’authentification « public Key » </li></ul>
  16. 16. Génération des clés avec le client SSH
  17. 17. Authentification basée sur les certificats X509
  18. 18. Authentification X509: « Man in the middle » attack <ul><li>Pourquoi utiliser les certificats X509 ? </li></ul><ul><ul><li>Echange de la clé publique avec un web server… </li></ul></ul><ul><ul><ul><li>Direct Trust n’est pas possible ! </li></ul></ul></ul>
  19. 19. Authentification X509 No more Charly Implicit Trust Autorité de certification Direct Trust Direct Trust
  20. 20. Authentification X509: définition du certificat <ul><li>Lien entre une entité et une clé publique </li></ul><ul><ul><li>Lien entre le monde physique et le monde digital </li></ul></ul><ul><li>Ce lien est certifié par une autorité tier </li></ul><ul><ul><li>Autorité de certification </li></ul></ul><ul><li>Trust direct avec l’autorité de certification </li></ul><ul><li>Trust implicite avec les entités qui possèdent les certificats </li></ul><ul><ul><li>Web serveur, Personnes, etc. </li></ul></ul>
  21. 21. Authentification X509: définition du certificat + entité Clé publique Signature du certificat Autorité de certification
  22. 22. Authentification X509: processus de contrôle simplifié Clé privée nonce Signature = Vérification ? nonce signé Alice Certificat Certificat Alice
  23. 23. Authentification X509: contrôle complet du certificat <ul><li>Vérification de la date </li></ul><ul><li>Vérification de la signature </li></ul><ul><ul><li>Contrôle avec la base de confiance ou ancre de confiance </li></ul></ul><ul><li>Vérification de la validité </li></ul>Certificats CA Base de confiance ou ancre de confiance Vérification du certificat VA
  24. 24. Authentification X509: Validation des certificats <ul><li>Révocation d’un certificat… </li></ul><ul><ul><li>Vol ou perte du « container » des clés </li></ul></ul><ul><ul><li>Quitter l’entreprise </li></ul></ul><ul><ul><li>Etc. </li></ul></ul><ul><li>Plusieurs solutions </li></ul><ul><ul><li>CRL, Delta CRL, etc. </li></ul></ul><ul><ul><li>Online Check </li></ul></ul><ul><ul><ul><li>OCSP (rfc 2560) </li></ul></ul></ul><ul><ul><ul><li>SCVP </li></ul></ul></ul>
  25. 25. Authentification X509: OCSP Web Server Alice Validation Authority OCSP request Valide Pas valide Inconu
  26. 26. Authentification X509: trust direct <ul><li>Contrôle manuel ou « off-line » de chaque ROOT </li></ul><ul><ul><li>Trust direct </li></ul></ul><ul><ul><li>Bootstrapping </li></ul></ul>Fingerprint Contrôle manuel Autorité de certification
  27. 27. Authentification X509: Root CA dans le browser ! Base de confiance du broswer Certificat Root
  28. 28. Authentification X509: SSL <ul><li>S ecure S ockets L ayer </li></ul><ul><li>Protocole de protection « end 2 end » </li></ul><ul><ul><li>Encryption </li></ul></ul><ul><ul><li>Intégrité </li></ul></ul><ul><ul><li>Authentification </li></ul></ul><ul><li>Généralement authentification du serveur SSL </li></ul><ul><ul><li>Par un certificat de type serveur </li></ul></ul><ul><li>Authentification client possible avec un certificat personnel </li></ul>
  29. 29. Authentification X509: SSL <ul><li>SSL v 1 dévellopé par Netscape en 1994 </li></ul><ul><ul><li>Usage interne chez Netscape </li></ul></ul><ul><li>SSL v2 dans les browsers Netscape V 1 et 2 </li></ul><ul><li>SSL v3  dernière version </li></ul><ul><li>TLS v1 repris par l’IETF </li></ul><ul><ul><li>Ou SSL V3.1 </li></ul></ul>
  30. 30. <ul><li>SSL protocol s’implémente entre TCP et les applications </li></ul><ul><ul><li>http, telnet, ldap, etc. </li></ul></ul>Authentification X509: SSL
  31. 31. Authentification X509: SSL <ul><li>Contrôle du challenge ? </li></ul><ul><ul><li>Envoie d’un nonce </li></ul></ul><ul><li>Contrôle de la date ? </li></ul><ul><li>Recherche du certificat Root </li></ul><ul><ul><li>Dans la base de confiance </li></ul></ul><ul><li>Contrôle du certificat avec la base de confiance </li></ul><ul><ul><li>Vérification de la signature </li></ul></ul><ul><li>Contrôle de la validité ? </li></ul><ul><ul><li>OCSP, CRL, etc. </li></ul></ul>
  32. 32. Sécurité de la clé privée
  33. 33. Sécurité de la clé privée <ul><li>La clé privée est la base du système </li></ul><ul><ul><li>Elle doit être unique et vraiment privée </li></ul></ul><ul><ul><li>Surtout pour la clé signante (non répudation) </li></ul></ul><ul><li>Les clés chiffrantes peuvent être sauvergardé </li></ul><ul><ul><li>Restauration des clés en cas de perte </li></ul></ul><ul><li>On utilise généralement deux paires de clés </li></ul><ul><ul><li>Dual Key Pair </li></ul></ul>
  34. 34. Sécurité de la clé privée: génération des clés <ul><li>La génération est un processus délicat </li></ul><ul><li>Basé sur les nombres premiers </li></ul><ul><ul><li>Test si la clé est bien un nombre premier </li></ul></ul><ul><li>La paire de clé doit être unique </li></ul><ul><ul><li>Utilisation de PRNG </li></ul></ul><ul><ul><li>Utilisation de « seed » </li></ul></ul><ul><ul><ul><li>Mouvement de la sourie </li></ul></ul></ul><ul><ul><ul><li>Fréquence de frappe du clavier </li></ul></ul></ul><ul><ul><ul><li>Etc. </li></ul></ul></ul><ul><li>Processus très lent </li></ul>
  35. 35. Sécurité de la clé privée: stockage des clés <ul><li>Deux grand type de stockage </li></ul><ul><ul><li>Software </li></ul></ul><ul><ul><ul><li>Fichier </li></ul></ul></ul><ul><ul><ul><li>Virtual Smartcard </li></ul></ul></ul><ul><ul><li>Hardware </li></ul></ul><ul><ul><ul><li>Smartcard, USB, HSM </li></ul></ul></ul>
  36. 36. Sécurité de la clé privée: stockage des clés software <ul><li>Stockage dans un fichier </li></ul><ul><ul><li>Norme PKCS#12 avec protection d’un PIN </li></ul></ul><ul><ul><ul><li>Dans le container Microsoft ou Netscape </li></ul></ul></ul><ul><ul><ul><li>Sur une disquette </li></ul></ul></ul><ul><ul><li>Lotus Notes (ID file) </li></ul></ul><ul><ul><li>PGP, etc. </li></ul></ul><ul><li>Stockage sur un serveur de smartcard virtuelle </li></ul><ul><ul><li>Utilise généralement la norme PKCS#12 </li></ul></ul><ul><ul><li>Web Passport de RSA Security </li></ul></ul>
  37. 37. Sécurité de la clé privée: stockage des clés hardware <ul><li>Utilisation de support hardware pour le stockage des clés </li></ul><ul><ul><li>Options: </li></ul></ul><ul><ul><ul><li>Stockage uniquement (memory card) </li></ul></ul></ul><ul><ul><ul><li>Génération des clés « on card » </li></ul></ul></ul><ul><ul><ul><li>Utilisation de crypto processor </li></ul></ul></ul><ul><li>Deux grandes familles </li></ul><ul><ul><li>Support hardware pour clés personnel </li></ul></ul><ul><ul><li>Support hardware pour clés serveur </li></ul></ul>
  38. 38. Sécurité de la clé privée: crypto processor Generate Public Key Pair Card’s Private key PRNG Card’s Certificate Encrypt Sign Hardware Input Output + Card’s Public Key Retrieve Certificate
  39. 39. Sécurité de la clé privée: les smartcards <ul><li>Mini ordinateur sans écran et clavier </li></ul><ul><li>Contient générallement </li></ul><ul><ul><li>De la mémoire (RAM, ROM et EEPROM) </li></ul></ul><ul><ul><li>Un Processeur (CPU) </li></ul></ul><ul><ul><li>Un Co-Processor Cryptographique </li></ul></ul><ul><ul><li>Un connecteur standard (ISO 7810) </li></ul></ul><ul><li>Carte multi-applications </li></ul><ul><ul><li>GSM, Carte de crédit, PayTV, etc. </li></ul></ul>
  40. 40. Sécurité de la clé privée: les smartcards et PKI <ul><li>Stockage des clés (privées et publiques et le certificat X509) </li></ul><ul><li>Fournit l’authentification forte </li></ul><ul><ul><li>Protection par un PIN </li></ul></ul><ul><ul><li>Protection par biométrie </li></ul></ul><ul><li>Deux type de smartcard </li></ul><ul><ul><li>Mémoire uniquement </li></ul></ul><ul><ul><li>Crypto-Processor </li></ul></ul><ul><li>Protection contre la « brute force attack » </li></ul><ul><ul><li>PUK </li></ul></ul>
  41. 41. Sécurité de la clé privée: les smartcards <ul><li>Deux grand standard de communication </li></ul><ul><ul><li>PKCS #11 ou Cryptoki </li></ul></ul><ul><ul><li>Netscape, laboratoires RSA </li></ul></ul><ul><li>PC/SC et Crypto API </li></ul><ul><ul><li>http://www.pcscworkgroup.com/ </li></ul></ul><ul><ul><li>Bull, Gemplus, HP, Intel, Microsoft, Schlumberger Siemens, SUN, Toshiba </li></ul></ul>
  42. 42. Sécurité de la clé privée: les smartcards <ul><li>Lecteurs </li></ul><ul><ul><li>Série </li></ul></ul><ul><ul><li>USB </li></ul></ul><ul><ul><li>PCMCIA </li></ul></ul><ul><ul><li>Clavier </li></ul></ul><ul><li>Clés USB </li></ul>
  43. 43. Sécurité de la clé privée: HSM <ul><li>Stockage des clés privées dans un module hardware (HSM) </li></ul><ul><ul><li>Stockage des ROOT CA </li></ul></ul><ul><ul><li>Stockage des clés serveur SSL </li></ul></ul><ul><ul><li>Backup des clés d’encryption </li></ul></ul><ul><li>Accès au HSM par smartcard </li></ul><ul><ul><li>Multi smartcard (Restauration des clés) </li></ul></ul><ul><li>Génération des clés </li></ul>
  44. 44. Sécurité de la clé privée: exemple d’implémentation
  45. 45. Sécurité de la clé privée: Web serveur SSL HSM Web Server SSL Smartcards SSL Acceleration SSL or TLS
  46. 46. Questions?
  47. 47. e-Xpert Solutions SA Intégrateur en sécurité informatique Au bénéfice d'une longue expérience dans les secteurs financiers et industriels, e-Xpert Solutions SA propose à sa clientèle des solutions « clé en main » dans le domaine de la sécurité informatique des réseaux et des applications. Des solutions qui vont de la sécurité d e périmètre – tel le firewall, VPN, IDS, FIA, le contrôle de contenu, l’anti-virus – aux solutions plus avant-gardistes comme la prévention des intrusions (approche comportementale), l'authentification forte, la biométrie, les architectures PKI ou encore la sécurisation des OS Unix , Microsoft et des postes clients (firewall personnel).
  48. 48. Pour plus d’informations e-Xpert Solutions SA Sylvain Maret Route de Pré-Marais 29 CH-1233 Bernex / Genève +41 22 727 05 55 [email_address]

×