36
Année académique 2011-2012 Attention : ce document est entièrement basé sur les transparents du cours et est très incomplet. INFO 0045-2 Cryptographie et sécurité informatique Le résumé Réalisé par Marc Gou

INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

Année académique 2011-2012

Attention : ce document est

entièrement basé sur les

transparents du cours et est

très incomplet.

INFO 0045-2 Cryptographie et sécurité

informatique Le résumé

Réalisé par Marc Gou

Page 2: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

2

C.I.A. : Confidentiability + Availability + Integrity

La confidentialité est la prévention de la divulgation non autorisée d’information. L’intégrité est la propriété d’une information n’ayant pas été altérée de manière non autorisée. La disponibilité est la capacité d’une information à être accessible et modifiable au moment opportun par ceux qui ont l’autorisation.

A.A.A.

L’identité des parties communicantes n’est pas traitée dans le modèle C.I.A. Authentification détermine l’identité ou le rôle d’une personne. Autorisation détermine, en se basant sur le contrôle d’accès, si une personne ou un système est autorisé à accéder à des ressources. Audit est le suivi (tracking) de ce qui a été fait dans le système par un utilisateur ou un groupe d’utilisateurs.

Pentagone

Admissibility : la machine sur laquelle on travaille/se connecte est-elle fiable?

Hexad

Utilité : une information chiffrée pour laquelle on a perdu la clé n’est plus d’aucune utilité.

McCumber : En forme d’un cube C.I.A. + Etat de donnée (Transmission, Storage, Processing) + Principes et règles à adopter (Human factors, Policy and practises, Technology).

Chapitre 1 : Sécurité des OS Concept des OS Le système d’exploitation (OS) fournit l’interface entre l’utilisateur de l’ordinateur et le hardware. L’OS gère la façon dont les applications accèdent aux diverses ressources dont le disque dur, le CPU, la mémoire centrale et les Entrées/Sorties. L’OS gère aussi les différents utilisateurs et les différentes applications. L‟OS permet de gérer le multitasking : plusieurs tâches peuvent partager, simultanément, une ressource particulière, le CPU. L’OS est en charge d’affecter à chaque programme exécuté une portion de temps CPU. La rapidité de calcul du CPU donne l’impression que l’ordinateur exécute toutes les applications simultanément.

Page 3: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

3

Mais la situation est un peu différente dans les architectures multi-cœurs modernes. Le noyau (kernel) est le composant cœur d’un OS qui gère les ressources hardware de bas niveau (mémoire, CPU, appareils E/S). Les tâches associées au noyau sont, généralement, représentées en couches.

Chaque appareil est représenté par un driver qui encapsule les détails de l’interaction avec cet appareil. L’API (Application Programming Interface) présentée par le driver permet à l’application d’interagir à un haut niveau avec l’appareil. L’OS se charge d’effectuer les opérations de bas niveau. Les appels systèmes sont les moyens utilisés pour exiger du noyau d’effectuer une telle action à la place de l’application. Ils sont contenus dans des librairies qui définissent les fonctions permettant de communiquer avec le noyau (libc, read(), write(), exec()…). Les programmes sont stockés sur un périphérique de stockage permanent ils doivent donc être chargés en mémoire RAM pour pouvoir s’exécuter. Un programme qui s’exécute est un processus (process). Un processus doit pouvoir être identifié de manière unique grâce à un entier strictement positif PID (process identifier), l’objectif est de permettre

plusieurs instances d‟un même programme. Un système de fichiers (file system) est une abstraction de l’organisation de la mémoire externe “permanente”. L‟OS organise les fichiers hiérarchiquement en dossiers, chaque dossier contient des fichiers ou des sous-dossiers. Le disque dur consiste donc en une collection de dossiers imbriqués formant un arbre, le dossier le plus haut est la racine de l’arbre (root folder). Les permissions sont utilisées pour délimiter les droits des utilisateurs. Ils vérifiées par l’OS pour déterminer si un fichier est accessible en lecture, écriture, ou exécution par un utilisateur (ou groupe d’utilisateurs). Matrice de permission : - permission du propriétaire (owner permission)

Page 4: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

4

- permission du groupe (group permission) - droit d’accès par défaut (world permission) Il existe, en outre, 3 bits de permission particuliers : Set-user-ID (setuid) bit permet à un utilisateur d’exécuter un programme avec les permissions du propriétaire du programme. Exemples (ls -l) :

-rwsr-xr-x: setuid, exécutable par tous

-rwxr-xr-x: exécutable par tous, mais pas setuid

-rwSr--r--: setuid, mais pas exécutable (sans intérêt)

ATTENTION ! Un attaquant peut forcer un programme, avec setuid, à exécuter un code arbitraire. Attaquant peut exploiter le mécanisme setuid pour avoir les permissions du propriétaire du programme, scénario de type privilege escalation.

Set-group-ID (setgid) bit est identique que setuid mais le propriétaire est un groupe. Pour les répertoires, les fichiers créés à l’intérieur ont le même groupe que le répertoire et non au créateur du fichier. Exemples (ls -l)

-rwxr-sr-x: setgid, exécutable par tous

drwxrwsr-x: répertoire setgid-rw-r-Sr--: fichier setgid, mais non

exécutable (sans intérêt)

Sticky bit (pour les répertoires) empêche un utilisateur de supprimer/renommer les fichiers dont il n’est pas propriétaire Exemples (ls -l)

drwxrwxrwt: sticky bit, accès à tous

drwxrwx--T: sticky bit, accès par utilisateur/groupe

La mémoire RAM est l’espace d’adressage de l’ordinateur qui contient le code du programme qui s’exécute, ses données en entrée et et sa mémoire de travail. Pour chaque process, la RAM est organisée en segment, les différentes parties de l’espace d’adressage sont séparées. Un ordinateur n’a généralement pas suffisamment de mémoire pour tous les processus en cours d’exécution. L’OS donne alors l’illusion au process qu’il dispose d’un accès complet à un espace d’adressage continu (vision virtuelle). La mémoire est divisée en pages, l’OS sait lesquelles sont en mémoire et lesquelles sont stockées sur le disque.

Page 5: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

5

Machines virtuelles : l’OS présente une vision dans laquelle le processus tourne sur un OS et une architecture particulière alors que ce n’est pas le cas. Avantages des machines virtuelles sont nombreuses : efficacité hardware, portabilité, sécurité et management.

Passwords Problème d’authentification : permettre à l’OS de déterminer l’identité (ou le rôle) de quelqu’un. Mécanisme standard : <username, pwd> : si le pwd entré par l’utilisateur correspond à celui stocké par l’OS, l’OS accepte l’authentification et log l’utilisateur. Sinon, refus Les passwords ne sont pas stockés en clair sur le système car il y aurait un risque trop élevé en cas de vol. A la place, l‟OS conserve une empreinte du mot de passe (hash). Fonction de hachage cryptographique :

h, fonction de hachage x, argument de la fonction y, empreinte résultante : h(x) = y

La fonction de hash doit être irréversible : connaissant y et h, il doit être impossible de retrouver x.

Fonctionnement de ce mécanisme :

1. Utilisateur tape son id, X et son password P. 2. L’OS obtient H, l’empreinte stockée du password de X. 3. L’OS teste si h(P) == H.

Page 6: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

6

Les attaques possibles ? o Pwd écrits (Post-it sur écran, sous le clavier, …) o Espionnage par dessus l’épaule (Distributeurs d’argent) o Social engineering (tromper les utilisateurs) o Key logger (programme tournant en arrière-plan et enregistrant toutes les frappes au clavier) o Ecoute du réseau (certains protocoles laissent passer en clair les pwds : POP, FTP)

Attaque on-line : l’attaquant teste des paires <user, pwd>, les contre-mesures sont :

L’utilisation des captchas qui permet de distinguer l’humain et le bot Bloquer le compte après x tentatives infructueuses et prévenir l’utilisateur (inconvénient :

transforme l’attaque en déni de service et coût pour l’utilisateur de débloquer son compte). Attaque off-line : la fonction H doit être connue et l’attaquant doit avoir procuré le fichier des pwds. Il a alors 3 possibilités :

Attaque du dictionnaire (Deviner le pwd) Attaque brute force (Génération aléatoire des pwds) Attaque heuristique (mix de l’attaque du dictionnaire et brute force)

L’attaquant compare alors les hashes avec ceux du fichier volé jusqu’à obtenir une égalité. Attaque du dictionnaire : En moyenne, un dictionnaire contient entre 150.000 et 200.000 mots, beaucoup de personnes utilisent des mots du dictionnaire comme pwd. Il est possible de préparer l’attaque en précompilant un fichier de hashes, il suffit ensuite de comparer le fichier volé et les hashes précompilés. Attaque heuristique : Certaines règles sont appliquées aux mots du dictionnaire en fonction des pratiques courantes (Renverser, majuscule<->minuscule, dupliquer, ajout de préfixe/suffixe…). UNIX ajoute une protection supplémentaire aux pwds : Des bits aléatoires sont ajoutés à chaque pwd avant le hash :

o ajoute de l’aléatoire à l’output o bits aléatoires = sel (salt) : typiquement, un nombre aléatoire associé à chaque

Avantage du sel est Augmentation de l’espace de recherche E pour une attaque de type dictionnaire :

E = B = nombre de bits du sel et D = taille du dictionnaire

Fonctionnement de ce mécanisme : 1. Utilisateur tape son id, X et son password P 2. l’OS obtient S et H 3. l’OS teste si h(S || P) == H

Les fonctions de hash sous UNIX : DES, MD5, Blowfish, SHA-1 (Mac OSX), … La taille du sel dépend de l’OS : Mac OSX (32 bits), Linux moderne (48 bits), OpenBSD (128 bits). Cas d’étude : UNIX avec MD5 :

on retient les 8 premiers caractères du pwd (les caractères ultérieurs sont ignorés) on conserve 7 bits/caractères (MD5 nécessite une clé de 56 bits) hash créé en chiffrant une chaîne de caractères nuls avec la clé de 56 bits et en ajoutant le sel

Page 7: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

7

Pwd est stocké dans etc/shadow :

username:pwd:last:may:must:warn:expire:disable:reserved

pwd : sel + hash

last : dernière modification

may : délai avant de pouvoir être modifié

must : délai avant de être devoir modifié

warn : prévenir l’utilisateur

expire : délai entre expiration et blocage

disable : date de blocage de compte

Win98/ME utilise Lan Manager Hash (LM Hash) : pas de sel, si moins de 14 caractères, Windows ajoute des ‘0’ pour arriver à 14 caractères (padding). Win NT/2000/XP/Vista/7 utilise NT Lan Manager Hash (NT Hash) : Le pwd n’est plus coupé en 2 blocs et peut être plus long que 14 caractères mais il y a risque d’incompatibilité. La fonction d’hash utilisé est le MD4 et il n’y a toujours pas de sel. Le système utilisé est beaucoup moins performant que celui d’UNIX.

Droit d’accès Fichiers et répertoires sont gérés par l’OS, les applications accèdent aux fichiers via une API. Un descripteur de fichiers fournit un identificateur pour un fichier/répertoire. C’est une valeur indexée permettant d’accéder rapidement à un fichier, contenu dans la table des descripteurs de fichiers.

Opérations sur les fichiers o ouverture: renvoie un descripteur de fichier o lecture/écriture/exécution o fermeture: invalide le descripteur de fichier

Organisation hiérarchique des fichiers : Windows utilise un arbre tandis que linux utilise un DAG (Graphe dirigé acyclique). N’oublions pas que Le meilleur moyen d’éviter une attaque, c’est de l’empêcher, on peut donc conserver la C.I.A. (déterminer rigoureusement qui a accès à une information particulière), le principe de base utilisé est le LEAST PREVILEGE. Discretionary Access Control (DAC) est le modèle standard utilisé dans les OS. Il y a 4 façons d’implémenter DAC

ACM : Contrôle et visualisation facile, mais trop gourmande en mémoire et difficile à maintenir. ACL : Taille raisonnable mais difficile d’énumérer tous les droits d’un sujet donné. Capacités : Taille raisonnable mais difficile d’énumérer tous les droits associés à un sujet

particulier. RBAC : Réduction de la quantité de règles mais très peu répandu dans les OS.

Exploits

Page 8: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

8

Exploit : Tout input (code, argument, séquence de commandes) qui tire avantage d’un bug ou d’une vulnérabilité afin de réaliser une attaque. Attaque : Comportement non anticipé ou involontaire qui se produit dans un programme (ou un ordinateur ou du matériel électronique) apportant un avantage à l’attaquant. Buffer Overflow : Le programmeur oublie d’inclure du code vérifiant qu’une chaîne en entrée peut être contenue entièrement dans un buffer/tableau, un input du processus en cours fait déborder le buffer. Ce débordement écrase alors une partie de la mémoire allouée au processus. Le processus peut alors exploiter des données malicieuses et exécuter du code malicieux. Stack buffer overflow peut être utilisé pour injecter du code malicieux dans la pile et écraser l’adresse de retour d’une fonction. Shellcode (écrit généralement en assembleur) est une chaîne de caractères qui représente un code binaire exécutable capable de lancer un shell. Shellcode est injecté en partie avec le buffer qui est débordé. Payload est le buffer contenant le code malicieux. Race condition est un défaut dans un système électronique ou informatique multitâche, non prévu lors de la conception, caractérisé par un résultat différent selon l'ordre dans lequel sont effectuées certaines opérations du système (selon l'entrelacement des tâches). Lorsqu'il y a compétition, il existe une courte période de temps entre deux instructions (d'une même tâche) pendant laquelle une modification est faite dans le système qui le rend vulnérable à certaines instructions des autres tâches.

Exploits Web Directory Traversal (Attaque ../) : Exécuter des commandes qui accèderont à des fichiers dont l’accès est supposé être restreint et exploiter une validation insuffisante des noms de fichiers donnés en input par l’utilisateur du site web. Cross-Site scripting (XSS) : Problème de validation de l’input sur un site web permettant à l’attaquant d’injecter du code qui sera exécuté par la suite sur le navigateur de la victime. Le site web est utilisé comme vecteur pour exécuter du code malicieux chez la victime. XSS persistant : Le code reste sur le site durant un certain temps et est visible des autres utilisateurs. XSS non persistant : Le code ne persiste pas au-delà de la session de l’attaquant. Le XSS permet aussi de rediriger une session, de montrer de fausses informations, de mettre en place des faux formulaires pour obtenir des données personnelles et de voler des cookies. Injection SQL : c’est un type d'exploitation d'une faille de sécurité d'une application interagissant avec une base de données, en injectant une requête SQL non prévue par le système et pouvant compromettre sa sécurité.

Chapitre 2 : Virologie

Page 9: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

9

Généralité Un maliciel (malware) peut être classé en diverses catégories en fonction de son mode de propagation et de dissimulation. •Propagation

o virus: propagation assistée par l’humain (email) o vers: propagation automatique (sans intervention humaine)

•Dissimulation o rootkit: modifie l’OS pour cacher son existence o cheval de Troie: fournit des fonctionnalités désirables et cache ses aspects malicieux

Inside Man Attaque de l’intérieur (insider attack) est une brèche de sécurité causée/facilitée par quelqu’un faisant partie de l’organisation qui contrôle/construit ce qui doit être protégé. Pour un maliciel, il s’agit d’un trou de sécurité créé dans le logiciel par un de ses programmeurs. Il existe 2 types: porte dérobée et bombe logique. Porte dérobée (Backdoor ou Trapdoor) : Caractéristique ou commande cachée dans un programme qui, Lorsque la commande cachée est activée, permet à un utilisateur d’effectuer des actions pour lesquelles, normalement, il n’a pas les permissions. Bombe logique : Programme réalisant une action malicieuse suite à une certaine condition. Elle peut être combinée avec un Backdoor. PROTECTIONS : Il faut

o Eviter les failles uniques (single point failure) : éviter de tout placer dans les mains d’un seul homme

o Revisiter le code (walk-through) : faire relire le code par d’autres programmeurs o Utiliser des outils de reporting et d’archivage : documentation automatique afin de découvrir des

portions de code suspect o Limiter les permissions : Principe du moindre privilège, un utilisateur ne doit pas avoir plus de

privilèges que nécessaire

Virus Un virus informatique est un bout de code capable de se répliquer en modifiant d’autres fichiers ou programmes. La réplication nécessite, généralement, une aide humaine (cliquer sur 1 attachment, partager 1 clé USB). Il y a trois types de virus :

virus code/fichier macro virus virus boot sector

Un virus suit 4 phases d’exécution :

Page 10: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

10

o Phase dormante : le virus fait profil bas et évite toute forme de détection o Phase de propagation : le virus se réplique et infecte de nouveaux fichiers sur de nouveaux

systèmes o Phase déclenchant : une condition logique fait en sorte que le virus se réveille et devienne

virulent o Phase d’action : le virus exécute son action malicieuse (payload)

On envisage 4 types d’infection

écrasement : le code original est détruit concaténation : le code original est conservé, éventuellement compressé infection de librairies : permet au virus de résider en permanence en mémoire (kernel32.dll ) macro virus : infection de documents MS Office et peut s’installer dans les templates

DEFENSE : Signature du virus : une chaîne de caractères identifiant uniquement le virus en analysant les fichiers infectés (détection basé sur le pattern matching). Quarantaine : la vérification pour les virus peut se faire périodiquement ou en temps réel. Un fichier ayant un matching partiel d’une signature est stocké dans une zone protégée la quarantaine : le fichier peut, alors, être examiné plus en détails. Méthodes de dissimulation Virus encrypté : le corps du virus est crypté ce qui permet de cacher certains éléments du virus (code de réplication, payload). Virus polymorphique : encryptage du virus avec des variations aléatoire du moteur de décryptage et des clés différentes (mutation du virus lorsqu’il se réplique). Pour détecter, il faut utiliser le code générique pour cryptage. Virus métaphorique : le corps du virus varie (réordonnancement d’instructions, ajout d’instructions inutiles, mutation du virus). Pour détecter, conjonction/séquence de signatures, probabilité.

Vers Un ver est un maliciel qui propage des copies de lui-même sans devoir s’injecter dans d’autres programmes et sans intervention humaine. Dans la plupart des cas, le vers va transporter un payload (suppression de fichier et installation d’une porte dérobée). Fonctionnement générique d’un ver

générer la liste de cible pour chaque machine sur la liste vérifier si elle est infectée et vulnérable infecter et se reproduire

Page 11: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

11

Modèle épidémique classique de propagation d’un ver : le start et le finish sont assez lents, au milieu la propagation est très rapide.

o N: nombre total d’hôtes vulnérables o I(t): nombre d’hôtes infectés au temps t o S(t): nombre d’hôtes susceptibles au temps t o I(t) + S(t) = N o β: taux d’infection

Evolution dans le temps o I(0) = 1 o S(0) = N-1 o I(t+1) = I(t) + β* I(t)*S(t) o S(t+1) = N-I(t+1)

Cheval de Troie Cheval de Troie est un maliciel semblant exécuter une tâche utile mais effectuant aussi une (ou plusieurs) action(s) négative(s) (exemple : lancer un keylogger). Un cheval de Troie peut être installé comme payload d’un autre maliciel.

Rootkit

Rootkit modifie l’OS de façon à cacher son existence. Il existe des différents types de rootkit : User-mode : ring 3 + privilèges administrateur Kernel-mode : ring 0 + ajout/remplacement des portions de l’OS Bootkits : remplace le bootloader par un contrôlé par l’attaquant Virtual machine manager (VMM) : ring 1 + accueil de l’OS cible comme une machine virtuelle Hardware/firmware : utilisation du firmware pour créer une image persistante du malware

Economie L’élaboration des malwares est un business, il y a à la fois : Une demande pour des maliciels

o croissance au niveau de la cybercriminalité “professionnelle” o croissance des fraudes on-line

Une offre o variation customisée d’exploits connus o le développeur de maliciel peut facilement vendre “différents produits” à ses clients

Chapitre 3 : Emails Non sollicités Spam : inondation d’Internet avec plusieurs copies d’un même message afin de forcer le message vers des personnes n’ayant pas choisi de le recevoir.

Page 12: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

12

Effets Infrastructure

remplissage inutile de serveurs et boîtes mail consommation de bande passante

Productivité : perte de temps liée au tri des messages (coût estimé, globalement, à 100 milliards $/an).

Techniques

L’adresse de l’émetteur est presque toujours forgée pour éviter les contre-attaques. Plusieurs méthodes sont possible : Open-relay, abus de comptes mails, botnet ou utilisation de son propre serveur SMTP. SMTP (Simple Mail Transfer Protocol) est le protocole utilisé pour l’envoi de courrier électronique. Connexion TCP sur le port 25. Quelques commandes de base :

o HELO : annonce un serveur

o Mail From : définit un émetteur o Rcpt To : définit un receveur o Data : définit le contenu

SMTP n’utilise aucun mécanisme d’identification, il est dès lors facile de forger un email. Application limitée : tracking vers l’émetteur grâce à l’en-tête du mail reçu

contenu de la commande HELO adresse IP de l’émetteur heure de réception

Open Relays : serveur SMTP autorisant le relai d’email (processing d’email dont la source n’appartient pas au même domaine) Idée est le suivant :

un seul message (forgé) est déposé sur quelques serveurs SMTP avec une liste de milliers de destinations chacun

les serveurs SMTP envoient tranquillement une copie du message à chaque destinataire Les dommages causés sont les suivants :

les serveurs sont saturés par l’envoi de spams les disques se remplissent avec les logs et messages d’erreur l’ISP (internet service provider) peut arrêter son service de mail black listing

Protection : Pour qu’un message soit accepté par le serveur, il faut que soit l’émetteur, soit le receveur appartienne au même domaine que le serveur Abus de comptes webmail : Un script est utilisé pour ouvrir plusieurs comptes via des webmails, ces comptes sont utilisés pour l’envoi de spam jusqu’à leurs clôtures. Botnet : réseau de machines piratées contrôlées par une personne. Typiquement, un virus infecte l’ordinateur pour le transformer en “bot”. Les bots se connectent à un IRC et attendent les ordres du maître. Location de botnet est devenue un business.

Page 13: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

13

Pour obtenir une liste de destination : achat d’une liste d’adresses crawler : parcours automatique du web dictionnaire : test brute-force pour découvrir des adresses hacking : attaque d’une base de données virus/spyware : obtention du carnet d’adresses d’une personne hoax/chaînes : inciter le receveur à renvoyer le mail à tous ses contacts

Protections Législation Filtres : programmes permettant de filtrer les emails en séparant les spams du courrier légitime. Le filtrage se fait sur base du contenu du message et du format du message. Pas la solution idéale car possibilité de faux positifs/négatifs Exemple: SpamAssassin - open source - plusieurs centaines de règles, chacune donnant un score positif ou négatif - renforcement des règles via du filtrage bayesian Black list : rejet des emails provenant d’émetteurs appartenant à une liste noire

o SBL: IPs des opérateurs de spam connus o XBL: IPs des systèmes piratés relayant les mails

Avantages facile à mettre en œuvre pas cher

Inconvénients faux négatifs possibles nécessite un serveur centralisé pour élaborer la liste réactivité pour la mise à jour de la liste

White list : la réception est autorisée si l’émetteur (domaine, IP, ...) appartient à la white list Avantages

pas cher facile à mettre en œuvre

Inconvénients les émetteurs autorisés doivent être connus à l’avance faux positifs

Grey list : bloquer un mail quand le comportement de son émetteur semble anormal, le receveur gère une base de données contenant, pour chaque email entrant, un triplet (IP du serveur SMTP, IP expéditeur, IP destinataire). La base de données devient une white list Pour chaque email entrant, on vérifie s’il appartient à la base de données. Si non: le mail est inséré dans la base de données et un message d’erreur est envoyé au serveur SMTP. L’émetteur doit essayer de retransmettre le mail après au moins 30min : Avantage : Très peu de faux positifs Inconvénient : Délai en raison de la liste grise

Page 14: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

14

Chapitre 4 : Attaques réseaux

Modèle TCP/IP Modèle OSI

Applications (SMTP, HTTP, telnet)

Application

Présentation

Session

Transport (TCP, UDP) Transport

Internet (IP, ARP, ICMP) Réseau

Liaison de données (Ethernet, PPP, X.25)

Liaison de données

Physique

Adresse IP : Octet.Octet.Octet.Octet Port est utilisé au niveau transfert, utilisé pour identifier l’application à envoyer.

Paquet TCP : beaucoup plus complexe, l’information perdue doit pouvoir être récupéré.

TCP connexion est une connexion à 3 étapes :

Client -> Serveur : flag = (SYN), SEQ = x Serveur -> Client : flag = (SYN, ACK), SEQ = y, ACK = x+1 Client -> Serveur : flag = (ACK), SEQ = x+1, ACK = y+1

Page 15: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

15

Déni de service DoS (Denial of Service) est une attaque consistant à empêcher un système informatique de fonctionner correctement. Ping of Death : Envoi de paquets “ping” malformés, un paquet ping permet de tester l’accessibilité d’une autre machine dans le réseau. Taille d’un paquet ping est de 56 bytes (86 bytes avec l’en-tête). Taille d’un paquet ping of death: > 65.535 bytes. SYN Flooding : Une attaque informatique visant à atteindre un déni de service. Elle s'applique dans le cadre du protocole TCP et consiste à envoyer une succession de requêtes SYN vers la cible. A la réception d’un SYN, le serveur alloue la mémoire nécessaire à la connexion, puis le serveur stocke les infos dans une queue de connexions à moitié ouvertes, puis le serveur répond avec un SYN+ACK, et enfin le serveur attend le ACK. Si la queue est remplie, plus aucune connexion ne peut être acceptée. L’attaquant peut s’attribuer d’autres adresses pour rester anonyme (spoofing). Les OS modernes sont protégés contre le SYN flooding. Protections contre le SYN flooding?

o accroitre la taille de la queue o réduire le timer pour la réception du ACK o retirer le plus vieux SYN de la queue o filtrage des adresses IP o Caching

Caching :

o pas de réservation de ressources o on met en cache le SYN et envoi du SYN+ACK o à la réception du ACK, la connexion est seulement créée o SYN Cookie : À utiliser lorsque la queue est quasi remplie

Les SYN cookies sont des valeurs particulières des numéros de séquences initiales générés (ISN) par un serveur lors d'une demande de connexion TCP. A la réception du SYN

le serveur envoie un SYN+ACK avec un SYN Cookie le serveur écrase l’entrée SYN dans la queue

A la réception du ACK, le serveur vérifie qu’il contient bien un SYN cookie valide. si oui, il est très probable que le client ait déjà envoyé un SYN et qu’il soit honnête -> la

connexion est créée sinon, rejet de la connexion

Mais pas encore adopté par Windows. Attaque réflexion (SMURF Attack) : noyer la cible à l’aide d’amplificateur de trafic. Utlisation du ping amplifié.

o adresse source du ping: cible de l’attaque o destination du ping: adresse broadcast, le paquet est envoyé à toutes les machines du sous-

réseau

Page 16: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

16

o les machines pingées répondent à la cible de l’attaque Protection

o hôtes & routers ne doivent pas répondre à des pings sur l’adresse broadcast o configurer les routers pour ne pas forwarder des paquets vers l’adresse broadcast o si le serveur est faible, on peut le configurer pour ignorer les pings

DDoS

Attaquant Maîtres Agents Victimes

L’objectif est d’augmenter la puissance/efficacité d’une attaque DoS Le traçage de l’attaquant beaucoup plus difficile (2 couches intermédiaires). Attaque plus difficile à filtrer (car plusieurs sources). Technique?

o Le pirate prend possession de différentes machines et installe un agent dessus (via un cheval de troie)

o Plusieurs maîtres contrôlent les agents o Le pirate envoie ses ordres aux maîtres qui les relaient aux agents afin d’attaquer la cible

Spoofing Spoofing est une technique utilisée en informatique qui consiste à envoyer des paquets IP en utilisant une adresse IP source qui n'a pas été attribuée à l'ordinateur qui les émet. (Tromperie sur la source du paquet et réponse envoyée à l’adresse forgée) Intérêts : l’adresse IP source peut servir pour autoriser une connexion

Routers et firewalls filtrent les paquets sur base de l’IP source Certains programmes autorisent certaines sources à se connecter sans authentification (rlogin,

rsh) Si le pirate et la victime spoofée ne sont pas sur le même LAN, alors il est difficile de connaître l’ISN de la victime car ISN est un nombre aléatoire.

Page 17: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

17

Prédiction de l’ISN possible sur certaines implémentations simples de TCP ouvrir un certain nombre de connexions TCP et observer l’ISN et les échantillons d’incrément lancer l’attaque en se basant sur le dernier ISN et un incrément obtenus via les échantillons lancer plusieurs attaques simultanément avec plusieurs incréments, en espérant que l’un d’eux

soit le bon

ARP Spoofing

ARN (Adress Resolution Protocol) permet d’associer à une adresse IP une adresse MAC. L’identificateur d’une interface réseau via un identifiant hardware spécifique Les requêtes ARP sont broadcastées sur le réseau et le résultat conservé en cache.

Sniffing Plusieurs protocoles basent leur authentification sur du texte clair (telnet, rsh, ftp, http, pop, imap) où le nom d’utilisateur et pwd en clair sur le réseau. En écoutant le trafic qui passe sur le réseau, on peut capturer des noms d’utilisateurs + pwds (wireshark). Une fois dans le sous-réseau, on peut capturer bien plus d’informations.

Chapitre 5 : Firewalls Un pare-feu réseau (network firewall) est un software ou un hardware qui permet d’éviter la propagation d’une attaque tout en autorisant le trafic désiré. Avantages de firewall software :

meilleures performances des firewalls software : bénéficient des performances des PCs actuels moins chers : PCs pas cher

Inconvénients de firewall software : Un firewall software hérite de toutes les vulnérabilités de l’OS sur lequel il tourne Architecture connue des firewalls software : exploitation "facile" de vulnérabilités

Page 18: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

18

Principes de base Moindre privilège : chaque élément (utilisateur, software) du système peut seulement disposer des droits minimums nécessaires à ses tâches. Exemples : utilisateurs réguliers ne peuvent être root, un admin doit aussi utiliser un compte “normal”, un serveur web tourne via un compte sans privilège particulier… Défense en profondeur : utilisation de plusieurs mécanismes de protection redondants. Exemples : anti-virus sur les serveurs et les hôtes, on sécurise aussi (configuration, patches) les machines protégées par un firewall…

Goulot d’étranglement : il est plus simple de contrôler des données si elles passent toutes par le même endroit. Exemples : interdiction de connecter sa machine via un modem, toute interconnexion avec une autre entreprise doit passer par le firewall... Maillon le plus faible : un firewall ne sera jamais plus efficace que son élément le plus faible donc tous les éléments du système doivent posséder une sécurité équivalente. Exemple : inutile d’avoir un logiciel anti-virus pour le FTP si on n’en a pas un aussi pour le trafic HTTP et SMTP. Déni par défaut : il est préférable d’interdire tout ce qui n’est pas explicitement permis que d’accepter tout ce qui n’est pas explicitement interdit car on ne connaît pas à l’avance toutes les menaces auxquelles on peut être exposé donc il vaut mieux interdire quelque chose d’utile que permettre une attaque. Participation des utilisateurs : un système de sécurité n’est efficace que si tous les utilisateurs adhèrent à ses principes. Si le système empêche les utilisateurs de travailler ou si les restrictions sont mal expliquées, les utilisateurs ne collaboreront pas. Du coup, certaines personnes pourraient adopter un comportement à risque. Exemple : installation d’un modem pour pouvoir aller sur Internet. Simplicité : la plupart des attaques sont dues à des erreurs humaines. Plus un système est compliqué, plus il est prompt à contenir des erreurs pouvant être exploitées par des pirates. Avantage de la simplicité :

o le risque d’erreur est plus petit

o le bon fonctionnement d’un système simple est plus facile à vérifier

Caractéristiques Il existe 2 types de Firewall : Stateless (ne retient pas les paquets qu’il a vu passer) et Statefull (garde une trace des paquets qu’il a vu passer et reconstruit chaque état d’une connexion). Firewall statefull avec TCP :

pour chaque connexion, il sait à quoi devrait ressembler le prochain paquet: flags, numéro de séquence

il peut éliminer les paquets qui ne correspondent pas

Page 19: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

19

il peut remplacer les numéros de séquence en cas de réception d’un SYN, il peut générer lui-même le SYN+ACK, et si la connexion est complétée, le SYN est envoyé à la machine terminale

il peut empêcher le SYN flooding Protection contre le SYN flooding : Simple

le firewall garde trace de toutes les tentatives d’ouverture de connexion s’il estime qu’une connexion reste à moitié ouverte trop longtemps, il envoie un RST à la

machine distante Avancé

le firewall retarde les paquets SYN et génère lui-même des SYN+ACK à la place de la machine terminale

il envoie le SYN original à la machine terminale seulement lorsqu’il a reçu le ACK Analyse des paquets : Un firewall peut analyser les paquets et vérifier leurs formats et contenus, il peut ainsi éliminer :

des paquets malformés (DoS, exploit, ping of death, ...) des paquets qui ne correspondent pas à l’état actuel des protocoles des paquets avec un contenu indésirable (virus)

Filtrage : aide à limiter le trafic à des services utiles. Il peut être basé sur des critères multiples :

IP source : éviter le spoofing IP destination protocoles (TCP, UDP, ICMP, ...) et ports flags et options : définir la direction dans laquelle une connexion peut être établie

NAT : On utilise des adresses privées à l’intérieur du réseau et une (ou plusieurs) adresses publiques pour communiquer avec Internet, le NAT (network address translator) se charge alors de faire la correspondance entre les deux. Ce mécanisme permet notamment de faire correspondre une seule adresse externe publique visible sur Internet à toutes les adresses d'un réseau privé, et pallie ainsi l'épuisement des adresses IPv4.

Il existe divers types d’adresses IP :

multicast : un émetteur, plusieurs receveurs anycast : redirection des données vers le serveur le plus “proche” ou le plus “efficace”, un

émetteur, plusieurs receveurs mais sélection du receveur final unicast : point à point, publiquement routable ou non routable

Fonctionnement de NAT :

quand un paquet quitte le réseau interne, son adresse source est remplacée par une adresse publique

quand un paquet arrive de l’extérieur, la destination publique est remplacée par l’adresse privée utilisation d’une table de traduction

Par défaut, un NAT dynamique n’accepte pas l’établissement de connexions entrantes. Quand 2 connexions sont identifiées uniquement par leurs adresses IP, il y a collision. On peut changer le port source. (Port and Address Translation)

Page 20: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

20

Le NAT dynamique ne permet pas d’établir des connexions entrantes, possède une bonne protection par défaut et élimine le P2P. Il est possible de définir certaines entrées statiques dans la table de traduction : NAT statique, ce qui permet les connexions entrantes. On crée une entrée par protocole, ainsi différents ports pour une même adresse externe peuvent mener à différentes adresses internes. Avantage du NAT :

moins d’adresses publiques : moins cher changement d’ISP (Internet Service Provider) facile réorganisation interne du réseau facile possibilité d’une certaine protection automatique structure interne du réseau cachée

Inconvénient du NAT :

TCP/UDP checksums : checksum recalculé pour chaque paquet envoyé vers l’extérieur certains protocoles ne supportent pas les modifications de paquets (IPSec) certains protocoles échangent les adresses

Un checksum est un nombre qu'on ajoute à un message à transmettre pour permettre au récepteur de vérifier que le message reçu est bien celui qui a été envoyé. Authentification : Le firewall peut exiger une authentification afin de laisser passer une connexion

o trafic sortant : limiter l’accès à Internet à des utilisateurs privilégiés o trafic entrant : permettre l’accès aux ressources internes pour les employés en déplacement

Cette authentification peut être faite par une base de données locale ou centrale. Accès à distance : Le firewall permet aux utilisateurs extérieurs d’accéder au LAN.

o L’utilisateur extérieur doit établir une connexion chiffrée avec le firewall o L’utilisateur peut, alors, agir comme si il se trouvait dans le LAN

Chiffrage : Le firewall est à même de crypter/décrypter les données passant à travers des zones moins sures. Exemples interconnexion entre 2 sites distants via Internet, accès à distance… Génération des Logs : Les logs permettent de garder trace des tentatives d’attaques et aussi de vérifier que les ports (ou destinations) qu’on autorise sont réellement nécessaires (Moindre privilège).

Architecture Firewall personnel : Initialement, le firewall interdit toute connexion. A chaque alarme, l’utilisateur est amené à déterminer la règle à appliquer

blocage autorisation temporaire autorisation complète

Ce qui permet de bloquer les backdoors, logiciels espions, ... Ce qui fait de firewall le complément idéal à un anti-virus.

Page 21: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

21

NAT + Filtrage : à utiliser quand le niveau de sécurité requis est faible Configuration

NAT dynamique pour toutes les machines internes NAT statique pour tous les serveurs accessibles filtrage sortant et entrant

Limitations pas d’analyse de contenu depuis Internet : attention aux virus n’évite pas les attaques depuis l’extérieur sur les serveurs internes : exploits, DoS, ...

DMZ : Zone démilitarisée -> zone connectée ni à Internet, ni au réseau interne. À utiliser quand le niveau de sécurité requis est moyen. Configuration

les machines internes peuvent seulement se connecter au proxy seul le proxy peut se connecter à Internet NAT dynamique pour le trafic sortant NAT statique pour le trafic interne en direction du proxy filtrage entrant et sortant

Limitation le firewall est un point crucial : toute vulnérabilité du firewall peut être exploitée pour accéder à

l’ensemble du réseau tous les services passent via le proxy : une vulnérabilité dans le proxy peut donner accès à tout

(single point of failure) DMZ Sandwich : à utiliser quand le niveau de sécurité requis est élevé Configuration

les machines internes se connectent uniquement aux proxies : un proxy par service de façon à éviter le single point of failure

seuls les proxies peuvent se connecter à Internet pas de routage au niveau des proxies : LAN reliant les proxies est commuté (switches au lieu de routeurs) tables ARP remplies de manière statique : éviter l’ARP spoofing NAT dynamique pour le trafic sortant NAT statique pour le trafic entrant Filtrage sortant et entrant

Règles Les règles de filtrage sont spécifiées dans une liste. Pour chaque paquet

le firewall parcourt la liste jusqu’à trouver une règle qui s’applique

le firewall exécute l’action associée à la règle

le firewall passe au paquet suivant La dernière règle est celle qui interdit tout ce qui n’a pas été autorisé

Page 22: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

22

Stateless : Spécifier le flag rend possible l’autorisation des seules connexions désirées mais si un attaquant est capable de forger un paquet avec les flags adéquats, le firewall laissera passer.

impossible de faire la distinction entre un paquet appartenant à une connexion en cours et un paquet hors contexte

limite d’un système de filtrage stateless Statefull : Un firewall statefull connait les connexions établies. Il peut autoriser automatiquement le trafic de retour, Ce qui le rend plus sûr car

pas de paquets non sollicités plus simple à configurer, donc moins prompt aux erreurs

Organisation : Quand il y a beaucoup de règles, il est important de les organiser de manière systématique. Le firewall doit permettre les connexions depuis l’extérieur vers la DMZ Web. Le firewall doit permettre les connexions internes vers Internet mais uniquement via la DMZ Proxy.

Une bonne méthode pour organiser les règles :

o définir un niveau de sécurité pour chaque zone o grouper les règles par zone o ordre décroissant de niveau de sécurité

Chaque groupe est composé de 4 parties o autorisations explicites pour le trafic entrant o interdictions générales pour le trafic entrant o autorisations explicites pour le trafic sortant o interdictions générales pour le trafic sortant

Pour chaque zone, il est suffisant de déclarer les flux vers des zones moins sécurisées.

Page 23: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

23

Il n’est pas nécessaire de spécifier le trafic en direction/venant d’une zone de plus haut niveau : déjà traité dans la zone de plus haut niveau. Une règle impliquant 2 zones apparaît dans le bloc de la zone la plus sécurisée. En principe, la dernière règle (13) ne devrait jamais être atteinte : pas nécessaire mais peut être utile pour détecter les erreurs de configuration (logs).

Page 24: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

24

Chapitre 6 : Cryptographie symétrique Cryptologie : science des messages secrets et des codes chiffrés, utilisée traditionnellement par les militaires et les gouvernements. Cryptographie : ensemble des principes, méthodes et techniques qui assurent le chiffrement et déchiffrement des données dont l’objectif est d’assurer la confidentialité des données et l’intégrité des données. Cryptanalyse : ensemble des méthodes et procédés de déchiffrage visant à casser un cryptogramme sans connaissance de la clef de chiffrement. Texte clair : texte d’origine qui est immédiatement intelligible et qui peut être exploité directement, sans avoir recours au déchiffrement. Chiffrement : opération qui permet de substituer au texte clair un texte inintelligible, ce qui le rend inexploitable pour quiconque ne possédant pas la clé permettant de le ramener à sa forme initiale. Cryptogramme : message rendu inintelligible grâce au chiffrement et ne peut être lu/compris que par les personnes en possession de la clé permettant de le déchiffrer (idéalement). Déchiffrement : opération inverse d’un chiffrement réversible. Ainsi, une personne autorisée, en possession de la clé peut rétablir en clair un cryptogramme. Cryptosystème : quintuplet (M, C, K, E, D) M: ensemble des textes clairs possibles C: ensemble des textes chiffrés K: ensemble des clés E: ensemble des fonctions de chiffrement D: ensemble des fonctions de déchiffrement Un bon cryptosystème doit disposer de 3 qualités Diffusion

aucune propriété statistique ne peut être déduite du message chiffré le message chiffré est réellement inintelligible

Confusion toute modification du message en clair se traduit par une modification complète du message

chiffré Robustesse de la clé

difficile de déterminer k et difficile d’énumérer tous les k On a 4 types de cryptanalyse :

texte chiffré : l’attaquant possède une copie des cryptogrammes échangés textes en clair connus : l’attaquant possède plusieurs paires <texte clair, texte chiffré> textes en clair choisis : l’attaquant possède plusieurs paires <texte clair, texte chiffré> mais il a

pu choisir le texte clair texte chiffré choisi : l’attaquant choisit plusieurs cryptogrammes dont il obtient le texte clair

correspondant

Page 25: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

25

Side Channel Attack : toute attaque basée sur l’information obtenue de l’implémentation physique du cryptosystème. Exemple : Timing Attack, Power monitoring Attack, Electromagnetic Attack, Acoustic Attack, Cache Attack, Differential Fault Analysis Il y a 4 résultats possibles à une attaque

cassage partiel : l’attaque calcule quelques informations sur le texte clair cassage local : l’attaquant calcule quelques paires <texte clair, texte chiffré> cassage global : l’attaquant calcule la fonction d, possibilité de déchiffrer tout message cassage complet : l’attaquant connaît la clé k

Définir un protocole robuste face à une attaque

disposant de moyens importants : entrée ayant un objectif modeste : sortie

Chiffrement par transposition Cryptographie à clé secrète : les protagonistes s’échangent une clé secrète. La sécurité du chiffrement dépend du non divulgation de la clé. Chiffrement de type anagramme : les lettres du message sont déplacées. Exemple : texte clair: CRYPTOGRAPHIE Transposition choisie: texte clair à l’envers (c’est la clé) Texte chiffré : EIHPARGOTPYRC Il y a aussi le Scytale Spartiate

Chiffrement monoalphabétique Chiffrement par substitution : on change d’alphabet, ainsi pour un alphabet à 27 lettres, on a 26! alphabets possibles. Problème : confusion sur l’alphabet mais chaque lettre conserve sa place d’origine. Substitution monoalphabétique : remplacer chaque lettre de l’alphabet par une autre. Ce qui revient à un décalage différent pour chaque lettre. Cas particulier: chiffrement de César : décalage des lettres de l’alphabet.

a → d, b → e, c → f, ... On travaille modulo 26 et la clé est le décalage (26 possibilités). Problèmes : confusion faible et pas de diffusion

seulement 26 clés possibles : car décalage commun sur l'alphabet cassage de l’algorithme simple : tester toutes les clés

Cryptanalyse de la substitution monoalphabétique (Al-Kindi) Idée de base

toutes les lettres de la langue (française) n’ont pas la même fréquence d’apparition

Page 26: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

26

par analyse statistique de la fréquence des lettres du texte chiffré, on peut retrouver les substitutions

Plus facile quand le texte chiffré est long. Si insuffisant, on peut travailler sur des blocs de lettres : fréquences des digrammes.

Chiffrement polyalphabétique Substitution d’une lettre du texte clair par une autre choisie en fonction de l’état du cryptosystème en plus de substitution fixe. Le changement de lettre s’obtient avec une clé :

o indique le nombre de décalage à réaliser à un moment donné o pour chiffrer une lettre du texte clair (position i), on utilise une lettre de la clé (position i) o pour chiffrer la lettre suivante (i+1), on utilise la lettre suivante de la clé (i+1) o quand tous les caractères de la clé sont épuisés, on recommence au début de la clé

Vigenère : Algorithme de chiffrage

o Pour chaque lettre du texte clair : on sélectionne la colonne correspondante de la table o Pour une lettre de la clé : on sélectionne la ligne adéquate o Le croisement des deux donne la lettre chiffrée, on répète la clé autant de fois que nécessaire

Vigenère : Algorithme de déchiffrage

o Pour chaque lettre de la clé : on sélectionne la ligne adéquate o On cherche la lettre chiffrée correspondante dans la ligne : la colonne correspondante donne la

lettre déchiffrée

Vigenère : Cryptanalyse en 3 étapes 1. trouver la longueur I de la clé 2. découper le message M en I messages m0, m1, ..., mI-1 3. mi contient l’ensemble des lettres dont la position dans le texte modulo I est égal à i 4. toutes les lettres d’un mi sont chiffrées avec le même décalage 5. analyse fréquentielle sur chacun des mi : déterminer le décalage de chaque colonne

Les 2 méthodes pour trouver la longueur de la clé : o Répétition des fréquences o Indices de coïncidence

Le chiffrement de Vigenère est donc sensible à une attaque à texte chiffré du moins, tant que le texte est long et écrit dans une langue connue. One-time pad/Chiffre de Vernam : démontré qu’il est incassable

o la clé est aussi longue que le message à chiffrer : Vigenère avec I = |m| o les caractères composant la clé sont choisis aléatoirement o la clé est nouvelle pour chaque message

Avantages de l’One-time pad

o confusion totale : chiffrement totalement aléatoire

o diffusion totale : la clé n’est jamais réutilisée et le même texte est chiffré différemment à chaque fois

Page 27: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

27

Inconvénients de l’One-time pad o comment transmettre la clé? o si on arrive à transmettre la clé de manière sécurisée, pourquoi ne pas le faire directement avec

le texte clair?

Chiffrement par blocs On ne travaille plus sur les lettres de l’alphabet mais sur un ensemble de blocs, Le message m est découpé en n blocs avec padding éventuel si le dernier bloc est trop court.

chaque bloc est chiffré le texte chiffré, m’, correspond à la concaténation des n blocs chiffrés

Deux méthodes de chiffrement : ECB et CBC. ECB (Electronic cipher block) est le mode de chiffrement le plus simple. Chaque bloc est simplement chiffré, séparément, avec la clé.

Limite d'ECB : chiffrement peu sûr car 2 blocs clairs identiques donnent toujours le même bloc chiffré pour une clé k fixée. CBC (Cipher block chaining) Le résultat du chiffrement du bloc dépend

de la clé k du bloc chiffré XOR entre le bloc et le bloc chiffré

Nécessite un vecteur d’initialisation (IV) généré aléatoirement transmis avec le texte chiffré

Page 28: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

28

Avec CBC, 2 blocs clairs identiques sont chiffrés différemment, donc il y a bonne protection d'un point de vue chiffrement, c’est le mode le plus utilisé.

Réseau de Feistel : construction utilisée dans les algorithmes de chiffrement par bloc. une longueur de bloc, l un espace de clé, K un nombre de tours/étages, r un générateur de sous-clés, g : divise la clé k en r sous-clés une fonction de chiffrement, f : doit exister

DES : C’est un réseau de Feistel équilibré.

blocs de 64 bits (L=32 bits et R=32bits) nombre de rondes r=16

clé de 56 bits : sous-clé de 48 bits fonction f: p-box + s-box : utilise 8 S-boxes avec un mapping de 6 bits vers 4 bits

Avantages de DES rapidité : chiffrer à 64Mo/sec bonne diffusion : P-Box bonne confusion : S-Box facile à implémenter en hardware

Inconvénients de DES taille de la clé (56 bits) méthodes pour casser la clé : cryptanalyse différentielle, attaque T (tickling attack), cryptanalyse

linéaire

Page 29: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

29

AES : Advanced Encryption Standard : nouveau standard du gouvernement américain adopté en 2000, développé par des chercheurs belges de KUL.

Avantages :

rapide : plus rapide que 3-DES nécessite peu de mémoire : peut être

implémenté dans une carte à puces résistant aux attaques : pas de cryptanalyse

linéaire, pas de cryptanalyse différentielle la seule “solution” est la recherche exhaustive

Chapitre 7 : Cryptographie asymétrique La cryptographie asymétrique (ou à clé publique) est basée sur un concept différent de la cryptographie symétrique. Chaque intervenant possède une clé publique.

clé connue de tous la connaissance de cette clé suffit pour envoyer un message chiffré à son propriétaire

Chaque intervenant possède une clé privée. clé confidentielle liée mathématiquement à la clé publique correspondante permet de déchiffrer tout message chiffré avec la clé publique

Avantages

s’il y a n intervenants dans une discussion, n clés sont suffisantes les clés publiques doivent être distribuées de manière authentifiée mais pas confidentielle

Inconvénients

algorithmes de chiffrage/déchiffrage plus lents que ceux de la cryptographie symétrique nécessite une longueur de clé très grande (3072 au lieu de 256 bits pour AES)

Page 30: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

30

La cryptographie asymétrique est basée sur des problèmes mathématiques : Utilisation de fonction à sens unique avec brèche secrète. Fonction à sens unique avec brèche secrète est une fonction f telle que :

o f(x) est facile à calculer o (x) est difficile à calculer. o (x) en connaissant k, est facile à calculer (k étant la brèche).

En cryptographie asymétrique, k est la clé privée.

RSA Basé sur les problèmes de factorisation et RacineIemeModulaire. Entrées:

un entier n, produit de 2 nombres premiers p, q : n = p * q un entier e > 0 premier avec (p-1)*(q-1) : pgcd(e, (p-1)*(q-1)) = 1 un entier c

Sortie: m tel que c ≡ mod n

Le protocole RSA fonctionne en 3 étapes :

1. création d’un couple (clé publique, clé privée) pour Bob : la clé publique est diffusée à tout le monde.

2. quand Alice veut envoyer un message confidentiel à Bob : elle utilise la clé publique de Bob pour chiffrer le message

3. Bob utilise sa clé privée pour déchiffrer le message envoyé par Alice La création des clés Choisir 2 nombres entiers, p et q, premiers : p et q doivent être plutôt grands (environ 100 chiffres) Calculer n tel que n = p * q

o φ(n) = (p - 1) * (q - 1) o si p et q sont grands, n est aussi très grand (environ 200 chiffres)

Choisir un entier e, très grand, tel que

o 1 < e < φ(n)

o pgcd(e, φ(n)) = 1 avec e premier avec (p - 1) * (q - 1) Calculer d tel que

o (e * d) mod φ(n) = 1, avec d < φ(n) o d est le multiplicateur inverse de e dans la classe module φ(n)

La clé publique est (e, n) La clé privée est (d, n) Pour chiffrer un message M

obtenir la clé publique (e, n) calculer C = mod n, où 0 ≤ M < n

Pour déchiffrer un message C utiliser la clé privée (d, n)

calculer M = mod n Approches possibles pour attaquer RSA

Page 31: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

31

Brute force : tester toutes les clés privées possibles mais c’est impossible étant donné la taille des nombres.

Mathématique : plusieurs approches possibles mais toutes sont basées sur la tentative de factoriser le produit de 2 nombres premiers

Timing attack : basée sur le temps nécessaire au déchiffrement Texte chiffré choisi : exploitation des propriétés de RSA

Pour contrer le timing attack, soit on ajoute des délais aléatoires soit on fait en sorte que tous les exponentiations doivent prendre le même temps avant de retourner un résultat. Blinding :

On ne calcule plus mod n mais r * mod n. L’effet de r est enlevé en le multipliant par son inverse. RSA est sensible à une attaque de type texte chiffré choisi : L’attaquant dispose d’un certain nombre de textes chiffrés et des textes clairs correspondants ce qui permet d’exploiter les propriétés de RSA pour aider, par la suite, la cryptanalyse.

Chapitre 8 : Certification La cryptographie asymétrique permet de garantir la confidentialité des messages échangés mais quid de l’intégrité (surtout si le canal de communication n’est pas sûr) ? Garantir l’intégrité d’un message c’est pouvoir détecter toute modification du message entre le moment

de son émission et le moment où il est reçu.

L’attaquant ne peut pas déchiffrer le message par contre, il peut le modifier et cette modification peut

avoir des conséquences désastreuses.

Pour assurer l’intégrité d’un message :

empreinte d’un message

message authentification code (MAC)

MAC est le résumé du message, elle a une taille fixe (128-160 bits).

Non collision : Deux documents légèrement différents doivent avoir un MAC différent.

Sens unique : Très difficile de construire un document qui a le même MAC qu’un autre document.

Si le message et son MAC ne correspondent plus, il y a sûrement eu manipulation du message Le MAC ne doit pas pouvoir être recalculé facilement par un attaquant.

Chiffrement par bloc : le dernier bloc est le MAC.

Data Authentication Algorithm (DAA) : MAC calculé à l’aide de DES

vecteur d’initialisation à 0

si nécessaire, on ajoute des 0 au bloc final

le message est chiffré avec DES en mode CBC

le bloc final est le MAC du message où les M bits de poids forts (16 ≤ M ≤ 64)

Mais méthode dépassée car MAC trop petit pour les besoins de sécurité actuels.

Page 32: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

32

Pour calculer un MAC, il nous faut une fonction d’hachage H: t → {0, 1}n.

facilement calculable

transforme une chaîne binaire de taille quelconque t en chaîne binaire de taille fixe n

H(x) = y

y est l’empreinte du message

x est la pré-image de y

collision est inévitable car t > n

On parle de collision entre x et x’ lorsque

x ≠ x’

H(x) = H(x’)

Propriétés d’une fonction de hachage

facilité de calcul

compression

Fonction de hachage à sens unique

résistance à la pré-image : étant donné y, il est difficile de trouver x, tel que H(x) = y et étant

donné y, 2n calculs de hash requis pour trouver x

résistant à la seconde pré-image : étant donné x, difficile de trouver x’ ≠ x, tel que H(x) = H(x’) et

étant donné x, 2n calculs de hash requis pour trouver x’

Fonction de hachage résistante aux collisions

résistance à la collision : difficile de trouver x et x’ tels que H(x) = H(x’)

résistant à la seconde pré-image : étant donné x, difficile de trouver x’ ≠ x, tel que H(x) = H(x’) et

étant donné x, 2n calculs de hash requis pour trouver x’

Attaque de Yuval (attaque des anniversaires)

Soit H: {0, 1}t → {0, 1}n une fonction de hachage.

o Input: A, message initial et Ã, message corrompu

o Output: A’ ≈ A et à ≈ Ã’, tels que H(A’) = H(Ã’)

1. Générer 2n/2 modifications mineures de A notées A’

o pour chacune, calculer H(A’)

o stocker dans une table T

2. Générer des Ã’, modifications mineures de A’ jusqu’à ce que H(Ã’) soit dans T -> collision

Construction d’une fonction de hachage : Construction de Merkle-Damgård

Se base sur une fonction de compression h: {0, 1}b x {0, 1}n → {0, 1}n.

Page 33: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

33

Application de la construction de Merkle-Damgård au calcul de H(M)

o padding éventuel à M pour avoir |M| = k * b bits

o découpage de M en k blocs de b bits

o itération de la fonction h (avec un vecteur d’initialisation)

Théorème (Merkle-Damgård) : Si h est résistante aux collisions, alors H l’est aussi.

MD5

64 rondes sur 4 blocs de 32 bits où 4 x 16 sous-rondes où F prend les valeurs :

F = (B & C) | (!B & D)

F = (D & B) | (!D & C)

F = B ⊕ C ⊕ D

F = C ⊕ (B | !D)

Plus considéré comme sûr aujourd'hui.

SHA-512 : Pas d'attaques connues pour le moment

Hash-Based Message Authentication Code (HMAC) : Les faiblesses trouvées dans les fonctions de

hachage ont mené à l’élaboration de techniques plus élaborées.

Signature

Pour le moment on peut assurer la confidentialité et l’intégrité mais on ne peut garantir son authenticité.

Authenticité : un message est dit authentique si son expéditeur est bien celui auquel on s’attend.

On peut garantir l’authenticité d’un message grâce à une signature numérique.

La signature permet de garantir l’intégrité du message et l’authenticité du message.

Propriétés d’une signature numérique

Authentique : le receveur est convaincu que le signataire a délibérément signé le document

Infalsifiable : le signataire, et personne d’autre, ne peut avoir signé délibérément le document

Non réutilisable : une partie du document ne peut pas être placée dans un autre document

Inaltérable : après signature, le document ne peut être altéré

Non répudiable : le signataire ne peut pas, par la suite, nier la signature du document

Il existe 3 formes de contrefaçon pour une signature

Page 34: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

34

Contrefaçon sélective : capacité de l’attaquant à créer une signature valide pour un message particulier

(ou une classe de messages) choisi au préalable par l’attaquant

Contrefaçon empirique : capacité de l’attaquant à créer une signature valide pour au moins un message

sans avoir de contrôle sur le message

Contrefaçon universelle : capacité de l’attaquer à créer une signature valide pour tout message

Protocole

Alice envoie son message, chiffré à l’arbitre : Alice → Arbitre: EKa(m)

L’arbitre vérifie le message d’Alice et rajoute une information de validation du message d’Alice (m, “reçu

de Alice”)

L’arbitre envoie le message d’Alice et la validation à Bob, en le chiffrant avec la clé de Bob

Arbitre → Bob: EKb(m, “reçu de Alice”)

Bob déchiffre le message et est certain que le message vient bien d’Alice : m reçu d’Alice

Il est possible que plusieurs émetteurs signent un message.

Signature de groupe : un membre du groupe peut signer, anonymement et pour tout le groupe, un

message. En cas de problème, le manager du groupe peut révéler l’identité du signataire.

Signature en anneau : idem signature de groupe mais l’identité du signataire ne peut jamais être révélée.

Infrastructure à clé publique

Problème : Hypothèse de base de la cryptographie asymétrique

Les clés publiques sont authentiques :

a. Bob publie sa clé publique sur son site web

b. Oscar s’introduit sur le site et remplace la clé publique de Bob par la sienne

Page 35: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

35

c. Alice veut envoyer un message, confidentiel, à Bob et utilise la clé publique du site web pour

chiffrer le message

d. Oscar peut déchiffrer le message adressé à Bob

Solution : utiliser un organisme de confiance pour la distribution des clés. 2 modèles sont envisagées :

Modèle PKI : utilisé par les organismes commerciaux et gouvernementaux et nécessite une autorité

centrale.

Réseau de confiance : modèle distribué et utilisé par PGP (Pretty Good Privacy).

PKI (Public Key Infrastructure) : ensemble d’infrastructures permettant de réaliser effectivement des

échanges sécurisés.

PKI ne distribue pas des clés mais des certificats qui contiennent

une clé publique

des données d’identité

o pour une personne: état civil, adresse, email, ...

o pour un serveur: nom de domaine, adresse IP, contact, ...

o une date de validité

un certificat est validé par une tierce personne : autorité de certification (CA)

PKI assure la gestion (création, distribution, péremption) des certificats.

Modèle PKI :

Alice génère ses clés publique et privée

Alice émet une requête au CA

Le CA valide la clé, authentifie Alice et génère un certificat

Le certificat est signé par le CA : certifie l’origine et l’intégrité du certificat

Le certificat est publié dans un annuaire public

Modèle hiérarchique

Chaque CA possède lui-même un certificat

La clé privée associée permet de signer les certificats émis par le CA

Ce certificat est signé par un autre CA : chaîne de certificats

Le dernier certificat de la chaîne est signé par lui-même : certificat auto-signé et racine

Fonctions de PKI :

émettre des certificats à des entités préalablement authentifiées

révoquer des certificats

maintenir des certificats

établir, publier et respecter des pratiques de certification pour établir un espace de confiance

rendre les certificats publics par le biais d’annuaires

éventuellement, gérer les clés et fournir les services d’archivage

Les acteurs d’une PKI :

Détenteur du certificat : possède la clé privée et le certificat numérique contient la clé publique

Page 36: INFO 0045-2 Cryptographie et sécurité informatique › ~s091678 › files › resume... · 2014-08-13 · 2 C.I.A. : Confidentiability + Availability + Integrity La confidentialité

36

Utilisateur du certificat : récupère le certificat et utilise la clé publique dans sa transaction avec le

détenteur

Autorité de certification (CA) : entité juridique et morale d’une PKI dont les rôles sont :

o génération des certificats

o émission et maintenance des informations sur les CRLs

o publication des certificats non encore expirés

o maintenance des archives des certificats expirés/révoqués

Autorité d’enregistrement (RA) : intermédiaire entre le détenteur de la clé et le CA

o vérifie les requêtes des utilisateurs et transmet les requêtes au CA

o chaque CA dispose d’une liste de RA accrédités

o un RA est connu du CA par son nom et sa clé publique

o le CA vérifie les informations du RA via sa signature

Dépôt/annuaire (repository) :

o distribue les certificats et les CRLs

o accepte les certificats et les CRLs d’autres CAs et les rend disponibles aux utilisateurs

Archive

o stockage à long terme d’informations utiles pour le CA

o permet le règlement de litige

Réseau de confiance : Modèle simple, sans autorité centrale où Chaque intervenant construit son réseau

de confiance :

confiance automatique à une personne donnant son certificat

confiance pleine à tout intervenant connu par un autre en qui on a pleinement confiance

Avantage : idéal pour un milieu informel

Problèmes :

La notion de confiance transitive ? : Peut-on être sûr que “les amis de mes amis sont mes amis”?

Inapplicable si le cadre juridique est important (judiciaire, gouvernementale)