Introduction à la sécurité Informatique - Frédéric Gava (MCF)

La page est créée Xavier Olivier
 
CONTINUER À LIRE
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
Communications Sécurisées
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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

                                                              3/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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

                                                                4/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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

                                                             5/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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
                                                                                6/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
Chiffrement et Cryptographie
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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
                                                                8/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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.

                                                           9/47
Introduction à la sécurité Informatique - Frédéric Gava (MCF)
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

                                                10/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.
                                                  11/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.

                                                                     12/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 »

                                                                     13/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.
                                              14/47
La cryptographie
            et les machines
1939 Enigma : machine de   1940 La Bomba : machine
chiffrement allemand       électro-mécanique des Alliés
                           pour le décryptage

                                                     15/47
Le décryptage

                                                           Alan Turing (1912-1954)
Marian Adam Rejewski
(1905 – 1980)                  Henryk Zygalski (1906-1978)

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
                                                                                 16/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                       17/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
                                                                                    Finalement:
     affection toute désintéressée et sans cal-                                           Cette insigne faveur que votre cour réclame
     cul, et si vous voulez me voir aussi                                                 Nuit à ma renommée et répugne mon âme.
     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

                                                                                                                                        18/47
Exemples (2)

               19/47
Exemples (3)
En ne gardant que les 2 bits les moins
significatifs de chaque composante
de couleur

                                         20/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)
                                                            21/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

                                                         22/47
Principe du chiffrement
   Chiffrement symétrique : on utilise la même clés pour
  chiffrer et pour déchiffrer
  Bonjour !                                                 Bonjour !
                              ahkyerbjher
                  Clef                          Clef

Écrivain      Chiffrement                   Déchiffrement         Lecteur
   Chiffrement asymétrique : on chiffre avec la clés publique
  et on déchiffre avec la clés privée
  Bonjour !                   ahkyerbjher                   Bonjour !
              Clef publique                  Clef privée

Écrivain      Chiffrement                   Déchiffrement         Lecteur
                                                                        23/47
La signature électronique

 Frédéric                                            Frédéric
                        ahkyerbjher
              Clef                       Clef

Frédéric    Signature                 Vérification         Nicole

                                                                24/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)
                                                                     25/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)

                                                          26/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.)
                                                               27/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       28/47
Yarrow
J. Kelsey, B. Schneier, N. Ferguson (1999)
pour Mac OS X mais remplacé par FORTUNA

                                             29/47
Blum Blum Shub
En 1986 par Lenore Blum, Manuel Blum et Michael 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

                                                       30/47
Protocoles cryptographiques
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
                                                        32/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
                                                           33/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
    AB:M
  I envoie le message M à B en se faisant passer pour A
    I(A) -> B : M :
                                                          34/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 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.)
                                                                35/47
Chiffrement
Chiffrement symétrique :
  KAB = KAB-1
 Bon rapport Volume données à chiffrer / Temps de
 chiffrement
  Une clé par couple d'acteur
Chiffrement asymétrique
 KA 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                             36/47
Principes de bases des protocoles
 Envoi 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 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
                                                                  37/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.N1}KA        « challenge de B »
   AB : {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

                                           38/47
Hash
Fonctions injective de hachage (SHA, MD5 ...)
   |hash(d)|
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’)

                                                      40/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 différentes
                                              41/47
Échange de secret
Maître Alice                                           Maître Bob
               On peut utiliser la clef k=12897897

               La pièce qui l’accuse est {chandelier}12897897

 Procureur

               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 !
                                                                42/47
Chiffrement commutatif
 Mauvaise idée : si on peut chiffrer et déchiffrer dans n’importe quel ordre…
                      {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
                                                                                   43/47
Clef secrète partagée
 une 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
                                              44/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
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.

                                                                   46/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
                                              47/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
                                             48/47
Publique ou partagée
Avantages:
  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
                                                               49/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é
                                                    50/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 …)

                                                                      51/47
Authentification par challenge
Sans mot de passe

                               52/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
                                                                       53/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 »
                                                                    54/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

                                                                                  55/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)

                                                                        56/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

                                                     57/47
Attaque (4)
Attaque de RSA en mode signature

  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)

                                                                   58/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 …)
                                                   59/47
Le
On note :
          protocole d’origine
   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 :
                       {A, NA}ClefBob
                       {NA, NB}ClefAlice

                        {NB}ClefBob
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 » 60/47
Traduction

             61/47
L’attaque (1)
 {A,NA}ClefProc     {A,NA}ClefBob

{NA,NB}ClefAlice   {NA,NB}ClefAlice

 {NB}ClefProc       {NB}ClefBob
                                      62/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

                                                  63/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|                              64/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…
                                                                                               65/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)
                                                               66/47
Vous pouvez aussi lire