Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Wie Passwörter/Zertifikate speichern (https://www.delphipraxis.net/208132-wie-passwoerter-zertifikate-speichern.html)

zeras 15. Jun 2021 20:39

Wie Passwörter/Zertifikate speichern
 
Für die Anmeldung auf einem Server wird ein Passwort benötigt. Dieses wollte ich nicht in ein Programm einbauen, falls sich mal etwas ändert.
Im Moment liegt das zum Test in einer INI Datei im Klartext, was ja nicht schön und sicherheitstechnisch nicht OK ist.
Wie handelt ihr solche Passwörter? Einfach mit XOR verknüpfen oder?
Ich habe auch ein Zertifikat, was ich im Programm nutzen muss. Was mache ich damit?

Poelser 15. Jun 2021 21:53

AW: Wie Passwörter/Zertifikate speichern
 
Zitat:

Zitat von zeras (Beitrag 1491112)
Im Moment liegt das zum Test in einer INI Datei im Klartext, was ja nicht schön und sicherheitstechnisch nicht OK ist.
Wie handelt ihr solche Passwörter? Einfach mit XOR verknüpfen oder?

Mit Lazarus benutze ich dafür ein Klasse namens CryptedIni, sicher gibt es sowas auch für Delphi.

scrat1979 15. Jun 2021 23:19

AW: Wie Passwörter/Zertifikate speichern
 
Ich habe mir eine Klasse von TMemIniFile abgeleitet und eine Verschlüsselung eingebaut, so dass die INI-Datei letztendlich mittels AES verschlüsselt abgelegt wird. Du wirst allerdings immer das Problem haben irgendein Passwort im Programm hardzucoden (in diesem Fall eben das Passwort zur Entschlüsselung der INI-Datei), es sei denn Du fragst das Passwort beim Start des Programmes immer neu ab.

mytbo 16. Jun 2021 12:56

AW: Wie Passwörter/Zertifikate speichern
 
Wenn du die mORMot Libraries mit 1000x nützlichen Funktionen verwenden kannst, dann hier ein einfaches Beispiel.

Bis bald...
Thomas

dummzeuch 16. Jun 2021 13:37

AW: Wie Passwörter/Zertifikate speichern
 
Kannst Du das Password nicht vom User eingeben lassen? Das ist die einzige wirklich sichere Methode.

Alles andere verschiebt das Problem nur. Denn wenn ich das Password verschlüsseln will, gibt es ja einen Entschlüsselungsalgorithmus. Der ist entweder komplett im Programm eingebaut, incl. was auch immer als Basis für die Entschlüsselung dient (also z.B. wieder ein Password), oder muss irgendwoanders herkommen, wo sich das Problem dann wieder genauso ergibt.

generic 16. Jun 2021 15:28

AW: Wie Passwörter/Zertifikate speichern
 
Der Windows Anmeldeinformationsverwaltung wäre auch noch da.


https://docs.microsoft.com/de-de/win...ectedfrom=MSDN
bzw.
https://docs.microsoft.com/de-de/win...ectedfrom=MSDN

KodeZwerg 16. Jun 2021 19:35

AW: Wie Passwörter/Zertifikate speichern
 
NexusDB kostenfrei installieren.
Eine routine für den erststart bzw installationsoptionen nutzen um ein Passwort in einen Hashwert umzuwandeln.
Hashwert in DB ablegen.
Von nun an nur noch die Hashes miteinander vergleichen. (Also Hash aus DB mit Hash von Passwort-Abfrage)
(NexusDB benötigt keine Treiber und ist soweit ich weiß für Delphi Nutzer kostenfrei nutzbar)

zeras 16. Jun 2021 19:43

AW: Wie Passwörter/Zertifikate speichern
 
Mein Problem bezieht sich immer noch auf dies hier.
Ist so eine Art Gateway für Daten auslesen.
Der User fragt über eine HTTPS Verbindung auf einem Server an, auf dem der IIS läuft. Die ISAPI DLL holt sich dann von anderen Servern die entsprechenden Daten und stellt diese per GET Befehl zur Verfügung. Die DLL benötigt aber Leserechte auf den anderen Servern, um an die Daten zu kommen. Für diesen User mit den Leserechten benötige ich dann Domain, Username und Passwort. Normalerweise kommt auf diesen Gateway Server niemand ran, aber ich wollte das trotzdem nicht in einer INI so unverschlüsselt lassen.
Daher
- Passwort in der DLL nicht gut, wenn sich etwas ändert
- Nutzereingabe gibt es bei diesen Server ja nicht, da er nur per GET bedient wird und den sonst keiner sieht (sehen sollte).
- Der IIS läuft, soweit ich weiß, auch ohne Useranmeldung.

KodeZwerg 16. Jun 2021 19:58

AW: Wie Passwörter/Zertifikate speichern
 
Das zuletzt gesagte hört sich für mich nach einer simplen Nutzer-Verwaltung an.
Also einer Tabelle von User-Daten.
Oder join Tabellen, eine mit den User-Daten, eine mit den Beschreibungen... der Fantasie sind dort keine Grenzen gesetzt.
Per DB könnte auch aus mehreren Instanzen die Verwaltung stattfinden.
Ich weiß nicht wie sich das ganze auf virtuelle Server auswirkt und kann dazu nichts sagen.

So würde ich es zumindest versuchen anzugehen, mögliche Daten logisch atomisieren und daraus dann Tabelle(n) erstellen.

KodeZwerg 16. Jun 2021 20:15

AW: Wie Passwörter/Zertifikate speichern
 
Ps: Vielleicht wäre ein Umstieg nach REST eine alternative?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Seite 1 von 2  1 2   

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