PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell-Variable sicher löschen



Cifer
28.06.06, 10:51
Hallo zusammen,
ich habe einige Partitionen meines Systems, inkl. der Rootpartition, mit einer Mischung aus Truecrypt und Dm-Crypt verschlüsselt.
Die Partitionen werden vor dem eigentlichen Booten in einer kleinen Initrd Umgebung entschlüsselt und das Root-FS gemountet.
Nun haben alle Truecrypt Partitionen das gleiche Password, was das mounten einfacher macht, da man unter Windows das Password cachen kann um alles auf einmal zu Mounten.
Die Linuxverion hat dieses Feature nicht, weshalb ich das Password ein eine Shellvariable einlese und die dann für das Mounten verwende.

Natrülich will ich nicht, dass dannach das PW noch im RAM steht.
Gibt es als irgendeine Möglichkeit den Inhalt dieser Variable sicher zu überschreiben?
Ein einfaches $PASS="" ist, denke ich, nicht ausreichend.

Schon jetzt danke für die Hilfe
Cifer

marce
28.06.06, 11:03
warum sollte das nicht ausreichend sein?

Anomander
28.06.06, 11:06
Um Einträge im Arbeitsspeicher sicher zu löschen empfehle ich diesen von der Stromversorgung zu trennen ...

SCNR :D

carstenj
28.06.06, 11:11
Hi,

weil es danach noch im Ram stehen kann:

cat /dev/mem | strings | grep PASS

marce
28.06.06, 11:14
Schön. Um dass zu suchen brauche ich das PW aber bereits.

carstenj
28.06.06, 11:15
Hi,

ne, nicht wenn es in der offensichtlichen Variablen $PASS versteckt ist.

marce
28.06.06, 11:24
bei einem Versuch gerade finde ich nichts...

Cifer
29.06.06, 13:59
Hi, habe die Lösung gefunden.
Der Befehl heißt "unset".
Trotzdem danke

carstenj
29.06.06, 14:01
Aha. Und was ist jetzt der Unterschied zu PASS=""?

HEMIcuda
29.06.06, 14:05
# cat /dev/mem | strings | grep PASS
cat: /dev/mem: Operation not permitted

'cuda

carstenj
29.06.06, 14:09
Hi,

geht nur als root.

HEMIcuda
29.06.06, 14:10
Du kennst aber schon den Unterschied zwischen $ und #?

'cuda

suck
29.06.06, 14:17
Hier klappt das als root auch, unset hilft allerdings auch nicht.


# LALA=qwerta
# unset LALA
# cat /dev/mem | strings | grep LALAerzeugt in der Ausgabe mitunter:

#LALA=qwerta
LALA
LALA=qwerta

fuffy
29.06.06, 14:29
Hi!


weil es danach noch im Ram stehen kann:
1. braucht man für den Zugriff auf /dev/mem root-Rechte. Wenn man diese hat, braucht man die Passphrase nicht, sondern kann direkt auf sämtliche Dateien zugreifen, da die verschlüsselten Devices ja gemountet wurden. Ich würde niemandem Zugriff auf mein freigeschaltetes System geben, schon gar keine root-Rechte.

2. kann man mit SELinux selbst root den Zugriff auf /dev/mem verwehren.

Gruß
fuffy