PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Crypto Partition remote mounten oder: wie übertrage ich das 60stellige Passwort?



BSM
27.12.04, 13:35
Hallo,

ich hab auf dem Dachboden meinen Fileserver stehen, da ich ein bisschen Paranoid bin will ich jetzt etwas längere Passwörter für meine loop-aes (vielleicht bald dm-crypt) Partitonen vergeben.
Meine Wahl fiel auf twofish.
Jetzt frage ich mich wie ich das Passwort am besten durchs Netzwerk bekomme, da 60Zeichen aus /dev/random eingeben keinen Spass macht ;)

Nach einige Überlegungen bin ich jetzt auf diese Möglichkeit gekommen, mit anlehnung an das Prinzip mit dem Key auf einem USB Stick:

http://everto.de/daten.jpeg

Das GPG Passwort muss ja nicht allzulang sein, bietet aber Sicherheit falls der Stick doch mal verloren geht und zusätzlichen Schutz durch den SSH-Tunnel.
Eine Sicherheitslücke ist ziemlich offensichtlich, die Stelle wo der Key entschlüsselt auf einer ext2 Partiton liegt um die verschlüsselte Partition zu mounten, da vertraue ich aber auf die Statistik, dass in den 2sec nichts passiert. Der SSH-Kasten ist eine Benutzereingabe meinerseits für das GPG-Passwort und sonst das mount-script.
Gibt es sonst noch offentsichtliche Schnitzer?
Achja, mit key meine ich die ganze Zeit das Passwort für die verschlüsselte Partition.
Ich bin kein Crypto Experte und die Daten können die Amerikaner ruhig lesen, es geht nur um das "weil es geht".

Danke für Anregungen,
Gruss Robert

Retsiem
27.12.04, 16:37
naja... das erste was mir einfiel war: "ach du sch...eibenhonig"

wenn ich deine grafik richtig gedeutet habe:
du hast auf dem fileserver eine partition die encr. ist. du überträst das verschlüsselte passw. um die partition zu mounten. jetzt baust du einen ssh verbindung auf. entschlüsselst das passwort um die partition zu mounten und mountest diese.
jetzt könntest du natürlich noch die daten über ssh verschicken. dann wären diese auch nicht mehr lesbar.
aber davon mal abgesehen und der schon erwähnten 2 sec. offenlegung ...

( müsste eigentlich kürzer sein. weil du ja die übertragung vom passwort und das entschlüsseln und mounten in ein script eintragen kannst wo dann natürlich je nach größe der zu entschlüsselnden partition und deiner netzwerk geschwindigkeit kürzere zeiten auftreten können/müssten/sollten...)

...schauts o.k. aus.

Thomas
27.12.04, 23:11
Hallo Robert!

Wenn du die Passphrase zum Mounten der verschlüsselten Partition mit einer anderen, schlechteren Passphrase verschlüsselt, ist dies unnötig bzw. grob fahrlässig. In diesem Fall wäre es einfacher und vorallem sicherer, ganz auf das Speichern der Passphrase zu verzichten und die Mount-Passphrase direkt aus dem Gedächtnis einzugeben.

Solltest du aber als "Passwort" zum Mounten keine Passphrase, sondern einen richtigen Key verwenden (was ich dir dringend raten würde), dann sind wir bei deinem Szenario.

Auf das separate Kopieren des Keys mittels scp würde ich verzichten. Wozu den Key kopieren, wenn nicht unbedingt notwendig? Besser du überträgst den Key über deine SSH-Verbindung, die du aufbaust.
Ich würde folgendermaßen vorgehen:

Wechselmedium lokal mounten
GPG-Datei entschlüsseln
Key mittels SSH übermitteln
Filesystem remote mounten

Die Schritte 2-4 würde ich in einem zusammenfassen, mit folgendem Ergebnis:



gpg -d <encrypted keyfile> | ssh fileserver "cryptsetup <options>"


Voraussetzung hierfür ist, dass der Key über stdin mittels einer Pipe eingegeben werden kann. Bei cryptsetup (dm-crypt) geht das, bei loop-aes kann ich hierzu keine Auskunft geben.


Viel Spass beim Verschlüsseln!

Thomas.

BSM
28.12.04, 20:27
Hallo,

danke für das feedback.

Zählt jA0EAwMCsgRRdkTSZT9gyesGi8C6jhIkZpiYTwmly0lkEOsO9g cOzlnw1k2 als passwort? :D :ugly:
(dieser key ist natürlich fiktiv, die lassen sich ganz gut mit einer kombination aus /dev/random und uuencode -m generieren.)

Soweit ich gelesen habe verträgt twofish 64 Zeichen, ich werde dann wohl kurz vors Maximum gehen.

Weshalb ich den key erst remote entschlüsseln wollte:
Ich dachte eigentlich, dass solch ein Kommando in der .bash_history gespeichert wird, somit im Prinzip auch der Key, anstatt nun, wenn das Passwort lokal liegt, nur ein cat keyfile | mount bla und so weiter, ausserdem weiss ich halt nicht was SSH noch so loggt, da war diese Überlegung für mich am sichersten.
Eine weitere Sache ist noch, dass das ganze auch unter Windows funktionieren soll, somit komm ich auch ohne bash aus und plink (von putty) sollte vollends genügen.

Mount akzeptiert das Passwort von stdin mit mount -p 0 weitereoptionen mountpunkt usw

Gruss Robert

Thomas
28.12.04, 20:49
Hallo nochmal,

in der .bash_history wird


gpg -d <encrypted keyfile> | ssh fileserver "cryptsetup <options>"

gespeichert. Der Key taucht hier nicht auf, da du diesen nicht manuell als Parameter eingibst.

Mit dem Key hast du mich überzeugt, das ist die richtige Vorgehensweise... ;)

Sollte SSH vertrauliche Inhalte mitloggen, dann ist sowieso alles zu spät... Natürlich macht es das nicht!

Das Windows-Problem wird natürlich ein anderes Licht auf das Kopieren des Keys mittels scp, allerdings solltest du das Speichern des entschlüsselten Keys auf der Festplatte gleich wieder vergessen und stattdessen den Ausgabestrom von gpg direkt als Input beim Mounten benutzen. Da dies auf dem Linux-Fileserver stattfindet, bringt das auch keine Kompatibilitätsprobleme bezüglich Windows mit sich.


Thomas.