cryptoloop

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Wenn man was auf der DS verschlüsseln möchte, dann kann man das mit dem cryptoloop-device machen. Dies ist eine Anleitung, die auf der DS207+ funktioniert (ARM-Prozessor ... andere Prozessoren haben die Kernel-Module möglicherweise nicht, oder sie stehen in anderen Verzeichnissen).

Vorarbeiten:

(1) Nachschauen, ob es /dev/loop-devices gibt. Wenn nicht, dann 8 anlegen nach folgendem Muster: mknod /dev/loop0 b 7 0, mknod /dev/loop1 b 7 1 ...
(2) Rechte für die /dev/loop[0-7] sind 644
(3) ipkg install kernel-module-cryptoloop und
(4) ipkg install kernel-module-aes
(5) kopieren /opt/lib/modules/2.6.15/kernel/drivers/block/cryptoloop.ko /lib/modules
(6) kopieren /opt/lib/modules/2.6.15/kernel/crypto/aes.ko /lib/modules
(7) insmod cryptoloop.ko und insmod aes.ko (diese beiden Anweisungen müssen in die /etc/rc.local ganz an den Anfang, damit das auch bei einem restart wieder gemacht wird)
(8) ipkg install util-linux

Anwendungsfall-Beispiel:

(1) Anlegen eines 256 MB-Containers: dd if=/dev/zero of=/volume1/crypt.raw bs=1M count=256
(2) /opt/sbin/losetup -e aes /dev/loop0 /volume1/crypt.raw (Kennwort vergeben)
(3) mkfs.ext3 /dev/loop0
(4) mkdir /cc
(5) mount -t ext3 /dev/loop0 /cc

Ab jetzt gibt es ein neuen Mount-Eintrag (/cc) in den man seine Daten kopieren kann. Für die Kopie einer 100MB große Datei hab ich eine knappe Minute gebraucht.

Der Mount-Point (/cc) kann natürlich auch woanders hin gelegt werden, z. B. in eine bestehende Share (und kann dann natürlich auch von Windows aus zugegriffen werden. Es gelten alle Regeln für normale Mounts. Man könnte damit auch auf eine 2. Partition einer USB-Platte gehen ... ;)

(6) umount /cc - Aufheben des Mounts

Für den Re-Mount die Schritte 2 und 5 durchführen.

Ach ja, Kennwort nicht vergessen - hab keine Ahnung, ob man sonst je wieder an die Daten kommt - is ja nu verschlüsselt :D.

itari
 
Zuletzt bearbeitet von einem Moderator:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ach ja, Kennwort nicht vergessen - hab keine Ahnung, ob man sonst je wieder an die Daten kommt - is ja nu verschlüsselt
Wenn es mit AES verschlüsselt wurde und das PW nicht mehr vorhanden ist, dann 'tschüss Daten'. Schon bei Daten mit DES würde es für hochspezialisierte Cryptorechner (Copacabana) ca 6 Tage dauern den Schlüssel zu brechen. DES wurde von Roadrunner und einem verteilten Netzwerk von ca 100'000 Rechnern in gut 22h gebrochen (Weltrekord)
Afaik wurde AES durch Brute Force bis heute noch nicht gebrochen. Wer also an seine AES verschlüsselten Daten ohne PW kommt, hat einem Industriestandart den Todesstoss versetzt und sollte gleich für den Nobelpreis nomminiert werden :D

@itari
Weisst du wo der Schlüssel gespeichert wird? Den sollte man schon mittels Backup sichern. Ich vermute mal, dass die Daten nach einem Neuaufsetzen des Systems flöten sind auch wenn man das PW kennt, weil nicht mehr der gleiche Schlüssel verwendet wird
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Weisst du wo der Schlüssel gespeichert wird? Den sollte man schon mittels Backup sichern. Ich vermute mal, dass die Daten nach einem Neuaufsetzen des Systems flöten sind auch wenn man das PW kennt, weil nicht mehr der gleiche Schlüssel verwendet wird

Den Schlüssel muss man beim losetup erstmal händisch eingeben. Ich vermute, dass der gleiche Mechnismus wie beim login mittels getpass()-Funktion vorgenommen wird.

The getpass() function opens /dev/tty (the controlling terminal of the process), outputs the string prompt, turns off echoing, reads one line (the "password"), restores the terminal state and closes /dev/tty again. ...
For libc4 and libc5, the prompt is not written to /dev/tty but to stderr. Moreover, if /dev/tty cannot be opened, the password is read from stdin. The static buffer has length 128 so that only the first 127 bytes of the password are returned. While reading the password, signal generation (SIGINT, SIGQUIT, SIGSTOP, SIGTSTOP) is disabled and the corresponding characters (usually control-C, control-\, control-Z and control-Y) are transmitted as part of the password. Since libc 5.4.19 also line editing is disabled, so that also backspace and the like will be seen as part of the password.
For glibc2, if /dev/tty cannot be opened, the prompt is written to stderr and the password is read from stdin. There is no limit on the length of the password. Line editing is not disabled.


Wahrscheinlich müsste man für die DS ein kleines C-Programm schreiben, um den Schlüssel aus einer Datei zu lesen. Hat viel mit der doch recht großen Begrenztheit der ash zu tun. Ich hatte schon mal darüber nachgedacht, eine Datei mit dem Schlüssel per Mem-Stick zu verwenden, nach dem Motto: immer wenn der Stick steckt, kann der crypt-Container gemounted werden. Vielleicht schreiben ich mal was dazu. Im Moment hatte mich das mehr in der Richtung interessiert, zu erfahren, wie schnell die Verschlüsselung geht (etwa 20-25x langsamer als normale Dateizugriffe). Manchmal muss man sowas testen, um keinen falschen Annahmen aufzusitzen (ist wie beim Virenscanner).

itari
 

danielsch

Benutzer
Mitglied seit
26. Mai 2008
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo, ich versucht das cryptoloop einzurichten, leider kommt bei folgendem Punkt immer eine fehlermeldung und ich komme nicht weiter.

DiskStation> /opt/sbin/losetup -e aes /dev/loop0
loop: can't get info on device /dev/loop0: No such device or address

die loop Deviches stehen aber unter /dev/
brw-r--r-- 1 root root 7, 0 Dec 30 18:06 loop0
brw-r--r-- 1 root root 7, 1 Dec 30 18:06 loop1
brw-r--r-- 1 root root 7, 2 Dec 30 18:06 loop2
brw-r--r-- 1 root root 7, 3 Dec 30 18:12 loop3
brw-r--r-- 1 root root 7, 4 Dec 30 18:12 loop4
brw-r--r-- 1 root root 7, 5 Dec 30 18:12 loop5
brw-r--r-- 1 root root 7, 6 Dec 30 18:12 loop6
brw-r--r-- 1 root root 7, 7 Dec 30 18:13 loop7

was mache ich denn da Falsch?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@itari
Wäre es beim Anlegen des Containers nicht möglich urandom zu benutzen?
Code:
dd if=/dev/urandom of=/volume1/crypt.raw bs=1M count=256
Damit wäre sichergestellt, dass bei einem "Angriff" auf den Container die Menge an Nutzdaten nicht abgeschätzt werden könnte, weil die unbenutzten Sektoren mit Zufallswerten nicht von den verschlüsselten Daten nicht zu unterscheiden sind.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Also das mit urandom scheint zu funzen (dauert einfach sehr sehr lange ;) )
Ich kriege aber die gleiche Fehlermeldung wie danielsch wenn ich versuche losetup auszuführen. Die loop-Devices sind aber vorhanden und die Rechte auf 0644. In /var/log/messages steht überhaupt nix.
Weiss jemand wie weiter?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn ich den Parameter -f verwende, dann komme ich immerhin bis zur Eingabe des Passworts. Aber dann kommt immer eine Fehlermeldung
Code:
$ /opt/sbin/losetup -e aes -f /dev/loop0
Password:
[B]ioctl: LOOP_SET_FD: Device or resource busy[/B]
**edit**
So und jetzt habe ich es gerafft. Bei itaris Beschreibung fehlt die Angabe des Files auf der Platte.
So klappts jetzt
Code:
/opt/sbin/losetup -e aes /dev/loop0 /volume1/crypt.raw
**edit**
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Danke für die Verbesserung ... ist mir wahrscheinlich beim Kopieren durch die Lappen gegangen.

liebe Grüße

itari
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
...der Artikel wäre auch mal was für's Wiki.

Trolli
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo,
habe gestern die Anleitung befolgt, aber bei dem schritt
Rich (BBCode):
/opt/sbin/losetup -e aes /dev/loop0 /volume1/crypt.raw
bekomme ich folgende Fehlermeldung:
Rich (BBCode):
/dev/loop0: No such device or address

hier meine loops im /dev/ verzeichnis:
Rich (BBCode):
229593 0 brw-r--r--  1 root root   7,   0 Feb  6 00:49 loop0
229594 0 brw-r--r--  1 root root   7,   1 Feb  6 00:49 loop1
229595 0 brw-r--r--  1 root root   7,   2 Feb  6 00:49 loop2
229596 0 brw-r--r--  1 root root   7,   3 Feb  6 00:49 loop3
229597 0 brw-r--r--  1 root root   7,   4 Feb  6 00:49 loop4
229598 0 brw-r--r--  1 root root   7,   5 Feb  6 00:49 loop5
229599 0 brw-r--r--  1 root root   7,   6 Feb  6 00:49 loop6
229600 0 brw-r--r--  1 root root   7,   7 Feb  6 00:49 loop7

Hab eine DS408, hat jemand eine Idee?
 

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hat keiner eine Idee, warum ich diese Fehlermeldung bekomme?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Auch ein Neustart brachte keine Veränderung.
Ich hab mal mit dem mknod befehl rumgespielt und die major nummer von 7 auf 1 geändert:

Rich (BBCode):
mknod /dev/loop0 b 1 0

Dann kam die Fehlermeldung

Rich (BBCode):
/dev/loop0: No such device or address

nicht mehr. Dafür kommt jetzt eine neue:

Rich (BBCode):
ioctl: LOOP_SET_FD: Inappropriate ioctl for device

Was hat es mit der major-nummer auf sich, und hat jemand eine Idee, was mir die neue Fehlermeldung sagen will? Ich kenn mich mit Linux nicht so gut aus und tappe deswegen im Dunkeln.
 

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Ich hab immer noch probleme, cryptoloop auf der DS408 zum laufen zu bekommen. Ich bastel da seit tagen dran rum, ohne erfolg. Liegt das evtl. daran, das ich auf der DS eine Kernel-Version 2.6.24 hab, aber die packete für cryptoloop und aes für die Kernel-Version 2.6.15 sind?

Ich bin für alle Hinweise dankbar.

Grüße...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich hab immer noch probleme, cryptoloop auf der DS408 zum laufen zu bekommen. Ich bastel da seit tagen dran rum, ohne erfolg. Liegt das evtl. daran, das ich auf der DS eine Kernel-Version 2.6.24 hab, aber die packete für cryptoloop und aes für die Kernel-Version 2.6.15 sind?

Ich bin für alle Hinweise dankbar.

Grüße...
Könnte schon sein, dass die unterschiedliche Kernelversion das Problem ist. Kann es aber nicht mit Sicherheit sagen...
 

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Ok, hab jetzt die gewissheit, dass es an der Kernel-Version liegt
wenn ich 'insmod cryptoloop.ko' aufrufe kommt folgende Fehlermeldung:
Rich (BBCode):
insmod: cannot insert `cryptoloop.ko': Invalid module format (-1): Exec format error
selbige Fehlermeldung kommt auch beim aes-modul
ist es möglich, die module für den kernel 2.6.24 zu installieren? und warum installiert ipkg die module brav, ohne zu meckern?
 

NASsie

Benutzer
Mitglied seit
17. Jan 2009
Beiträge
150
Punkte für Reaktionen
0
Punkte
16
gibt es erkenntnisse bezüglich der schreib-/lese rate auf einer DS-408 auf einem single-volume und im raid-5 betrieb?
Das wuerde mich auch interessieren, denn so ist auch meine Konfiguration.

Ok, hab jetzt die gewissheit, dass es an der Kernel-Version liegt.
wenn ich 'insmod cryptoloop.ko' aufrufe kommt folgende Fehlermeldung:
selbige Fehlermeldung kommt auch beim aes-modul
ist es möglich, die module für den kernel 2.6.24 zu installieren? und warum installiert ipkg die module brav, ohne zu meckern?
Bist Du hier schon weitergekommen?
Mich wuerde das Verfahren auch gleich mit truecrypt interessieren :)
 

Jester2000

Benutzer
Mitglied seit
28. Jan 2009
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Ich hab gestern mal das NAS Performance Toolkit von Intel ausprobiert, mit folgenden Ergebnissen:

File copy to NAS: 28,219 MB/s
File copy from NAS: 39,675 MB/s
Dir copy to NAS: 14,567 MB/s
Dir copy from NAS: 19,251 MB/s


Was das Thema cryptoloop angeht, so bin ich da noch nicht weiter gekommen. Ich hatte auch schon versucht, die entsprechenden Packete für meinen Kernel zu compilieren, aber ich habe zu wenig Ahnung von Linux. Ich warte einfach darauf, dass die Packages irgendwann für meinen Kernel zur verfügung stehen.
Was Truecrypt angeht, so weiß ich nicht, ob man das so ohne weiteres auf der DS zum laufen bekommt. Hab dazu noch nix gefunden, würde mich natürlich auch interessieren ;).
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat