gpg -> sicherer Editor (incl. verschlüsseln und entschlüsseln)
Hallo Leute, manche sensible Daten speichere auf meiner Platte im ASCII-Format und verschlüssle dieses File dann mit meinem gpg. Das orginal-File lösche ich dann natürlich! Ab und an muss ich natürlich an diese Informationen aus diesem gpg-Verschlüsselten File. Dazu entschlüssle ich die Datei in eine ASCII-Datei und diese editiere ich. Anschliessend verschlüssle ich wieder die editierte Datei und lösche das Plain-file. Während ich auf die entschlüsselte Datei zugreife liegt diese auf meiner Platte ungeschützt herum. Dieses von mir hier gezeigte Vorgehen macht mir jedoch sorgen. Lieber wäre mir ein kleines Programm (vielleicht geht es mit einem gewöhnlichen Texteditor???) der beim öffnen der verschlüsselten Datei das Passwort abfragt und im Hauptspeicher die Datei entschlüsselt. Hier im Hauptspeicher sollte es möglich sein den Inhalt zu ändern. Anschliessend sollte es möglich sein diese Änderungen verschlüsselt auf der Platte zu hinterlegen (also die Datei zu ersetzen). Kennt jemand ein solches Programm? Ich hoffe es deutlich genug dargestellt zu haben. Das händische entschlüsseln und verschlüsseln ist auf die Dauer nämlich extrem nerven aufreibend. tia und schöne Grüße Oli
Hallo, Tim Oliver Wagner wrote:
Kennt jemand ein solches Programm? Ich hoffe es deutlich genug dargestellt zu haben. Das händische entschlüsseln und verschlüsseln ist auf die Dauer nämlich extrem nerven aufreibend.
wäre es nicht fast einfacher eine ganze Partition zu verschlüsseln und auf diese solche sensiblen Daten unterzubringen? Gruß, Bernhard
wäre es nicht fast einfacher eine ganze Partition zu verschlüsseln und auf diese solche sensiblen Daten unterzubringen?
unabhängig davon: vor solchen Aktionen den Swap abstellen (swapoff -a) und danach wieder anschalten (swapon -a), sonst landen Klartext-Infos aus dem Hauptspeicher auch mal im unsicheren Swap, und afaik gibts momentan noch keine einigermaßen komfortable Methode, bei Suse die Swap-Partition zu verschlüsseln... ... und wech Nikolas Tautenhahn
Nikolas Tautenhahn wrote:
unabhängig davon: vor solchen Aktionen den Swap abstellen (swapoff -a) und danach wieder anschalten (swapon -a), sonst landen Klartext-Infos aus dem Hauptspeicher auch mal im unsicheren Swap, und afaik gibts momentan noch keine einigermaßen komfortable Methode, bei Suse die Swap-Partition zu verschlüsseln...
das eigentliche Problem liegt viel tiefer. Wenn man für ein Programm verhindern will, dass z. B. ein Passwort ausgelagert wird, gibt es grundsätzlich den Systemcall mlock(). Allerdings darf man den nur als Root benutzen. Und suid-root ist auch nicht unbedingt die tolle Lösung für jedes Programm. :-( Vielleicht gibt es ja irgendwann eine Lösung, einem einfachen User mit ulimit eine bestimmte Menge an gelocktem Speicher zu geben. Es wurde sowas auch mal in der Kernel-Mailingliste diskutiert, aber meines Wissens ist noch nichts im normalen Kernel drin, das diese Funktionalität bietet. Gruß, Bernhard
Am 12/04/2004 01:32 PM schrieb Nikolas Tautenhahn:
und afaik gibts momentan noch keine einigermaßen komfortable Methode, bei Suse die Swap-Partition zu verschlüsseln...
Doch, gibt es: http://lists.suse.com/archive/suse-linux/2004-Oct/1586.html MfG, Michael.
Am Samstag, 4. Dezember 2004 13:07 schrieb Bernhard Walle:
Hallo,
Tim Oliver Wagner wrote:
Kennt jemand ein solches Programm? Ich hoffe es deutlich genug dargestellt zu haben. Das händische entschlüsseln und verschlüsseln ist auf die Dauer nämlich extrem nerven aufreibend.
wäre es nicht fast einfacher eine ganze Partition zu verschlüsseln und auf diese solche sensiblen Daten unterzubringen?
IMHO nein, weil: Also wenn es auf einer extra Partition ist und es ein "Einbrecher" auf meinen Rechner geschafft hat, dann ist die Datei für ihn genauso zugänglich wie in dem von mir beschriebenen Fall meine entschlüsselte Datei. Dies möchte ich verhindern. Falls dieser "böse Junge" meine Datei ergattert, sollte er damit nichts anfangen können. Ich wäre auch schon mit etwas zufrieden wie: -> vi meinVerschlFile.gpg -> Passwort eingeben: ********************* -> darstellen des Inhalts ohne Beachtung der Auslagerung auf Swap (nur auf die Platte sollte keine entschlüsselte Version/Information geschrieben werden). Das Passwort braucht man ja nicht nochmal um die Datei zu verschlüsseln. -> verschlüsselt wieder speichern -> Programm beenden Danke und Grüße Oli
Hallo, habe das selbe Problem mal für Nutzer unter Windows bearbeitet. Da ein passender Editor nicht greifbar war, zwei grundsätzliche Lösungen dafür: 1. Verschlüsselte Container/Laufwerke für das ablegen der entschlüsselten Dateien benutzen. Unter Windows mit u.a. BestCrypt, DriveCrypt, PGPDisk usw. machbar. Unter Linux als "Encrypted Loopback Device" von Haus mit dabei. Da gibt's auch HOWTOs dafür. 2. Ramdisk für die temporäre Zwischenablage der entschlüsselten Dateien benutzen. Die mir bekannten Ramdrives unter Windows lagern nicht auf Swap aus, außerdem kann man unter Windows 2000/XP auch das komplette Löschen des Swap beim Shutdown einstellen. Unter Linux ließe sich das mit einem einfachen Script a la "dd if=/dev/zero of=/dev/<swap-partition>" in /etc/rc6.d und /etc/rc0.d bewerkstelligen (oder tiltet man damit irgendwelche wichtigen Swap-Kennzeichnungen etc.?). Welche Möglichkeiten es mittlerweile unter Kernel 2.6 für das anlegen von Ramdisks gibt, weiß ich nicht. Ich kenne vor allem tmpfs, das lagert aber meiner Meinung nach auf jeden Fall aus, wenn's nötig ist. Das nimmt dir allerdings den Aufwand des ver- und entschlüsselns nicht ab. Ich halte deshalb die Lösung 1.) wie schon vorgeschlagen für die beste Methode, allerdings darf die betreffende Partition oder Container-Datei nur geöffnet sein, so lange keine Internet-Verbindung besteht, muss also manuell geöffnet und geschlossen werden. Das ist etwas umständlich, aber wenn es wirklich sicherheitsrelevant ist, kaum bequemer zu lösen. Gpg sorgt übrigens selbst mittels mlock() dafür, dass die Passphrasen nicht auf Swap gelangen. Tim Oliver Wagner schrieb:
Am Samstag, 4. Dezember 2004 13:07 schrieb Bernhard Walle:
Hallo,
Tim Oliver Wagner wrote:
Kennt jemand ein solches Programm? Ich hoffe es deutlich genug dargestellt zu haben. Das händische entschlüsseln und verschlüsseln ist auf die Dauer nämlich extrem nerven aufreibend.
wäre es nicht fast einfacher eine ganze Partition zu verschlüsseln und auf diese solche sensiblen Daten unterzubringen?
IMHO nein, weil:
Also wenn es auf einer extra Partition ist und es ein "Einbrecher" auf meinen Rechner geschafft hat, dann ist die Datei für ihn genauso zugänglich wie in dem von mir beschriebenen Fall meine entschlüsselte Datei. Dies möchte ich verhindern. Falls dieser "böse Junge" meine Datei ergattert, sollte er damit nichts anfangen können.
Ich wäre auch schon mit etwas zufrieden wie:
-> vi meinVerschlFile.gpg -> Passwort eingeben: ********************* -> darstellen des Inhalts ohne Beachtung der Auslagerung auf Swap (nur auf die Platte sollte keine entschlüsselte Version/Information geschrieben werden). Das Passwort braucht man ja nicht nochmal um die Datei zu verschlüsseln. -> verschlüsselt wieder speichern -> Programm beenden
Danke und Grüße
Oli
Am Samstag, 4. Dezember 2004 14:07 schrieb Tim Oliver Wagner:
wäre es nicht fast einfacher eine ganze Partition zu verschlüsseln und auf diese solche sensiblen Daten unterzubringen?
IMHO nein, weil:
Also wenn es auf einer extra Partition ist und es ein "Einbrecher" auf meinen Rechner geschafft hat, dann ist die Datei für ihn genauso zugänglich wie in dem von mir beschriebenen Fall meine entschlüsselte Datei.
hallo wach! die partition ist _VER_schlüsselt... bye, MH
Am Samstag, 4. Dezember 2004 14:44 schrieb Bernhard Walle:
Mathias Homann wrote:
hallo wach! die partition ist _VER_schlüsselt...
er meint wohl im laufenden Betrieb.
hm. also er meint wohl, dass ein einbrecher den rechner klaut... damit der zustand "im laufenden betrieb" erhalten bleibt, muss der einbrecher also die (warscheinlich gar nicht vorhandene) USV auch mitnehmen... Da bietet sich dann eigentlich an, den rechner einfach runterzufahren wenn er nicht gebraucht wird... oder eben vertrauliche daten nie irgendwo physikalisch speichern. Der diebstahlsichere Speicher für so was ist zwischen den Ohren... und vor allem immer schon aufpassen dass DIE DA DRAUSSEN einen nicht kriegen... bye, MH
Am Samstag, 4. Dezember 2004 15:13 schrieb Bernhard Walle:
Mathias Homann wrote:
hm. also er meint wohl, dass ein einbrecher den rechner klaut...
1. Laptops existieren.
ob der fiese finsterling sich nun nen eingeschalteten laptop klaut oder nen eingeschalteten rechner samt usv ändert aber nix an der tatsache, daß die verschlüsselte partition im ausgeschalteten rechner nicht lesbar ist... ;) also, rechner aus wenn fertig.
2. Es soll Leuten gelungen sein, sich von außen übers Netzwerk Zugang zu fremden Rechnern zu verschaffen.
firewall, und keine dienste auf dem zu schützenden rechner laufen lassen. am besten noch hinter einem NAT verstecken. oder sich am besten die frage stellen, warum so sensitive daten überhaupt auf einem rechner gespeichert sind. oder zumindest auf der festplatte... ich gehe hier von daten aus, die so brisant sind, daß ein einbrecher extra wegen diesen daten einsteigt und den rechner mitnimmt. der normale "waldundwieseneinbrecher" findet in einem normalen haushalt interessantere und wertvollere beute als einen aldi pc. jeder bessere fernseher bringt bei ebay oder bei schmieren-ede im bahnhofsviertel mehr als ein alter pc... und omas tafelsilber ist auch mehr wert, und leichter "umzuverteilen"... SO sensitive daten, wie das hier inzwischen vermuten lässt, gehören nicht auf den pc. die gehören gpg-verschlüsselt auf wechseldatenträger, und die wechseldatenträger gehören in den tresor. und wenns wirklich nicht anders geht, dann gehört der pc auf dem die daten drauf sind nicht ans netz. es sei denn hinter einer wirklich guten firewall. und da rede ich jetzt nicht mehr von einer linux box mit iptables. ich seh da jetzt inzwischen cisco PIX. mehrere. hintereinander. bye, MH -- Die unaufgeforderte Zusendung einer Werbemail an Privatleute verstößt gegen §1 UWG und 823 I BGB (Beschluß des LG Berlin vom 2.8.1998 Az: 16 O 201/98). Jede kommerzielle Nutzung der übermittelten persönlichen Daten sowie deren Weitergabe an Dritte ist ausdrücklich untersagt! gpg key fingerprint: 5F64 4C92 9B77 DE37 D184 C5F9 B013 44E7 27BD 763C
Mathias Homann wrote:
2. Es soll Leuten gelungen sein, sich von außen übers Netzwerk Zugang zu fremden Rechnern zu verschaffen.
firewall, und keine dienste auf dem zu schützenden rechner laufen lassen. am besten noch hinter einem NAT verstecken.
oder sich am besten die frage stellen, warum so sensitive daten überhaupt auf einem rechner gespeichert sind. oder zumindest auf der festplatte...
Das ist natürlich eine andere Frage. Halt immer die Frage, wie sensibel das ganze ist. Gruß, Bernhard
Am Samstag, 4. Dezember 2004 15:13 schrieb Bernhard Walle:
Mathias Homann wrote:
hm. also er meint wohl, dass ein einbrecher den rechner klaut... Hatte nicht gedacht, dass dies falsch interpretiert werden kann ... falls ich den physischen Diebstahl befürchten würde, wäre es schwachsinnig mir über die temporär entschlüsselte Datei gedanken zu machen ... anyway, ich meine den Einbruch übers Netz ...
warum die da liegen ... auf diese Daten müssen einige Leute von ausserhalb per ssh zugreifen ... daher liegen die darauf ...
1. Laptops existieren. Mein Laptop steht ab und an auch in angeschalteten Zustand irgendwo ... wenn er noch am arbeiten ist und ich aufs "klo" gehe breche ich den Vorgang im Regelfall nicht deswegen ab. Aber diesen Fall vernachlässige ich hier, denn da sind noch einige Leute in der Nähe denen ich vertraue.
2. Es soll Leuten gelungen sein, sich von außen übers Netzwerk Zugang zu fremden Rechnern zu verschaffen. Genau diesen Fall befürchte ich am meisten.
Vielen Dank schon mal an dieser Stelle für die konstruktiven Vorschläge. :-) Schöne Grüße Oli
Am Samstag, 4. Dezember 2004 12:49 schrieb Tim Oliver Wagner:
Hallo Leute, manche sensible Daten speichere auf meiner Platte im ASCII-Format und verschlüssle dieses File dann mit meinem gpg. Das orginal-File lösche ich dann natürlich!
Ab und an muss ich natürlich an diese Informationen aus diesem gpg-Verschlüsselten File. Dazu entschlüssle ich die Datei in eine ASCII-Datei und diese editiere ich. Anschliessend verschlüssle ich wieder die editierte Datei und lösche das Plain-file.
Während ich auf die entschlüsselte Datei zugreife liegt diese auf meiner Platte ungeschützt herum.
grade gefunden: kgpg hat einen eingebauten editor, der tut genau das was du brauchst... auf der platte liegt dann nur noch die verschlüsselte datei... bye, MH
Am Samstag, 4. Dezember 2004 12:49 schrieb Tim Oliver Wagner:
Hallo Leute, manche sensible Daten speichere auf meiner Platte im ASCII-Format und verschlüssle dieses File dann mit meinem gpg. Das orginal-File lösche ich dann natürlich!
Ab und an muss ich natürlich an diese Informationen aus diesem gpg-Verschlüsselten File. Dazu entschlüssle ich die Datei in eine ASCII-Datei und diese editiere ich. Anschliessend verschlüssle ich wieder die editierte Datei und lösche das Plain-file.
Während ich auf die entschlüsselte Datei zugreife liegt diese auf meiner Platte ungeschützt herum.
Dieses von mir hier gezeigte Vorgehen macht mir jedoch sorgen. Lieber wäre mir ein kleines Programm (vielleicht geht es mit einem gewöhnlichen Texteditor???) der beim öffnen der verschlüsselten Datei das Passwort abfragt und im Hauptspeicher die Datei entschlüsselt. Hier im Hauptspeicher sollte es möglich sein den Inhalt zu ändern. Anschliessend sollte es möglich sein diese Änderungen verschlüsselt auf der Platte zu hinterlegen (also die Datei zu ersetzen).
Kennt jemand ein solches Programm? Ich hoffe es deutlich genug dargestellt zu haben. Das händische entschlüsseln und verschlüsseln ist auf die Dauer nämlich extrem nerven aufreibend.
emacs. Emacs erkennt solche Dateien auch automatisch und fordert einem zur Passworteingabe auf. kann gpg-verschlüsselte Dateien anzeigen, modifizieren und speichern. Anzeige natürlich Kalrtext (nach Eingabe des Passwortes), Speichern natürlich verschlüsselt. Es gilt natürlich das gesagte bzgl Swap, Speicher welcher Emacs benutzt, etc. Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 9204871 Fax: +49(721) 24874 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
* Tim Oliver Wagner schrieb:
Hallo Leute, manche sensible Daten speichere auf meiner Platte im ASCII-Format und verschlüssle dieses File dann mit meinem gpg. Das orginal-File lösche ich dann natürlich!
Ab und an muss ich natürlich an diese Informationen aus diesem gpg-Verschlüsselten File. Dazu entschlüssle ich die Datei in eine ASCII-Datei und diese editiere ich. Anschliessend verschlüssle ich wieder die editierte Datei und lösche das Plain-file.
Zwar nicht gpg, aber für diesen Zweck könnte auch Gringotts interessant sein: http://devel.pluto.linux.it/projects/Gringotts/index.php?page=home Gruss Dieter
Hallo Oliver, On Sat, Dec 04, 2004 at 12:49:01PM +0100, Tim Oliver Wagner wrote:
manche sensible Daten speichere auf meiner Platte im ASCII-Format und verschlüssle dieses File dann mit meinem gpg. Das orginal-File lösche ich dann natürlich!
Ab und an muss ich natürlich an diese Informationen aus diesem gpg-Verschlüsselten File. Dazu entschlüssle ich die Datei in eine ASCII-Datei und diese editiere ich. Anschliessend verschlüssle ich wieder die editierte Datei und lösche das Plain-file.
Während ich auf die entschlüsselte Datei zugreife liegt diese auf meiner Platte ungeschützt herum.
Dieses von mir hier gezeigte Vorgehen macht mir jedoch sorgen. Lieber wäre mir ein kleines Programm (vielleicht geht es mit einem gewöhnlichen Texteditor???) der beim öffnen der verschlüsselten Datei das Passwort abfragt und im Hauptspeicher die Datei entschlüsselt. Hier im Hauptspeicher sollte es möglich sein den Inhalt zu ändern. Anschliessend sollte es möglich sein diese Änderungen verschlüsselt auf der Platte zu hinterlegen (also die Datei zu ersetzen).
Ohne Garantie etc. unten mal ein Skript, dass dir beim Aufruf mit dem richtigen Passwort (> 20 Zeichen (z.B. $prog "`cat /etc/fstab`")) ein Dateisystem in einer Ramdisk anlegt und dort deine GPG Daten entpackt. Du musst jetzt beim booten oder beim Kernelbauen noch angeben, wie groß deine Ramdisk sein soll. Außerdem musst du die Variablen anpassen. Dort vor allem USER und MD5SUM über echo "tolles langes ... passwort" | md5sum bekommst du den String. ... an die History denken ... Die Daten auf der Ramdisk sind solange verfügbar, bis du das xterm schließt. Danach wird alles getared und mit gpg verschlüsselt. Mountpoints und Ramdisk werden gelöscht. Statt xterm kannst du bei nur einer Datei natürlich auch gleich den vim starten xterm -e vim $DATEINAME. Wenn du die bash als Shell nutzt solltest du noch ein export HISTIGNORE=$PROGRAMMNAME machen. Viel Spass damit. Wer Fehler findet bitte Lösung hier posten. Und wer noch Zeit und Lust hat ordentliches Errorhandling zu implementieren bitte auch ;) Greetings Daniel <script> #!/bin/bash if [ "$#" -ne "1" ] then echo "usage: $0 PASSWD" exit fi if [ x"$UID" != x"0" ] then sudo $0 "$1" exit fi # Variablen RAM0="/dev/ram0" RAM1="/dev/ram1" MPOINT0="/mnt/rd0" MPOINT1="/mnt/rd1" USER="deinbenutzername" GPGDATEI="/data/disk" DATEITAR="$MPOINT1/alles.tar" MD5SUM="11111111111111111111111111111111 -" # Internet aus... ifconfig eth0 down echo $1 | md5sum if test x"$MD5SUM" != x"`echo $1 | md5sum`" then echo "falsches Passwort" exit fi if test -e "$MPOINT0" then echo "Fehler $MPOINT0 existiert" exit else mkdir -p "$MPOINT0" fi if test -e "$MPOINT1" then echo "Fehler $MPOINT1 existiert" exit else mkdir -p "$MPOINT1" fi # Dateisystem anlegen /sbin/mkfs.minix "$RAM0" /sbin/mkfs.minix "$RAM1" # Einhängen mount -o uid="$USER" "$RAM0" "$MPOINT0" mount -o uid="$USER" "$RAM1" "$MPOINT1" chown "$USER" "$MPOINT0" "$MPOINT1" DATEIGPG="$GPGDATEI.0" # Dateisystem mit Inhalt füllen cd $MPOINT0 echo "$1" | gpg --batch --quiet --no-secmem-warning --passphrase-fd\ 0 --decrypt "$DATEIGPG" | tar xf - # Shell öffnen sudo -u "$USER" xterm # 3 Backups anlegen if test -e "$GPGDATEI.2" then mv "$GPGDATEI.2" "$DATEIGPG.3" fi if test -e "$GPGDATEI.1" then mv "$GPGDATEI.1" "$DATEIGPG.2" fi if test -e "$GPGDATEI.0" then mv "$GPGDATEI.0" "$DATEIGPG.1" fi # Inhalt zurücksichern tar -cvf "$DATEITAR" ./ echo "$1" | gpg --quiet --no-tty --passphrase-fd 0 --pgp8 --batch\ --charset utf-8 --force-mdc --no-secmem-warning --symmetric\ --output "$DATEIGPG" "$DATEITAR" # Um Aushängen zu können und als Sicherheit für das folgende rmdir cd /tmp # Aushängen umount "$MPOINT0" umount "$MPOINT1" # Mountpoint löschen rmdir "$MPOINT0" rmdir "$MPOINT1" # Löschen # evtl. shred benutzen?! dd if=/dev/zero of="$RAM0" bs=40960k count=1 > /dev/null 2>&1 dd if=/dev/zero of="$RAM1" bs=40960k count=1 > /dev/null 2>&1 # Internet an ifconfig eth0 up # route add default gw 192.XX.X.XXX </script> -- nur weil ihr paranoid seid heisst das noch lange nicht, dass sie nicht hinter euch her sind ;)
participants (9)
-
Andreas Heinlein
-
Bernhard Walle
-
Daniel Lord
-
Dieter Grollmann
-
Dr. Jürgen Vollmer
-
Mathias Homann
-
Michael Schachtebeck
-
Nikolas Tautenhahn
-
Tim Oliver Wagner