Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima



Documents pareils
Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

Public Key Infrastructure (PKI)

Architectures PKI. Sébastien VARRETTE

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

D31: Protocoles Cryptographiques

Gestion des Clés Publiques (PKI)

Signature électronique. Romain Kolb 31/10/2008

Architecture PKI en Java

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Cours 14. Crypto. 2004, Marc-André Léger

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

La sécurité des Réseaux Partie 7 PKI

La sécurité dans les grilles

Protocoles d authentification

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Les certificats numériques

Protocoles cryptographiques

ROYAUME DU MAROC Politique de certification - Autorité de Certification Externe -

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

Modèle de sécurité de la Grille. Farida Fassi Master de Physique Informatique Rabat, Maroc May 2011

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Livre blanc. Sécuriser les échanges

Cadre de Référence de la Sécurité des Systèmes d Information

Gestion des certificats digitaux et méthodes alternatives de chiffrement

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Politique de Certification Pour les Certificats de classe 0 et 4 émis par l autorité de certification Notaires PUBLIÉ

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Du 03 au 07 Février 2014 Tunis (Tunisie)

Déclaration des Pratiques de Certification Isabel

Sécurité des réseaux IPSec

Sécurité des réseaux sans fil

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Politique de Certification Autorité de Certification Signature Gamme «Signature simple»

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Gestion des clés cryptographiques

Sécurité WebSphere MQ V 5.3

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

Politique de Certification de l'ac "ALMERYS SIGNATURE AND AUTHENTICATION CA NC" Référentiel : Sous-Référentiel : Référence : Statut :

Infrastructure à Clé Publique (PKI Public Key Infrastructure)

ETUDE DES MODELES DE CONFIANCE

Guide de déploiement d'un mécanisme De SmartCardLogon par carte CPS Sur un réseau Microsoft

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

EJBCA PKI. Yannick Quenec'hdu Reponsable BU sécurité

Tour d horizon des différents SSO disponibles

Sécurisation des architectures traditionnelles et des SOA

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Politique de Certification

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Politique de Certification - AC SG TS 2 ETOILES Signature

Pascal Gachet Travail de diplôme Déploiement de solutions VPN : PKI Etude de cas

Les 7 méthodes d authentification. les plus utilisées. Sommaire. Un livre blanc Evidian

Politique de Certification et Déclaration des pratiques de certifications de l autorité Tunisian Server Certificate Authority PTC BR

IPSEC : PRÉSENTATION TECHNIQUE

EJBCA PKI Open Source

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

Définition d une ICP et de ses acteurs

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

TheGreenBow IPsec VPN Client. Guide de Déploiement Options PKI. Site web: Contact:

DNSSEC. Introduction. les extensions de sécurité du DNS. Les dossiers thématiques de l AFNIC. 1 - Organisation et fonctionnement du DNS

Politique de Référencement Intersectorielle de Sécurité (PRIS)

Le protocole sécurisé SSL

Sécurisez votre serveur Web Internet Information Services de Microsoft (MS IIS) avec un certificat numérique de thawte thawte thawte thawte thawte

Autorité de Certification OTU

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Les infrastructures de clés publiques (PKI, IGC, ICP)

La citadelle électronique séminaire du 14 mars 2002

Meilleures pratiques de l authentification:

NFS Maestro 8.0. Nouvelles fonctionnalités

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

L identité numérique. Risques, protection

Administration de systèmes

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

Devoir Surveillé de Sécurité des Réseaux

La sécurité de votre e-business

POLITIQUE DE CERTIFICATION DE L'AC KEYNECTIS SSL RGS * (authentification serveur) Date : 12/08/2011

Sécuriser le routage sur Internet

Politique de certification et procédures de l autorité de certification CNRS

Définition des Webservices Ordre de paiement par . Version 1.0

Cryptographie. Cours 3/8 - Chiffrement asymétrique

SERVICES ELECTRONIQUES DE CONFIANCE. Service de Cachet Electronique de La Poste

DÉCLARATION ET DEMANDE D'AUTORISATION D OPÉRATIONS RELATIVES A UN MOYEN DE CRYPTOLOGIE

Sécurisation des accès au CRM avec un certificat client générique

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

Guide Numériser vers FTP

Domain Name System Extensions Sécurité

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Protocole industriels de sécurité. S. Natkin Décembre 2000

Vulnérabilités et sécurisation des applications Web

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

CERTEUROPE ADVANCED V4 Politique de Certification V1.0 Diffusion publique

LINUX - Sécurité. Déroulé de l'action. - 3 jours - Contenu de formation

Transcription:

Introduction à la sécurité Cours 8 Infrastructure de clés publiques Catalin Dima 1

Gestion des clés La gestion des clés concerne : La distribution de clés cryptographiques, Les mécanismes utilisés pour l association identité clé La génération, la maintenance et la révocation de clés. Le stockage sécurisé à long terme des clés de déchiffrement (obligation légale en France). Problématique : Comment associer une clé publique à une (représentation d une) identité? Comment représenter une identité (nommage)? Comment sécuriser la création des identités? Comment limiter les dégâts provoqués par la perte d une clé secrète? Comment informer à temps tous les membres de la communauté de cette perte? 2

Public key infrastructure (PKI) Système permettant aux agents de reconnaître quelle clé publique appartient à qui. Services fournis par la PKI : Vérification d identité et création de certificats Révocation des clés Test d appartenence de certificats Recouvrement des clés de déchiffrement Composants d une PKI : Authorité de certification (CA). Authorité d enregistrement (RA). Authorité de dépot (Repository). Authorité de recouvrement. 3

Composants d une PKI Authorité d enregistrement (RA) : Vérifie l identité du demandeur de certificat. Authorité de certification (CA) : Signe les certificats. Signe les révocations de certificats. Peut être la même que la RA. Autorité de dépot (Repository) : Maintient les certificats dans un répertoire public de certificats. Maintient une liste de révocation de certificats (CRL) dans le répertoire des certificats. La CRL est vérifiée activement par les clients ou par les services de validation. Autorité de recouvrement : Protège certaines clés privées pour récupération ultérieure. Clients. 4

Clients et mode d emploi Actions à entreprendre par Alice pour joindre la PKI : Génération de sa paire clé privée/clé publique. Transport de sa clé publique à la RA : Certificate Signing Request divers formes. La RA vérifie qu Alice est bien celle qui prétend l être (à définir selon les implémentations!) et informe la CA. La CA délivre le certificat stipulant Cette clé K A appartient bien à Alice. Le Repository récupère et stocke ce certificat, mis à disposition pour tout le monde. Maintenant tout Bob peut récupérer (soit chez le Repository, soit d une autre manière!) le certificat d Alice Si Bob fait confiance à la CA, peut accepter comme valide le certificat, et authentifier diverses conversations avec Alice. Celà implique bien sûr la possesion de la clé publique de la CA, pour bien vérifier la signature digitale sur le certificat! 5

CSR en BouncyCastle Classe PKCS10CertificationRequest. Constructeur : PKCS10CertificationRequest(signatureAlgorithm, subject, pubkey, attributes, signingkey). signingkey est la clé privée correspondant à la clé publique certificat auto-signé. attributes peut être null. Méthode verify() vérifier la requête autosignée. Méthode getpublickey() pour retrouver la clé à signer. Méthode getcertificationrequestinfo() qui renvoie un objet de type CertificationRequestInfo. Méthode getsubject() de cette classe, permettant de retrouver le propriétaire de la clé publique à signer. Méthode getalgorithmidentifier() pour retrouver l algorithme pour lequel la clé est utilisable. 6

Chaînes de confiance Deux approches : Construction d une hiérarchie d authentification, où la clé publique de la racine serait généralement reconnu. Graphe arbitraire de la relation d authentification des certificats, en s appuyant sur la connaissance individuelle des certificateurs. Modèle de confiance directe : tous les utilisateurs sous-scrivent à la même CA. Tous les certificats pourront être placés dans le même répertoire. Les certificats pourront être retransmis d utilisateur à utilisateur. 7

Chaînes de confiance Modèle de confiance hiérarchique : pour des grandes communautés d utilisateurs. Nombre de CA qui fournissent chacune sa propre clé publique à une fraction d utilisateurs. Arbre de confiance : certificats racine, certificats qui authentifient des certificats qui authentifient... La validité d un certificat feuille est vérifiée en traçant en arrière le chemin de confiance, jusqu à ce qu on trouve un certificat d une authorité à laquelle on fait confiance. Exemple : X.509. 8

Révocation de clé/certificat Liste de révocation de certificats (CRL) signée et maintenue par la CA. Utilisation : Les clients vérifient eux-mêmes activement les CRLs (éventuellement en utilisant une mémoire cache). Raisons pour la révocation : La clé privée de l utilisateur est supposée compromise. L utilisateur n est plus certifié par la CA. Le certificat de la CA est supposé compromis. La validité de l association identité-clé publique n est pas garantie (erreurs dans la RA). Chaque CA maintient une liste de certificats révoqués mais non expirés qu elle signe. Il ne faut pas confondre révocation et date limite! 9

CRL en Java et BouncyCastle Classe java.security.cert.x509crl encapsulant une CRL générée par un serveur de CRL. Méthodes : verify(publickey), getissuerx500principal(). Méthode de recherche X509CRLEntry getrevokedcertificate(biginteger serialnumber) ou getrevokedcertificate(x509certificate certificate). La classe X509CRLEntry contient getrevocationdate() et getserialnumber(). La classe CertificateFactory permet de récupérer une CRL sur un flux d entrée à l aide de la méthode generatecrl(inputstream). 10

CRL en BouncyCastle Classe org.bouncycastle.x509.x509v2crlgenerator permettant de créer des CRL. Constructeur X509V2CRLGenerator(). Méthode addcrlentry(usercertificate, revocationdate, raison), le usercertificate est un BigInteger qui représente le Serial Number du certificat. Les raisons sont des entiers membres statiques de la classe CRLReason, dans l ordre : unspecified=0, keycompromise, cacompromise, affiliationchanged, superseded, cessationofoperation, certificatehold, removefromcrl, privilegewithdrawn, aacompromise Méthode générant une CRL : X509CRL generate(java.security.privatekey key). Autres méthodes : setissuerdn(issuer), setthisupdate(date), setnextupdate(java.util.date date), setsignaturealgorithm(signaturealgorithm). 11

Vérification en ligne des CRL La nécessité de vérifier en ligne la validité d un certificat peut ouvrir la porte à des attaques DoS contre les CRL. Une CRL est fournie toute entière à qui le demande le client doit la parser pour vérifier si un certificat est révoqué. Cela peut poser problème aussi du point de vue de l intimité! Variante : protocole OCSP Un serveur OCSP répond à des demandes de vérification de validité de certificats, en renvoyant une confirmation signée de l état d un certificat à un moment donné. Tout système PKI a une latence sur l authenticité : Cela permet d utiliser des caches CRL, ou de réponses OCSP. 12

OCSP en BouncyCastle Classe OCSPReqGenerator, constructeur sans paramètres. Insertion de certificats à vérifier : addrequest(certid), argument de type CertificateID, Argument constructible avec CertificateID(CertificateID.HASH_SHA1, issuercert, serialnumber). Définir setrequestorname(x500principal requestorname). Génération de la requête : OCSPReq generate() (non-signée), ou generate(signingalgorithm, privatekey, X509Certificate[] chain, provider) (requête signée). Classe OCSPReq encapsulant une requête : Méthode Req[] getrequestlist(), renvoyant un tableau de Req dont la méthode CertificateID getcertid() permet de retrouver le Serial Number pour chaque certificat composant la requête. Test d authentification : boolean verify(publickey, sigprovider). 13

OCSP en BouncyCastle Construction d une réponse à l aide de la classe BasicOCSPRespGenerator : Constructeur BasicOCSPRespGenerator(publickey). Rajout d une réponse identifiée par le Serial Number : addresponse(certificateid certid, CertificateStatus certstatus). Interface CertificateStatus implémentée dans deux classes : RevokedStatus, UnknownStatus et un membre statique, GOOD. Constructeurs RevokedStatus(revocationDate, int reason) et UnknownStatus(). Génération de la réponse : BasicOCSPResp generate(signingalgorithm, privatekey, X509Certificate[] chain, Date thisupdate, provider). Retrouver les certificats dans une réponse de type BasicOCSPResp : X509Certificate[] getcerts(provider) ensuite il faut vérifier que le certificat pour lequel on a demandé la réponse se trouve dans cette liste. mais contenant que des certificats. Vérifier la signature : boolean verify(publickey, sigprovider). Nécessaire d ajouter des nonces dans les requêtes et les vérifier dans les réponses pour éviter des attaques de rejeu. 14

Réseau de confiance Inclut les systèmes de confiance directe et hiérarchique. Se base sur l idée que plus d information implique plus de confiance. Un certificat peut être co-signé par plusieurs authentificateurs. Exemple : PGP (Pretty Good Privacy (P. Zimmermann), utilisée pour la confidentialité des e-mails. Utilise une infrastructure de clés publiques basé sur les certificats. Les certificats se basent sur une notion de confiance : zéro, partiel et complet. Les différentes signatures pour une seule clé pourraient avoir des niveaux différents de confiance. Les certificats peuvent même être auto-signés. Une signature digitale devient une forme d introduction de l association identité/clé authentifiée. Plus de chemins de certification, plus de confiance dans la clé. Exemple... 15

Projet PKI Objectif : créer un ensemble d applications client-serveur implémentant une PKI. Protocôle d enregistrement d un client auprès de sa RA. Protocôle hors-ligne sinon pbs. d attaque Man-In-The-Middle, ou nécessité d utiliser une autre infrastructure de connexion sécurisée. Protocôle de demande et d obtention d un certificat signé par sa CA. Après la génération d une nouvelle clé publique client. Protocôle de communication entre clients. Peut engendrer une échange de certificats entre interlocuteurs, au démarrage. Ou peut se baser sur un autre protocôle de récupération du certificat de l interlocuteur, auprès d un répertoire des certificats. Exemple : utiliser Needham-Schroeder pour la création d une clé de session. Politique de gestion de la CRL : Implémentation des deux méthodes : demande périodique de CRL et vérification d appartenance dans la CRL et vérification par OCSP lors de chaque nouvelle connexion. Protocole à définir pour demander le rajout d un certificat dans une CRL. Implémentation du protocole Needham-Schroder pour une application de type chat sécurisé, avec une gestion de type PKI des clés et génération de clé de session à partir de la noncen B. 16

Travail demandé Travail en binome. Fichiers source (et éventuellement un jar) avec votre implémentation. Attention à la portabilité! Rapport contenant les points suivants : Description (formalisée comme vu en cours) des protocôles de communication, avec analyse de la sécurité du protocôle (assertions!). Description de l implémentation de chaque protocôle. Description de l architecture de votre application (clients/serveurs) Configuration nécessaire et manipulation. Description de votre plan de travail : comment avez-vous conçu les phases d implémentation, quand avez-vous pensé commencer et quand finir chaque phase, et ensuite comment cela s est réellement passé. Questions diverses : difficultés particulières rencontrées, aide externe, discussions que vous avez eu avec d autres binômes ou dans des groupes de discussions, etc. Soutenance : présentation de votre implémentation. Prévoir une petite application qui montrerait toutes les diverses fonctionnalités implémentés. Soutenances : première semaine après les examens. 17