Wenn Sie Einmalpasswörter mit dem Mobile-OTP/mOTP-Algorithmus über die Befehlszeile generieren müssen, ohne mit Ihrem Telefon herumhantieren zu müssen.
Dabei handelt es sich um einen selbsternannten „Standard“-Algorithmus für Einmalpasswörter. Es ist verwirrend, scheinbar fast veraltet und scheint hauptsächlich im deutschsprachigen Raum verwendet zu werden. Sie möchten dies nicht verwenden, es sei denn, Sie sind gezwungen, mit einem vorhandenen System zu interagieren, das solche Codes für 2FA verwendet.
Mobile Apps, die dies zu unterstützen scheinen:
Swiss SafeLab OTP-Authentifikator für iOS: auf iTunes
Swiss SafeLab OTP-Authentifikator für Android: APK-Download
Android-App, die diesen Algorithmus unterstützt: DroidOTP im Google Play Store
Das Prinzip des Algorithmus ist schlecht erklärt und verwirrend implementiert, aber es ist sehr einfach: Sie haben ein Token-Geheimnis (eine ASCII-Zeichenfolge, normalerweise hexadezimal oder alphanumerisch) und eine PIN (eine ASCII-Zeichenfolge, normalerweise 4 Ziffern), und diese wird in eine umgewandelt 6-stelliger Code mit:
counter = ASCII((UNIX epoch time) / 10s) digest = MD5HEX(counter || secret || pin) code = LEFT(digest, 6 characters)
Das ist es. ¯_(ツ)_/¯
Erfordert Python 3.x.
$ ./motp.py SECRET PIN a1b329
Ausführlicher:
$ ./motp.py -v SECRET PIN Epoch time: 1549323786 Counter: 154932378 a1b329 (current)
Alle verfügbaren Optionen:
$ ./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