Concevoir et évaluer un système sûr

Modèles de menace et modèles d'attaquant

Dire d'un système qu'il est « sûr » ne veut rien dire tant qu'on n'a pas répondu à une question : sûr contre qui, et contre quoi ? Un coffre résistant à un cambrioleur amateur ne l'est pas forcément face à un service d'espionnage. Évaluer la sécurité exige donc de fixer d'abord un modèle de menace.

Le modèle de menace

Le modèle de menace décrit contre qui l'on se protège et ce que cet adversaire est capable de faire. Il précise :

  • les ressources de l'attaquant (un curieux ? une entreprise ? un État ?) ;
  • ses objectifs (lire un message ? usurper une identité ? modifier des données ?) ;
  • ses capacités d'accès au système.

Sans ce cadre, la question « est-ce sûr ? » n'a pas de réponse.

Attaquant passif ou actif

Une première distinction fondamentale :

  • un attaquant passif se contente d'écouter le canal ; il observe sans rien modifier ;
  • un attaquant actif peut modifier, injecter, supprimer ou rejouer des messages. C'est le cas de l'homme du milieu (man in the middle), qui s'intercale entre deux correspondants et peut se faire passer pour chacun auprès de l'autre.

Un système peut résister à l'écoute passive tout en étant vulnérable à un attaquant actif.

Les modèles d'attaque classiques

Selon ce que l'attaquant peut obtenir ou provoquer, on classe les attaques ainsi :

+---------------------------+------------------------------------------+
| Modele d'attaque          | Ce que l'attaquant possede / peut faire  |
+---------------------------+------------------------------------------+
| Texte chiffre seul        | Il n'a que des messages chiffres.        |
| (ciphertext-only)         | Le cas le plus difficile pour lui.       |
+---------------------------+------------------------------------------+
| Texte clair connu         | Il connait des couples (clair, chiffre)  |
| (known-plaintext)         | qu'il n'a pas choisis.                    |
+---------------------------+------------------------------------------+
| Texte clair choisi        | Il peut faire chiffrer des messages      |
| (chosen-plaintext)        | de son choix et voir le resultat.        |
+---------------------------+------------------------------------------+
| Texte chiffre choisi      | Il peut faire dechiffrer des chiffres    |
| (chosen-ciphertext)       | de son choix (sauf la cible).            |
+---------------------------+------------------------------------------+

Plus on descend dans ce tableau, plus l'attaquant est puissant. Un chiffrement moderne est exigé de résister même au modèle le plus fort (texte chiffré choisi) : c'est le niveau de garantie attendu aujourd'hui.

Pourquoi fixer le modèle

On ne peut pas évaluer la sécurité dans l'absolu. La même primitive peut être sûre dans un modèle et cassée dans un autre. Fixer le modèle permet de :

  • rendre l'analyse rigoureuse : on sait ce qu'on prétend garantir ;
  • éviter les fausses promesses : « sûr » sans modèle est une phrase creuse ;
  • comparer honnêtement deux systèmes sur le même terrain.

En résumé

Un système n'est jamais « sûr » dans l'absolu : il l'est contre un adversaire donné. Le modèle de menace fixe contre qui l'on se protège et ce que l'attaquant peut faire — passif (écoute) ou actif (modification, homme du milieu). Les modèles d'attaque se classent du texte chiffré seul au texte chiffré choisi, du plus faible au plus fort. On ne peut évaluer la sécurité qu'en fixant d'abord ce cadre.