Académique Documents
Professionnel Documents
Culture Documents
Support du Cours :
Initiation aux 10 domaines fondamentaux de l’expertise en sécurité
des systèmes d’Information, pour entamer la préparation aux
certifications Internationales CISSP et SSCP
Chapitre 3 :
Crytographie
« Cryptography »
© ANSI, 2006, Toute reproduction et utilisations à but non commercial est autorisée et interdite pour celles à but commercial, sauf autorisation écrite de l’Agence Nationale de Sécurité Informatique
© ANSI, 2006, Toute reproduction et utilisations à but non commercial est autorisée et interdite pour celles à but commercial, sauf
autorisation écrite de l’Agence Nationale de Sécurité Informatique
Chapitre 3
Cryptographie
Formateurs :
Pr Nabil SAHLI,
Mr Haythem EL MIR
Le but traditionnel de la cryptographie est d’élaborer des méthodes permettant
d’échanger des données de manière sécurisée . La cryptographie moderne s’attaque
en fait plus généralement aux problèmes de sécurité des communications.
Le but est d’offrir un certain nombre de services de sécurité de base : Confidentialité,
Intégrité et Authentification des données transmises, ainsi que l’authentification des
tiers et la Non-répudiation..
Pour cela, on utilise des :
4
I- Mécanisme de base pour
la Confidentialité : Le
Chiffrement
Confidentialité et chiffrement
La confidentialité est historiquement le premier problème posé en sécurité
Solution = Chiffrement des données.
8
Le Chiffrement à clé symétrique
(principe)
* Rapide :
Æ adapté pour les chiffrement de gros volumes de données
Inconvénients
- Gestion des clés : Une clé par paire d’interlocuteur
Æ Le problème de la transmission dangereuse des clés
Les algorithmes Asymétriques (Chiffrement à clé publique) : Principe
Elle se base sur deux clés (« interliées à la géneration») :
Æ une clé publique, permettant le chiffrement
Æ une clé privée, permettant le déchiffrement
–La clé publique est mise à la disposition de quiconque désire chiffrer un message. Ce dernier ne pourra être
déchiffré qu'avec la clé privé, qui doit être confidentielle.
–Connaître la clef publique ne permet pas de retrouver la clef privée correspondante.
Publique
P
Publiée sans risque
Message Clair1 (Répertoires PUBLICS) Secrète
N I N
QO
Message Clair1
P
ù
L à + Authentification
>z K
Le chiffrement est ainsi effectué par la clé publique (diffusée sans risque) et seul le détenteur de la clef
privée peut déchiffrer
Algorithmes Asymétriques
Avantages :
Inconvénients
Fondé sur la difficulté de factoriser des grands nombres. La multiplication de deux grands
nombres premiers est considérée comme une fonction à sens unique.
• Longueur de clés variables 1024, 2048 bits, .. 13
Algorithmes Hybrides et notion
de Clefs de session
Les algorithmes asymétriques permettent de s'affranchir de problèmes liés à
l'échange de clé via un canal sécurisé. Toutefois, ces derniers restent
beaucoup moins efficaces que les algorithmes symétriques. La notion de clé
de session est un compromis entre le chiffrement symétrique et asymétrique
permettant de combiner les deux techniques.
14
Algos ASYMETRIQUES
Algos Symétriques : •PLUS PRATIQUES:
PLUSRapides Conviennent à des Env MULTI-UT
(~1000xAsym) « Anonymes » (Publication des clés)
Utilisation d’ALGOS
HYBRIDES(SYM+ASYM)
S
Clé de session(aléatoire)
I
S
Message Clair N
*JQ Message Clair
T
PS E
S R
N
S
E
T
S
P
15
Transport de clefs de session
déchiffrement avec
la clé privée du
Chiffrement avec récepteur Extraction
la clé publique du de la clé de
récepteur session
S S
Clé de session S
Clé générée
aléatoirement
Envoi de
la clé de
session
16
Sécurité des algorithmes, notions
La sécurité des algorithmes repose sur :
20
II- Mécanismes d’ Intégrité
21
Intégrité : Fonctions de hachage
Intégrité des données : detecter si des données ont été
modifiés, lors de leur transit, depuis le producteur
Æ Basée sur l’utilisation des fonctions de hachage.
Message
SHA est basé sur MD4 et est réputé plus sûr que MD5. 24
III- Authenticité des données
25
Mécanisme d’Authenticité :
Signature électronique
S
Clé Privée
Chiffrement ASYM
Algos ASYM : DSA, DH, RSA
CA
P
MESSAGE + SIGNATURE
CERTIFICATs
Chiffrement Hybride
27
Signature électronique
Génération
1- La fonction de hachage est utilisée pour créer une empreinte unique.
2- La clef privée est utilisée pour le chiffrement de cette empreinte (seul son
détenteur peut chiffrer, mais tout le monde peut déchiffrer: donc en fait
vérifier la "signature"), grâce à la cryptographie asymétrique.
Texte
en clair
1000100
Empreinte Signature
Intérêt :
- Eviter la répudiation, car l’absence de preuve de date peut provoquer
des conflits (j’avais perdu ma clé privée , ….)
- Usage pour l’archivage électronique
31
4- SIGNATURE DIGITALE et Notaires Electroniques
N
O S
N SCELLE
MESSAGE FONCTION DE
HASHAGE SIGNATURE
R
E Chiffrement
P
U HORDOTAGE
RECEPTEUR
NOTAIRE
32
SET
Etablissement de la preuve :
•Peut être établie par une convention entre les parties
•Peut être établie par un tiers spécialisé dans ce service (majorité des cas )
Æ Lors de la signature du document, le service ajoute une contremarque de
Temps
33
Autorité de Gestion de Preuves
Service
d’enregistrement
des déposants
Autorité de
gestion des
preuves Opérateur
Opérateur d’archive
d’horodatage
34
Processus d'horodatage
Le message
Utilisateur A
aurait pu être Autorité d’horodatage
signé selon la
Envoie le procédure de
message l’émission
vers B
Produit un
condensât et
Prestataire le signe
de services
Archivage des
de confiance
condensâts
Horodatage
simple
+
Condensât
signé et
35
Utilisateur B horodaté
V- PROTOCOLES
CRYPTOGRAPHIQUES
36
PROTOCOLES CRYPTOGRAPHIQUES
38
Diffie-Hellman : principe
Utilisateur 1: Utilisateur 2 :
Mongi
Selima
Mongi choisit un grand Selima choisit un grand
nombre aléatoire a nombre aléatoire b
(valeur privée) (valeur privée)
39
(secret partagé) (secret partagé)
Diffie-Hellman : principe
Exemple de déroulement de l’algorithme :
1. Mongi et Selima se mettent d’accord sur un grand entier n
tel que (n-1)/2 soit premier et sur un entier g primitif par rapport à n. Ces deux
entiers sont publics.
2. Selima choisit de manière aléatoire un grand nombre entier a, qu’elle garde
secret,
et calcule sa valeur publique, A = ga mod n.
Mongi fait de même et génère b et B = gb mod n.
3. Selima envoie A à Mongi ; Mongi envoie B à Mongia.
4. Selima calcule KAB = Ba mod n ; Mongi calcule KBA = Ab mod n.
KAB = KBA = gab mod n est le secret partagé par Selima et
Mongi.
40
Rien n’est démuni de Failles et d’évolutions
conséquentes !
Diffie-Hellman
Faille Sensible à l'attaque par simularque
d’interposition (Man-In-the Middle attack) :
L'attaquant envoie sa valeur publique à la
place de Mongia et de Mongi et partage ainsi
un secret avec chaque tiers.
Solution: authentifier les valeurs publiques, le
protocole résultant s'appelle Diffie-Hellman
authentifié.
41
VI-La Cryptographie dans
les applications
APIs Crytographiques
APIs Cryptographies
Les API (Interface du Programme de l'Application) Cryptographique
(CryptoAPI) permettent d’intégrer des fonctions
cryptographiques dans n’importe quelle application (même
vétuste), sans être obligés de gérer les mécanismes
cryptographiques :
Elle offrent
– Fonctions de la Génération de la clef : Ces fonctions permettent
aux applications de produire et personnaliser des clefs
cryptographiques. Le support plein est inclus dans les modes du
chaînage changeants, les vecteurs de l'initialisation, et les autres
traits de l'encryptage.
– Fonctions d'Échange de clés .
– Fonctions de chiffrement de Données (Le support est aussi inclus
pour crypter et hacher simultanément ces données.
– Fonctions de Signature électronique de données (+ d’autres
fonctions, selon la crypto API)
43
Exemple API Crytographiques
open-source
• GSS-API
• GPGME
• Libgcrypt
• Libcrypto
• LibTomCrypt
• Cryptlib
• Libgcrypt
• Crypto++
44
C-API Algorithmes utilises
GSS API Hashes : MD5
Clé Publique: DH, RSA
Clé privé: AES, DES, Blowfish, CAST5, Twofish, Arcfour
GPGME Hashes : MD2,MD5
libgcrypt Clé publique : SHA , RSA
Clé privé: Blowfish, CAST5, Twofish, Arcfour
Libcrypto Clé Publique : RSA, DH, DSA
Clé privé: AES, DES, Blowfish
LibTomCrypt Hashes : MD5, SHA
Clé privé : AES, blowfish, cast-128, cast-256, des, 3des
Clé publique : dh, dsa, elgmal, Eliptic curve, luc, lucelg, lucdif, rabin, rabin-williams
Cryptlib Hashes: md2, md4, md5, mdc2, sha
Clé Publique : RSA, DH, DSA,
Clé privé: AES, DES, 3DES (EDE), Blowfish, CAST-128, IDEA, Safer-SK, RC2, RC4, RC5
Libgcrypt Hashes: MD5, RIPE-MD160, SHA-1, TIGER-192, MACs
Clé privé: AES, DES, Blowfish, CAST5, Twofish, Arcfour
Clé public : RSA, El Gamal, DSA
Crypto++ Hashes: crc md2 md5 haval ripe-md160 Tiger sha sha-2 panama
Clé privé : AES, blowfish, cast-128, cast-256, des, 3des, diamond2, gost, idea, lubyrack, Mars,
panama, arc4, rc5,rc6, safer, sapphire, seal, serpent, shark, square, tea, twofish, wake
Clé publique : dh, dsa, elgmal, Eliptic curve, luc, lucelg, lucdif, rabin, rabin-williams,
blumgoldwassr, rsa
Also support for PKCS1, OAEP, PSSR padding
45
Les Certificats
46
Rôle et Principe du certificat
PROBLEME DES ALGORITHMES ASYMETRIQUES :
QUI PROUVE QU’UNE CLE PUBLIQUE EST BIEN CELLE DE LA PERSONNE
QUI LE PRETEND
Quelqu’un pourrait publier une fausse clé publique, prétendant qu’il s’agit de la votre
Et ainsi :
Î Si tes interlocuteurs utilisaient cette clé
Alors L’Intrus pourra déchiffrer tous les messages qui te seront evoyés
et pourra signer des documents en ton nom
Autorité
d’enregistrement Répertoire
public
Autorité de
Émission de certificat certification
Récupération
du certificat racine
Client désirant Récupération
du certificat
Client désirant
obtenir un certificat 50
client vérifier l’identité
Les certificats X.509
51
Les certificats X.509
• Version : Indique à quelle version de X.509 correspond ce certificat.
• Serial number : Numéro de série du certificat (propre à chaque autorité de
certification).
• Signature Algorithm ID : Identifiant du type de signature utilisée.
• Issuer Name : Distinguished Name (DN) de l'autorité de certification qui a
émis ce certificat.
• Validity period : Période de validité.
• Subject Name : Distinguished Name (DN) du détenteur de la clef publique.
• Subject public key info : Infos sur la clef publique de ce certificat.
• Issuer Unique ID / Subject Unique ID : Extensions optionnelles introduites
avec la version 2 de X.509.
• Extensions : Extensions génériques optionnelles, introduites avec la version
3 de X.509.
• Signature : Signature numérique de la CA sur l'ensemble des champs
précédents.
52
Exemple d’usage des Certificats : Protocole SSL (Normalisé par
l’IETF sous la description TLS )
+ authentification de l’Utilisateur :
Le serveur peut transmettre au client un challenge ( chiffré avec la clé de
session ) et une requête d’authentification (du client). Le client répond par
l’envoi du challenge chiffré avec sa propre clé secrète. Le serveur peut
vérifier (en contactant une Autorité de Certification sur Internet) et la
possession par le client de la clé secrète
-Authentification de serveurs (Web, ..)
-Version largement diffusée : V2
- Nouvelle version, plus fiable : V3 ( possibilité de négocier une authentification en
cours d’échange )
53
VIII- Gestion des Certificats au sein d’une
entreprise :
Infrastructure de gestion des données
crytographiques ( clefs publiques):
54
Infrastructure à clefs publiques
PKI
- Nécessité de pouvoir gérer des listes importantes de clefs
publiques, pour des entités réparties dans un réseau
(Intranet/Extranet).
- Solution : Instaurer des infrastructures à clefs publiques
(Public Key Infrastructure, PKI): systèmes de gestion des
clefs publiques prévus pour une utilisation à grande
échelle.
55
• PKI : infrastructure =ensemble d'éléments,
protocoles et services
• Rôle:
– Enregistrement et émission des clefs publiques
(Certificats)
– Stockage et distribution,
– Révocation et vérification de statut des clés
– Sauvegardes et récupération.
56
Composants d'une PKI
• Autorités d'enregistrement : Registration
Authority – RA (et Local Registration
Authorities – LRAs)
• Autorité de certification (Certificate
Authority - CA)
• Émetteur de certificats
• Émetteur de listes de révocations
• Annuaire : publication des clés publiques
• Service de validation en ligne des clés
publiques.
57
Processus de dépôt de Certificat
Répertoire Public
==
58
Déploiement d’une PKI
Côté serveur(s)
• Génération du certificat serveur
• Configuration de la clé secréte (répertoires protégés, ..)
Certificats clients
• Génération du certificat serveur
• Installation du certificat de la CA
• Installation du certificat du client
On peut choisir d'utiliser la même autorité de certification (crée localement) pour le serveur et les clients
- OU d'avoir recours à deux autorités différentes.
59
CA National : ANCE
60
L'Agence Nationale de Certification
Électronique (ANCE)
• créée par la loi n°2000-83 du 9 Août 2000
Missions de l'ANCE
• L'octroi de l'autorisation d'exercice de l'activité de Fournisseur de Services
de Certification Electronique (FSCE) sur tout le territoire de la République
Tunisienne.
• Le contrôle du respect par le FSCE des dispositions de la loi et de ses
textes d'application.
• La définition des caractéristiques du dispositif de création et de vérification
de la signature.
• La conclusion des conventions de reconnaissance mutuelle avec les parties
étrangères.
• La génération, la révocation et la conservation des certificats électroniques
relatifs aux agents publics habilités à effectuer les échanges électroniques.
• L'homologation des moyens de cryptage utilisés pour crypter les échanges à
travers les réseaux des télécommunications.
• La participation aux activités de recherche, de formation et d'étude 61
afférentes aux échanges et au commerce électroniques
Exemple d’usage de certificat
pour un serveur Web
« par l’image »
(pour vous mettre en appétit pour les TPs à
base d’outils open-source seront réalisés ce
soir, à partir de 21 h, sur le port El Kantaoui)
62
Objet du TP sur la PKI
Contrôle d’accès à un serveur web par le biais de certificats,
la solution et ses composants: serveur web à accès
sécurisé via SSLv3.
• SSL :
– Authentification du serveur via un certificat
– Authentification des clients via un certificat
– Chiffrement des échanges
• Composants :
– Apache (www.apache.org) : serveur web
– mod_ssl (www.modssl.org) :
• module SSL pour Apache
• Bonne documentation sur les certificats et SSL
– OpenSSL (www.openssl.org) :
• bibliothèque de fonctions cryptographiques utilisée par mod_ssl
• commandes en ligne permettant de mettre en œuvre une autorité de 63
certification.
Installation du certificat de la CA (dans
Internet Explorer, pour windows)
64
Création du Certificat d‘un
serveur Web
1- Créer la paire de clés du serveur web
(privée/publique)
66
Configuration du serveur
Après l’application des nouveaux paramètres
le serveur web requiert l’authentification des
clients qui se connectent
67
Installation du certificat du client
dans le Browser (IE)
68
Vérification de l’identité (certificat)
du client dans IE
69
Révocation d'un certificat
Résultat de la révocation d’un certificat ce
dernier n’est plus valide
70
Livres
- RSA Laboratories, Frequently Asked Questions About Today’s
Cryptography - Version 4.1, 2000:
http://www.rsasecurity.com/rsalabs/faq/
© ANSI, 2006, Toute reproduction et utilisations à but non commercial est autorisée et interdite pour celles à but commercial, sauf
autorisation écrite de l’Agence Nationale de Sécurité Informatique 74