Sécurité des Systèmes et Réseaux
Introduction à la
Sécurité
Informatique
Version 1
YACINE CHALLAL
07/02/2018
Table des
matières
I - Introduction à la sécurité des échanges 5
A. Réseaux informatiques : Risques et enjeux...............................................................5
B. Modèle d'attaque.................................................................................................... 12
C. Définitions des Services de Sécurité.......................................................................14
II - Introduction à la cryptographie 15
A. La cryptographie..................................................................................................... 15
B. La confidentialité.................................................................................................... 16
1. Confidentialité et chiffrement...........................................................................................................16
2. Les modes d'opération du chiffrement symétrique..........................................................................17
3
Introduction à la sécurité des échanges
C. Intégrité de données..............................................................................................19
D. Authentification de l'origine de données................................................................20
E. Non-répudiation de l'origine....................................................................................21
F. Historiques.............................................................................................................. 22
G. La libraire OpenSSL................................................................................................23
III - Testez vos connaissances 25
A. Exercice : Chiffrement symétrique..........................................................................25
B. Exercice : RSA......................................................................................................... 25
C. Exercice : Devinette ?.............................................................................................25
D. Exercice : Non-répudiation de l'origine...................................................................26
IV - Série d'exercices I: Services de sécurité et mécanismes
cryptographiques 27
A. Chiffrement Symétrique et Asymétrique.................................................................27
B. Perte d'une clé privée............................................................................................. 28
C. Payement par chèques numérisés P2017CREX3.....................................................28
D. Conception d'un protocole d'échange sécurisé......................................................29
E. Implémentation d'un protocole d'échange sécurisé avec OpenSSL........................29
Bibliographie 31
4
Introduction à la
I-
I
sécurité des
échanges
Réseaux informatiques : Risques et enjeux 5
Modèle d'attaque 12
Définitions des Services de Sécurité 14
Dans cette partie on présentera les différents défis de la sécurité informatique, les
différents types d'attaques et leurs motivations, les services de sécurité, et des
statistiques sur les pertes engendrées par des attaques sur les systèmes
d'information d'entreprise.
A. Réseaux informatiques : Risques et enjeux
Confiance et Internet
Dans la vie courante la plupart des transactions reposent sur une « confiance »
acquise par une relation en face à face ou un contact physique . Dans le
cybermonde cette relation de proximité est rompue. Comment établir une relation
de confiance indispensable à la réalisation de transactions à distance entre
personnes qui ne se connaissent pas ? Ce cours a pour but de répondre à cette
question.
Fondamental : Part de responsabilité des usagers
Thucydite dit : « Ce ne sont pas les murs qui protègent la citadelle, mais l'esprit de
ses habitants ». Ceci s'applique également aux systèmes d'information où les
statistiques indiquent que 40% des attaques sont causées par les usagers du SI eux
mêmes.
Rappel : Environnement de l'entreprise
Une vingtaine d'années auparavant, les systèmes d'information d'entreprises
étaient plutôt centralisés, basés sur des échange papiers, sans accès distants.
Aujourd'hui les SI d'entreprises sont plutôt distribués sur plusieurs sites: on retrouve
notamment un siège principales et des succursales, des filiales, des télé-
travailleurs, des commerciaux, ... L'accès distants devient alors indispensable pour
supporter cette décentralisation et la mondialisation des échanges. Ceci devient
plus important avec les nouvelles technologies sans fils (Haut débit sur GSM, UMTS,
WiMAX, etc.) et la forte pénétration d'Internet dans nos sociétés ;dans quelques
5
Introduction à la sécurité des échanges
années le nombre d'internautes atteindra les 3.000.000.000 de personnes.
Attention : Risques liés aux réseaux
Malgré les bienfaits des réseaux informatiques, ceux-ci présentent d'énormes
risques. Parmi ceux-là on peut citer :
Interception de messages
- Prise de connaissance des mots de passe
- Vol d'information
- Perte d'intégrité du système et du réseau
Intrusion des systèmes
- Vol ou compromission des informations
- Destruction des informations
- Virus
- Détournement de biens
Perte d'accessibilité au système ou au réseau
Faux clients, marchands escrocs
Malgré la panoplie de technologies utilisées pour sécuriser les SI des entreprises, les
attaques sur les SI existent toujours comme illustré dans la figure suivante tirée
d'une enquête du FBI/CSI en 2006.
Image 1 Accès frauduleux aux SI
6
Introduction à la sécurité des échanges
La figure suivante illustre les différents types d'attaques notées en 2006 :
Image 2 Types d'attaques sur les SI en 2006
Motivations d'un attaquant
Un attaquant n'est pas forcément un "hacker" chevronné. Ca peut être n'importe
quelle personne avec des motivations aussi banales que les suivantes :
Le gain financier
- Récupération de num de cartes bancaires, ...
Vengeance
- Site www.aljazeera.net lors de la couverture de la guerre d'irak
Besoin de reconnaissance
- Attaque contre le site du cerist avec un message sur les restrictions
d'accès à Internet à Cuba.
Curiosité
- Attaques d'étudiants du MIT sur le premier ordinateur IBM 704 au MIT en
1959.
Recherche d'émotions fortes
Ignorance
- Envoie de mots de passes par email, ...
7
Introduction à la sécurité des échanges
Pertes phénoménales !!!
Les pertes financières dues aux attaques informatiques sont phénoménales. D'après
une enquête réalisée par le FBI/CSI :
74% des pertes financières des entreprise sujets de l'enquête sont duent aux :
attaques de virus (plus de 15 millions de dollars de perte)
accès non autorisés aux systèmes d'information (plus de 10 millions de
dollars de perte)
vols d'équipement mobile (plus de 6 millions de dollars)
vols de la propriété intellectuelle (plus de 6 millions de dollars)
52% des organisations sondées ont déclaré avoir été attaqué les 12 derniers mois
(2006) :
24% d'entre elles ont reporté plus de 6 attaques
48% ont reporté 1 à 5 attaques
La figure suivante illustre la répartition des pertes sur leurs causes :
Image 3 Pertes financères
cette figure illustre le nombre d'attaques reportées dans le FBI/IC3 report de 2015
concernant les crimes via Internet aux USA
8
Introduction à la sécurité des échanges
Source IC3 2015 report
Cette figure illustre les pertes enregistrées par catégorie d'attaque
Source IC3 2015 report
Complément : Rehaussement des budgets réservés à la sécurité
des SI
La conséquence immédiate de ces pertes qui sont majoritairement liées à la
sécurité des SI, est l'augmentation importante des budgets alloués à sécuriser les SI
et à former le personnel sur la sécurisation des SI et des échanges d'information.
Selon la même enquête :
34% des organisations allouent pas moins de 5% du budget informatique à
la sécurité informatique
- En 2006, les compagnies de revenues inférieurs à 10 millions de dollars
ont dépensé en moyenne 1349 dollars par employé pour la sécurité
informatique- un rehaussement de 210% par rapport à l'année 2005
plus de 80% des institutions conduisent un audit de sécurité informatique
la majorité des institutions jugent la formation en sécurité informatique
comme importante et stratégique
- 61% de ces organisations refusent de sous-traiter leurs fonctions de
sécurité informatique
9
Introduction à la sécurité des échanges
La figure suivante illustre le pourcentage du budget IT alloué à la sécurité :
Image 4 Part de la sécurité dans le budget IT
Remarque : Rapport du FBI/CSI
Le FBI/CSI (Computer Security Institute) (récemment devenu IC3 pour Internet
Crime Complaint Center) publie chaque année un rapport sur la sécurité
informatique. Voici le rapport du FBI/CSI pour 2007 et le rapport IC3 de 2015:
rapport-fbi-csi.pdf
Document 1 Rapport 2007 du FBI/CSI
IC3_2015.pdf
Document 2 Rapport de IC3 de 2015
Exemple : Menaces Informatiques et Pratiques de Sécurité en
France
Selon un le rapport 2008 du CLUSIF (Club de la Sécurité de l'Information Français) :
Plus de 70% des entreprises françaises ont une forte dépendance à
l'informatique
Le budget moyen alloué pour la sécurité du SI dépasse 114K€ dans 21% des
cas.
28% des entreprises du secteur des services, banques et assurances ont
augmenté leur budget sécurité du SI de plus de 10% en 2008
53% des Responsables de Sécurité du SI (RSSI) dénoncent le manque de
personnel qualifié comme frein majeur à la conduite de leur mission.
Plus de 30% des entreprises n'ont pas une Politique de Sécurité de
10
Introduction à la sécurité des échanges
l‘Information (PSI), et 45% de celles qui en ont ne respectent pas une norme
de sécurité.
Le rattachement de la RSSI à la DG passe de 39% en 2006 à 45% des cas en
2008.
Selon le même rapport du CLUSIF, beaucoup de technologies de contrôle d'accès
sont méconnues et/ou non utilisées en entreprises françaises comme illustré dans la
figure suivante :
Image 5 Technologies de contrôle d'accès non utilisées en France
Le rapport note aussi que 56% des RSSI ont noté au moins un incident de sécurité
11
Introduction à la sécurité des échanges
Image 6 Incidents de sécurité informatique en France
Le rapport du CLUSIF 2008 est très riche et mérite une lecture. Le voici :
clusif2008.pdf
Document 3 Rapport 2008 du CLUSIF
B. Modèle d'attaque
Communication correcte
Dans cette section, on reprend le modèle d'attaque de Valet [Valet 2011]
[wainwright2000] qui, partant d'une communication correcte, illustre les différentes
possibilités d'attaque. La figure suivante illustre une communication correcte entre
une source et et une destination :
Une attaque survient quand un intrus entrave cette communication correcte en
intervenant sur un des composants de cette communication (source, canal,
destination).
Usurpation
Une usurpation (cf. figure suivante) a lieu quand l'intrus prend l'identité de la source
12
Introduction à la sécurité des échanges
légitime, c'est le cas par exemple d'IP Spoofing.
Ecoute et interception
L'interception (cf. figure suivante) a lieu quand un intrus est capable d'écouter un
trafic qui ne lui est pas destiné.
Modification
Une modification (cf. figure suivante) est une atteinte à l'intégrité du trafic et a lieu
quand l'intrus apporte des modifications au contenu du trafic envoyé par la source.
Déni de Service (DoS)
Le déni de service a lieu quand l'intrus empêche la source d'atteindre la destination
qu'il sature avec un trafic malicieux.
13
Introduction à la sécurité des échanges
C. Définitions des Services de Sécurité
Voici quelques définitions informelles à retenir concernant les services de sécurité
les plus importants
Défi nition : Authentification
Permet de vérifier l'identité revendiquée par une entité, ou l'origine d'un message,
ou d'une donnée .
Défi nition : Confidentialité
Permet de se protéger contre la consultation abusive des données par des entités
tierces indésirables
Défi nition : Contrôle d'intégrité
Permet de vérifier qu'une données n'a pas été modifiée par une entité tierce
(accidentellement ou intentionnellement)
Défi nition : Contrôle d'accès
Permet de vérifier que toute entité n'accède qu'aux services et informations pour
lesquelles elle est autorisée
Défi nition : Non répudiation
Permet de se protéger contre la contestation d'envoi et de réception de données
lors d'une communication
14
Introduction à la
II -
II
cryptographie
La cryptographie 15
La confidentialité 16
Intégrité de données 19
Authentification de l'origine de données 20
Non-répudiation de l'origine 21
Historiques 22
La libraire OpenSSL 23
Cette partie du cours introduira les mécanismes de base de la cryptographie
moderne qui permettent de réaliser quatre services de sécurité fondamentaux :
1. La confidentialité
2. L'intégrité des données
3. L'authentification de l'origine de données
4. La non-répudiation de l'origine
Pour chacun de ces services nous rappellerons la définition puis nous introduirons le
mécanisme cryptographique permettant de le réaliser.
A. La cryptographie
Défi nition : La cryptographie
Le mot « Cryptographie » est composé des mots grecques :
CRYPTO = caché
GRAPHY = écrire
C'est donc l'art de l'écriture secrète.
C'est une science permettant de préserver la confidentialité des échanges.
Défi nition : Cryptanalyse
La cryptanalyse est l'art de décrypter des messages chiffrés.
Objectifs
Parmi les objectifs de la cryptographie :
Garantir la confidentialité
Vérifier l'intégrité des données
15
Introduction à la cryptographie
Gérer l'authentification
Assurer la non-répudiation
B. La confidentialité
1. Confidentialité et chiffrement
Défi nition : Confidentialité
La confidentialité est la propriété qui assure que l'information est rendu inintelligible
aux individus, entités, et processus non autorisés.
Défi nition : Chiffrement / déchiffrement
Le chiffrement est une transformation cryptographique qui transforme un message
clair en un message inintelligible (dit message chiffré), afin de cacher la
signification du message original aux tierces entités non autorisées à l'utiliser ou le
lire. Le déchiffrement est l'opération qui permet de restaurer le message original à
partir du message chiffré.
Clé de chiffrement
Dans la cryptographie moderne, l'habilité de maintenir un message chiffré secret,
repose non pas sur l'algorithme de chiffrement (qui est largement connu), mais sur
une information secrète dite CLE qui doit être utilisée avec l'algorithme pour
produire le message chiffré.
Selon que la clé utilisée pour le chiffrement et le déchiffrement est la même ou pas,
on parle de système cryptographique symétrique ou asymétrique.
Fondamental : Chiffrement symétrique
Dans le chiffrement symétrique, une même clé est partagée entre l'émetteur et le
récepteur. Cette clé dite symétrique est utilisée par l'émetteur pour chiffrer le
message te par le récepteur pour le déchiffrer en utilisant un algorithme de
chiffrement symétrique.
Image 7 Chiffrement Symétrique
Exemple : Algorithmes de chiffrement symétriques
Il existe deux types d'algorithmes de chiffrement symétrique :
1. Chiffrement par bloc : division du texte clair en blocs fixe, puis chiffrement
bloc par bloc
- DES: IBM, Standard NIST 1976
- 3DES: W. Diffie, M. Hellman, W. Tuchmann 1978.
- IDEA: Xuejia Lai et James Massey en 1992
- Blowfish: Bruce Schneier en 1993
- AES (Rijndael): Joan Daemen et Vincent Rijmen 2000
2. Chiffrement par flux : le bloc a une dimension unitaire (1 bit, 1 octet, ...), ou
une taille relativement petite
16
Introduction à la cryptographie
- RC4: Ron Rivest 1987
- SEAL: Don Coppersmith et Phillip Rogaway pour IBM 1993.
Fondamental : Chiffrement asymétrique
Dans un système asymétrique, le récepteur génère une paire de clés asymétrique :
une clé publique qui est diffusée à tout le monde et une clé privée maintenue
secrète chez le récepteur. La particularité de cette paire de clé est que tout
message chiffrée avec la clé publique ne peut être déchiffré qu'avec la clé privée
correspondante. D'où la confidentialité des messages chiffré avec la clé publique
d'un récepteur. Bien évidemment la clé privée correspondante ne peut être calculée
à partir de la clé publique correspondante.
Image 8 Chiffrement Asymétrique
Exemple : Algorithmes de chiffrement asymétrique
RSA: Rivest, Shamir et Adleman 1978
Diffie et Hellman 1976
2. Les modes d'opération du chiffrement symétrique
Dans le chiffrement symétrique l'algorithme opère sur un bloc. Pour chiffrer un
ensemble de blocs constituants le message à chiffrer il est nécessaire de définir une
stratégie d'opération sur la succession des blocs à chiffrer.
Il existe quatre modes définis dans FIPS 81 (1980)
Electronic Code Book (ECB),
Cipher Block Chaining (CBC),
Cipher FeedBack (CFB) et
Output FeedBack (OFB).
Syntaxe : Notation
Nous adoptons la notation suivante dans la description des quatre modes
d'opération :
T[n]: n-ième bloc du texte clair
C[n]: n-ième bloc du texte chiffré
E(m): fonction de chiffrement
D(m): fonction de déchiffrement
IV : Initialization Vector
^ : XOR
Electronic Code Book (ECB)
Chiffrement :C[n] = E(T[n])
Déchiffrement :T[n] = D(C[n])
17
Introduction à la cryptographie
Le même texte clair et clé de chiffrement donnent le même texte chiffré.
CBC : Cipher Block Chaining
Chiffrement :
C[0] = E(T[0] ^ IV)
C[n] = E(T[n] ^ C[n-1]) , si (n > 0)
Déchiffrement :
T[0] = D(C[n]) ^ IV
T[n] = D(C[n]) ^ C[n-1] , si (n > 0)
IV est envoyé en clair avec le message chiffré
CFB : Cipher Feedback
I[n]: bloc temporaire
Chiffrement :
I[0] = VI
I[n] = C[n-1] , si (n > 0)
C[n] = T[n] ^ E(I[n])
Déchiffrement :
I[0] = VI
I[n] = C[n-1], si (n > 0)
T[n] = C[n] ^ E(I[n])
Offre une sécurité plus élevée
OFB : Output Feedback
I[n]=nième bloc temporaire
R[n]=nième bloc temporaire second
Chiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
C[n] = T[n] ^ R[n]
Déchiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
T[n] = C[n] ^ R[n]
C. Intégrité de données
Défi nition : Intégrité de donnée
C'est la propriété qui permet de vérifier qu'une données n'a pas été modifiée par
une entité tierce (accidentellement ou intentionnellement).
Une fonction de hachage est typiquement utilisée pour vérifier l'intégrité de
données.
18
Introduction à la cryptographie
Défi nition : Fonction de hashage cryptographique
Une fonction de hashage associe à une chaîne binaire (de longueur variable) une
chaîne de longueur fixe [Menezes et al.]
Une fonction de hashage cryptographique a les propriétés suivantes :
Étant donné m, il est facile de calculer h(m)
Étant donné h, il est difficile de calculer m tel que h(m)=h
Étant donné m, il est difficile de trouver un autre message, m', tel que
h(m)=h(m').
Méthode : Comment utiliser une fonction de hashage pour contrôler
l'intégrité de données.
La figure ci-contre illustre comment utiliser une fonction de hashage pour vérifier
l'intégrité d'un document numérique.
Initialement le code de hashage du document numérique est calculé et stocké dans
un endroit sûre. Ultérieurement ce code est recalculé et comparé à celui qui a été
stocké.
Si les deux valeurs sont égales alors le document n'a pas été modifié. Sinon, le
document a subit une modification.
Image 9 Intégrité de données
Exemple
Il existe plusieurs fonctions de hashages ; En voici quelques unes :
MD2 (Message Digest 2) : Opère sur des bloques de 16 octets, manipule des
mots de 8 bits Output 128 bits.
MD4 (Message Digest 4) : Manipule des mots de 32 bits, plus performant sur
des processeurs 32 bits.
MD5 (Message Digest 5) : Une passe de plus / MD4, plus sûre
SHA-1 (Secure Hash Algorithm) : Proposé par le NIST Input message 2 64
octets (au max), output 160 bits.
19
Introduction à la cryptographie
D. Authentification de l'origine de données
Défi nition : Authentification de l'origine
C'est la propriété qui permet de vérifier que la source de données est bien l'identité
prétendue.
Défi nition : Message Authentication Code (MAC)
C'est est un mécanisme cryptographique qui permet de vérifier l'authenticité de
l'origine des données et leur intégrité en même temps.
Un MAC est une famille de fonctions hk paramétrée par une clé secrète k avec les
propriétés suivantes :
Étant donné une clé k et un message m, hk(m) est facile à calculer,
Étant donné zéro ou plusieurs paires (mj,hk(mj)), il est rès difficile de calculer
n'importe quelle paire (m,hk(m)) pour n'importe quel message m.
Méthode : Comment utiliser un MAC pour garantir l'authentification
d el'origine
Pour garantir d'authenticité de l'origine, l'émetteur et le récepteur doivent partager
une clé symétrique.
Cette clé sera utilisé par l'émetteur pour calculer un MAC sur le message à envoyer.
Ce MAC (code de hashage) est la preuve d'authenticité qui accompagnera le
message.
Le récepteur utilisera la même clé secrète pour calculer le MAC de nouveau sur le
message reçus. Le MAC nouvellement calculé sera comparé au MAC accompagnant
le message. Si les deux valeurs sont égales alors le message et l'origine sont
authentiques. Sinon, soit le message ou l'origine n'est pas authentique.
Image 10 Authentification de l'origine
Exemple : Exemple de MAC
HMAC : Mihir Bellare, Ran Canetti, et Hugo Krawczyk 1996 FIPS PUB 198, RFC 2104
HMAC-MD5
HMAC-SHA-1
20
Introduction à la cryptographie
Image 11 Exemple de MAC : HMAC
E. Non-répudiation de l'origine
Défi nition : Non-répudiation de l'origine
La non répudiation de l'origine assure que l'émetteur du message ne pourra pas
nier avoir émis le message dans le futur.
La signature digitale
La signature digitale est un mécanisme cryptographique qui permet d'assurer la non
répudiation de l'origine.
Ce mécanisme repose sur un système cryptographique asymétrique
La signature est calculée en utilisant la clé privé de l'émetteur
La signature est vérifiée en utilisant la clé publique de l'émetteur
Méthode : Comment utiliser la signature digitale pour assurer la
non-répudiation de l'origine ?
L'émetteur du message génère sa paire de clés (publique, privée). Il diffuse sa clé
publique te maintient sa clé privée secrète. Pour signer un document l'émetteur
commence par calculer le code hashage du document puis signe ce code de
hashage avec sa clé privée. Le résultat de cette dernière opération (chiffrement
avec clé privée dans le cas de RSA) est la signature digitale qui accompagnera le
document. Quand le récepteur reçoit le message et la signature digitale, il recalcule
le code de hashage, déchiffre la signature avec la clé publique de l'émetteur et
compare les deux codes de hshages. Si les deux codes sont similaires alors la
signature est valide.
L'émetteur ne pourra pas nier dans le futur avoir émis le message puisque y a que
lui qui peut générer la signature digitale avec sa clé privée secrète.
21
Introduction à la cryptographie
Image 12 Signature digitale et non-répudiation
F. Historiques
Quelques fais marquants de l'histoire de la cryptographie
50 av. JC. : Julius Cesar utilise une simple substitution de l'alphabet pour les
communications gouvernementales
1918 : Gilbert Vernam, mathématicien américain, inventa le one-time pad,
l'algorithme de chiffrement le plus sûr jusqu'à aujoud'hui, mais impratiquable
1923 : Dr. Albert Scherbius, hollondais résidant en Allemagne, met au point
la machine Enigma qui sert à encoder des messages. Le prix très cher en fait
un échec.
1925 : La marine de guerre allemande reprend le projet Enigma en le
confiant au Chiffrierstelle, le service de chiffrement
1937 : Enigma M3 est adoptée par le Wehrmacht, l'armée allemande
1939 : début de la seconde guerre mondiale, où des milliers de scientifiques
britanniques, polonais et français travaillaient pour solutionner Enigma, et
les milliers de messages chiffrés. L'équipe de Alan Turing trouva la solution
1976 : IBM publie un algorithme de chiffrement basé sur Lucifer. Il devient le
DES (Data Encryption Standard)
1976 : Whitfield Diffie et Martin Hellman introduisent l'idée d'un système à
clé publique
1978 : l'algorithme de chiffrement à clé publique RSA est publié par Rivest,
Shamir et Adleman
1978 : Le RC4 est développé par Ronald Rivest pour la RSA Security et sera
gardé secret jusqu'en
1994, où l'algorithme est rendu public anonymement dans une liste de
distribution de Cypherpunks
1991 : Phil Zimmermann rend disponible sa première versio de PGP
1992 : IDEA est inventé en Suisse par Xuejia Lai et James Massey
1992 : MD5 est développé par Ronald L. Rivest
22
Introduction à la cryptographie
1994 : Ron Rivest, déjà auteur de RC2 et RC4, publie RC5
2000 : Rijndael devient l'AES, le standard du chiffrement avancé
G. La libraire OpenSSL
Le projet OpenSSL
OpenSSL (http://www.openssl.org) est une libraire qui compte 60.000 lignes de code
(langage C). Elle est utilisées par de nombreuses applications; openssh,
apache+mod_ssl,... Elle est fondé sur la bibliothèque cryptographique SSLeay d'Eric
Toung et Tim Hudson. L'objectif initial de cette librairie était la mise en œuvre des
protocoles SSL et servir comme bibliothèque cryptographique.
La bibliothèque OpenSSL
La librairie OpenSSL en décline en deux formes :
1. Interface de programmation en C
- Bibliothèque SSL/TLS (libssl.a)
Mise en œuvre des protocoles SSLv2, SSLv3, TLSv1
- Bibliothèque cryptographique
Cryptographie clé publique et certificats X509: RSA, DSA, DH
Chiffrement: DES, 3DES, Blowfish, RC2, IDEA, RC4, + modes ECB,
CBC,CFB,OFb pour les algorithmes par blocs
Hachage: MD2, MD4, MD5, SHA1, MDC2, RIPEMD160
2. Suite d'applications en ligne de commande openssl(1)
- Un ensemble de commandes permettant de réaliser les différentes
opérations cryptographiques
23
Testez vos
III -
III
connaissances
Exercice : Chiffrement symétrique 25
Exercice : RSA 25
Exercice : Devinette ? 25
Exercice : Non-répudiation de l'origine 26
A. Exercice : Chiffrement symétrique
Le chiffrement symétrique
Garantie la confidentialité du message chiffré
Utilise une paire de clés publique/privée
Assure la non répudiation
Repose sur la confidentialité de la clé utilisée
Repose sur la confidentialité de l'algorithme de chiffrement utilisé
B. Exercice : RSA
RSA
Est un système cryptographique asymétrique
Repose sur la difficulté de factoriser un grand nombre en ses facteurs premiers
Repose sur la difficulté du logarithme discret
Permet de faire une signature digitale
Ne peut pas être utilisé pour assurer la confidentialité
C. Exercice : Devinette ?
Ce schéma
25
Testez vos connaissances
Image 13 Q3
26
Testez vos connaissances
Assure l'authentification de l'origine
Utilise une clé asymétrique
Permet d'assurer l'intégrité du Document Numérique échangé
Utilise un MAC qui est une fonction de hashage paramétrée par une clé
Permet de signer le document pour assurer la non répudiation
D. Exercice : Non-répudiation de l'origine
Pour garantir la non-répudiation de l'origine, on peut utiliser
Un chiffrement RSA avec la clé privée de l'émetteur
Un MAC
Une signature digitale
Un chiffrement RSA avec la clé publique de l'émetteur
Un échange de clé Diffie-Hellman
27
Série d'exercices
IV -
IV
I: Services de
sécurité et
mécanismes
cryptographiques
Chiffrement Symétrique et Asymétrique 27
Perte d'une clé privée 28
Payement par chèques numérisés P2017CREX3 28
Conception d'un protocole d'échange sécurisé 29
Implémentation d'un protocole d'échange sécurisé avec
OpenSSL 29
A. Chiffrement Symétrique et Asymétrique
[Avoine et al. 2010]
Un groupe de n personnes souhaite utiliser un système cryptographique pour
s'échanger deux à deux des informations confidentielles. Les informations
échangées entre deux membres du groupe ne devront pas pouvoir être lues par un
autre membre.
Le groupe décide d'utiliser un système de chiffrement symétrique
Question 1
Quel est le nombre minimal de clés symétriques nécessaires ?
Le groupe décide ensuite de remplacer ce système par un système asymétrique
Question 2
Quel est le nombre minimal de couples de clés asymétriques nécessaires pour que
chaque membre puisse envoyer et recevoir des informations chiffrées et/ou
signées ?
Question 3
Bob souhaite envoyer des informations chiffrées et signées à Alice. Quelles clés Bob
doit-il utiliser ?
Le groupe décide finalement d'utiliser un système hybride pour le chiffrement.
29
Série d'exercices I: Services de sécurité et mécanismes cryptographiques
Question 4
Donner les raisons qui ont poussé ce groupe à utiliser un tel système.
B. Perte d'une clé privée
[Avoine et al. 2010]
Bob qui utilise souvent la messagerie sécurisée de son entreprise, vient de perdre
sa clés privée, mais dispose encore de la clé publique correspondante.
Question 1
Peut-il encore envoyer des courriers électroniques chiffrés ? En recevoir ?
Question 2
Peut-il encore signer les courriers électroniques qu'il envoie ? Vérifier les signatures
des courriers électroniques qu'il reçoit ?
Question 3
Que doit-il faire pour être de nouveau capable d'effectuer toutes les opérations
mentionnées ci-dessus ?
C. Payement par chèques numérisés P2017CREX3
On souhaite construire un système de paiement par chèques tel que les chèques
puissent être acheminés dans un réseau non sécurisé (par exemple sur l'Internet
dans des courriers électroniques). On appelle A (pour acheteur) la personne qui
émet le chèque, C (pour commerçant) la personne qui reçoit le paiement. BA est la
banque de A et BC la banque de C.
On construit la solution en cryptographie à clés publiques (chiffrement asymétrique
utilisant typiquement l'algorithme RSA). Les clés publiques sont accessibles sous
forme de certificats dans un annuaire de certificats. Enfin pour faire de la signature
on utilise une fonction de hachage H.
Pour régler un achat, l'acheteur A prépare une formule de chèque qui comporte les
coordonnées de A (l'identifiant A qui peut comporter différentes informations dont le
numéro de compte etc.), les coordonnées de C (l'identifiant du destinataire C), un
identifiant unique de chèque Id_Cheq_A et le montant du chèque (baptisé tout
simplement Montant). Toutes ces informations sont signées par A. On a donc:
A, C , Id_Cheq_A , Montant , {H (A , C , Id_Cheq_A , Montant )}SKA
A –----------------------------------------------------------------------------------------------------→ C
Pour mettre le chèque en paiement, C signe le chèque en utilisant sa clé privée et
transmet le chèque ‘endossé' à sa banque BC pour que le montant soit viré à son
compte.
C, BC , Id_Cheq_A , Montant , {{H (A , C , Id_Cheq_A , Montant )}SKA}SKC
C –---------------------------------------------------------------------------------------------------→ BC
Question 1
Avec ce protocole un intrus peut-il faire payer ses dépenses auprès de C en se
faisant passer pour A. Justifiez votre réponse.
30
Série d'exercices I: Services de sécurité et mécanismes cryptographiques
Question 2
Avec ce protocole pourquoi la banque BC est elle sure que seul A a pu émettre le
chèque, qu'il est destiné à C et que C a accepté le paiement ?
Question 3
Avec ce protocole, C peut-il présenter plusieurs fois le chèque en paiement à sa
banque ? Justifiez votre réponse.
Question 4
Comment construire une solution pour que les paiements effectués par A soient
confidentiels ?
Question 5
Est ce que A peut faire des chèques sans provision ? Justifiez
Question 6
En vous appuyant sur le protocole précédent, proposez un protocole pour la
payement par chèques certifiés par la banque. Avec un chèque certifié, la banque
de l'acheteur certifie que le chèque est solvable.
D. Conception d'un protocole d'échange sécurisé
On souhaite concevoir un protocole d'échange sécurisé. Ce protocole doit garantir
les services de sécurité suivants :
Confidentialité de l'échange
Intégrité des données échangées
Non-répudiation de l'émetteur
Question
On suppose que la confidentialité est assurée grâce à un chiffrement symétrique.
Initialement, les deux parties communicantes ne partagent aucun secret.
Ecrire une spécification de ce protocole en utilisant la notation suivante :
S ==> D : M (S envoie M à D)
{M}K : M chiffré/déchiffré avec K
SKX : Clé privée de X
PKX : Clé publique de X
KAB : Clé symétrique partagée entre A et B
. (point) : Concaténation entre deux messages
E. Implémentation d'un protocole d'échange
sécurisé avec OpenSSL
Dans cet exercice, vous allez implémenter le protocole que vous avez conçu dans
l'exercice précédent en utilisant OpenSSL.
Cet atelier nécessite un jeu de rôles. Une partie (élève ou binôme) jouera le rôle de
l'émetteur (source), et une autre partie jouera le rôle du récepteur (destinataire).
Pensez à inverser les rôles et refaire l'exercice.
La Source souhaite transmettre un message stocké dans un fichier message.txt à
une Destination tout en assurant sa confidentialité, intégrité et non-répudiation.
Cet atelier pratique sera réalisé avec OpenSSL. Vous pouvez utiliser l'outil déjà
installé dans les distribution Linux. Sous Windows, vous pouvez installer xampp qui
31
Série d'exercices I: Services de sécurité et mécanismes cryptographiques
fournira cet outil. Dans ce cas, pensez à rajouter dans la variable d'environnement
PATH le chemin vers le répertoire qui contient openssl.exe : ....xampp\apache\bin
Question
Voici ci-après des commandes openssl qui permettent de mettre en oeuvre les
différentes étapes du protocole.
Pensez à analyser chaque commande avant son utilisation
La liste n'est pas exhaustive. Néanmoins, vous pouvez changer certains paramètres
pour répondre aux besoins nécessaires pour mettre en œuvre votre protocole
Indice :
Générer la clé privée RSA de la source: openssl genrsa -out
src_rsa.pem -passout pass:srcpasswd -des 512
src_rsa.pem va contenir la clé privée de la source protégée par le mot de
passe srcpasswd
Extraction de la clé publique à partir de la clé privée vers
"src_rsa_pub.pem" : openssl rsa -in src_rsa.pem -passin
pass:srcpasswd -out src_rsa_pub.pem -pubout
Ici l'option -pubout permet d'extraire la clé publique (par defaut c'est la
clé privée qui est extraite)
L'option passin et passout c'est pour ptoteger les fichiers, pass:xxxx
permet de faire une protection par mots de passe.
Chiffrer un secret avec la clé publique du destinataire : openssl rsautl
-in secret.txt -out secret.crypt -inkey dest_rsa_pub.pem -pubin
-encrypt
Chiffrement d'un message avec un secret (clé symétrique) en utilisant
l'algorithme DES-CBC: openssl enc -des-cbc -in message.txt -out
message.crypt -pass file:secret.txt
Calcul de condensat (code de hashage) avec MD5 : openssl dgst -md5
-binary -out message.crypt.dgst message.crypt
Chiffrement du condensat (code de hashage) avec la clé privée de la
source "src_rsa.pem" : openssl rsautl -in message.crypt.dgst -out
message.crypt.dgst.sign -sign -inkey src_rsa.pem
Déchiffrement de l'empreinte (code de hashage) du message vers dgst1 :
openssl rsautl -in message.crypt.dgst.sign -out dgst1 -pubin
-inkey src_rsa_pub.pem
Déchiffrement d'un secret avec la clé privée du destinataire : openssl
rsautl -decrypt -in secret.crypt -out secret.txt -inkey
dest_rsa.pem
Déchiffrement du "message.crypt" à l'aide de secret qui se trouve dans
"secret.txt" : openssl enc -in message.crypt -out message.txt -pass
file:secret.txt -d -des-cbc
32
Bibliographie
[Valet 2011] G. Valet, Cryptographie, Université Paris-Diderot 7, 2011.
[wainwright2000] Peter Wainwright ; "Apache professionnel" ; Eyrolles, 2000.
33