Frage:
Warum verbergen viele Websites Eingaben bei der Eingabe eines OTP?
Robin Salih
2019-09-26 21:09:17 UTC
view on stackexchange narkive permalink

Ich habe festgestellt, dass auf vielen Websites die Eingabe auf die gleiche Weise wie in einem Kennwortfeld ausgeblendet wird, wenn sie nach einem Einmalpasswort (OTP) (normalerweise per SMS) gefragt werden ist.

Nach meinem Verständnis ist ein einmal verwendetes OTP für nichts mehr nützlich.

Gibt es einen gültigen Grund, die Eingabe für diese Felder auszublenden?

Als Facebook anfing, falsch geschriebene Passwörter zu akzeptieren, äußerten einige Leute Bedenken, ob dies sicher sei.Wenn eine Site keine Eingaben mehr in einem Feld mit dem Namen "Passwort" verbirgt, kommt es zu derselben Kontroverse.
Können Sie ein Beispiel für Websites geben?Facebook, Github, Azure, AWS und Google zeigen alle die Ziffern an.
@eckes Das 3D Secure-Ding meiner Bank macht es.Immer wenn ich meine Debitkarte benutze, werde ich auf diese Seite weitergeleitet (* .arcot.com).https://imgur.com/a/RNMr555
In einer großen Form mit vielen Feldern, einschließlich des Kennwortfelds, kann ein Dritter das Kennwort sehen und vor dem Benutzer senden.
@eckes Ich habe es an einigen Stellen gesehen, einschließlich Natwest Online Banking.
Fünf antworten:
MechMK1
2019-09-26 21:43:56 UTC
view on stackexchange narkive permalink

Ich gehe davon aus, dass zusätzlich zu einer herkömmlichen Kombination aus Benutzername und Passwort ein Einmalkennwort als zweiter Faktor verwendet wird. Wenn dies nicht der Fall ist und das Einmalkennwort der einzige Faktor ist, ist Gilles 'Antwort sicherlich zutreffender.


Höchstwahrscheinlich aufgrund von Cargo Cult Programming, was bedeutet, dass Sie blindlings Mustern folgen, die an anderer Stelle beobachtet wurden, ohne die wahre Bedeutung dahinter zu verstehen.

Ein Entwickler sieht möglicherweise das "Passwort" "in" Einmalpasswort "und machen Sie es glücklich <input type =" Passwort "> . Immerhin ist es das, wofür es da ist, oder?

Gibt es einen Nachteil?

In Bezug auf die Sicherheit, nein. Die Weitergabe eines Einmalkennworts an Dritte (z. B. durch Schulter-Surfen) ist nicht so problematisch, da das Kennwort nach einmaliger Verwendung oder nach einer bestimmten Zeitspanne an Gültigkeit verliert.

Der einzige denkbare Nachteil wäre eine geringere Benutzererfahrung, da ein Benutzer möglicherweise Probleme hat, sicherzustellen, dass das, was er eingegeben hat, tatsächlich mit dem erhaltenen Kennwort übereinstimmt.

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/99174/discussion-on-answer-by-mechmk1-why-do-many-websites-hide-input-when-entering-ein).
Je nach Schema sind OTPs nicht nur einmalig.Beispielsweise sind TOTP-Token 30 Sekunden lang gültig, unabhängig davon, wie oft Sie das Token tatsächlich verwenden.In diesem Fall kann das Schulter-Surfen ein Problem sein, wenn der erste Faktor (z. B. das Passwort) bereits kompromittiert wurde.
@ChristopherSchultz Wenn es gemäß [RFC] (https://tools.ietf.org/html/rfc6238#section-5.2) implementiert ist, ist TOTP _is_ einmal: "Der Prüfer darf den zweiten Versuch des OTP nach der erfolgreichen Validierung NICHT akzeptierenwurde für das erste OTP ausgestellt ".
@AndrolGenhald Interessant.Anscheinend hatte ich dieses Detail bei der Implementierung von TOTP als Beispiel irgendwann übersehen.Diese * RFC-MUST-NOT * -Anforderung macht es schwierig, die Spezifikation in verteilten Systemen vollständig zu implementieren.Ich frage mich, wie viele Implementierungen tatsächlich kompatibel sind.
@ChristopherSchultz - schwierig, aber nicht unmöglich.Eines der Dinge, die der Blockchain-Hype lehrte, ist, dass es möglich ist, robuste Konsensalgorithmen zu entwickeln - etwas, mit dem sich die Menschen früher schwer getan haben (insbesondere mit dem Split-Brain-Problem).
@ChristopherSchultz Zugegeben, viele der Lösungen wurden vor dem Blockchain-Hype entwickelt - Paxos zum Beispiel ist ziemlich alt.Aber Konsensalgorithmen haben in letzter Zeit erneut Interesse an Blockchain geweckt
@AndrolGenhald "Validierung wurde für den ersten ausgestellt" - Schulter-Surfer haben noch Zeit, sie einzugeben, bevor es der echte Benutzer tut.Das heißt,VOR "Die erste Validierung wurde ausgestellt".
@OlegV.Volkov Da es sich um den Eintrag auf der Website handelt, kann der Schulter-Surfer den vollständigen Code offensichtlich nicht vor dem tatsächlichen Benutzer eingeben (obwohl er das Formular möglicherweise vor dem tatsächlichen Benutzer einreichen könnte).Wenn Sie über das Schulter-Surfen mit dem auf dem OTP-Gerät angezeigten Code sprechen, ist dies für die Frage irrelevant.
@slebetman Dies ist ein Problem mit einer Dauer von 30 Sekunden (für Standard-TOTP-Parameter).Blockchain ist vielleicht die schlechteste Implementierung einer Gegenmaßnahme für diesen möglichen Angriffsvektor (für fast alles in dieser Angelegenheit).
@ChristopherSchultz Ich spreche nicht von Blockchain.Ich spreche von Konsensalgorithmen, die älter sind als Blockchain, aber vielleicht nicht bekannt genug waren, bis Blockchain sie in den Vordergrund rückte.Paxos wurde zum Beispiel 1988 veröffentlicht, aber Software wie Elasticsearch (veröffentlicht 2010) hatte / hat immer noch Probleme mit der asynchronen Synchronisation, obwohl es sich um ein gelöstes Problem handelt, da die Entwickler nicht wussten, dass solche Algorithmen existieren, aber tatsächlich eine ganze Familie existiertvon Algorithmen.Blockchains wären ohne Konsensalgorithmen nicht möglich
Gilles 'SO- stop being evil'
2019-09-26 21:42:15 UTC
view on stackexchange narkive permalink

Der Grund für das Ausblenden von Passwörtern besteht darin, das Surfen auf der Schulter zu verhindern: Jemand, der physisch anwesend ist (oder durch eine Kamera beobachtet), kann das Passwort möglicherweise auf dem Bildschirm lesen. Dies ist auch ein Risiko für ein Einmalkennwort, jedoch in viel geringerem Maße aus zwei Gründen: Das Einmalkennwort ist nur für kurze Zeit gültig und wird ohnehin auf dem OTP-Gerät angezeigt. Aber es ist trotzdem ein Risiko. Abhängig von der Art des OTP kann es einige Minuten lang gültig bleiben (wenn es zeitbasiert ist und der Server nicht vor Wiedergabe schützt) oder bis der legitime Benutzer die Eingabe beendet hat (wenn es sequenzbasiert ist oder der Server schützt vor Wiederholung). Häufig ist der Bildschirm des OTP-Geräts für Schulter-Surfer weniger sichtbar als für den Computer, auf dem der Benutzer das OTP eingibt Zwischenablage und kann dazu führen, dass die Anwendung das OTP nicht in einem Formulareintragsverlauf aufzeichnet. Keiner von diesen hat einen Sicherheitsvorteil, aber das Weglassen des OTP aus dem Eintragsverlauf hat einen Usability-Vorteil: Es wird vermieden, dass Benutzer den Eindruck erwecken, dass das OTP später eine gültige Eingabe ist.

Dies sind ziemlich schwache Gründe. Der Hauptgrund ist, dass Formularentwickler erkennen, dass die Eingabe ein Kennwort ist, und es daher als Kennwort deklarieren.

Unter der Annahme, dass ein Einmalkennwort als zweiter Faktor verwendet wird, würde ich es als viel weniger riskant betrachten, da jemand auch im Besitz des primären Faktors sein müsste.Aber das ist ein guter Punkt, das werde ich meiner Antwort entsprechend hinzufügen.
Bei Verwendung von `autocomplete =" one-time-code "` wird das OTP aus dem Verlauf weggelassen, ohne benutzerfeindlich zu sein.
Dies mag wie eine Art James-Bond-Paranoia erscheinen, aber eine Überlegung für die Sicherheit beim Schulter-Surfen ist die Netzwerkzuverlässigkeit.Wir schieben Leute auf https, um automatisierte Mitm-Angriffe zu verhindern, aber keine Kryptographie stellt sicher, dass das Netzwerk nicht ausfällt.Ein Angreifer kann möglicherweise den Code sehen, das Signal stören (z. B. den Router ausstecken) und in der Verwirrung gut zwei Minuten Zeit haben, um es selbst einzugeben.
Sie müssen natürlich nicht.Ich dachte nur, dass es erwähnenswert ist, falls jemand meint, "bis er es sieht, ist es zu spät, etwas damit zu tun".
Ein Server, der nicht vor wiedergegebenen OTPs schützt, ist per Definition ziemlich kaputt ...
@ilkkachu Nein, nicht unbedingt.Viele „OTP“ -Systeme sind zeitbasiert und verfügen über mehrere Authentifizierungspunkte. Dadurch entsteht ein Zeitfenster, in dem ein OTP nicht nur mehrmals akzeptiert werden kann, sondern auch mehrmals akzeptiert werden sollte (da sich der Benutzer bei verschiedenen Authentifizierungspunkten anmeldetdas gleiche kurze Zeitfenster).
@Gilles, Ich bezweifle nicht, dass sie existieren, aber das scheint wirklich die "einmalige" Eigenschaft zu verletzen, die genau dort steht, wofür OTP steht ... Ich dachte immer, dass die Idee war, dass einmal ein einmaliges Passwort warverwendet, muss davon ausgegangen werden, dass es durchgesickert ist, und darf daher nicht erneut akzeptiert werden.Dies kann bedeuten, dass Sie ein zentrales System benötigen, um den Überblick über das verwendete OTP zu behalten, und dass Sie über ein Single-Sign-On-System verfügen müssen, um sich gleichzeitig bei mehreren Systemen zu authentifizieren.Das erneute Akzeptieren des gleichen OTP klingt nur so, als würde man einen Lauscher einladen, sich anzumelden, nachdem Sie ...
@ilkkachu Nicht wirklich.Der Hauptpunkt der Authentifizierungsmethoden, die heutzutage allgemein als „OTP“ bezeichnet werden, besteht darin, ein Authentifizierungsfaktor zu sein, den Sie haben: Sie sind ein Beweis für den physischen Zugriff auf ein Gerät (im Allgemeinen Ihr Mobiltelefon oder Ihre SIM-Karte).Das Risiko, vor dem sie schützen, besteht darin, dass der Faktor, den Sie kennen, durchgesickert ist.Zweifellos wäre es besser, wenn die zeitbasierten nicht "OTP" heißen würden, aber der Name bleibt beliebt, obwohl er ungenau ist.
@Gilles, Ich denke, das ist der Punkt, den Ilkkachu gemacht hat.Sie werden als ein Faktor angesehen, den Sie haben, aber wenn sie anfällig für Schnüffeln und Wiederholungen sind, beweisen sie nicht, was Sie haben.
@Josiah Nein, das folgt nicht.Passwörter sind auch anfällig für Schnüffeln und Wiederholungen, aber sie beweisen, was Sie wissen.OTP-Token sind anfällig für Diebstähle, aber sie beweisen, was Sie haben.
@Josiah, Nun, um ehrlich zu sein, wenn Sie in Echtzeit angreifen können, können Sie immer noch ein OTP schnüffeln, Sie müssen es nur verwenden, bevor es auf den Server gelangt.Sie müssen nicht einmal das Netzwerk blockieren, wenn Sie nur schneller als der Benutzer sind.Wenn das OTP auch nach dem Auftreffen auf den Server gültig ist, wird es natürlich viel einfacher, da es kein Rennen gibt und der Benutzer keinen Anmeldefehler erhält.
@Gilles, Ehrlich gesagt verstehe ich immer noch nicht, warum man ein zeitbasiertes OTP implementieren und das aktuelle OTP bei Verwendung nicht ungültig machen würde.Wenn Sie über mehrere Authentifizierungspunkte verfügen, sind diese entweder Teil desselben Systems, und Sie können nur einen Authentifizierungszugriff auf alle gewähren (das dreimalige Wiederholen desselben Codes an drei verschiedenen Stellen scheint nicht nützlicher zu sein als nureinmal eingeben).
... oder die Systeme sind unabhängig. In diesem Fall können sie das verwendete OTP nur für sich selbst ungültig machen, und die Anmeldung mit demselben Code funktioniert.Das ist nur ein bisschen so, als würde man dasselbe Passwort in mehreren Systemen verwenden, nur dass es diesmal das OTP ist.Dann können wir uns streiten, ob das ein Problem ist oder nicht, aber wenn wir an etwas wie TOTP denken, gibt es einen gemeinsamen Schlüssel, der die OTPs generiert, und wenn dieser aus einem der Systeme austritt, gefährdet er auch die anderen, genau wie wenn ein Passwort irgendwiewird aus der Passwortdatenbank durchgesickert ...
Josiah
2019-09-27 12:07:34 UTC
view on stackexchange narkive permalink

Über das Motiv anderer Entwickler zu spekulieren, ist vielleicht eine schlechte Zeitnutzung, aber ich sehe einen Vorteil, der nicht erwähnt wurde.

Psychologisch gesehen hilft es den Leuten, es wie ein Passwort aussehen zu lassen mit Sicherheit. Es überträgt die Nachricht, die wir seit Jahrzehnten übermitteln, dass "Sie Ihren Leuten Ihr Passwort nicht mitteilen", an OTPs und hilft hoffentlich einigen weiteren Benutzern, eine Pause einzulegen und Fragen zu stellen, wenn Bob Hackerman sie anruft und sie auffordert, den sechsstelligen Code zu bestätigen, den er gerade gesendet hat Sie. Der Benutzer ist normalerweise der schwächste Teil des Systems, daher scheint dies ein vernünftiger Ort für Investitionen zu sein.

Technisch gesehen gibt es Nachteile (wie der Browser, der sie speichert), und es wäre besser, ein dediziertes HTML-Feld für OTPs zu verwenden. Selbst wenn wir eine hätten, wäre es völlig vernünftig, sie als Standard-UX zu verwenden.

Ich mag diese Argumentation.Ich weiß, was sie sind und über die üblichen Sicherheitsprobleme.Joe Bloggs Oma dagegen.Alles, was dazu beiträgt, dass weniger Sicherheitskräfte sicherer sind, ist eine gute Sache.
Hightown Hill
2019-09-28 18:10:11 UTC
view on stackexchange narkive permalink

Der Grund für das Ausblenden der Eingabe des Felds liegt möglicherweise in Programmiermustern (wie bei @ MechMK1 angegeben), da der Entwickler nicht für jeden angebotenen Authentifizierungstyp ein separates Feld codieren würde, sodass das Feld mit dem Typkennwort wiederverwendet wird. Andernfalls kann der Code aufblähen.

cornelinux
2019-09-29 04:13:00 UTC
view on stackexchange narkive permalink

Ein Angreifer könnte das Einmalkennwort verwenden, wenn er sieht, dass Sie es eingeben.

Es kommt auf die Frage des Timings an. Wenn er ein erfahrener Angreifer ist, liest er möglicherweise das nicht versteckte Einmalkennwort und blockiert gleichzeitig Ihre Netzwerkverbindung, bevor Sie Enter drücken. So kann er das von Ihnen eingegebene OTP lesen, Sie daran hindern, das Formular zu senden, und das OTP verwenden, um sich als Sie anzumelden.

Dies mag sehr umständlich klingen, aber unserer Meinung nach sollte sich eine aufrichtige OTP-Implementierung darum kümmern Wie @ MechMK1 hervorhob, ist das OTP - wie der Name schon sagt - nur einmal gültig . Das OTP wird jedoch nur ungültig, wenn der Server es überprüft. Und wie bereits erwähnt, ist der otp nicht ungültig, wenn der Angreifer verhindern kann, dass Sie das OTP an den Server senden, und der Angreifer kann genau dieses OTP vor Ihnen verwenden.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...