Ouvrir le menu principal

MacGeneration

Recherche

Des lecteurs d'empreintes Windows Hello piratés de trois manières différentes

Pierre Dandumont

Wednesday 22 November 2023 à 16:30 • 5

Matériel

Depuis quelques années, les Mac et les PC intègrent de plus en plus souvent des lecteurs d'empreintes. Et dans les PC, si les premiers essais se basaient sur des logiciels spécialisés — avec tous les problèmes qui peuvent en découler —, les fabricants passent maintenant généralement par Windows Hello, une couche de sécurité intégrée à Windows. Ce qui n'empêche visiblement pas les attaques de malandrins.

Des chercheurs ont en effet trouvé des failles dans trois PC portables équipés d'un lecteur d'empreintes, et c'est le MORSE (Microsoft’s Offensive Research and Security Engineering, soit Microsoft) qui les avait missionnés. Pour commencer, il faut comprendre le fonctionnement : chez Microsoft, les données sont stockées dans la puce du lecteur d'empreinte, ce que la société nomme « Match on Chip ». La détection s'effectue donc dans la puce, et l'ordinateur (Windows dans le cas présent) ne peut pas accéder aux empreintes. Cette solution évite de laisser traîner ses empreintes, mais nécessite une communication sécurisée entre le lecteur et l'OS, qui passe (en théorie, nous le verrons) par le protocole SDCP (Secure Device Connection Protocol). Ce lien chiffré emploie des clés qui sont liées à l'EFI de l'ordinateur et stockées dans une zone qui ne peut pas être modifiée. Cette solution n'empêche pas nécessairement la modification du firmware (ou l'intégration d'un faux capteur) mais permet de le détecter et bloquer la détection.

Le clavier de Microsoft intègre un lecteur d'empreintes.

Les chercheurs expliquent ensuite comment la communication s'effectue entre le système d'exploitation et le lecteur d'empreintes, avec quelques questions de base liées à la recherche de failles : « Existe-t-il un pilote Linux ? », « Quel est le protocole physique pour la liaison ? », « Est-ce que le firmware est chiffré ? », « Est-ce que la liaison est chiffrée ? », etc.

Au premier abord, voici les réponses : sur un Dell Inspiron 15, il existe un pilote pour Linux, le lien est en USB (en clair) et le firmware est chiffré. Avec un Thinkpad T14 de chez Lenovo, la prise en charge de Linux est limitée, le lien est en USB mais chiffré, et le firmware est chiffré. Enfin, avec une Surface Pro X (Microsoft), il n'y a pas de prise en charge officielle de Linux, la liaison entre le lecteur d'empreintes et l'ordinateur est a priori propriétaire — il est placé sur un clavier amovible avec un connecteur dédié — et le firmware est chiffré.

Chez Dell

Sur la machine de Dell, l'idée de départ était simple : comme Linux n'utilise pas le protocole de Microsoft (SDCP), les chercheurs ont tenté une approche évidente. Elle consiste à ajouter une empreinte dans le lecteur en lui attribuant un identifiant identique1 à celui choisi par Windows, en espérant que l'empreinte d'un hacker puisse déverrouiller la session. Cette solution ne fonctionne pas directement car le lecteur d'empreintes stocke les données dans deux bases de données internes différentes, une pour Linux et une pour Windows.

Il faut pousser Windows à employer la base dédiée à Linux.

Mais comme la commande qui permet de changer de base de données en interne n'est pas sécurisée, il est possible de tricher. Ils ont donc débranché le lecteur d'empreintes (qui est en USB en interne) pour le reconnecter sur un Raspberry Pi 4 configuré pour intercepter certaines commandes. La méthode reste la même : sous Linux, ils récupèrent les identifiants dans le lecteur (ce point fait partie de la norme) et ajoutent les empreintes de l'attaquant dans le lecteur (dans la base Linux). Ensuite, ils démarrent Windows et envoient une commande qui va intervertir les bases pour que Windows choisisse celle prévue pour Linux. Enfin, ils s'identifient avec les empreintes du hacker sur le compte de la cible.

Chez Lenovo

Sur le PC de Lenovo, la liaison entre le lecteur et Windows est chiffrée, mais — en résumé — la clé est basée sur le nom de la machine et le numéro de série, deux informations accessibles à travers l'EFI mais aussi avec un accès physique (elles sont inscrites sur une étiquette). Une fois la liaison déchiffrée, le fonctionnement est le même (ou presque) : il faut récupérer les identifiants valides dans la puce, ajouter une empreinte avec un identifiant valide et se connecter. Ça semble évidemment simple expliqué comme ça, mais il faut tout de même un accès physique pour ajouter l'empreinte.

Un résumé de l'attaque.

Chez Microsoft

Alors qu'ils pensaient que le protocole était propriétaire, il n'en est rien. En réalité, le clavier (assez cher, plus de 150 €) passe par une liaison USB en clair, et la technologie de Microsoft (SDCP) n'est même pas employée. Le piratage semble trivial : ils ont branché un appareil qui singeait le clavier (avec les mêmes identifiants USB) et envoyé une commande indiquant que l'empreinte est la bonne. La seule « sécurité » est une vérification du nombre d'empreintes stockées dans la puce qui — selon eux — ne sert pas réellement à sécuriser la liaison (il suffit de lire l'information dans le lecteur d'origine) mais simplement à éviter qu'un utilisateur installe un autre clavier par inadvertance. L'attaque est donc nettement plus simple qu'avec les deux autres PC et ne demande pas un accès au PC dans l'absolu (sauf au moment du piratage).

Bien évidemment, l'équipe compte travailler sur d'autres attaques liées et tenter la même chose avec les produits Apple. Mais il faut noter qu'Apple place les données dans une zone dédiée de ses puces (l'enclave sécurisée) plutôt que dans le lecteur lui-même, ce qui devrait mieux protéger les données. Si Touch ID semble sûr depuis sa sortie il y a une dizaine d'années, il n’est par ailleurs pas exclu qu'Apple ait laissé passer des erreurs. Rappelons enfin que les premiers MacBook Pro Touch ID stockaient les données dans la puce T1 ou T2 et communiquaient avec le lecteur en USB (en interne) et que les lecteurs modernes communiquent en Bluetooth ou en USB avec les Mac dotés d'une puce Apple Silicon.


  1. Windows n'a pas accès aux empreintes, juste à un identifiant lié aux empreintes.  ↩︎

Source : Image d'ouverture : Daniel Aleksandersen

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner