AGB  ·  Datenschutz  ·  Impressum  







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

Delphi String schützen

Ein Thema von jacky213 · begonnen am 31. Dez 2018 · letzter Beitrag vom 3. Jan 2019
Antwort Antwort
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#1

Delphi String schützen

  Alt 31. Dez 2018, 13:52
Moin Moin,

ich habe ein Programm geschrieben welches beim öffnen nach einem Passwort fragt. Hier geht es jetzt nicht darum das gespeicherte Passwort zu schützen, denn sofern der Benutzer das falsche Passwort eingibt, können die Dateien ohnehin nicht entschlüsselt werden. Das benötigte Passwort ist also nicht im Programm gespeichert.

Mein Problem ist es, dass nachdem der Benutzer das Passwort eingegeben hat, dieses in einem String gespeichert wird weil es während der Benutzung mehrmals benötigt wird. Gibt es eine Möglichkeit diesen String zu schützen?

Ich möchte verhindern das der Speicher durchsucht wird und das Passwort dort im Klartext steht.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Delphi String schützen

  Alt 31. Dez 2018, 14:02
Wie wäre es, nur die Information, daß der Benutzer sich identifiziert hat, abzulegen?
Ansonsten gäbe es die Möglichkeit z.B. einen Hash abzulegen. Aber letztendlich erhöhst Du mit jeder "Sicherung" nur den Aufwand an die Passwortinformation zu kommen. Sicherheit gibt es nicht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#3

AW: Delphi String schützen

  Alt 31. Dez 2018, 14:08
Der Hash wäre wieder ein Hinweis auf das Passwort und ich wollte zu beginn schon kein Passwort in den Quellcode schreiben. Bei der Verschlüsselung handelt es sich um AES und wer das ohne Brute Force aufbekommt, der kriegt auch ganz andere Sachen hin.

Ich muss lediglich verhindern das jemand während der Laufzeit und während jemand angemeldet ist den Programmspeicher durchsucht. Gibt es eine Möglichkeit zu registrieren sobald der eigene Speicher durchsucht wird, dann zumindest den Benutzer auszuloggen?
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#4

AW: Delphi String schützen

  Alt 31. Dez 2018, 14:16
Wenn es für Windows ist, da gibt es genau dafür die API-Funktionen CryptProtectMemory und CryptUnprotectMemory.

Du kannst allerdings auch mit CryptProtectData arbeiten wofür ich auch eine Implementierung geschrieben habe. (siehe https://www.delphipraxis.net/1411641-post5.html).

Problematisch ist allerdings, dass bei CryptProtectData die Ursprungsdaten im Speicher erhalten bleiben und bei CryptProtectMemory wird eben genau dieser Speicherbereich der Ursprungsdaten verschlüsselt.

Geändert von Schokohase (31. Dez 2018 um 14:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Delphi String schützen

  Alt 31. Dez 2018, 15:26
Immer schwierig, wenn das System bereits kompromittiert ist, kann man eigentlich nur sehr schwer verhindern, dass ein bestimmtes Programm ausgespäht wird. Intel SGX wäre hier aber noch ein Stichwort - sofern die Hardware vorhanden ist.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
jacky213

Registriert seit: 2. Mär 2011
146 Beiträge
 
#6

AW: Delphi String schützen

  Alt 3. Jan 2019, 13:02
Es muss nicht davon ausgegangen werden, dass das System bereits kompromittiert ist. Es soll nur dafür gesorgt werden das sobald das Programm läuft niemand ein Programm Startet und anfängt den Prozess nach dem Passwort String zu durchsuchen.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi String schützen

  Alt 3. Jan 2019, 13:21
Aber würde das nicht nur auf einem kompromittierten System passieren?

Das Paßwort wird doch vom Anwender gerade eben eingegeben. Wer sonst soll denn da noch am Rechner hocken und - unbemerkt, wohlgemerkt - den Prozess ausspähen?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#8

AW: Delphi String schützen

  Alt 3. Jan 2019, 14:41
Nehmen wir mal ein Kassensystem, dort können sich unterschiedliche Benutzer an der Anwendung anmelden (und alle anderen Systeme die so arbeiten).

Die Session selber ist ein Standard-Benutzer. Wenn die Zugangsdaten vom Vorbenutzer nicht verschlüsselt abgelegt wurden, dann reicht ein Memory-Dump über den Task-Manager und Strings um an das Kennwort zu gelangen (ja, ein wenig Zeit zum Durchlesen auch noch).

Allerdings reicht es hierbei nicht aus, einfach den Wert aus einem Edit-Feld zu nehmen und zu verschlüsseln. Denn da ist das Kind schon lange im Brunnen. Man benötigt ein spezielles Eingabefeld, welches die einzelnen Tastendrücke Zeichen für Zeichen an diesen geschützten Speicher übergibt.

Geändert von Schokohase ( 3. Jan 2019 um 14:44 Uhr)
  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 03:41 Uhr.
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