Rant: Security tokens Allheilmittel?

Seurityfocus hat heute einen Artikel mit einem Plädoyer für "Two-factor banking" veröffentlicht:
If you've ever checked your bank account from a public terminal at an Internet cafe like I have, you immediately realize two things: one, it's an incredibly dumb thing to do, and two, having a token as a password that changes every minute would dramatically lower the overall risk - regardless of how 0wn3d the machine really is.
Unglücklicherweise helfen solche Security Tokens nachezu überhaupt nicht.

Die Verwendung zeitabhängiger TANs zwingt den Angreifer lediglich, die manipulierte Transaktion zeitnah durchzuführen - nämlich innerhalb der Gültigkeitsdauer der TAN. Im Falle von Phishing ist dies automatisiert problemlos möglich. Ein generischer Keylogger ist zwar damit nutzlos, aber ein trojanisches Pferd, das speziell für diesen Zweck geschrieben wurde, hat immer noch die Möglichkeit, die Daten im Browser zu manipulieren.
Diesen geringen Sicherheitsvorteil kann man genausogut (und deutlich billiger) mit "indexed TANs" (iTAN) erreichen, wie es einige Banken inzwischen verwenden. iTANs zwingen den Angreifer ebenfalls dazu, Angriffe zeitnah statt offline durchzuführen.

Security Tokens sind hier nur unnötig teuer, bringen keine zusätzliche Sicherheit - und wiegen den Nutzer in einem trügerischen Gefühl, der sich dank des wichtig aussehenden Geräts nun in sicher wähnt.

Die einzige Möglichkeit, solch externe Hardware sinnvoll einzusetzen, wäre zur Authentisierung der eingegebenen Transaktionsdaten: Der Nutzer müßte (zusätzlich zur Eingabemaske am Browser) Kontonummer, BLZ, Betrag und eine "Token-PIN" über eine "Taschenrechner-Tastatur" am Security-Token eingeben, das für diese Eingabe eine Signatur berechnet. Diese müßte dann zur Authentisierung der Transaktion im Browser eingegeben werden. Durch die Koppelung der Überweisungsdaten wäre eine nachträgliche Manipulation nicht mehr möglich. Die geheime Information (die "Token-PIN"), die zum Berechnen der Signatur nötig ist, wird so zu keinem Zeitpunkt in ein unsicheres System eingegeben.