Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Introduction à la sécurité Informatique
Frédéric Gava (MCF)[email protected]
LACL, bâtiment P2 du CMCUniversité de Paris-Est Créteil
61 avenue du Général de Gaulle94010 Créteil cedex
3/47
Problèmes de sécurité (1)Internet :
confidentialitéanonymatauthentification (s’agit-il bien du site de ma banque ?)
Signature électroniquevérifiableauthentiquenon-répudiation (je n’ai jamais signé ce texte...)
Vote électroniqueChaque vote est confidentielOn ne peut pas connaître des résultats partielsSeuls 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 électroniquePas de création de fausse monnaie
Pas de création de faux porte-monnaie
Base de données sécuriséeSeules 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 cryptographiquesQuelques 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
8/47
ObjectifsCryptologie :
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érencesCrypto :
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 Kaufmannpublishers, 2000.E. Incerti. Compression d’images, algorithmes et standards. Vuibert, 2003.
10/47
AvertissementLa 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 chiffrement1940, le chiffrement par machine, exemple Enigma.
Disque de chiffrement (Léone Battista Alberti en 1466)
Mais sujet à des analyses statiques1940, le chiffrement par machine, exemple Enigma.
Début de la cryptanalyse.
15/47
La cryptographieet 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 sonbourrage et bits réservés dans les protocolesalignement dans les programmes compilésfins de clusters inutiliséesetc.
Combinable à la cryptographieAutres Applications :
tatouage numériquevente de musiques/images sans DRMrésistance aux transformationscompression avec perteredimensionnement d’image
18/47
ExemplesLettre de Georges Sand à Frédéric Chopin (ou Alfred de Muset suivant les rumeurs)
Je suis très émue de vous dire que j'aibien compris l'autre soir que vous avieztoujours une envie folle de me fairedanser. Je garde le souvenir de votrebaiser et je voudrais bien que ce soitlà une preuve que je puisse être aiméepar vous. Je suis prête à vous montrer monaffection toute désintéressée et sans cal-cul, et si vous voulez me voir aussivous dévoiler sans artifice mon âmetoute nue, venez me faire une visite.Nous causerons en amis, franchement.Je vous prouverai que je suis la femmesincère, capable de vous offrir l'affectionla plus profonde comme la plus étroiteen amitié, en un mot la meilleure preuvedont vous puissiez rêver, puisque votreâme est libre. Pensez que la solitude où j'ha-bite est bien longue, bien dure et souventdifficile. Ainsi en y songeant j'ai l'âmegrosse. Accourrez donc vite et venez me lafaire oublier par l'amour où je veux memettre.
Réponse :Quand je mets à vos pieds un éternel hommageVoulez-vous qu'un instant je change de visage ?Vous avez capturé les sentiments d'un courQue pour vous adorer forma le Créateur.Je vous chéris, amour, et ma plume en délireCouche sur le papier ce que je n'ose dire.Avec soin, de mes vers lisez les premiers motsVous saurez quel remède apporter à mes maux.Bien à vous, Eric Jarrigeon
Finalement:Cette insigne faveur que votre cour réclameNuit à ma renommée et répugne mon âme.
20/47
Exemples (3)
En ne gardant que les 2 bits les moinssignificatifs de chaque composantede couleur
21/47
Chiffrement aujourd’huiUtilisation 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 premiersSoit 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 nCasser 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ésExemple (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 chiffrementChiffrement 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
Clefahkyerbjher
ChiffrementÉcrivain
Clef publique
Bonjour !
Lecteur
Bonjour !
Déchiffrement
Clef privée
ahkyerbjher
24/47
La signature électronique
SignatureFrédéric
Clef
Frédéric
Nicole
Frédéric
Vérification
Clefahkyerbjher
25/47
Déterminisme et pseudo-aléaSuite aléatoire � le prochain élément ne peut être préditNonce: valeur « fraîche » � en pratique : valeur aléatoire et suffisamment longueProblème :
Tout algorithme est déterministeGénérateur pseudo-aléatoire :
une grainefonction random : gn→(gn +1,rn )la suite (r0,r1,...) est indistinguable d’une suite aléatoiremais elle est reproductible si la valeur de g0 est connueattention aux cycles i.e. périodes (voir exemples)
nouveau problème (plus simple) : trouver une graine aléatoiresources 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ératricesHistorique, 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 Fibonacciavec 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éthodesSimulation numérique (rapide) :
Exemples utilisant les congruences
Mersenne Twister
Cryptographie :YarrowFortunaBlum Blum Shub (mais lent)ISAACSTRANDOMMUGI
Unix: /dev/random et /dev/urandom
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
32/47
Objectifs et applicationsObjectifs :
SecretAuthentification 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 électroniquesPaiement par carte à pucePaiement en lignePaiement hors-ligneTV payanteVote électronique
33/47
DéfinitionsSecret : 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 notationsSoient :
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}K n’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 messagescapable d’introduire des messagescapable 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
ChiffrementChiffrement symétrique :
KAB = KAB-1
Bon rapport Volume données à chiffrer / Temps de chiffrement
Une clé par couple d'acteur
Chiffrement asymétriqueKA la clé publique de A, KA
-1 la 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 protocolesEnvoi d'un secret de A à B (premier essai)
A � B : {s}KB
Si l'on considère un chiffrement parfait, seul B peut lire s
Mais de qui vient s ?
Deuxième essaiA � B : {s.A}KB
Et que fait un intrus dans ces conditions ?
I(A) -> B : {sI.A}KB
Troisième essaiA � 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
suiteA � B : {s.A.{s}K-1A}KB
I(A) � B : {s.A.{s}K-1A}KB
quatrième essai
B � A : {A.B.N1}KA « challenge de B »
A�B : {s.A.B.N1}KB réponse de A au challenge de B
{s.A.B.N1}KB frais
B authentifie s comme étant émis par A
B authentifie A au cours de la session
39/47
HashFonctions injective de hachage (SHA, MD5 ...)
|hash(d)| << |d|Statistiquement:
pour d1, d2 : hash(d1) ≠ hash(d2) si d1 ≠ d2collisions théoriquement possibles (condensé sur n bits �probabilité de collision = 1/2n
impossible à devinerbon 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éeOK � A = A’ et h(A)’ = h(A’)
Non � A ≠ A’ ou h(A) ≠ h(A)’ et alors h(A)’ ≠ h(A’)
41/47
ApplicationGestion des mots de passe sous Unix:
même empreinte � passwd = passwd’le mot de passe n’est jamais stockémots de passe identiques � empreintes différentes
42/47
Échange de secretOn 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éeune seule clef de chiffrement par communication,
échangée au préalable
n participants � n2 clefs
problème pour l’échange des clefs
symétrique ↔ chiffrement et déchiffrement identiques
45/47
Application: téléphone rougeMessage 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 PrivBuniquement
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éeAvantages:
moins de clefs nécessaires (n contre n2)
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 completempreinte 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 ellesleurs certificats sont largement distribués (navigateurs, OS, etc.) niveau de certification ↔ qualité des vérifications (et de prix …)
53/47
Des attaques (1)La force brute :
recherche de toutes les possibilités (ex : toutes les clefs)
la combinatoire peut rendre cette attaque impraticableDES : 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-mesuresExploiter 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évisiblepas 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 statistiqueRecherche de propriétés statistiques du chiffré, liées à celle du texte en clairrégularités des chiffrements mise en œuvre
Cryptanalyse linéairesRecherche d’approximations des fonctions de chiffrement par des fonctions affinesAttaques sur DES
Cryptanalyse différentiellerecherche 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 auxiliairesExploitation de caractéristiques de l’implantation d’un systèmecryptographique logicielle ou matérielletemps 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 % nplus long si g < q que si g > q (n = q ×p)optimisations des algorithmes d’exponentiation modulaireq approchable par essais successifs en partant du bit de poids fortclef privée de taille k � 1000×k essais (1024 bits en 2h)
57/47
Masquage de RSARSA blinding
Protection contre les attaques temporellesSans supprimer les optimisations d’algorithmesSans introduire de nouveaux canaux auxiliairesPrincipe
déchiffrement de x = re ×g % n (r aléatoire)extraction du résultats par xe/r % nle déroulement du calcul ne dépend plus de gsurcoût de 2%
Technique générale en cryptographie pour supprimer les canaux auxiliaires
58/47
Attaque (4)
par choix du texte en clairAlice veut faire signer M par Bobgénère r aléatoire et calcule M’= (M×r )e % nDemande à Bob de signer M’ (message anodin)Bob renvoie S’= (M’)d % nAlice calcule S = S’/r % n � signé de M (facile à calculer)
en pratique � nécessite aussi une attaque sur un hachagene 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 publiqueProtocole d’authentification (prouvé l’un et l’autre
leurs identités respectives dans un réseau non sûr) inventé par Needham-Schroeder en 1978Longtemps utilisé par les CBPossède une faille terrible mais heureusement
résolueCette 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’origineOn note :
A pour Alice, B pour Bob et P pour le méchant procureurNA 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
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 auparavantinjection 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 devinablescertaines 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)