Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
php:otp [2017/10/15 17:25] webproducer angelegt |
php:otp [2025/03/26 14:55] (aktuell) webproducer 6 einzelne Eingabefelder |
||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| $base32Key = 'JV4VGZLDOJSXIUDBONZXO33SMQ'; | $base32Key = 'JV4VGZLDOJSXIUDBONZXO33SMQ'; | ||
| + | $rangeIn30s = 2; | ||
| - | if( TokenAuth6238::verify( $base32Key, $_POST['token'] ) ) | + | $_POST['token'] = implode( $_POST['token'] ); // nur notwendig, wenn die Eingabe aus 6 einzelne Felder besteht |
| - | { | + | |
| + | if( TokenAuth6238::verify( $base32Key, $_POST['token'], $rangeIn30s ) ) { | ||
| echo "Code is valid"; | echo "Code is valid"; | ||
| - | } | + | } else { |
| - | else | + | |
| - | { | + | |
| echo "Invalid code"; | echo "Invalid code"; | ||
| } | } | ||
| Zeile 21: | Zeile 21: | ||
| Wird, wie in diesem Fall, für die Authentifizierung der Type "totp" verwendet werden die Token der Grundlage des Keys und der aktuellen Uhrzeit generiert. | Wird, wie in diesem Fall, für die Authentifizierung der Type "totp" verwendet werden die Token der Grundlage des Keys und der aktuellen Uhrzeit generiert. | ||
| - | Die PHP-Klasse PHPOTP (PHP One Time Password) erstellt bei der Validierung des vom User eingegebenen Token sieben Tokens zum Vergleich. Beispiel: | + | Aufgrund einer möglichen Zeitabweichung zwischen dem Client und dem Validierungsserver besteht die Möglichkeit beim Aufruf der Methode verify der PHP-Klasse PHPOTP (PHP One Time Password), als 3. Parameter eine Karenz-Zeit einzustellen. Standardmäßig, wenn der Parameter nicht gesetzt wird, werden 7 Token abgeglichen (3 in der Vergangenheit, der aktuelle und 3 in der Zukunft). Beispiel: |
| ^ Token ^ Zeit-Differenz ^ | ^ Token ^ Zeit-Differenz ^ | ||
| Zeile 33: | Zeile 33: | ||
| Somit ist ein Token für 3 Minuten gültig (1,5 Minuten vor der Zeit und 1,5 Minuten nach der Zeit). Mit dieser Taktik können Zeitdifferenzen zwischen Smartphone und Server bis zu 3 Minuten kompensiert werden. | Somit ist ein Token für 3 Minuten gültig (1,5 Minuten vor der Zeit und 1,5 Minuten nach der Zeit). Mit dieser Taktik können Zeitdifferenzen zwischen Smartphone und Server bis zu 3 Minuten kompensiert werden. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | [[php:otpauth|...zurück zur Übersicht der 2-Faktor-Authentifizierung]] | ||