Google Authenticator

Google Authenticator
Description de l'image Google Authenticator (April 2023).svg.
Description de l'image Google authenticator.png.
Informations
Créateur Google
Dernière version 4.0.2
État du projet Actif
Langues Français, Allemand, Anglais, Arabe, Catalan, Chinois simplifié, Chinois traditionnel, Coréen, Croate, Danois, Espagnol, Finnois, Grec, Hongrois, Hébreu, Indonésien, Italien, Japonais, Malais, Norvégien, Néerlandais, Polonais, Portugais, Roumain, Russe, Slovaque, Suédois, Tchèque, Thaï, Turc, Ukrainien, Vietnamien
Type Génération de mots de passe à usage unique
Politique de distribution Gratuit
Licence Licence propriétaireVoir et modifier les données sur Wikidata

Chronologie des versions

4.0.1

modifier - modifier le code - voir Wikidata (aide) Consultez la documentation du modèle

Google Authenticator est un logiciel de génération de mots de passe à usage unique permettant l’authentification à deux facteurs, développé par Google. Le logiciel fournit un nombre de 6 chiffres que l'utilisateur doit donner lors de son authentification, en plus de son pseudo et de son mot de passe. Développé à l'origine pour les services Google (comme Gmail), le logiciel permet de s'authentifier sur des services tiers tels que LastPass, Discord ou Dropbox.

Implémentation

Google fournit l'application mobile pour les systèmes Android[1], BlackBerry, iOS[2] et des portages compatibles ont été réalisés pour Pebble[3], entre autres.

Des versions passées du logiciels étaient open source, mais les versions actuelles sont sous une licence propriétaire[4].

Description technique

Il s'agit de créer un code éphémère, calculé depuis une clef numérique propre à l'utilisateur. Lors d'une première utilisation Google génère une clef numérique secrète de 80 bits unique pour chaque utilisateur. Cette clef est transmise sous forme d'une chaîne de 16 caractères en base 32 ou par l'intermédiaire d'un code QR. L'application mobile calculera à chaque connexion une signature numérique HMAC-SHA1 basée sur cette clef fixe, en codant le nombre de périodes de 30 secondes écoulées depuis l'« epoch » Unix. Une partie de cette signature est prélevée et convertie en un nombre à 6 chiffres affiché par l'application et que l'utilisateur doit recopier sur le site web, en plus de son mot de passe.

Technologie

Google Authenticator implémente l'algorithme de mot de passe à usage unique définie dans l'IETF RFC 6238[5], et l’algorithme de génération de mot de passe unique basé sur HMAC défini dans l'IETF RFC 4226[6].

Pseudocode de l'algorithme RFC 6238[5]

La RFC 6238[5] est peu précise sur la taille du message passé à HMAC-SHA1. Il est écrit simplement que des tailles supérieures à 32 bits doivent être supportées. La taille de 64 bits est donc issue des implémentations usuelles que l'on trouve. De même pour le caractère Big Endian des nombres utilisés.

  function GoogleAuthenticatorCode(string secret)
      key := base32decode(secret)
      message := floor(current Unix time / 30)
      // message is seen by HMAC-SHA1 as a BigEndian 64bits number (8 chars)
      hash := HMAC-SHA1(key, message)
      offset := last nibble of hash
      truncatedHash := hash[offset..offset+3]  //4 bytes starting at the offset
      Set the first bit of truncatedHash to zero  //remove the most significant bit
      // truncatedHash is seen as a BigEndian 32bits number (4 chars)
      code := truncatedHash mod 1000000
      pad code with 0 until length of code is 6
      return code

État open source du logiciel pour Android

En l'état de , l'application Google Authenticator disponible sur Google Play Store est couverte par une licence propriétaire. Google a rendu disponibles les versions précédentes de l'app Authenticator sur son répositoire GitHub. La page du projet affirme :

« This open source project allows you to download the code that powered version 2.21 of the application. Subsequent versions contain Google-specific workflows that are not part of the project[7]. »

En réponse à la transition de Google Authenticator vers une licence propriétaire, un clone open source nommé FreeOTP[8] a été créé, en incluant des parties du code original de Authenticator, mais surtout du code nouvellement écrit. Une variante moins populaire nommée OTP Authenticator[9] est également disponible sur Google Play.

Références

  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Google Authenticator » (voir la liste des auteurs).
  1. Version Android de Google Authenticator
  2. Version iOS de Google Authenticator
  3. (en) « How to get your two-step verification codes on your Pebble »
  4. (en) Willis, Nathan, « FreeOTP multi-factor authentication », (consulté le )
  5. a b et c (en) Request for comments no 6238
  6. (en) Request for comments no 4226
  7. (en) « Wiki Google Authenticator sur GitHub » (consulté le )
  8. « FreeOTP »
  9. « kaie/otp-authenticator-android », GitHub

Liens externes

  • Google Authenticator sur Google.
  • Google Authenticator Projet open-source sur GitHub
  • Google Authenticator implementation en Python sur Stack Overflow
v · m
Moteur de recherche
Services en ligne
Google Workspace
Google Cloud
Applications
Logiciels
Matériels
Outils
Publicité
Google Marketing Platform
Outils de développement
Magasins
Autres activités
Anciens produits
Lieux
Articles liés
Voir aussi : Alphabet Inc.
  • icône décorative Portail de l’informatique
  • icône décorative Portail de Google