Mai 2011
Julien Cathalo
Cryptographie à clé publique
• Invention du concept : 1976 (Diffie, Hellman)
• Premier système concret : 1978 (Rivest, Shamir, Adleman), RSA
• Technologie mature
Nombreux standards
Nombreuses applications avec impact pour Smals et ses membres
eID, TLS/SSL
Cryptographie à clé publique
1. Contrainte : certificats
• Gestion lourde
• Risque d'incidents 2. Chiffrement alternatif
• Nouvelles fonctionnalités
• Éviter les certificats
• Faire des calculs sur des données chiffrées
• Répartir le déchiffrement entre plusieurs personnes
• Des centaines d'articles sur le sujet
• Impact pour Smals ?
Plan
1. Gestion des certificats digitaux
2. Méthodes alternatives de chiffrement
@ a+b
Partie 1 : Certificats Digitaux
Motivation
• Etude Venafi :
"78% des organisations ont connu des problèmes de disponibilité et des pertes financières à cause de certificats"
• Chez Smals :
Des centaines de certificats à gérer
Quelques incidents
• Demande à la section Recherches
• Etude de la méthodologie
• Etude d'outils
Partie 1 : Certificats Digitaux
• Besoins de sécurité
Authentification
Vérifier que le site avec lequel elle est connectée est bien www.socialsecurity.be
Evite "url spoofing"
Chiffrement
Chiffrer les échanges entre le navigateur d'Alice et le site
Protège la confidentialité des informations échangées
Partie 1 : Certificats Digitaux
Partie 1 : Certificats Digitaux
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
La cryptographie
• Cryptographie : boîte à outils (algorithmes, protocoles) qui servent à sécuriser des
informations
• Applications (entre autres) :
Chiffrement
Signature digitale
Authentification
Clé secrète ou clé publique ?
• Cryptographie à clé secrète (ou cryptographie symétrique)
Chiffrement : la même clé pour chiffrer ou déchiffrer
Algorithmes très rapides
• Cryptographie à clé publique (ou cryptographie asymétrique)
Deux clés par utilisateur
Chiffrement : une clé pour chiffrer, une autre pour déchiffrer
Signature digitale
Algorithmes plus lents
Notations
• Message / document :
• Clé :
• Message chiffré avec la clé :
• Signature du message avec la clé :
Chiffrement à clé secrète
• Famille : cryptographie à clé secrète
• Alice et Bob se mettent d'accord sur une donnée, la clé secrète
• Alice veut chiffrer un message pour Bob
Bob
Alice
Chiffrement à clé publique
• Famille : cryptographie à clé publique
• Chaque utilisateur a deux clés
Clé privée
Clé publique
• Chacun peut générer sa paire de clés
• doit être gardée secrète !
• peut être rendue publique
• Propriétés mathématiques : impossible en pratique de calculer à partir de
Chiffrement Alice vers Bob
Signature digitale
• Famille : cryptographie à clé publique
• Chaque utilisateur a deux clés
Clé privée
Clé publique
Bob
OK ?
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
TLS / SSL
• TLS (Transport Layer Security)
Successeur de SSL (Secure Sockets Layer)
Protocole qui permet d'établir une connexion sécurisée client / serveur au niveau de la
couche transport
Url en "https"
• Assure :
L'authentification du serveur
Le chiffrement et l'intégrité des messages échangés entre client et serveur
(optionnellement, l'authentification du client)
TLS / SSL
Deux étapes :
1.Simple TLS Handshake
1.Etablit une clé de session
2.Le client vérifie l'identité du serveur
2.Session sécurisée
1.Utilise la clé de session pour chiffrer et authentifier les données échangées
TLS / SSL avec Simple TLS Handshake
TLS / SSL avec Simple TLS Handshake
• Le client vérifie implicitement l'identité du serveur
Lui seul a pu déchiffrer grâce à
• Le client et au serveur de disposer d'une clé secrète connue d'eux seuls ( ); cette clé sert pour le reste de la session
Sans vérification de la clé publique…
Sans vérification de la clé publique…
• Le client doit pouvoir distinguer la clé
publique du serveur authentique et celle de l'attaquant
• Le client doit vérifier le certificat digital du serveur
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
Certificat : qu'est-ce que c'est ?
• Un petit fichier (1 ou 2 KB)
• Dans un format normalisé (X.509)
• Qui sert à attester du lien entre
1. Une entité (personne morale, personne physique, serveur, application…)
et
2. Une clé publique
• Généré par une autorité de certification (CA) qui signe le contenu avec sa propre clé
privée
Champs (X.509 v3)
•Certificate
•Version
•Serial Number
•Algorithm ID
•Issuer
•Validity
•Not Before
•Not After
•Subject
•Subject Public Key Info
•Public Key Algorithm
•Subject Public Key
•Issuer Unique Identifier (optional)
•Subject Unique Identifier (optional)
•Extensions (optional)
•...
•Certificate Signature Algorithm
•Certificate Signature
Qui a émis le certificat ?
Quand expire-t-il ? Pour qui ?
TLS / SSL avec Simple TLS Handshake
OK ?
Vérification du certificat
• Contenu du certificat
Subject
Validity
Not Before
Not After
• Vérifier la validité de la signature contenue dans le champ "Certificate
Signature"
• En utilisant le Certificate Store et la chaîne de
certification
OK ?
Certificate Store
• Chaque navigateur contient une liste de certificats
• Par défaut, le navigateur a confiance dans les CAs qui ont émis ces certificats
• Pour vérifier un certificat qui n'est pas dans cette liste :
Chaîne de certification
Chaîne de certification
Chaîne de certification
Certificat contenu dans le CS,
contient 1
Navigateur a confiance en 1
Chaîne de certification
Contient signé avec
vérifié avec
Navigateur a confiance en 1
2
2 1
1
Chaîne de certification
Contient signé avec
vérifié avec
Navigateur a confiance en 1 2 3
2 2
Chaîne de certification
Contient signé avec
vérifié avec
Navigateur a confiance en 1 2 4
3 3
CSR
(Simplifiée)
Applicant
Registration Authority CSR
Certificate Signing Request
TLS / SSL : Un système parfait ?
• Mal compris des internautes
Certificat invalide : l'internaute accepte la connexion malgré l'avertissement
Certificat valide : illusion de sécurité
TLS / SSL : Fourgon blindé entre PC et serveur
Mais si le PC est une passoire…
• Quelques failles
Dans le protocole lui-même
Dans ses implémentations
Disfonctionnements : le cas de Comodo
• Mars 2011
• Comodo (Certificate Authority, USA)
• Un attaquant a obtenu 9 faux certificats
mail.google.com
www.google.com
login.yahoo.com
login.skype.com
Etc…
CSR
Disfonctionnements : le cas de Comodo
Attaquant
Registration Authority CSR
= mail.yahoo.com
Disfonctionnements : le cas de Comodo
• Origine de l'attaque :
IP iranienne (pas une preuve !)
• Conséquences (en théorie)
Attaquant crée une fausse page web
Dirige des internautes vers cette page
Considérée comme authentique par le navigateur
Vol de logins / mots de passe
d'utilisateurs, vol de données, etc…
Disfonctionnements : le cas de Comodo
• Pas d'impact connu
Attaque détectée rapidement
Faux certificats
révoqués rapidement
a priori pas utilisés
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
Gestion de certificats
• Organisation comme Smals :
Des centaines de serveurs
Plusieurs environnements
Plusieurs CAs externes
• Principal risque :
Certificat expiré
Certificat expiré
• Causes possibles
Oubli de demande de renouvellement
Le CA n'a pas envoyé le certificat à temps
Erreur (typo) dans la CSR
Erreur dans le
traitement de la CSR par le CA
Certificat expiré
• Conséquences
Arrêt du service
TLS / SSL : Internaute reçoit message d'erreur
Problème d'image
• Pistes pour diminuer ce risque
Méthodologie
Inventaire
Process
Outils
Méthodologie : inventaire
• Avoir un inventaire des certificats qui contient
Service responsable de l'installation
Champs du certificat
Date d'expiration
Méthodologie : inventaire
• Permet d'anticiper les expirations
• Forme ?
Tableur
CMDB (Configuration Management DataBase)
Outil dédié
Méthodologie : processus
• Processus par nature complexe
• Intervenants :
Le service qui demande un nouveau certificat
Le service qui commande le certificat auprès d'un CA externe
Le CA externe
Le service qui installe le certificat
Demande d'un nouveau certificat
OK CSR
Renouvellement d'un certificat
OK CSR
Partie 1 : Certificats Digitaux
1. Introduction aux certificats
• Cryptographie à clé publique
• TLS / SSL
• Certificats et PKI
2. Gestion de certificats
• Méthodologie
• Outils
Pourquoi un outil ?
• Découverte de certificats dans le réseau
In : Liste d'adresses IP, de ports
Out : Liste de certificats découverts
• Inventaire
Liste des certificats gérés, accès à leurs champs
• Monitoring
Vérifie à intervalles données la présence du certificat
Pourquoi un outil ?
• Notifications
Ex : Envoi d'email 6 semaines avant expiration
Envoi périodique d'un rapport pdf
• Automatisation de tâches :
Génération de CSR
Envoi de CSR au CA
Workflows
Installation des certificats
Outils : Aperçu du marché
• Trois outils commerciaux
Kousec Server Certificate Manager
Trustwave Certificate Lifecycle Manager
Venafi Encryption Director
• Tests de Kousec et Venafi
Kousec : Discovery
Kousec : Discovery
• Découverte
Kousec : Discovery
Venafi : Rapports périodiques
Venafi : Rapports périodiques
Outils : Avantages
• Évite les incidents
En avertissant à l'avance de l'expiration
• Facilite la communication entre les équipes
Gestion de workflows
• Gain de temps
Automatisation de tâches auparavant manuelles
Outils : Inconvénients
• Redondance avec autres outils
Workflow de l'outil / workflow ITIL
• Sécurité
Ouverture de flux
CSR générée avec l'outil = clé privée connue par l'outil
• Coût
Modèle de prix : x € / certificat
• Ne remplace pas la méthodologie
Conclusion Partie 1
• Certificats :
Process assez lourd
Très infréquent (durée de validité : 1,2,3 ans)
Doit être renouvelé à temps
• Éléments essentiels d'une bonne gestion :
Inventaire
Procédures précises et documentées
Communication interne
• Élément optionnel :
Outil dédié
Questions ?
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
@
a+b
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
Motivations
• Beaucoup d'activité dans le monde de la recherche en cryptographie
Nombreux articles sur des chiffrements
"alternatifs"
Concepts théoriques ou opportunité ?
• Demande à la section Recherches
Concevoir un système sécurisé d'accès à des données confidentielles
Exigences fortes
Un système de chiffrement classique ne convenait pas
@
a+b
Chiffrement à clé publique classique
• Canal peu sûr
• Problème de confidentialité
• Pas de secret partagé entre Alice et Bob
Chiffrement Alice vers Bob
classique
• Voir Partie 1 :
Lourdeur de la gestion de certificats
• Il existe des variantes qui permettent
D'effectuer des calculs sur des données chiffrées
De chiffrer des messages pour un groupe de
personnes
et encore beaucoup d'autres…
Identity-Based Encryption
Threshold Encryption Homomorphic
Encryption
@
a+b
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
@
Chiffrement classique avec PKI
Alice veut envoyer un message chiffré à Bob
CSR RA
OK ? CA
CSR
Une idée pour éviter les certificats
• Le certificat sert à attester du lien entre
1.Une entité (personne morale, personne physique, serveur, application…)
et
2.Une clé publique
• Idée : = l'identité de Bob !
Identity-Based Encryption (IBE)
• Idée principale
Utiliser n'importe quelle chaîne de caractères comme clé publique
Exemple :
Chaîne de caractères qui représente l'identité d'une personne
Adresse e-mail
Plus besoin de certificat
IBE : Bob s'inscrit dans le système
"Bob"
+ preuve
Master Keys
"Bob"
Master Key Bob
Bob
Private Key Generator
IBE : Alice envoie un message à Bob
Master Key
= "Bob"
= "Bob"
Bob
Bob
IBE : Un exemple (mail Voltage)
• Bob s'inscrit via une interface web
• Sa clé publique : "[email protected]"
• Reçoit un mail avec un lien
• Le PKG génère la clé privée de Bob
• Une page web s'ouvre (TLS/SSL) et contient
• Alice utilise le logiciel Voltage pour chiffrer son document pour Bob
• Bob utilise le logiciel Voltage pour déchiffrer le document avec sa clé
PKI vs. IBE
PKI
• Alice et Bob doivent faire confiance au CA
• Alice doit obtenir
• Bob doit être inscrit au préalable
IBE
• Alice et Bob doivent faire confiance au PKG
• Alice connaît implicitement
• Bob peut s'inscrire après l'envoi du message
PKI vs. IBE
PKI
• Bob peut générer
• Le CA ne connaît pas
• Le CA ne peut pas lire les messages chiffrés par Alice
• Bob doit demander au CA
IBE
• Le PKG connaît
• Le PKG peut lire les messages chiffrés par Alice
• Le PKG doit transmettre de manière
sécurisée à Bob
IBE : Quelle maturité ?
• Recherche :
Idée (théorique) : 1984 (Shamir)
Solution efficace : 2001 (Boneh-Franklin)
Nombreuses publications
• Produits :
Voltage Security
Trend Micro Encryption
IBE : Quelle maturité ?
• Standards :
IEEE : Projet P1363 "Standard Specifications For Public-Key Cryptography"
IETF : 3 RFCs
RFC 5091 (2007) : aspects mathématiques
RFC 5408 (2009) : algorithmes, formats de données
RFC 5409 (2009) : standards e-mail
• Librairies
C : PBC (Pairing-Based Crypto)
Java : jPBC
IBE : Opinion
• Le problème des certificats n'est pas réglé mais déplacé
• Gestion simplifiée pour Alice
• Trop risqué dans beaucoup de cas
Besoin d'une confiance absolue dans le PKG
• Applications prometteuses :
1. Solution IBE pour email
2. Composant d'architectures de sécurité
Solution IBE pour email
• Exemple :
PKG hébergé chez Smals
Chaque membre du personnel de Smals peut demander une clé privée
Une personne externe peut utiliser le système pour chiffrer des mails pour un membre du personnel
Simplement besoin d'un logiciel
Protège contre les attaques externes à Smals
de sécurité
• Certaines architectures utilisent un séquestre de clés (key escrow) :
Base de données qui contient des clés
Exemple : clés symétriques de déchiffrement
User Key
Alice 2b7e151628aed2a6abf7158809cf4f3c Bob 6bc1bee22e409f96e93d7e117393172a Charlie ae2d8a571e03ac9c9eb76fac45af8e51
Key Escrow vs. IBE
Key Escrow
• L'admin du Key Escrow peut déchiffrer tous les messages
• Lourde gestion (une clé par utilisateur)
IBE
• L'admin du PKG peut déchiffrer tous les messages
• Simple gestion (une seule master key)
Master Key
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
a+b
Homomorphic Encryption
• Faire des maths avec des données chiffrées ?
1200
783
1983
Homomorphic Encryption
• Connu depuis les années 70/80
• On peut faire une opération sur les données chiffrées
• De nombreux algorithmes existent
a + b = a + b
Fully Homomorphic Encryption
• On peut faire deux opérations
• Publication : 2009, Craig Gentry (IBM)
• Première implémentation : 2011
a + b = a + b
a × b = a × b
Applications
• Permet de déléguer à un tiers des opérations sur des données confidentielles
• Applications :
Calcul dans le cloud
Outsourcer des opérations
Comptabilité
Applications
Employé Salaire Employé 1 1400€
Employé 2 1500€
Employé 3 1900€
1900 1500 1400
1600 1900
1500 1400
Calcul de la moyenne
Applications
Employé Salaire Employé 1 1400€
Employé 2 1500€
Employé 3 1900€
1600
Salaire Moyen 1600€
1600
1600
Opinion
• Concept prometteur
• Pas encore de maturité
• IBM communique beaucoup
• Beaucoup de contraintes techniques
Algorithmes complexes
Taille des paramètres
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
Motivation
• Demande à la section Recherches
• Concevoir un "coffre-fort"
• Business Case :
Dossiers médicaux de patients
Accès par acteurs de soins de santé
Fortes exigences de sécurité
Motivation
• Exigences de sécurité :
Contrôle d'accès à forte granularité
Chiffrement non adressé (pas de destinataire connu)
Aucune donnée qui transite en clair
Répartir la confiance entre plusieurs TTPs (Trusted Third Parties)
• Chiffrement PKI classique ?
Chiffrement adressé
Un seul TTP
Ne convient pas
Motivation
• Solution : Threshold Encryption
Inventé par Yvo Desmedt et Yair Frankel en 1989
• Travail de la section Recherches
Proposer un système pour le coffre-fort basé sur Threshold Encryption
Système générique (pas uniquement données médicales)
Répond aux exigences de sécurité
Permet le stockage dans le cloud
Étude de faisabilité et de performances
Threshold Encryption
• Alice envoie un document à 5 personnes
Seuil = 3
Threshold Encryption
• 1 destinataire seul ne peut pas déchiffrer
Seuil = 3
Threshold Encryption
• 1 destinataire seul ne peut pas déchiffrer
Seuil = 3
Threshold Encryption
• 2 destinataires ensemble ne peuvent pas déchiffrer
Seuil = 3
Threshold Encryption
• 2 destinataires ensemble ne peuvent pas déchiffrer
Seuil = 3
Threshold Encryption
• 3 destinataires ensemble peuvent déchiffrer
Seuil = 3
Threshold Encryption
• 3 destinataires ensemble peuvent déchiffrer
Seuil = 3
Threshold Encryption : clés
• Une seule clé publique
• Une clé privée par utilisateur
1 1
2 2
3 3
4 4
5 5
Threshold Encryption
• Chiffrement :
• Déchiffrement partiel :
1 1
1
Threshold Encryption
• Combinaison de déchiffrements partiels :
1
3 2
Threshold Encryption
• Combinaison de déchiffrements partiels :
1
5 4
Pas besoin de clé…
Coffre-fort
• Système sécurisé proposé par Smals qui permet
Écriture
Lecture
Stockage
dans une base de données
• Deux Semi-Trusted Third Parties (STTP)
• Réduit l'impact d'un TTP compromis
• Utilise Threshold Encryption avec un seuil de 2
Coffre-fort : écriture
Coffre-fort : lecture (vue globale)
1
2
STTP 1
STTP 2
Coffre-fort : lecture (phase 1)
?
Coffre-fort : lecture (phase 2)
1
1
2
(tunnels chiffrés)
1
2
=
=
Coffre-fort : lecture (phase 3)
Sécurité du système (1)
1
2
Données chiffrées !
Sécurité du système (2)
1
2
Aucun accès aux données (même
chiffrées) !
Sécurité du système (3)
1
2
Impossible de déchiffrer les
données !
Sécurité du système (4)
• Points d'attention
User and Access Management
Protection des clés des serveurs de déchiffrement partiel
• On peut aussi utiliser plus de deux serveurs
Meilleure sécurité
Meilleure disponibilité
Étude de faisabilité
• 5.50 Go de données
50000 dossiers
100 champs par dossier en moyenne
• Chaque champ chiffré individuellement
• STTP :
• Storage Engine : notre labo
4 serveurs (Core i7)
1 loadbalancer
Performances : Ecriture
Labo : Storage Engine 4 serveurs (Core i7)
1 loadbalancer
= 3.4 s
Performances : Lecture
1
2
= 250 dossiers / s
12 serveurs
2x Intel X5570 quad- core Nehalem CPU's
= 0.3 s
12 serveurs
2x Intel X5570 quad- core Nehalem CPU's
Conclusion
• Threshold encryption : inventé par Yvo Desmedt et Yair Frankel en 1989
• Solution proposée :
Utilise threshold encryption
Générique
Très différente des approches classiques pour database encryption
Répond aux exigences de sécurité
Permet le stockage dans le cloud
Innovante
• Mars 2011 : demande de brevet européen par Smals
clé publique classique
• Motivations
• Identity-Based Encryption
• Homomorphic Encryption
• Threshold Encryption
• Conclusion
Conclusion Partie 2
• Il existe des alternatives au chiffrement classique
• Avantages :
Souplesse
Permettent de nouvelles applications
• Inconvénients :
Moins de standards : plus d'effort de développement
Moins de travail de validation : moins de garanties de sécurité
Questions ?
N'oubliez pas de remplir le formulaire d'évaluation !