PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diskette verschlüsseln



Neko
13.05.04, 21:34
Hallo,

ich habe da mal ein kleines Problem ...

Ich bastele gerade an einem kleinen Router der mit verschiedensten Providerdaten online gehen soll, die die User gerne auf Disketten (Chipkarten sind zu teuer und auf dem Rechner speichern soll ich sie auch nicht) anschleppen. Alles ja kein Problem und falls mal einer seine Disk verliert oder gemopst wird verschlüsseln wir die mal noch eben... cryptoloop-Support ist ja drin (wenn auch bei Suse irgendwie nur mit Twofish-Algo, egal besser etwas verschlüsselt als gar nicht). Dachte ich so ... kann ich das Ding ganz bequem mounten und wenn einer die Kiste ausschalten und die Disk rausnimmt ist nix mehr davon drauf. Ja, wenn ich mir Zugriff auf die Maschine verschaffe kann ich die Daten kopieren während die Disk gemountet ist, aber man kann nicht alles haben. So mein Problem mit der ganzen Sache ist das ich es nicht schaffe dem mount bzw. losetup das Passwort per Script zu übergeben, da sich die Passworteingabe immer durchmogelt. Hat das mal jemand hingekriegt (mit Perl) oder kennt einer eine andere (gleich einfache) Möglichkeit eine Disk derart zu verschlüsseln?

Grüße

Neko

emba
15.05.04, 18:23
du müsstest, wenn du nicht permanent nach dem pw gefragt werden möchtest, auf pubkey ausweichen (diesen dann vor dem einbinden des verschlüsselten devices aber schon zur verfügung stellen -> netzwerk, usb, ... )

greez

RipClaw
15.05.04, 23:19
Hallo,

ich habe da mal ein kleines Problem ...

Ich bastele gerade an einem kleinen Router der mit verschiedensten Providerdaten online gehen soll, die die User gerne auf Disketten (Chipkarten sind zu teuer und auf dem Rechner speichern soll ich sie auch nicht) anschleppen. Alles ja kein Problem und falls mal einer seine Disk verliert oder gemopst wird verschlüsseln wir die mal noch eben... cryptoloop-Support ist ja drin (wenn auch bei Suse irgendwie nur mit Twofish-Algo, egal besser etwas verschlüsselt als gar nicht). Dachte ich so ... kann ich das Ding ganz bequem mounten und wenn einer die Kiste ausschalten und die Disk rausnimmt ist nix mehr davon drauf. Ja, wenn ich mir Zugriff auf die Maschine verschaffe kann ich die Daten kopieren während die Disk gemountet ist, aber man kann nicht alles haben. So mein Problem mit der ganzen Sache ist das ich es nicht schaffe dem mount bzw. losetup das Passwort per Script zu übergeben, da sich die Passworteingabe immer durchmogelt. Hat das mal jemand hingekriegt (mit Perl) oder kennt einer eine andere (gleich einfache) Möglichkeit eine Disk derart zu verschlüsseln?

Grüße

Neko

Ich habe ein entsprechendes Shell Skript geschrieben für meine verschlüsselte Partition.
Die Passwortübergabe mache ich mit einem expect Skript, daß die Passworteingabe entsprechend beantwortet.

Das Expect Skript:



#!/usr/bin/expect

spawn mount [lindex $argv 0]
set password [lindex $argv 1]
expect "Passwort:"
send "$password\r"
expect eof


Ein Shellskript für das Mounten / Unmounten einer Diskette:



#!/bin/bash

FILESYSTEM="/dev/fd0"
MOUNTPOINT="/mnt/floppy"
PASSWORD="xxx"
EXPECT_SCRIPT="/usr/local/bin/expect_mount.ex"

if [ -n "$MOUNTPOINT" ];then

if ! df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
$EXPECT_SCRIPT $MOUNTPOINT $PASSWORD

if df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
echo "Dateisystem erfolgreich eingehängt"
else
echo "Dateisystem wurde nicht erfolgreich eingehängt"
fi

else
umount $MOUNTPOINT

if ! df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
echo "Dateisystem erfolgreich ausgehängt"
else
echo "Dateisystem wurde nicht erfolgreich ausgehängt"
fi
fi

else
echo "usage: $0"
fi



Oder als init Skript:



#!/bin/sh

FILESYSTEM="/dev/fd0"
MOUNTPOINT="/mnt/floppy"
PASSWORD="xxx"
EXPECT_SCRIPT="/usr/local/bin/expect_mount.ex"

mount_crypted() {
if ! df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
$EXPECT_SCRIPT $MOUNTPOINT $PASSWORD
fi

if df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
echo "Dateisystem $FILESYSTEM erfolgreich eingehängt"
else
echo "Dateisystem $FILESYSTEM wurde nicht erfolgreich eingehängt"
fi
}

umount_crypted() {
umount $MOUNTPOINT

if ! df -h | grep $FILESYSTEM 1>/dev/null 2>/dev/null; then
echo "Dateisystem $FILESYSTEM erfolgreich ausgehängt"
else
echo "Dateisystem $FILESYSTEM wurde nicht erfolgreich ausgehängt"
fi
}

case $1 in
'start')
mount_crypted
;;
'stop')
umount_crypted
;;
*)
echo "usage $0 start|stop"
esac



Der fstab Eintrag:



/dev/fd0 /mnt/floppy auto noauto,user,loop=/dev/loop0,encryption=twofish-128,noexec 0 0


Das Skript mountet und unmountet je nach dem welchen Status die Diskette gerade hat.

Möglicherweise musst du das Shellskript oder das Expect Skript etwas anpassen (z.B. expect "Password:" statt expect "Passwort:")
Natürlich muß expect installiert sein. Bei den meisten Distribtionen ist expect als eigenes Paket vorhanden.

Neko
17.05.04, 12:52
Danke RipClaw für Dein Script,

ich war zwar mittlerweile aus Frust auf GnuPG umgestiegen, aber der Tip mit dem expect war gut, das kannte ich noch gar nicht. Und das gibt' s sogar als Perl-Modul ... das macht die Sache noch viel einfacher!