Ich bin zwar auch schon ein paar Jährchen Entwickler, aber hier eben auch noch recht neu, daher schon möglich das ich hier eben einen Vorteil übersehen habe
Was ich noch gelesen habe ist wohl, dass die 2FA-Secrets seperat vom Rest gespeichert werden und über einen eigenen 2FA-Dienst abgehandled werden.
HOTP/TOTP hat eben doch einfach nur den Sinn, Sicherheit auf Client und Transportebene zu haben.
Im Prinzip dennoch recht sinnvoll:
- Greift man das Password und das OTP ab, kein Login nach 30 Sek. möglich.
- Kommt man an die Daten auf dem Server, OTPs generierbar, aber Passwort gehashed nutzlos.
Passwörter jetzt noch über S-Key/HashChain, bietet für die Passwörter zusätzliche Sicherheit, auch wenn ich hier ein paar Probleme sehen würde. Dennoch danke für diesen Hinweis. Das hatte ich gar nicht mehr auf dem Schirm.
Und es ist sehr einfach zu implementieren, was bei Yubikeys nicht so easy ist.
Ich nutze aber auch mehrere Yubikeys
Zusätzlich sensible Daten in der Cloud immer in einem Truecrypt-Container
EDIT:
Wenn man genau drüber nachdenkt, kann man aber dennoch OTP-Secrets irgendwie generieren, ohne sie speichern zu müssen. Aus bekannten und unbekannten Userdaten, verschiedene Werte, die sich anhand bestimmter Kriterien ändern, aber am Ende immer den gleichen Code erzeugen.
Beispiel: einen Random Seed in der Datenbank speichern. Dazu jetzt die Benutzer-ID, einen im Code hinterlegten Wert, der sich aus der Quersumme der Benutzer-ID ermittelt und so weiter. Daraus könnte man das Nacherzeugen jedenfalls deutlich schwerer machen, da eine geklaute Datenbank alleine nicht mehr reicht.