Introduction à la
sécurité Informatique
Frédéric Gava (MCF) gava@u-pec.fr
LACL, bâtiment P2 du CMC Université de Paris-Est Créteil 61 avenue du Général de Gaulle
94010 Créteil cedex
Communications Sécurisées
3/47
Problèmes de sécurité (1)
Internet :
confidentialité anonymat
authentification (s’agit-il bien du site de ma banque ?)
Signature électronique
vérifiable authentique
non-répudiation (je n’ai jamais signé ce texte...)
Vote électronique
Chaque vote est confidentiel
On ne peut pas connaître des résultats partiels
Seuls les électeurs peuvent voter et une seule fois
4/47
Problèmes de sécurité (2)
Paiement par carte bleue
Est-ce qu’il s’agit d’une vraie carte ?
Est-ce que le montant débité sera égal au montant crédité ? Est-ce que le code secret est bien protégé ?
Décodeur, Vérification de l’abonné
Impossibilité de retransmettre les données décodées à une tierce personne
Mise à jour de l’abonnement
5/47
Problèmes de sécurité (3)
Porte monnaie électronique
Pas de création de fausse monnaie
Pas de création de faux porte-monnaie
Base de données sécurisée
Seules les personnes habilitées ont accès à la vue partielle à laquelle elles ont droit
Les données peuvent être échangées entre un médecin, un laboratoire, un hôpital
Mise à jour possible des données
6/47
Propriétés de la sécurité
Secret : Est-ce qu’un participant malhonnête peut connaître une donnée confidentielle ?
Authentification : À qui parle-t-on vraiment ?
Anonymat : Peut-on savoir qui communique avec qui ?
Équité : Lors de la signature d’un contrat, est-ce que l’un des signataires peut obtenir un avantage sur l’autre ?
Bon délais : le temps de faire la transaction est il résolu ou non ?
Non-répudiation: est-ce que je peux arrêter une transaction commerciale non résolue (finalement la non signature du contrat) ?
Comment faire ?
primitives cryptographiques
Quelques protocoles simples avec chiffrement (protocoles cryptographiques, on suppose un réseau non sûr)
La vérification de la sûreté des protocoles : l’analyse de logiciels critiques en général
Chiffrement et Cryptographie
8/47
Objectifs
Cryptologie :
Compression réduire la taille d’un message Chiffrement cacher le contenu d’un message
Hachage créer une empreinte unique d’un message Stéganographie cacher l’existence d’un message Signature prouver l’origine d’un message
Cryptographie et sécurité :
Confidentialité respect des autorisations d’accès (chiffrement) Intégrité preuve de non altération (hachage)
Authentification preuve d’identité (signature, déchiffrement) Non-répudiation preuve d’une transaction (signature)
Disponibilité accès légitime possible
9/47
Références
Crypto :
A. J. Menezes and P. C. van Oorschot and S. A. Vanstone.
Handbook of Applied Cryptography. CRC Press, 1996.
B. Schneier. Cryptographie appliquée. Vuibert, 1996.
Compression (non vue en cours)
K. Sayood. Introduction to data compression. Morgan Kaufmann publishers, 2000.
E. Incerti. Compression d’images, algorithmes et standards.
Vuibert, 2003.
10/47
Avertissement
La cryptographie est un sujet complexe
Les techniques sont justifiées mathématiquement
Cette partie de cours est destiné à des non- mathématiciens il ne donne donc qu’une vision partielle du sujet :
Attention aux fausses bonnes idées Attention à la mise en œuvre
Toujours suivre les recommandations des standards (normes IEEE, WWW etc.)
Faire appel aux spécialistes en case de doute
11/47
Histoire du chiffrement
A part le calcul numérique, l’informatique a été fortement stimulée par la sécurité de l’information.
Certains moyens de sécurisation de l’information ont été utilisés depuis les temps anciens, à savoir la stéganographie et la cryptographie.
La stéganographie étymologiquement veut dire écriture
cachée.
12/47
Premières méthodes
Dans ses Histoires, Hérodote (486-425 BC) raconte comment vers 440 BC on rasa la tête d'un esclave, puis on y tatoua un message qui devint invisible après que les cheveux aient repoussé. Le but était de lancer une révolte contre les Perses.
Énée le Tacticien (env. 350 BC) proposa de cacher un message dans un autre texte en changeant la hauteur des lettres ou en perçant des petits trous au dessus ou en dessous des lettres du message de couverture.
Cette technique, toujours utilisée au 17ème siècle, fut améliorée par Wilkins qui utilisa des encres invisibles pour inscrire ces petits points au lieu de faire des trous. Cette dernière idée fut reprise par les espions allemands durant les deux guerres mondiales.
13/47
Le chiffrement
Jules César (Caius Julius Caesar)
-100 -44
César utilisait un chiffrement de substitution qui décale les lettres de l’alphabet :
Un décalage de 1 transforme « IBM » en « HAL » (nom de l’ordinateur fou dans « 2001, a space odyssey » de Kubrick)
Un décalage de 7 transforme « MOT » en « TVA »
14/47
Histoire du chiffrement
1940, le chiffrement par machine, exemple Enigma.
Disque de chiffrement (Léone Battista Alberti en 1466)
Mais sujet à des analyses statiques
1940, le chiffrement par machine, exemple Enigma.
Début de la cryptanalyse.
15/47
La cryptographie et les machines
1939 Enigma : machine de chiffrement allemand
1940 La Bomba : machine électro-mécanique des Alliés pour le décryptage
16/47
Le décryptage
Ces 2 Polonais ont cassé la première Enigma militaire, développé les premiers éléments de la cryptanalyse moderne et construit une machine mécanique « Bomba » qu’ils ont utilisée pour ce décryptage. Turing améliora la machine et s’en servit au Bletchley Park (le centre britannique de l’interception et du décryptage pendant la guerre 1939-1945) pour systématiquement décoder les messages de l’aviation nazi
Marian Adam Rejewski
(1905 – 1980) Henryk Zygalski (1906-1978)
Alan Turing (1912-1954)
17/47
Stéganographie
(rappel : cacher l’existence d’un message ) le numérique offre de nouveaux supports :
bits de poids faible dans les images, le son bourrage et bits réservés dans les protocoles alignement dans les programmes compilés fins de clusters inutilisées
etc.
Combinable à la cryptographie Autres Applications :
tatouage numérique
vente de musiques/images sans DRM résistance aux transformations
compression avec perte
redimensionnement d’image
18/47
Exemples
Lettre de Georges Sand à Frédéric Chopin (ou Alfred de Muset suivant les rumeurs)
Je suis très émue de vous dire que j'ai bien compris l'autre soir que vous aviez toujours une envie folle de me faire danser. Je garde le souvenir de votre baiser et je voudrais bien que ce soit là une preuve que je puisse être aimée par vous. Je suis prête à vous montrer mon affection toute désintéressée et sans cal- cul, et si vous voulez me voir aussi vous dévoiler sans artifice mon âme toute nue, venez me faire une visite.
Nous causerons en amis, franchement.
Je vous prouverai que je suis la femme sincère, capable de vous offrir l'affection la plus profonde comme la plus étroite en amitié, en un mot la meilleure preuve dont vous puissiez rêver, puisque votre âme est libre. Pensez que la solitude où j'ha- bite est bien longue, bien dure et souvent difficile. Ainsi en y songeant j'ai l'âme grosse. Accourrez donc vite et venez me la faire oublier par l'amour où je veux me mettre.
Réponse :
Quand je mets à vos pieds un éternel hommage Voulez-vous qu'un instant je change de visage ? Vous avez capturé les sentiments d'un cour Que pour vous adorer forma le Créateur.
Je vous chéris, amour, et ma plume en délire Couche sur le papier ce que je n'ose dire.
Avec soin, de mes vers lisez les premiers mots Vous saurez quel remède apporter à mes maux.
Bien à vous, Eric Jarrigeon
Finalement:
Cette insigne faveur que votre cour réclame Nuit à ma renommée et répugne mon âme.
19/47
Exemples (2)
20/47
Exemples (3)
En ne gardant que les 2 bits les moins significatifs de chaque composante de couleur
21/47
Chiffrement aujourd’hui
Utilisation de problème algorithmique dure (en temps de calcul). Essentiellement basé sur les nombres premiers (divisible que par 1 et par eux-même)
Exemple, le chiffrement RSA :
Soit n = p*q avec p et q qui sont premiers Soit e qui est publique et un d qui sera privé
Chiffrement : pour tout x on calcul (x^e modulo n) Déchiffrement : pour tout y on calcul y^d modulo n
Casser le chiffrement revient à calculer un d tel que x=y^d où d=e^(-1) modulo φ(n)
Exemple, le chiffrement de Diffie-Hellman
étant donné A=g^a et B=g^b (a,b,g sont premiers) calculer DH(a,b)=g^(a*b)
22/47
Conséquences
Casser ce type de cryptage est très très très très très long, exponentiel en la taille de la clés
Exemple (taille de la clés, temps logarithmique) :
(512 bits, 58) (1024 bits, 80) (2048 bits, 111) (4096 bits, 149) (8192 bits, 156)
Environ 2^60 ans pour une clés de 1024 bits soit environ
11529215046 milliards d’années
23/47
Principe du chiffrement
Chiffrement symétrique : on utilise la même clés pour chiffrer et pour déchiffrer
Chiffrement asymétrique : on chiffre avec la clés publique et on déchiffre avec la clés privée
Chiffrement Écrivain
Clef
Bonjour !
Lecteur
Bonjour !
Déchiffrement Clef
ahkyerbjher
Chiffrement Écrivain
Clef publique
Bonjour !
Lecteur
Bonjour !
Déchiffrement Clef privée
ahkyerbjher
24/47
La signature électronique
Signature Frédéric
Clef
Frédéric
Nicole
Frédéric
Vérification Clef
ahkyerbjher
25/47
Déterminisme et pseudo-aléa
Suite aléatoire le prochain élément ne peut être prédit
Nonce: valeur « fraîche » en pratique : valeur aléatoire et suffisamment longue
Problème :
Tout algorithme est déterministe Générateur pseudo-aléatoire :
une graine
fonction random : gn →(gn +1,rn )
la suite (r0,r1,...) est indistinguable d’une suite aléatoire mais elle est reproductible si la valeur de g0 est connue attention aux cycles i.e. périodes (voir exemples)
nouveau problème (plus simple) : trouver une graine aléatoire
sources d’aléa : le matériel (frappes au clavier, bruit thermique, lancer des pièces (coins), etc.)
Collecté par l’OS sous Unix : /dev/random et /dev/urandom
Le générateur d’aléa et un composant critique (bug mozilla)
26/47
Ex. de fonctions génératrices
Historique, la méthode de Von Neumann. Exemple
Graine (seed)=1111 1111^2 = 1234321
chiffres du milieu : 3432. C'est la sortie du générateur.
3432^2 = 11778624
chiffres du milieu : 7786
Méthode de Fibonacci
avec x(0) et x(1) en entrée.
avec x(1)....x(k-1) en entrée.
Générateurs congruentiels linéaires (1948, Lehmer)
27/47
Fonctions génératrices (2)
La période = m (au max) au maximum de m Exemple :
RANDU (IBM) a=65539 c=0 m=2^31 (Biaisé) de Robert Sedgewick a=31415821 c=1 m=10^8 Standard a=16807 c=0 m=2^31-1
Exemple avec (a=25, c=16, m=256)
X0=10 la suite : 10, 10, 10, 10, 10, ...
X0=11 11, 35, 123, 19, 235, 3, 91, 243, 203, 227, 59, 211, 171, 195, 27, 179, 139, 163, 251, 147, 107, 131, ...
X0=12 12, 60, 236, 28, 204, 252, 172, 220, 140, 188, 108, 156, 76, 124, 44, 92, 12, 60, 236, 28, 204, 252, 172, ...
Bcp de gens ont fait ce type de générateur (C++, Unix etc.)
28/47
Autre méthodes
Simulation numérique (rapide) :
Exemples utilisant les congruences
Mersenne Twister
Cryptographie :
Yarrow Fortuna
Blum Blum Shub (mais lent) ISAAC
STRANDOM MUGI
Unix: /dev/random et /dev/urandom
29/47
Yarrow
J. Kelsey, B. Schneier, N. Ferguson (1999) pour Mac OS X mais remplacé par FORTUNA
30/47
Blum Blum Shub
avec M=p*q, le produit de deux grands nombres premiers p et q et la sortie de l'algorithme est le (ou les) bit le moins significatif de xn.
p et q, congruents à 3 modulo 4
En 1986 par Lenore Blum, Manuel Blum et Michael Shub
Protocoles cryptographiques
32/47
Objectifs et applications
Objectifs :
Secret
Authentification d'un message (ou d'une entité) Fraîcheur (anti-rejeu)
Accord non répudiable Équité
Anonymat
Applications :
Communication secrète (SSL de https, SSH, GSM,...) Authentification d'agents (Login, OTP, GSM,...)
Signature de contrats électroniques Paiement par carte à puce
Paiement en ligne Paiement hors-ligne TV payante
Vote électronique
33/47
Définitions
Secret : Un protocole assure le secret d'une donnée s si un intrus ne peut pas déduire s
Authentification de message : un protocole permet à un agent A d'authentifier un message m s'il peut connaître de façon sûre l'émetteur de m
Authentification d'entité : Un protocole permet à un agent A d'authentifier un agent B si à la fin de la session réussie, A a la garantie qu'il a bien réalisé le protocole avec B
Fraîcheur : Pendant une session d'un protocole, une donnée
est fraîche si l'on peut garantir qu'elle n'a pas été utilisée
dans une autre session par un des acteurs
34/47
Quelques notations
Soient :
M, M1, et M2 des messages K une clé
A et B des agents
I : l’Intru ou Invader (l’attaquant)
On notera:
M1.M2 ou M1,M2 : le message constitué de M1 et M2 {M}K : M est chiffré par avec la clé K
A envoie le message M à B A B : M
I envoie le message M à B en se faisant passer pour A I(A) -> B : M :
35/47
Le modèle (Dolev-Yao)
Crypto parfaite : {M}
Kn’est pas déchiffrable pour celui qui n’a pas la clé K
Généralement, on suppose un attaquant sur le réseau tel que :
il est capable de lire tout les messages capable d’introduire des messages
capable de décomposer/recomposer des messages
Si l’attaquant connaît M et K alors il peut mettre sur le réseau {M}K
Si l’attaquant lit {A, NA} alors il peut avoir {A} et {NA}
On lui suppose une « connaissance » initial (nom des
agents A, B, leurs clés publiques etc.)
36/47
Chiffrement
Chiffrement symétrique :
K
AB= K
AB-1Bon rapport Volume données à chiffrer / Temps de chiffrement
Une clé par couple d'acteur
Chiffrement asymétrique
K
Ala clé publique de A, K
A-1la clé privée de A {{M}
K}
K-1= {{M}
K-1}
K= M
Inutilisable pour le chiffrement de gros volumes de données
Deux clés par acteur
37/47
Principes de bases des protocoles
Envoi d'un secret de A à B (premier essai) A B : {s}
KBSi l'on considère un chiffrement parfait, seul B peut lire s Mais de qui vient s ?
Deuxième essai
A B : {s.A}KB
Et que fait un intrus dans ces conditions ? I(A) -> B : {sI.A}KB
Troisième essai
A B : {s.A.{s}K-1A}KB
B authentifie s comme étant émis par A
Mais... I peut faire accepter de nouveau s par rejeu
38/47
suite
A B : {s.A.{s}K-1A}KB
I(A) B : {s.A.{s}K-1A}KB
quatrième essai
B A : {A.B.N
1}
KA« challenge de B » A B : {s.A.B.N
1}
KBréponse de A au challenge de B
{s.A.B.N
1}
KBfrais
B authentifie s comme étant émis par A
B authentifie A au cours de la session
39/47
Fonctions injective de hachage (SHA, MD5 ...) Hash
|hash(d)| << |d|
Statistiquement:
pour d1, d2 : hash(d1) ≠ hash(d2) si d1 ≠ d2
collisions théoriquement possibles (condensé sur n bits probabilité de collision = 1/2n
impossible à deviner
bon hash: si d1 ≈ d2 alors surtout pas hash(d1) ≈ hash(d2)
hash
-1(d) est très difficile (impossible) à calculer
40/47
Contrôle d’intégrité
Toute erreur de copie est détectée
OK A = A’ et h(A)’ = h(A’)
Non A ≠ A’ ou h(A) ≠ h(A)’ et alors h(A)’ ≠ h(A’)
41/47
Application
Gestion des mots de passe sous Unix:
même empreinte passwd = passwd’
le mot de passe n’est jamais stocké
mots de passe identiques empreintes di ff érentes
42/47
Échange de secret
On peut utiliser la clef k=12897897
La pièce qui l’accuse est {chandelier}12897897
Ah ah, la clés est 12897897 donc peux déchiffrer et j’accuse le Colonel Moutarde d’avoir tué Madame Rose avec un chandelier !
Maître Alice Maître Bob
Procureur
43/47
Chiffrement commutatif
{chandelier}ClefAlice
{{chandelier} CleAlice}ClefBob {chandelier}ClefBob
Danger, le procureur peut lire la donnée confidentielle si l’intercepte la communication
{chandelier}ClefAlice
{{chandelier} CleAlice}ClefProc {chandelier}ClefProc
Mauvaise idée : si on peut chiffrer et déchiffrer dans n’importe quel ordre…
44/47
Clef secrète partagée
une seule clef de chiffrement par communication, échangée au préalable
n participants n
2clefs
problème pour l’échange des clefs
symétrique ↔ chiffrement et déchiffrement
identiques
45/47
Application: téléphone rouge
Message M[ ] suite de m bits Clef K[ ] suite de k bits
Chiffrement : C[i]=M[i] ⊕ K[i%k] pour 0 ≤ i< m
Déchiffrement : M’[i] = C[i] ⊕ K[i%k] pour 0 ≤ i<m Inviolable si la clef est :
aléatoire
à usage unique
de la longueur du message (k=m)
Utilisé entre les États-unis et l’Union soviétique (les
clefs voyageaient par valises diplomatiques…)
46/47
Paiement par CB
1) L’acheteur introduit sa carte
2) Le commerçant saisit le montant m de la transaction sur le terminal.
3) Le terminal authentifie la carte
4) L’acheteur donne son code à la carte
Si m dépasse 100 Euros (dans seulement 20% des cas) : le terminal demande l’authentification de la carte à la banque La banque donne l’autorisation.
47/47
Clef publique (confidentialité)
Chiffré avec PubB déchiffrable avec PrivB uniquement
N’importe qui peut communiquer confidentiellement avec Bob
L’espion connaît PubB mais ne peut pas déchiffrer
48/47
Clef publique (authentification)
(ou la non-répudiation)
Chiffré avec PrivA déchiffrable avec PubA uniquement (Alice peut s’authentifier auprès de n’importe qui)
L’espion peut déchiffrer et authentifier Alice
Combinable avec la technique précédente
49/47
Publique ou partagée
Avantages:
moins de clefs nécessaires (n contre n
2) pas de secret partagé (confiance)
confidentialité, authentification et non-répudiation
Inconvénients:
beaucoup plus lent (facteur ≈ 1000)
il faut authentifier les clefs publiques (certificats) Clefs de sessions :
clef secrète aléatoire, jamais réutilisée (fresh Nonce) l´échangée par cryptographie à clef publique
50/47
Signature
Avantages sur le chiffrement du texte complet
empreinte plus petite chiffrement plus rapide contrôle d’intégrité
condensé authentifié
N’importe qui peut vérifier l’authenticité
51/47
Certificat (norme X.509)
les autorités de certifications se certifient entre elles
leurs certificats sont largement distribués (navigateurs, OS, etc.) niveau de certification ↔ qualité des vérifications (et de prix …)
52/47
Authentification par challenge
Sans mot de passe
53/47
Des attaques (1)
La force brute :
recherche de toutes les possibilités (ex : toutes les clefs) la combinatoire peut rendre cette attaque impraticable
DES : clefs de 56 bits moins d’un jour (> 20×109 clefs/s)
Blowfish : clef de 448 bits 276 353 796 896 297 200 451 485 844 334 398 205 983 651 385 537 892 936 476 470 147 936 137 126 911 464 488 353 750 715 971 452 747 954 594 864 143 166 071 siècles
plus des algos de crypto: +1 bits temps de calcul×2
Attaque par dictionnaire :
recherche uniquement des clefs probables utilisation d’un dictionnaire (liste de mots)
combinaisons et transformations (mot de passe m0T 2 p4Ss3 !)
un mot de passe ne doit jamais être un mot
54/47
Contre-mesures
Exploiter la combinatoire quand c’est possible
clefs plus longues
clefs plus variées (majuscules, minuscules, chiffres, ponctuations)
Augmenter le coût de l’échec :
cartes bancaires blocage après trois échecs codes PIN des mobiles idem
délai après un login erroné de plus en plus long
Jamais rien de prévisible
pas de mot existant login, ”password”, 1234, . . .
attention à l’ingénierie sociale date de naissance, nom du chien, …
« 1Svqcdl’H » « une souris verte qui courrait dans l’herbe »
55/47
Attaques (2)
Attaques mathématiques :
Cryptanalyse statistique
Recherche de propriétés statistiques du chiffré, liées à celle du texte en clair régularités des chiffrements mise en œuvre
Cryptanalyse linéaires
Recherche d’approximations des fonctions de chiffrement par des fonctions affines
Attaques sur DES
Cryptanalyse différentielle
recherche de comportements non aléatoires par analyse de la propagation de perturbations du texte en clair dans le texte chiffré
attaques sur Blowfish
56/47
Attaques (3)
Attaques par canaux auxiliaires
Exploitation de caractéristiques de l’implantation d’un système cryptographique logicielle ou matérielle
temps d’exécutions, consommation électrique, chauffe, émissions électromagnétiques, prédiction de branchement, . . .
Algorithme de Monte-Carlo ou Las Vegas (utilisé le « coup de chance »)
Attaque temporelle de RSA dans OpenSSL :
déchiffrement de g calcul de gd % n plus long si g < q que si g > q (n = q ×p)
optimisations des algorithmes d’exponentiation modulaire
q approchable par essais successifs en partant du bit de poids fort clef privée de taille k 1000×k essais (1024 bits en 2h)
57/47
Masquage de RSA
RSA blinding
Protection contre les attaques temporelles
Sans supprimer les optimisations d’algorithmes Sans introduire de nouveaux canaux auxiliaires Principe
déchiffrement de x = re ×g % n (r aléatoire) extraction du résultats par xe/r % n
le déroulement du calcul ne dépend plus de g surcoût de 2%
Technique générale en cryptographie pour supprimer les
canaux auxiliaires
58/47
Attaque (4)
par choix du texte en clair
Alice veut faire signer M par Bob
génère r aléatoire et calcule M’= (M×r )e % n Demande à Bob de signer M’ (message anodin) Bob renvoie S’= (M’)d % n
Alice calcule S = S’/r % n signé de M (facile à calculer)
en pratique nécessite aussi une attaque sur un hachage
ne jamais signer un texte choisi par un tiers (introduction d’un nonce)
Attaque de RSA en mode signature
59/47
Pb d’un protocole à clés publique
Protocole d’authentification (prouvé l’un et l’autre leurs identités respectives dans un réseau non sûr) inventé par Needham-Schroeder en 1978
Longtemps utilisé par les CB
Possède une faille terrible mais heureusement résolue
Cette attaque est « man in the middle »
Il a fallu 17 ans pour l’imaginer et ce rendre compte
que l’étude des protocoles cryptographiques est un
vrai challenge (pas un protocole au monde n’est à
100% sûr …)
60/47
Le protocole d’origine
On note :
A pour Alice, B pour Bob et P pour le méchant procureur
NA la signature électronique d’Alice (idem pour Bob et le procureur)
ClésAlice pour la clés publique de chiffrement de Alice (idem pour Bob et le procureur)
Le fonctionnement :
Questions :
Est-ce que NB est secret entre Alice et Bob ?
Lorsque Bob reçoit le message de Alice, est-ce que le message provient réellement d’Alice ?
Voyons comment biaiser le système, l’attaque « man in the middle »
{A, NA}ClefBob {NA, NB}ClefAlice
{NB}ClefBob
61/47
Traduction
62/47
L’attaque (1)
{A,NA}ClefProc {A,NA}ClefBob
{NA,NB}ClefAlice {NA,NB}ClefAlice
{NB}ClefProc {NB}ClefBob
63/47
L’attaque (2)
En fait, Maître Alice souhaite parler au Procureur et celui-ci va se faire passer pour Alice auprès de Maître Bob « à l’insu de son plein grès ». Il peut ensuite lui soutirer ce qu’il désire…gnark gnark…
Une solution ?
Oui, il faut rajouter le nom du destinateur (Bob)
dans la réponse du destinateur
64/47
Attaques (5)
rejeu
renvoi de données interceptées auparavant
injection de paquets ARP (68 octets) dans WEP
Contournement (attaque de l’infrastructure de la cryptographie)
non effacement du texte en clair, compromission de la machine, ingénierie inverse, ingénierie sociale, . . .
clefs faibles affaiblissent la cryptographie, ou devinables
certaines clefs DSA de OpenSSL sur Debian/Linux entre 2006 (v.0.9.8c-1) et 2008 (v.0.9.8g-9), affaiblissement des S-boxes (DES) de Blowfish sur un nombre réduit de tours
générateur d’aléas
sa faiblesse peut entraîner des failles
cassage de DSA dans le J2SDK, clefs faibles OpenSSL, contournement des canaris (stack cookies) dans XP-SP2
biais (propriétés imprévues du crypto-système)
factorisation de n = p ×q si |p| ≈ |q|
65/47
Sûreté et sécurité
Des tests ne suffisent pas car on peut ne pas tester un cas sensible. Penser au :
régulateurs de vitesse des voitures régulateurs cardiaques
Ariane 5 (explosion pour le vol inaugurale le 11/12/2002 à cause d’un bug logiciel et d’une faille dans le protocole)
Il faut donc des preuves formelles pour la sûreté et la sécurité des logiciels (et donc des vies humaines)
Très difficile de prouver toutes les propriétés
Impossible de savoir s’il l’on a pas oublié une dernière propriété
Même si l’on sait très bien crypté, on ne sait pas encore très bien dire (on connaît déjà des exemples) si on ne peut pas casser le chiffrement grâce à plusieurs messages dans le protocole…
Exemples :
Le système de protection par zones des DVD : 1 semaine pour trouver des kit tout fait de cassage sur Internet
Les protocoles WIFI : on trouve des logiciels tout fait sur Internet qui vous donne la clés du réseau…
66/47
Futur ?
La recherche en Informatique actuel s’intéresse de très près à ce type de problèmes avec :
des logiciels de preuves formelles (automatique ou assisté par le programmeur pour les cas difficiles
La définition de nouveau protocole et chiffrement de plus en plus sophistiqué et donc de plus en plus dure à casser
Elle ne pourra jamais (mais qui sait ?) contrecarrer les pirates informatiques qui utilisent :
la force pour obtenir les mots de passes
la bêtise des gens à donner des mots de passes trop simples (nom du chat, date de naissance, etc.)
le baratin pour tromper les gens (j’suis inspecteur des impôts, donnez moi … pour que je puisse bien vérifier vos comptes)