mardi 23 août 2011

Wireless security at wave level

Des chercheurs du MIT ont de nouveau rendu justice à la réputation de leur établissement en proposant une solutions à un problème de sécurité qu'on pensait inhérent au WiFi.

Le problème, très simple, s'énonce comme suit : sachant qu'une communication wifi est, par définition même, écoutable par tous ceux à proximité, comment établir une session de communication sécurisée entre deux appareils sans faire intervenir de secret partagé ?

En effet, quelque soit la manière de s'y prendre, un secret doit être échangé d'une façon ou d'une autre entre les deux machine pour sécuriser la communication, or ce secret peut alors être intercepté et remplacé par un autre pour peu qu'une personne crapuleuse et bien préparée veille dans l'ombre : c'est ce qu'on appelle une attaque Man In The Middle. Et jusqu'ici on ne voyait pas comment les éviter totalement.

Pour trouver une solution, ces chercheurs sont revenus sur les présupposés des communications sans fil et se sont penché sur le très bas niveau : le transport des données à l'aide d'une onde.

Rapidement : pour transmettre des données sans fil, on génère une onde électromagnétique appelée porteuse que l'on va moduler en phase ou en amplitude (c'est-à-dire qu'on va faire varier une grandeur mesurable de l'onde comme sa force par exemple, pour les trois littéraires du fond) pour coder la suite de bits qui compose le message.

<dirty_stuff>
Pour ceux qui voudraient mettre les mains dans le cambouis, je parle des normes 802.11a et g, qui sont aujourd'hui les plus répandues, et utilisent des modulations en phase BPSK ou QPSK ou une modulation en amplitude-quadrature QAM. Généralement est aussi fait usage de multiplexage OFDM histoire d'aller un peu plus vite.
Si vous aimez un peu les maths ou le signal, n'hésitez pas à refaire quelques calculs. Ce n'est pas du tout insurmontable et c'est très intéressant (j'ai bien précisé au début de cette phrase qu'il fallait aimer les maths ou le signal).
</dirty_stuff>


L'idée géniale de nos chercheurs est alors la suivante.
On commence par transmettre la clef normalement. En imaginant à ce stade qu'un malveillant (que nous appellerons Alice pour des raison de vérité historique.) cherche à espionner la communication, il va intercepter la clef qu'on essaie d'envoyer et envoyer la sienne à la place à l'autre machine.
Dans un deuxième temps, on va alors envoyer une séquence de donnée associée avec la clef par une opération mathématique connue (typiquement une fonction de hachage bien choisie), mais encodée cette fois sous la forme d'impulsions radios; comme du code morse avec une antenne wifi.

Que va-t-il alors se passer ? Alice va devoir envoyer une séquence de données de la même manière si elle veut que celle-ci soit acceptée par l'autre machine. Seulement, cette séquence de donnée est différente de la notre (puisque nous n'avons pas les même clefs). En essayant d'envoyer deux séquences différentes en morse, certains silences de l'une vont donc être recouverts par l'autre et réciproquement. Et la machine avec laquelle on essaie d'entrer en contact va détecter une anomalie et rejeter la clef.
Éventuellement, Alice pourrait essayer de brouiller notre séquence avant de réémettre la sienne, mais pour une séquence suffisamment longue, la différence de durée de la transmission suffit à détecter une anomalie.

Évidemment il va encore falloir un peu de temps que tout ça soit testé (, breveté) et implémenté, mais l'idée est à la fois simple et géniale. Reste à vérifier qu'elle est efficace et ce sera tout bon !

EDIT : Un lien vers le papier avec plus de détails pour une éventuelle implémentation.

Aucun commentaire:

Enregistrer un commentaire

Avant de publier votre commentaire, lisez-le vous à voix haute. Si vous sonnez comme un connard supprimez-le.
Sinon, c'est probablement que vous l'avez mal lu.