Académique Documents
Professionnel Documents
Culture Documents
Introduction
L’objectif de la sécurité informatique consiste en 5 points :
- Disponibilité : s'assurer qu'un service soit disponible pour les utilisateurs autorisés.
- Authentification : S’assurer qu’uniquement les utilisateurs autorisés ont accès à
leurs propres ressources et services
- Non-répudiation : s'assurer qu'un contrat entre x et y vient bien de x et qu'il est bien
conclu avec y.
- Confidentialité : s'assurer que les données confidentielles sont confidentielles pour
toute personne non autorisée
- Intégrité : s'assurer que les données ne sont pas altérées pendant le transit.
Signature numérique
L’idée est de s’assurer que l'expéditeur est bien celui que nous pensons.
Le but est que ce soit plus compliqué que juste signé un document.
Pour cela nous utilisons une clé pour la signature et une autre clé pour l’identification. Si les
deux clé sont stockées à des endroits différents et qu'à la réception du message, sont
identiques, c’est probablement la même personne
Echange de clé
L’échange de clé pose un problème : Comment s'échanger les clé de manière sécurisée ?
La solution serait d’utiliser un intermédiaire tiers en qui les deux acteurs ont confiance.
Certificat
Document électronique prouvant la propriété d'une clé publique.
Largement utilisé pour le premier échange de clés
Contient
- des informations de clé publique
- des informations des clés du propriétaire
- la signature numérique de l'autorité de certification.
L'autorité de certification s'assure que les informations stockées dans le certificat sont
correctes et les signe.
La sécurité d'un système doit reposer uniquement sur la clé et non sur le système lui même
Authentification
Il existe plusieurs types de protocoles d'authentification
- Mot de passes (populaires)
- Token sécurisé
- Clés cryptographiques
Les règles d’une authentification sont :
- Fournir une preuve que c’est bien vous :
- Quelque chose que vous savez (MDP, code PIN)
- Quelque chose que vous avez (des clés, badge)
- Quelque chose que vous êtes (empreinte digital, empreinte faciale)
Les inconvénients avec ce genre d'authentification c’est que :
- Quelque chose que vous savez : Cela peut être culturel ou social
- Quelque chose que vous avez : Peut être volé ou perdu
- Quelque chose que vous êtes : Nécessite une mesure initiale
Authentification multi-facteurs
L’idée est de forcer l’utilisateur a présenter plus d’un élément pour s’identifier (Exemple :
MDP + clé physique)
Cela permettrait aux personnes non identifiées de fournir tous les éléments.
Différents types de Tokens
Nous pouvons classer les Tokens en trois catégories
- Tokens papier : mots de passe à usage unique, jeux de codes
- Tokens logiciels : s'appuie sur un logiciel installé sur l'ordinateur ou le périphérique
client.
- Tokens matériels : nécessite un périphérique physique
Les jetons peuvent être physiquement connectés (transmission automatique des données)
ou non.
Contrainte : Le Token doit être quelque chose que vous et vous seul avez constamment sur
vous.
Token Software
Un Token peut être généré via un logiciel mais dans ce cas il devient lié à son ordinateur et
l’ordinateur devient le jeton matériel.
Token Hardware
Un Token Hardware doit être impossible à falsifier et et doit être protégé contre la rétro
ingénierie.
Conclusion
Les jetons logiciels sont considérés comme des instances de "quelque chose que vous
connaissez".
Un mot de passe + un jeton logiciel sont deux exemples de "quelque chose que vous
connaissez".
One-time password
Idée : un mot de passe n'est valable que pour un seul login / transaction
Not vulnerable to replay attacks :
- Si un attaquant récupère un mot de passe déjà utilisé, il ne peut pas en abuser.
- Ce mot de passe devient invalide
La génération est souvent basée soit sur
- la synchronisation du temps entre le serveur et le client
- le mot de passe généré précédemment
- un défi
Cryptographie à seuil
L’idée : Nous voulons partager un secret.
- Clé cryptographique pour le chiffrement ou la signature
- Code d'accès
Motivation : permettre le service si au moins x personnes acceptent de coopérer.
Définition :
Un système cryptographique est appelé système cryptographique à seuil si plusieurs
personnes (plus que le seuil) doivent coopérer dans le protocole utilisé pour (dé)crypter un
message.
Un tel système est un “(k,n) - seuil” si au moins k personnes parmi n doivent coopérer pour
(dé)crypter le message.
Partage de clé V1
Example : secret Password to share
1) People 1 : Pa......
2) People 2 : ..ss....
3) People 3 : ....wo..
4) People 4 : ......rd
Quelqu'un qui n'a pas de pièces doit deviner entre 26^8 soit environ 208 milliards
possibilités
Quelqu'un avec une seule pièce doit deviner parmi 26^6 soit environ 308 millions
possibilités
Donc c’est un Partage non sécurisé.
Partage de clé V2
Si le mot de passe est crypté sur k clé publics.
Le k correspond au nombre de clé privée qui sont distribuée aux n acteurs.
Padding
Aucun algorithme cryptographique ne traite toutes ses entrées en une seule fois.
L'entrée est arbitrairement grande
Idée : découper l'entrée en blocs de taille égale et traiter chaque bloc séparément.
- Hash : saisie itérative de blocs pour une fonction de compression unidirectionnelle
- Cipher : chaque bloc est chiffré séparément et indépendamment
- Signature : chaque bloc est haché et chiffré
La taille d'un bloc dépend de l'algorithme
Algorithmes de Chiffrements
C’est pas très inspirant comme titre !
Chiffrement César
Principe :
Exemple et faiblesses
Seulement 25 touches possibles
Analyse séquentielle : la lettre la plus fréquente en anglais est 'e'.
Cochez la lettre la plus fréquente dans le texte chiffré
Chiffrement Vigenère
Idea : variable shift César
Avantages : plus de clés, analyse fréquentielle inutile
Exemple : avec les nombres (8 ; 5 ; 3 ; 3 ; 14) la première lettre est décalée de 8,
le deuxième de 5, le troisième de 3, le quatrième de 14, le cinquième de 8, etc.
The key is encoded as a word : (8; 5; 3; 14) = HECM
Une analyse fréquentielle "directe" est inutile car une lettre n'est pas toujours codée par le
même caractère de la clé.
Chiffrement symétriques et
décryptage clé publique
Chiffrement symétriques
Le principe : Une seule clé, connue uniquement des acteurs, est utilisée pour crypter et
déchiffrer
Exemple :
- Alices chiffre son texte avec la lettre et l'envoie à Bob.
- Bob utilise la clé pour déchiffrer le message
Les problèmes :
- Sécurité et échange de clés
Solution
La cryptographie à clé publique résout intelligemment le problème
Technique d'emballage des clés (rapide)
Chiffrement asymétriques
Principe : Une paire de clés par acteur : une pour chiffrer, une pour déchiffrer
Exemple :
- Alice chiffre son texte avec la clé publique de Bob et l'envoie.
- Bob déchiffre le message avec sa propre clé privée.
- Puisque Bob est le seul à avoir cette clé privée, lui seul peut lire ce qui a été envoyé.
Problème :
Premier échange de clé publique
Illustration :
Avantages :
Rapide, puisque le chiffrement asymétrique n'est utilisé que sur la clé secrète.
Sécurisé, si Alice a déjà la clé publique de Bob.
Illustration :
Fonctions de hachage
cryptographique
Bonne fonction de hachage
- La fonction de hachage doit être publique (pas de clé, pas de secret)
- La sortie doit avoir une taille fixe, quelle que soit la taille de l'entrée.
- Facilite l'utilisation pratique
- Vous rend vulnérable aux attaques d'anniversaire
- Basé sur la construction Merkle-Damgård et les fonctions de compression
unidirectionnelle
- Les images sont normalement distribuées
- La fonction de hachage "suffit bien à l'entrée".
Etapes de construction
1) Découper le message en blocs de taille fixe.
2) Le dernier bloc est rempli de valeurs arbitraires (c'est-à-dire fixes) pour obtenir la
longueur requise.
3) Nous définissons un vecteur d'initialisation (IV)
4) Lors de la première itération, nous entrons IV et le premier bloc à f
5) Dans le cas général, nous entrons le résultat courant ainsi que les blocs k à f
6) Utilisation possible d'une fonction de finalisation (brassage, avalanche, etc.)
Schéma
Birthday Attack
Attaque exploitant le "paradoxe de l'anniversaire" (théorie des probabilités)
Comment ça fonctionne ?
Dans un groupe de n personnes, quelle est la probabilité que deux d'entre elles aient le
même anniversaire ?
Le principe du “pigeonhole”, cette probabilité est nulle lorsque n=1(Il n’y a qu’une seule
personne) et 1 lorsque n=367(Il y a 367 personne).
Illustration
Mot de passe
Le gros problème avec les mots de passes
- Faible entropie : dictionnaire des mots de passe courants
- Trop difficile à retenir donc --> "post-it sur l'écran"
- Réutilisation du mot de passe
- “Key logging”
Transmission
Un mot de passe ne peut pas être transmis en texte clair, il a besoin d’être crypté !
Storage
La pair (login, password) est stockée sur une base de donnée.
Compte tenu de leur taille et de la fréquence des demandes d'authentification, le chiffrement
des tables est déconseillé.
Question importante
Comment stocker les mots de passe pour qu'un attaquant capable de voir les tables ne
puisse rien faire avec cette information ?
Réponse importante
- Utiliser les fonctions de hachage cryptographique
- Stocker les hachages de mots de passe, pas les mots de passe
Avantage de ce principe
- Rapide : les hachages sont faciles à calculer
- Sûr : résistant à la pré-image
- Collisions peu probables
Sel password
Inconvénients sans le sel
- Deux mots de passe identiques ont le même hashes
- Réutilisation du mot de passe
- Même mot de passe pour différents utilisateurs
Le principe
Créez une liste de mots de passe communs
- Avec leurs hachages parmi plusieurs fonctions de hachage cryptographiques
Cherchez un hash connu dans le tableau
S'il y a une correspondance, l'attaque est réussie.
Pré-traitement du hash
Le principe est d'alterner entre une fonction de hachage et une fonction de réduction pour
créer une chaîne
Nous stockeron uniquement la tête et la queue de cette chaîne dans une base de donnée
Récupération du mot de passe
Lorsqu’on reçoit un hash, on applique la réduction, puis le hash et ainsi de suite.
Objectif : à un moment après avoir calculé R, découvrir la queue de certaines chaine.
Problème
Il est possible d’avoir des collision dans les hash de chaîne
Solution
Utiliser plusieurs fonctions de réduction
En pratique, nous en utilisons beaucoup.
Rainbow Table
Construire un certain nombre de fonction de réduction (environ 50 000)
Pour couvrir un maximum de mot de passe nous prenons un hash de base, nous lui
appliquons R1 ensuite nous le hachon, puis R2 ensuite le hachon etc etc.
Quand ceci est fait, nous stockons la tête et la queue sous forme de pair
Pour optimiser le tout nous pouvons trié par queue et supprimé les doublons de queue
Rainbow Attack
Objectif : Craquer les hash
Comment faire :
1) Vérifier si la réduction du hash (que l'on veut craquer) est une queue. Si s’en est une,
regarder la réduction précédente
2) Itéré cette technique jusqu'à trouver la chaine
Plus la table est grande, plus les chances de succès sont élevées.
Nécessite beaucoup de fonctions de réduction pour éviter les collisions
Illustration
Fonction de réduction
Objectif :
- Mapper un hachage avec un mot de passe
- Pas d'exigence de non-collision
- Doit normalement distribuer la sortie
Signature Numérique
L’idée est d'envoyer un message et son hachage séparément
Le problème est : Est-ce qu’ils sont tous les deux interceptés correctement ?
Le principe
Il est difficile de créer un canal de communication sûr. Par conséquence nous allons utiliser
une signature numérique qui va permettre d’authentifier les messages.
Quand un message s'authentifie, nous savons que :
- le contenu du message n'a pas été modifié
- le message a été envoyé par l'expéditeur présumé
QUESTIONS EXAMEN
Question 1. Décrivez les caractéristiques globales qu’un système de sécurité doit posséder
pour être considéré comme « sûr » en termes de principes de Kerckhoff.
Question 2. Que sont les principes de non répudiation, d’intégrité, et de confidentialité dans
le contexte d’échange de données ? Illustrez ces principes avec un exemple d’échange d’un
fichier entre deux acteurs qui ne se sont jamais rencontrés auparavant.
La Non-répudiation c’est le fait de s'assurer que, lors d’un contrat entre x et y, le contrat
soit bien de x et qu'il est bien conclu avec y.
L’Intégrité c’est le fait de s'assurer que les données ne sont pas altérées pendant le transit.
Dans le cas d’un contrat entre “x” et ”y”, il faut vérifier que “y” a bien reçu l’intégralité des
données que “x” a envoyé.
Les jetons peuvent être physiquement connectés (transmission automatique des données)
ou non.
Contrainte : Le Token doit être quelque chose que vous et vous seul avez constamment sur
vous.
Token Software
Un Token peut être généré via un logiciel mais dans ce cas il devient lié à son ordinateur et
l’ordinateur devient le jeton matériel.
Token Hardware
Un Token Hardware doit être impossible à falsifier et et doit être protégé contre la rétro
ingénierie.
Conclusion
Les jetons logiciels sont considérés comme des instances de "quelque chose que vous
connaissez".
Question 4. Expliquez le principe de « one time password », comment cela permet de lutter
contre les « replay attacks », et détaillez le schéma de Lamport dans ce cadre.
Le “One-Time Password” :
C’est un mot de passe qui n'est valable que pour un seul login / une seule transaction.
Il n’est pas vulnérable contre les replay attacks car :
Si un attaquant récupère un mot de passe déjà utilisé, il ne peut pas en abuser car ce mot
de passe devient invalide
En français :
On crée un MDP
On le sauvegarde sur un serveur
Le deuxième MDP est créé à partir du premier et est stocké sur le serveur
Définition :
Un système cryptographique est appelé système cryptographique à seuil si plusieurs
personnes (plus que le seuil) doivent coopérer dans le protocole utilisé pour (dé)crypter un
message.
Un tel système est un “(k,n) - seuil” si au moins k personnes parmi n doivent coopérer pour
(dé)crypter le message.
Partage de clé V2
Si le mot de passe est crypté sur k clé publics.
Le k correspond au nombre de clé privée qui sont distribuée aux n acteurs.
(Help me)
Question 6. Décrivez
— le principe de padding, son utilité et comment le mettre en oeuvre dans son contexte,
— le principe de génération de nombres aléatoires vrais
Padding
L’idée du Padding : découper l'entrée en blocs de taille égale et traiter chaque bloc
séparément :
- Hash : saisie itérative de blocs pour une fonction de compression unidirectionnelle
- Cipher : chaque bloc est chiffré séparément et indépendamment
- Signature : chaque bloc est haché et chiffré
Aucun algorithme cryptographique ne traite toutes ses entrées en une seule fois.
L'entrée est arbitrairement grande
La taille d'un bloc dépend de l'algorithme
Méthode de calcule
La méthode consiste à :
Utiliser un algorithme déterministe
L'informatique imite un processus aléatoire
Concept de semence : tout repose sur la première valeur
Question 7. Décrivez les caractéristiques que doit posséder une fonction de hachage
cryptographique, et pourquoi ces caractéristiques sont-elles requises. Décrivez également
plusieurs applications des fonctions de hachage cryptographiques et pourquoi leur utilisation
est pertinente dans ces cas.
Cette compression doit avoir les exigences des fonctions de hachage cryptographique:
1) Facile à calculer
2) Résistant au pré-image
3) Résistance à la pré-image en secondes
4) Résistant aux collisions
Schéma
Il y a 2 critères
1) Critère d'avalanche strict
Si un seul bit est retourné dans l'entrée, chaque bit de la sortie a 50% de chances de
changer.
2) Critère d'indépendance des bits
Deux bits i et j de la sortie changent indépendamment lorsqu'un bit k de l'entrée est
retourné, pour chaque i, j, k.
Illustration
Si une fonction de hachage a n valeurs de sortie possibles, √n calculs sont suffisants pour
avoir une collision probable d’environ 50 %.
Question 10. Décrivez le principe de cryptographie de clé publique et ses applications, ainsi
que ses avantages et inconvénients par rapport aux algorithmes de chiffrement symétriques.
Question 11. Décrivez le principe de signature numérique et ses applications, ainsi que
comment construire un tel système sur base d’un algorithme de chiffrement et d’une fonction
de hachage cryptographique.