Feature Request: Button zur Klartext-Anzeige von Passwörtern

 
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 82
Dabei seit: 05 / 2020
Betreff:

Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 15.11.2022 - 16:31 Uhr  ·  #1
Wäre es möglich, in Eingabefeldern von Passwörtern einen Button zu implementieren, bei dessen Betätigung das eingegebene Passwort im Klartext angezeigt wird?
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 15.11.2022 - 17:23 Uhr  ·  #2
Das unterstützt SWT leider nicht. Das ist die Grafik-Bibliothek, welche für die Darstellung der Oberfläche verwendet wird (www.eclipse.org/swt). Bzw. ist es unter Umständen das Betriebssystem selbst, welches diesen Button einblendet. Aus der Anwendung heraus habe ich darauf jedenfalls keinen Einfluss.
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 82
Dabei seit: 05 / 2020
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 16.11.2022 - 08:26 Uhr  ·  #3
Alles klar, danke trotzdem.
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 19.11.2022 - 20:30 Uhr  ·  #4
Habe das mal bei meinem Plugin (Hibiscus Mashup) in den PasswordDialog eingebaut.
Klick auf Button zeigt das Eingabefeld nicht mehr maskiert an sondern in Klartext und kann weiter bearbeitet werden.
Im Moment schaue ich noch ob ich dann den Button ändere in "Maskiere Passwort" wieder.

Soll ich den Code hier mal posten oder dir per Mail schicken?

Gruß
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 20.11.2022 - 09:42 Uhr  ·  #5
Das ist dann aber ein Eigenbau und sind nicht die Bordmittel des Betriebssystems, oder? Also ein normaler Button hinter dem Eingabefeld und nicht dieses Auge-Symbol rechts innerhalb des Eingabefeldes?
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 20.11.2022 - 16:58 Uhr  ·  #6
Absolut richtig. Selbst wüsste ich auch nicht, dass dies irgendwo Systemübergreifend einfach so einstellbar wäre. Sowas müsste ja das Text-Feld selbst mitbringen.
Und am häufigsten trifft man dieses Auge ja eher bei Browsern und soweit ich das verstehe passt man selbst da "manuell" mit mehr HTML-Code das Textfeld an.
Das ist ja auch nicht wirklich bei jeden Passwort-Feld so, sondern meist ein "Eingriff von Außen", also neu malen oder in der Runtime abändern.
Das Problem ist ja, dass man das Original SWT-Text-Feld nicht einfach so dahingehend um-designen kann, dass dieses ein Bild mit einer Action beinhaltet. (editiert auf Wunsch)

Gruß
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 21.11.2022 - 09:30 Uhr  ·  #7
Wie machst du in dem SWT Text Widget eigentlich die Umschaltung? Per "text.setEchoChar('\0')" bzw. "text.setEchoChar('*')"?
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Nun sicherer

 · 
Gepostet: 21.11.2022 - 18:01 Uhr  ·  #8
Ja genau, über den EchoChar.
Aufgrund der angesprochenen Sicherheitsbedenken (per Mail) und der eigentlichen Funktionsweise und Verfügbarkeit eines solchen Auge-Buttons, habe ich das Ganze nochmals überdacht und angepasst.

Das Eingabefeld wird nun beim Betätigen des Auge-Button (also beim demaskieren) "gesperrt" (siehe erstes Bild).
Das heißt es sind dann keine Eingaben bzw. Veränderungen und aber noch viel wichtiger das "rauskopieren" mehr möglich.
 
 

Die Beschreibung der Funktionsweise von z. B. Microsoft für den Edge und dadurch vermutlich auch für den Chrome bzw. für Chromium (was ja der Unterbau für alle ist) werde ich mal aufgreifen:

Um die Kennworteingabe des Benutzers zu schützen, unterdrückt der Browser die Schaltfläche in den folgenden Szenarien:
  • Die Schaltfläche zum Anzeigen des Kennworts ist erst verfügbar, wenn der Benutzer Text in das Kennwortfeld eingibt.
    Heißt, wenn das Texfeld leer ist, ist auch der Auge-Button deaktiviert und nicht verwendbar.
    (Außer dieses wurde, wie weiter unten beschrieben, "automatisch zur Sicherheit" maskiert.)
  • Wenn sich der Fokus vom Kennwortfeld entfernt, entfernt der Browser die Schaltfläche zum Anzeigen des Kennworts.
    Dies wird hier so nicht klappen, da das "Auge" ja eben nicht zum Eingabefeld gehört sondern einen extra Button darstellt.
    Sobald dieser geklickt wird, verliert das Eingabefeld ja sofort seine Focus. (Der Button würde verschwinden, ka je nachdem was schneller ist). Oder ich denke da falsch oder vergesse was.
  • Wenn Skripts das Kennwortfeld ändern, entfernt der Browser die Schaltfläche zum Anzeigen des Kennworts.
    Das wird es wohl bei Jameica so eh nicht geben, davon gehe ich mal stark aus.
  • Wenn die Schaltfläche zum Anzeigen des Kennworts entfernt wird, muss der Benutzer den Inhalt des Kennwortfelds löschen, damit die Schaltfläche zum Anzeigen des Kennworts wieder angezeigt wird. Dieses Verhalten verhindert, dass jemand eine geringfügige Anpassung vornimmt, um das Kennwort anzuzeigen, wenn der Benutzer ein entsperrtes Gerät verlässt.
    Da der Button nie entfernt wird und Punkt 2+3 eben wahrscheinlich nie zutreffen, gibts das so auch nicht.
    Wird aber das Feld vom User demaskiert und das Dialogfeld einfach stehen gelassen, wird im Moment das Eingabefeld "nach 15 Sekunden automatisch wieder maskiert". (siehe zweites Bild)
    Somit sollte man dann aber konsequenterweise auch den Auge-Button gleich mit deaktivieren, damit das eben nicht missbraucht werden kann. Sicherheit geht vor (angenommen man wurde z. B. abgelenkt).
    Wenn man aber vorher, also innerhalb von 15 Sekunden den Button selbst nochmals betätigt um wieder zu maskieren, bleibt der Button aktiv.
    Ist das Kennwortfeld aber so nach 15 Sekunden "automatisch zur Sicherheit" gesperrt worden, muss man dieses erst leeren um den Button wieder zu aktivieren, wie hier beschrieben.
  • Die Schaltfläche zum Anzeigen des Kennworts ist nicht verfügbar, wenn das Kennwortfeld mithilfe des Kennwortmanagers automatisch ausgefüllt wird.
    Bin ziemlich sicher, dass es dazu (für die Einfüge-Erkennung) notwendig wäre, dass Olaf die Methode "paste()" vom der SWT Text-Klasse in all seine Klassen mit übernimmt, damit ich die dann am Ende überschreiben und eben erweitern könnte. Würde ich aber ziemlich gerne einbauen, da sehr sinnvoll um z. B. ein Wert eines Passwort-Manager weiterhin zu schützen.
    Daher ist das nun im Moment so gelöst, dass "angenommen wird, wenn sich das Eingabefeld auf einmal um mehr als ein Zeichen erweitert, das diese Zeichenkette durch einen Einfüge-Vorgang hinzugekommen ist".
    (Unter der Annahme ein normaler User und eine normale Tastatur, kann nur ein Zeichen auf einmal übertragen müssen mehrere Zeichen anders übertragen worden sein. Somit ist das vermutlich sogar noch kompatibler als die original paste-Methode, da wirklich jede Einfüge-Vorgehensweise unter jedem OS berücksichtigt wird.)
    Der Auge-Button wird also sofort gesperrt wenn man etwas einfügt. Wie oben muss man dann erst das Feld komplett leeren um den Auge-Button verwenden zu können.


Somit ist der Auge-Button eigentlich nur verfügbar, wenn man selbst eintippt und eine de-maskierte Eingabe nicht vergessen hat.
Genauso wie es sein sollte.


Hoffentlich stellt dies eine akzeptable (alternative) Variante dar ohne dass nun Diskussionen über die "Bearbeitbarkeit eines maskierten Eingabefeldes" diskutiert wird.
Sollte solch eine Funktion gewünscht sein (obwohl sehr sicherheitsbedenklich da es hier ja auch um eine Banking-Software geht), wäre mein Favorit eher: eine Jameica-Einstellung die man als User per Checkbox aktivieren kann und ich dann abfragen kann, ob der User das explizit so möchte. Dann ist der selber Schuld ;D

Gruß
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Leipzig
Homepage: willuhn.de/
Beiträge: 10071
Dabei seit: 03 / 2005
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 22.11.2022 - 08:14 Uhr  ·  #9
Klasse! Danke für die ausführliche Recherche und Analyse. Ich glaube, ich würde es deshalb in Jameica erstmal sein lassen. Das Programm sollte ja auch kein Ersatz für den Passwort-Manager sein. Wenn man es nicht mehr kennt, kann man ja dort nachschauen.
Benutzer
Avatar
Geschlecht: keine Angabe
Homepage: hibiscus-mashup.de…
Beiträge: 383
Dabei seit: 06 / 2012
Betreff:

Re: Feature Request: Button zur Klartext-Anzeige von Passwörtern

 · 
Gepostet: 22.11.2022 - 10:23 Uhr  ·  #10
Hab Punkt 5 nun auch noch eingebaut, mit einer ich denke guten Alternative zur paste-Methode ;D
Da ich denke, dass dieser Punkt gerade in Bezug auf Passwort-Manager sinnvoll ist, denn dort ist das Passwort geschützt und das sollte es auch weiterhin bleiben. Wenn man es somit eh woanders hat her-kopieren können, kann man es auch da einsehen und bearbeiten, etc. Klar. Und um zu sehen was man einfügt, kann man auch überall anders Einfügen um das Kopierte im Klartext zu sehen.

Denke nicht das der Auge-Button dann aber für "ich kenn mein Passwort nicht mehr" war, das wäre ja nur interessant bei deiner "Im Fehlerfall zeige das letzte Passwort/Pin an"-Funktion.
Aber genau für diese würde ich eben auch keinen Auge-Button anbieten!
Das Passwort muss ja mal gepasst haben und Ja, Jameica ist kein Passwort-Manager! und es sollte niemand dieses Zwischengespeicherte Passwort einfach "anschauen" können.

Der Auge-Button sollte dafür da sein um zu sehen was man da für falsche Angaben eingetippt hat ;D
Die Ursprüngliche Frage war ja aber auch
Zitat
einen Button zu implementieren, bei dessen Betätigung das eingegebene Passwort im Klartext angezeigt wird
Also somit nun alles erfüllt und zumal gibts bei mir eh kein zwischengespeichertes Passwort, das bei einem Fehler nochmals angeboten wird ;D

Gruß
Gewählte Zitate für Mehrfachzitierung:   0