AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Passwort Char umgangen

Ein Thema von haentschman · begonnen am 20. Jun 2020 · letzter Beitrag vom 22. Jun 2020
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#1

Passwort Char umgangen

  Alt 20. Jun 2020, 08:29
Moin...

Das wollte ich schon lange mal fragen...
In der Firma hat ein Mitarbeiter ein Tool installiert (Name?), womit die Password Felder im Klartext angezeigt werden. Das betrifft auch meine TEdit.
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...

Geändert von haentschman (20. Jun 2020 um 08:36 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.555 Beiträge
 
Delphi 7 Professional
 
#2

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 08:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.907 Beiträge
 
Delphi 12 Athens
 
#3

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 09:34
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#4

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 09:54
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.907 Beiträge
 
Delphi 12 Athens
 
#5

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 10:26
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#6

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 10:41
Danke erstmal...
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.
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)

Geändert von haentschman (20. Jun 2020 um 10:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#7

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 13:52
Kann man das verhindern?
Warum willst du das denn überhaupt verhindern?

Ich würde sogar noch weiter gehen und dem Benutzer direkt in deinem Programm eine Möglichkeit geben, das Passwort sichtbar zu machen - und wenn auch nur temporär für die jeweilige Eingabe. Wie oft habe ich mich schon über ein falsches Passwort gewundert, nur weil Caps-Lock eingeschaltet war oder das Tastaturlayout auf einer falschen Sprache stand. Das wäre alles sofort ersichtlich, wenn man das eingegebene Passwort sehen könnte. Wer das Passwort nicht sichtbar haben will, der lässt es eben bei den Sternchen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#8

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 14:23
Zitat:
Warum willst du das denn überhaupt verhindern?
Das war nur zur Info. Ich hoffte, daß das einfach zu verhindern ist. Wenn ich mal so kritische Bereiche habe, weiß ich was zu tun ist. Ich muß nur mal über alle drübergucken, was wo drin steht und auslesbar ist, aber nicht soll.

Geändert von haentschman (20. Jun 2020 um 14:26 Uhr)
  Mit Zitat antworten Zitat
jziersch

Registriert seit: 9. Okt 2003
Ort: München
258 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Passwort Char umgangen

  Alt 20. Jun 2020, 14:44
Hier der code einer einfachen aber sicheren Passwort Eingabekomponente.
Da es nicht von TEdit abstammt kann man es auch nichts auslesen.

Code:
type
  TWPGeheim = class(TCustomControl)
  private
    FText : String;
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;X, Y: Integer); override;
  public
    procedure Paint; override;
    procedure KeyPress(var Key: Char); override;
    property Text : String read FText write FText;
  end;

{ TWPGeheim }

procedure TWPGeheim.KeyPress(var Key: Char);
begin
  if Key=#8 then FText := Copy(FText,1,Length(FText)-1)
  else if Key>#32 then FText := FText + Key;
  invalidate;
end;

procedure TWPGeheim.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);
begin
  inherited;
  SetFocus;
end;

procedure TWPGeheim.Paint;
var s : string;
    i : Integer;
begin
  inherited;
  if Focused then
       Canvas.Font.Color := clHighlight
  else Canvas.Font.Color := clWindowText;
  SetLength(s, Length(FText));
  for I := 1 to Length(s) do s[i] := '*';
  Canvas.TextOut( 1,1,s);
end;

procedure TWPGeheim.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or WS_BORDER or WS_TABSTOP;
end;
Kann man natürlich erweitern, z.b. um CTRL+V für Einfügen zu unterstützen:

Code:
procedure TWPGeheim.KeyPress(var Key: Char);
begin
  if Key=#8 then FText := Copy(FText,1,Length(FText)-1)
  else if Key>#32 then FText := FText + Key
  else if Key=Char(22) then // ^V
  begin
    Clipboard.Open;
    try
     SetLength(FText,30);
     SetLength(FText,Clipboard.GetTextBuf(PChar(FText),30));
    finally
     Clipboard.Close;
    end;
  end;
  invalidate;
end;
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz