Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Verhindern, dass ein String im Pagefile landet. (https://www.delphipraxis.net/178737-verhindern-dass-ein-string-im-pagefile-landet.html)

cookie22 24. Jan 2014 10:34

Verhindern, dass ein String im Pagefile landet.
 
Ich habe einen String, welcher ein Passwort enthält. Ich möchte vermeiden, dass der String ausgelagert wird und im Page File landet. Hat jemand eine Idee dazu?

DeddyH 24. Jan 2014 10:38

AW: Verhindern, dass ein String im Pagefile landet.
 
Evtl. mit VirtualLock "festhalten"?

FBrust 24. Jan 2014 10:42

AW: Verhindern, dass ein String im Pagefile landet.
 
Hallo,

ob Du Einfluss auf den Umgang von Windows mit der Pagefile nehmen kannst, weiss ich nicht.

Du könntest aber prüfen, ob das Passwort die ganze Zeit in dem String stehen muss oder ob das Passwort nur zum Überprüfen auf Korrektheit benötigt wird und Du danach den String wegwerfen/leeren kannst. Das würde zumindest die Chance vermindern, dass der String in die Pagefile geschrieben wird.


Gruß
Frank

cookie22 24. Jan 2014 10:55

AW: Verhindern, dass ein String im Pagefile landet.
 
VirtualLock sieht ganz gut aus. Muss ich das nachher wieder unlocken?

Das reicht schon?

Delphi-Quellcode:
...
var
  Passwd: string;
begin
  VirtualLock(@Passwd, Sizeof(Passwd));
end;

Neutral General 24. Jan 2014 11:01

AW: Verhindern, dass ein String im Pagefile landet.
 
Was ist der Unterschied? Jemand der die Pagefile(s) ausliest kann genauso gut auch den Anwendungsspeicher auslesen.
Ich weiß nicht ob das so viel Sinn macht.

Meflin 24. Jan 2014 11:03

AW: Verhindern, dass ein String im Pagefile landet.
 
Zitat:

Zitat von Neutral General (Beitrag 1245155)
Was ist der Unterschied? Jemand der die Pagefile(s) ausliest kann genauso gut auch den Anwendungsspeicher auslesen.

Der Unterschied ist, dass das Pagefile auf permanentem Speicher liegt, und selbst dann noch ausgelesen kann, wenn die Festplatte garkeinen Strom mehr hat - und die Daten u.U. auch dann noch auf der Platte existieren können, wenn sie eigentlich auch im Pagefile nicht mehr drin sind (Slack Space etc.). Während der RAM sich innerhalb kürzester Zeit nach dem Ausschalten annihiliert.

DeddyH 24. Jan 2014 11:04

AW: Verhindern, dass ein String im Pagefile landet.
 
Selbst benutzt habe ich es auch noch nicht, würde aber eher auf
Delphi-Quellcode:
VirtualLock(@Passwd, Sizeof(Char) * Length(Passwd));
tippen. Zum Unlock sagt das MSDN:
Zitat:

To unlock a region of locked pages, use the VirtualUnlock function. Locked pages are automatically unlocked when the process terminates.

cookie22 24. Jan 2014 11:17

AW: Verhindern, dass ein String im Pagefile landet.
 
Zitat:

Zitat von Neutral General (Beitrag 1245155)
Was ist der Unterschied? Jemand der die Pagefile(s) ausliest kann genauso gut auch den Anwendungsspeicher auslesen.
Ich weiß nicht ob das so viel Sinn macht.

Meflin hats schon ganz gut erklährt.

Zitat:

Zitat von DeddyH (Beitrag 1245157)
Delphi-Quellcode:
VirtualLock(@Passwd, Sizeof(Char) * Length(Passwd));
tippen. Zum Unlock sagt das MSDN:
Zitat:

To unlock a region of locked pages, use the VirtualUnlock function. Locked pages are automatically unlocked when the process terminates.

Handelt sich um nen Ansi String unter Lazarus, da kann ich mir das Sizeof(Char) sparen.

Gibt es sowas wie VirtualLock auch für Linux und MacOS X?

himitsu 24. Jan 2014 11:28

AW: Verhindern, dass ein String im Pagefile landet.
 
Warum liegt der überhaupt ungeschützt im RAM?
Als Hash oder verschlüsselt könnte man ihn ja auch abspeichern.

Und wie kommt das Passwort in deine Variable?
Das, wo der String her kommt, hat ihn bestimmt auch schon im RAM und das kannst du vermutlich nicht daran hinter, daß er ausgelagert wird.

Union 24. Jan 2014 11:33

AW: Verhindern, dass ein String im Pagefile landet.
 
Zitat:

Zitat von cookie22 (Beitrag 1245158)
Gibt es sowas wie VirtualLock auch für Linux und MacOS X?

Da gibt es mlock().


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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