MultiOTP

multiOTP
Description de cette image, également commentée ci-après
Copie d'écran de l’interface web de la version 5.4.1.7 de multiOTP open source
Informations
Développé par SysCo systèmes de communication sa
Première version
Dernière version 5.8.1.1 ()
État du projet actif
Écrit en PHPVoir et modifier les données sur Wikidata
Système d'exploitation LinuxVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Langues Multilingue
Type Authentification forte Mot de passe unique
Licence LGPL
Site web www.multiOTP.net

multiOTP (One Time Password, « Mot de passe à usage unique ») est une classe PHP, un outil en ligne de commande et une console web pour fournir une solution d'authentification forte indépendante de tout système d'exploitation. multiOTP est certifié OATH depuis la version 4.1.0 et est développé sous licence LGPL par l'entreprise suisse SysCo systèmes de communication sa. Des déclinaisons commerciales appelées multiOTP Pro et multiOTP Enterprise sont également disponibles.

Un QR code est généré automatiquement lors de l'impression de la page de configuration d'un utilisateur.

Historique

Fonctionnement

Le cœur de multiOTP est une classe PHP. Elle peut donc être instanciée dans n'importe quelle application PHP, ce pour autant que l'on utilise une version de PHP supérieure ou égale à la version 5.3.0 (jusqu'en version 4.2.4.2, la bibliothèque fonctionne toujours avec une installation de PHP en version 4.4.4 ou supérieure, mais sans garantie).

La bibliothèque multiOTP est fournie sous la forme d'un seul fichier à inclure regroupant tout le code PHP nécessaire, ce qui évite tout problème de liens relatifs ou absolus par rapport à d'autres fichiers qu'il faudrait inclure. Les codes sources séparés sont toutefois également disponibles dans le fichier compressé du projet et sur la plateforme GitHub.

Si l'authentification forte se fait non pas depuis une application Internet, mais depuis un appareil en réseau, on passera alors par un serveur RADIUS qui appellera l'outil en ligne de commande fourni avec la bibliothèque multiOTP.

Description générale

Pour les projets sous Windows, la bibliothèque multiOTP est fournie avec un serveur RADIUS préconfiguré (freeRADIUS) pouvant être installé en service ainsi qu'avec un serveur web préconfiguré (mongoose) pouvant également être installé en service. Le service web fournit la partie serveur lorsque l'on veut utiliser multiOTP en configuration client/serveur.

Pour les projets sous Linux, le fichier readme.txt fourni avec la bibliothèque indique ce qu'il est nécessaire de faire afin de configurer le serveur RADIUS et le service Web.

L'authentification d'un client sur une application ou un appareil nécessitant une authentification forte peut se faire de différentes manières:

  • clé logicielle (par exemple en utilisant le logiciel Google Authenticator)
  • clé matérielle (par exemple une clé de type Feitian C200 pour un code dépendant du temps)
  • code envoyé par SMS (depuis la version 4.0.4)
  • liste de mots de passe à biffer (depuis la version 4.0.4)

Standardisation et normalisation

multiOTP est certifié OARH pour HOTP et TOTP et implémente les standards suivants concernant l'authentification forte :

  • HOTP, HMAC-Based One-Time Password Algorithm (RFC4226)
  • TOTP, Time-Based One-Time Password Algorithm (RFC6238)
  • Yubico OTP
  • mOTP, Mobile-OTP, strong, two-factor authentication with mobile phones
  • Google Authenticator (OATH/HOTP or OATH/TOTP, base32 seed, QRcode provisioning)
  • SMS tokens (using aspsms, clickatell, intellisms, or even your own script)
  • PSKC (Additional Portable Symmetric Key Container Algorithm Profiles) (RFC6030)
  • CHAP (Challenge Handshake Authentication Protocol) (RFC1994)
  • MS-CHAP (Microsoft PPP CHAP Extensions) (RFC2433)
  • MS-CHAPv2 (Microsoft PPP CHAP Extensions, Version 2) (RFC2759)
  • Syslog Protocol (client) (RFC5424)
  • SMTP (Simple Mail Transfer Protocol) (RFC2821)
  • SMTP Service Extension for Secure SMTP over TLS (RFC2487)
  • Lightweight Directory Access Protocol (LDAP) (RFC4511)
  • String Representation of Search Filters in LDAP (RFC4515)

Applications pratiques

multiOTP permet notamment :

  • d'ajouter de l'authentification forte pour l'identification d'un utilisateur (évite ainsi la connexion avec un mot de passe volé ou deviné).
  • en fixant une clé matérielle à un endroit particulier, de s'assurer la présence d'une personne à cet endroit à un moment précis (le code fourni par la personne à un moment donné permettant de connaître l'heure à laquelle ce code a été affiché).
  • d'authentifier un utilisateur en lui envoyant un code par SMS, validant ainsi automatiquement l'utilisateur par rapport à son numéro de téléphone mobile.
  • de créer automatiquement des comptes d'authentifications fortes pour les utilisateurs d'un Active Directory (ou d'un LDAP) présents dans un groupe spécifique.

Apports et limitations

Le fait que multiOTP soit disponible en tant que bibliothèque PHP permet de l'installer partout, y compris sur un serveur web mutualisé.

L'implémentation est suffisamment légère pour tourner sans problème sur des nano-ordinateurs comme le Raspberry Pi. Le fichier readme fourni avec le fichier compressé indique toutes les étapes pour réaliser l'implémentation de multiOTP sur ce dernier.

Aspects économiques et sociaux

Les mots de passe traditionnels sont encore bien présents dans les environnements informatiques actuels, mais c'est le principal talon d'Achille de l'authentification en général. En effet, on l'a vu encore récemment avec les dernières failles de sécurité, et notamment avec Heartbleed, un simple mot de passe ne suffit plus, même s'il est envoyé via un canal réputé sûr!

En fournissant une solution simple, légère et gratuite d'authentification forte, multiOTP permet de démocratiser l'utilisation de l'authentification forte. Depuis sa version 4.1.0, il est même possible de mettre en place facilement un appareil autonome d'authentification forte pour moins de $100 en matériel, ou simplement en recyclant une vieille machine Linux.

Exemples d'utilisation de la librairie


Notes et références

  1. ↑ « multiOTP Credential Provider », multiOTP team (consulté le )
  2. ↑ « MultiOneTimePassword Credential Provider », Last Squirrel IT (consulté le )
  3. ↑ « One Time Password Backend for ownCloud », apps.ownCloud.com Team (consulté le )
  4. ↑ « 2FA Credential Provider for Windows », Fluid Technology Solutions Ltd (consulté le )
  5. ↑ « Strong Authentication in Web Application - State of the Art 2011 », Compass Security AG (consulté le )
  6. ↑ « One-time passwords Bachelor thesis (in Czech) », University of Economics, Prague (consulté le )

Voir aussi

Liens externes