Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Passwort Char umgangen (https://www.delphipraxis.net/204702-passwort-char-umgangen.html)

haentschman 20. Jun 2020 08:29

Passwort Char umgangen
 
Moin...:P

Das wollte ich schon lange mal fragen... :wink:
In der Firma hat ein Mitarbeiter ein Tool installiert (Name?), womit die Password Felder im Klartext angezeigt werden. Das betrifft auch meine TEdit. :shock:
Kann man das verhindern?

PS: Klar sind die im Edit im Klartext und nur für die Oberfläche mit * sichtbar. Aber das hebelt ja das "System" aus.

Danke...:wink:

Delphi.Narium 20. Jun 2020 08:59

AW: Passwort Char umgangen
 
Nur 'ne grobe Idee:

'nen Nachfahren von TEdit bauen, der ein zusätzliches Attribut Passwort (oder sowas) erhält.

Bei der Eingabe von Zeichen wird die Übertragung der Zeichen in das Textattribut auf das neue Attribut umgeleitet und in das Textattribut der Stern geschrieben.

Dort, wo bisher das Textattribut gelesen wurde, wird nun das neue Attribut gelesen.

Oder im OnChange des Edits die Zeichen abfangen und in 'ne (globale) Variabel, ein Attribut des Formulars, ... schreiben und ins Edit immer nur 'nen * schreiben. Statt des Textattributes dann die "Abfangvariabel" lesen.

jaenicke 20. Jun 2020 09:34

AW: Passwort Char umgangen
 
Du kannst eine Komponente von TEdit ableiten und dort z.B. WM_GETTEXT abfangen:
https://stackoverflow.com/a/37929877

Allerdings lesen manche Tools auch den Speicher aus und versuchen das Passwort-Zeichen zu überschreiben usw., so dass eine komplett eigene (selbst gezeichnete) Komponente, die nicht von TEdit abgeleitet ist, am sichersten wäre.

Hobbycoder 20. Jun 2020 09:54

AW: Passwort Char umgangen
 
Warum das Passwort überhaupt in das Edit laden?

Ich lade in den Forms immer nur ein Pseudo-Passwort. Das könnte man ruhig auslesen, würde aber nicht funktionieren.
Die Edit-controls werden nur für Neueingabe verwendet. Und da der User, der sie eingibt ja dann vor dem Rechner sitzt und ja sowieso weiß, was er eingibt, wäre zu dem Zeitpunkt ein Auslesen eigentlich egal.

Es gibt lediglich den Zeitraum nach der Eingabe in das Edit-Feld bis zum Schließen der Form. Wenn der User dann den Arbeitsplatz verläßt, könnte ein anderer das Kennwort auslesen.

jaenicke 20. Jun 2020 10:26

AW: Passwort Char umgangen
 
Zitat:

Zitat von Hobbycoder (Beitrag 1467843)
Es gibt lediglich den Zeitraum nach der Eingabe in das Edit-Feld bis zum Schließen der Form. Wenn der User dann den Arbeitsplatz verläßt, könnte ein anderer das Kennwort auslesen.

Du vergisst, dass manche dieser Tools auch im Hintergrund laufen und jegliche Eingabe in solchen speziellen Feldern aufzeichnen. Wenn man ein Feld verwendet, das nicht als solches erkennbar ist, erschwert man solche Angriffe. Denn jegliche Tastatureingaben als Passwort zu probieren oder versuchen zu identifizieren oder ähnliches wäre natürlich sehr aufwendig und daher für die breite Masse an Angriffen nicht denkbar.

Dass man vorhandene Passwörter nicht bei einem Aufruf des Formulars zum Ändern in ein solches Textfeld lädt, ist klar. Im Normalfall liegt ein solches Passwort aber auch gar nicht vor (sondern nur als Hash), wenn es nicht gerade um gespeicherte Logindaten für ein Fremdsystem wie in einem FTP-Tool geht.

haentschman 20. Jun 2020 10:41

AW: Passwort Char umgangen
 
Danke erstmal...:P
Zitat:

Du vergisst, dass manche dieser Tools auch im Hintergrund laufen und jegliche Eingabe in solchen speziellen Feldern aufzeichnen.
...eben. Das besagte Tool nimmt eigentlich nur die Sternchen weg...auch während der Eingabe. :evil:
Zitat:

Die Edit-controls werden nur für Neueingabe verwendet
Irgendwann muß man das Password eingeben (Login etc.)

Mich hatte nur verwundert, daß mein in der EXE "gespeichertes" Edit manipuliert wird. (Sternchen weg)

Delphi.Narium 20. Jun 2020 11:28

AW: Passwort Char umgangen
 
Für die Eingabe kann man auch das OnKey-irgendwasereignis des Formulars nehmen, das Passwort in 'ne Variabel stecken und in 'nem Label, 'nem (ansonsten völlig funktionslosen) Edit jeweils 'nen Stern ausgeben oder was anderes oder aber auch garnix: Sprich: Im Formular nur die Zeichen annehmen und bei #13 oder 'nem passenden Buttonklick die Eingabe als beendet betrachten. #9 nimmt das letzte Zeichen aus der Eingabe wieder weg, falls mal wer das letzte Zeichen korrigieren will, möchte, muss oder so ..., #27 schließt das Formular und bricht den Anmeldevorgang ab.

Wenn Anwender meinen, sie müssten die Eingabe mit irgendwelchen "externen Tools" überwachen, kann man sie die Eingabe auch in 'nem absoluten Blindflug machen lassen.

Oder: Zeichen eingegeben, piiieeept der Lautsprecher als Hinweis: "Zeichen ist angekommen", aber keine optische Anzeige dazu machen, oder in 'nem Label einfach nur die Anzahl der bisher eingegebene Zeichen anzeigen. Wer weiß, dass sein Passwort zwölf Zeichen lang ist, weiß dann, wenn er dort die zwölf sieht, dass er zwölf Zeichen eingegeben hat und damit wohl die Passworteingabe abgeschlossen ist. Er kann dann den Anmeldebutton drücken (oder es auch sein lassen ;-))

Und Copy&Paste oder Tools zum automatischen Ausfüllen, ... funktionieren bei sowas dann auch nicht (mehr) (hoffentlich ;-)).

Uwe Raabe 20. Jun 2020 11:54

AW: Passwort Char umgangen
 
Zitat:

Zitat von haentschman (Beitrag 1467846)
Mich hatte nur verwundert, daß mein in der EXE "gespeichertes" Edit manipuliert wird. (Sternchen weg)

Du muss nur irgendwie an das Handle des Edits kommen, dann kannst du das mit EM_SETPASSWORDCHAR ausschalten.

haentschman 20. Jun 2020 12:07

AW: Passwort Char umgangen
 
Zitat:

Du muss nur irgendwie an das Handle des Edits kommen, dann kannst du das mit EM_SETPASSWORDCHAR ausschalten.
...dämlich. :evil:

DeddyH 20. Jun 2020 12:11

AW: Passwort Char umgangen
 
Nunja, das TEdit dürfte das ja genauso machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:11 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz