Si vous devez générer des mots de passe à usage unique à l'aide de l'algorithme Mobile-OTP / mOTP, à partir de la ligne de commande, sans vous soucier de votre téléphone.
Il s’agit d’un algorithme « standard » autoproclamé pour les mots de passe à usage unique. Il prête à confusion, semble presque obsolète et semble être principalement utilisé dans les pays germanophones. Vous ne souhaitez pas l'utiliser à moins que vous ne soyez obligé d'interagir avec un système existant qui utilise de tels codes pour 2FA.
Applications mobiles qui semblent le prendre en charge :
Authentificateur Swiss SafeLab OTP pour iOS: sur iTunes
Authentificateur Swiss SafeLab OTP pour Android : télécharger l'APK
Application Android prenant en charge cet algorithme : DroidOTP sur Google Play Store
Le principe de l'algorithme est mal expliqué et mis en œuvre de manière confuse mais il est très simple : vous disposez d'un jeton secret (une chaîne ASCII, généralement hexadécimale ou alphanumérique) et d'un code PIN (une chaîne ASCII, généralement à 4 chiffres), et celui-ci est converti en un Code à 6 chiffres utilisant :
counter = ASCII((UNIX epoch time) / 10s) digest = MD5HEX(counter || secret || pin) code = LEFT(digest, 6 characters)
C'est ça. ¯_(ツ)_/¯
Nécessite Python 3.x.
$ ./motp.py SECRET PIN a1b329
Plus verbeusement :
$ ./motp.py -v SECRET PIN Epoch time: 1549323786 Counter: 154932378 a1b329 (current)
Toutes les options disponibles :
$ ./motp.py --help usage: motp.py [-h] [-s SECONDS] [-l LENGTH] [-w WINDOW] [-v] secret pin positional arguments: secret mOTP secret value (often hex or alphanumeric digits) pin mOTP PIN value (usually 4 digits) optional arguments: -h, --help show this help message and exit -s SECONDS, --seconds SECONDS Duration of mOTP codes in seconds (default 30 seconds) -l LENGTH, --length LENGTH Length of mOTP output (default 6 characters) -w WINDOW, --window WINDOW Number of counter values before and after current one to show (for testing time-skew) -v, --verbose
MIT