Clé de sécurité Titan Google

Le jeton d'authentification à deux facteurs de Google, la clé de sécurité Titan censée être inviolable, est en réalité sujette à une réelle vulnérabilité, soulevée par deux Français.

Les Titans ne sont pas infaillibles. Bien entendu, on ne parle pas de ceux issus de la mythologie grecque, mais bien des clés de sécurité de Google, commercialisées depuis deux ans. Cette petite clé USB-A/NFC, doublée d'une seconde clé Bluetooth utile aux utilisateurs de produits Apple, est censée empêcher les piratages, en demandant systématiquement la reconnaissance de la clé pour chaque accès à un service compatible avec le standard FIDO U2F. Sauf que le jeton physique d'authentification à deux facteurs (2FA) peut en réalité être cloné.

Un accès physique temporaire nécessaire, qui vient tempérer la menace

Cette affirmation est le fruit du travail d'un duo de spécialistes expérimentés en cybersécurité français, Victor Lomne et Thomas Roche, issus de la société NinjaLab, basée à Montpellier. Les deux experts sont arrivés à la conclusion que bien que la clé (et d'autres, comme YubiKey) demeure un moyen tout à fait sûr et crédible en tant qu'outil d'authentification à double facteur, elle n'est tout de même pas sans faille pour tout attaquant tenace, qui parviendrait à faire preuve d'imagination, le tout soupoudré d'un petit peu de chance et d'opportunisme.

La faille de la clé de sécurité Google Titan porte sur la puce NXP contenue dans son petit boîtier en plastique, boîtier d'ailleurs beaucoup plus dur à ouvrir qu'il n'y paraît, ce qui empêche de le refermer sans dégâts.

Une fois la clé ouverte et la puce accessible, le hacker peut mener une attaque par canal latéral qui ne peut, vous l'aurez compris, être mise en œuvre qu'en cas d'accès physique à l'objet. Sur la clé Titan, les deux chercheurs français ont observé les radiations électromagnétiques locales générées en même temps que les signatures numériques de la puce, pour procéder à l'exploration de la vulnérabilité.

Au bout du compte, en utilisant plusieurs milliers d'opérations transitant par la puce NXP (environ 6 000), les spécialistes ont réussi à reconstituer la clé privée de chiffrement ECDSA primaire. Avec la clé cryptographique en leur possession, les attaquants peuvent alors créer leur propre clé, et sceller un nouveau boîtier.

Une clé Titan ouverte, vous ne verrez pas ça tous les jours ! (© NinjaLab)
Une clé Titan ouverte, vous ne verrez pas ça tous les jours ! (© NinjaLab)

Une opération qui demande du temps et de l'imagination

L'opération, qui n'est pas infaisable, est pour le moins compliquée. Rien que pour l'extraction et la réintégration de la puce, comptez quatre heures. Misez ensuite sur six heures supplémentaires pour prendre des mesures pour chacun des comptes à pirater. Au total, il faut que le pirate puisse avoir physiquement accès à la clé de sa cible pendant 10 heures pour cloner la clé pour un seul compte, 16 heures pour deux comptes, et 22 heures pour trois comptes. Et ainsi de suite.

Une autre composante nous saute à l'esprit. Comment s'emparer physiquement d'une clé de sécurité Google Titan ? (ou d'une autre) À moins d'envisager un cambriolage improbable, on peut se rabattre sur l'environnement professionnel ou des lieux hors domicile.

On peut imaginer que des attaquants peuvent s'infiltrer dans certains bureaux et user de certains stratagèmes (la prise d'une pause, sympathiser, miser sur un oubli ou sur le temps etc.) pour mener à bien leur assaut. Sans parler du profil des cibles, qui peuvent être multiples (techniciens, journalistes, politiques, avocats etc.). On peut aussi imaginer un vol de la clé dans un environnement où l'on se sent plus détendu et moins alerte, comme une salle de sport (si elles rouvrent un jour), ou un bar (même chose).

Ces propriétés, qui demandent bien plus de temps qu'un piratage par phishing par exemple, viennent atténuer le risque que représente cette vulnérabilité qui n'inquiète en tout cas plus que cela Google, qui rappelle que ses clés Titan demeurent inviolables à distance.

Source : NinjaLab