# USB Festplatte mit "cryptsetup luksFormat ..." einrichten

## SarahS93

```
cryptsetup -v -c aes-cbc-essiv:sha256 -h sha -s 256 luksFormat /dev/sdd1 

WARNING!

========

Hiermit überschreiben Sie Daten auf /dev/sdd1 unwiderruflich.

Are you sure? (Type uppercase yes): YES

LUKS-Passsatz eingeben: 

Verify passphrase: 

Verlangter LUKS-Hash sha wird nicht unterstützt.

Befehl fehlgeschlagen mit Code 22: Verlangter LUKS-Hash sha wird nicht unterstützt.
```

Ist meine Zeile falsch oder fehlen mir im Kernel einstellungen?!Last edited by SarahS93 on Fri Dec 06, 2013 1:00 pm; edited 1 time in total

----------

## mrsteven

Ich kenne mich mit LUKS zwar gar nicht aus, aber hast du die Option CONFIG_CRYPTO_SHA256 in deiner Kernelkonfiguration gesetzt? Du findest sie unter: Cryptographic API  :Arrow:  SHA224 and SHA256 digest algorithm

----------

## SarahS93

cat /usr/src/linux/.config |grep CONFIG_CRYPTO_SHA256

```
CONFIG_CRYPTO_SHA256_SSSE3=y

CONFIG_CRYPTO_SHA256=y
```

Ist gesetzt.

```
cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/sdd1 

WARNING!

========

Hiermit überschreiben Sie Daten auf /dev/sdd1 unwiderruflich.

Are you sure? (Type uppercase yes): YES

LUKS-Passsatz eingeben: 

Verify passphrase: 

Befehl erfolgreich.
```

----

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha -s 256 luksFormat /dev/sdd1 - funktioniert nicht

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/sdd1 - funktioniert!

früeher, in einer Version vor sys-fs/cryptsetup-1.4.3 hatte das mit "-h sha" funktioniert, wann wurde es in "-h sha1" geändert?

Hab da noch ein paar Fragen zum Passwort...

1. Wie lang sollte es sein, 63 oder 64 Zeichen?

2. Welche Symbole und Zeichen kann ich verwenden? Welche könnten Probleme machen?

3. Wie kann ich mir ein entsprechendes Passwort in Linux in der Konsole generieren?

----------

## mv

 *SarahS93 wrote:*   

> Hab da noch ein paar Fragen zum Passwort...
> 
> 1. Wie lang sollte es sein, 63 oder 64 Zeichen?
> 
> 2. Welche Symbole und Zeichen kann ich verwenden? Welche könnten Probleme machen?
> ...

 

1. Erstens wird das Passwort sowieso durch einen Hash gejagt, so dass (technisch gesehen) die Länge egal ist: 63, 64, 20, oder 1050 Zeichen sind alle fein. Je kürzer, desto leicihter kann es halt ggf. mit brute-force geknackt werden. Zweitens bedeutet "Luks" dass der Hash nur benutzt wird, um ein zufälliges Passwort zu verschlüsseln (das automatisch generiert wird und die für den Algorithmus benötigte Länge hat); Dein Passwort sichert also nicht die eigentlichen Daten sondern sozusagen nur den Tresorschlüssel. Wenn Du das nicht willst, darfst Du nicht Luks benutzen.

2. Es empfiehlt sich, ein langes Passwort (mit vielen Zeichen) aber nur aus Standardzeichen zu benutzen, damit Du es ggf. auch von einer Rettungs-CD mit Nichtstandard-Tastaturbelegung problemlos eingeben kannst. Technisch gesehen kannst Du aber beliebige Zeichen benutzen (ggf. mit Ausnahme des 0-Charakters).

3. Wozu? Willst Du das auswendig lernen?

----------

## toralf

 *SarahS93 wrote:*   

> version vor sys-fs/cryptsetup-1.4.3 hatte das mit "-h sha" funktioniert, wann wurde es in "-h sha1" geändert?
> 
> 

 Hier steht sicherlich die Antwort : http://code.google.com/p/cryptsetup/source/browse/docs

 :Smile: 

----------

## SarahS93

OK, das ist soweit klar.

Über "losetup" kann ich eine Datei einhängen, und auch mit Luks nutzen .. was aber mache ich wenn mir die loop0 bis loop7 unter /dev/ nicht ausreichen, angenommen ich brauche 50 anstat 8 Stück, wie kriege ich mehr?

----------

## toralf

 *SarahS93 wrote:*   

> OK, das ist soweit klar.
> 
> Über "losetup" kann ich eine Datei einhängen, und auch mit Luks nutzen .. was aber mache ich wenn mir die loop0 bis loop7 unter /dev/ nicht ausreichen, angenommen ich brauche 50 anstat 8 Stück, wie kriege ich mehr?

 CONFIG_BLK_DEV_LOOP_MIN_COUNT=50   :Very Happy: 

Im Ernst, ich glaube, man kann einfach noch eins beantragen mit losetup.

----------

## SarahS93

Danke für den Tip.

```
    ( fdisk /dev/sdd   ( n p 1 w ) )

    ( cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/sdd1 )

cryptsetup luksOpen  /dev/sdd1                                    verschluesseltefestplatteSDD1-1                        zie5kaodeiK3aij6aeche7eshah0gi5Hohbeiwahj4eixieWeiwohpoo1ahquei

    ( mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-1 )

mount                /dev/mapper/verschluesseltefestplatteSDD1-1  /mnt/verschluesseltefestplatteSDD1-1

    ( cd /mnt/verschluesseltefestplatteSDD1-1 ; dd if=/dev/zero of=datei seek=1740G count=0 bs=1 )

losetup              /dev/loop1                                   /mnt/verschluesseltefestplatteSDD1-1/datei

    ( cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop1 )

cryptsetup luksOpen  /dev/loop1                                   verschluesseltefestplatteSDD1-2                        

    ( mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-2 )

mount                /dev/mapper/verschluesseltefestplatteSDD1-2  /mnt/verschluesseltefestplatteSDD1-2

    ( cd /mnt/verschluesseltefestplatteSDD1-2 ; dd if=/dev/zero of=datei seek=1740G count=0 bs=1 )

losetup              /dev/loop2                                   /mnt/verschluesseltefestplatteSDD1-2/datei

    ( cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop2 )

cryptsetup luksOpen  /dev/loop2                                   verschluesseltefestplatteSDD1-3                        

    ( mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-3 )

mount                /dev/mapper/verschluesseltefestplatteSDD1-3  /mnt/verschluesseltefestplatteSDD1-3

    ( cd /mnt/verschluesseltefestplatteSDD1-3 ; dd if=/dev/zero of=datei seek=1740G count=0 bs=1 )

losetup              /dev/loop3                                   /mnt/verschluesseltefestplatteSDD1-3/datei

    ( cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop3 )

cryptsetup luksOpen  /dev/loop3                                   verschluesseltefestplatteSDD1-4_entschluesselt         

mount                /dev/mapper/verschluesseltefestplatteSDD1-3  /mnt/verschluesseltefestplatteSDD1-4_entschluesselt

```

```

umount /mnt/verschluesseltefestplatteSDD1-4_entschluesselt

cryptsetup luksClose verschluesseltefestplatteSDD1-4_entschluesselt

losetup -d /dev/loop3

umount /mnt/verschluesseltefestplatteSDD1-3/

cryptsetup luksClose verschluesseltefestplatteSDD1-3

losetup -d /dev/loop2

umount /mnt/verschluesseltefestplatteSDD1-2/

cryptsetup luksClose verschluesseltefestplatteSDD1-2

losetup -d /dev/loop1

cryptsetup luksClose verschluesseltefestplatteSDD1-1
```

Die Zeilen in den ( ) sind eine einmalige Sache, zum einrichten.

Der rest .. naja, eine Spielerei. Habt ihr sowas oder sowas ähnliches auch schonmal gemacht?  :Wink: 

Macht es Sinn jede einzelne Ebene noch mit Daten von /dev/urandom aufzublähen?

Würde es Sinn machen verschiedene Verschlüsselungen zubenutzen?

Beim kopieren in /mnt/verschluesseltefestplatteSDD1-4_entschluesselt/ erreiche ich über 100MB/s, soviel wie die Festplatte mitmacht, und habe dabei nur 10 bis 20% CPU Auslastung.

----------

## SarahS93

Welche anderen möglichkeiten gibt es noch eine Festplatte mehrfach zuverschlüsseln?!

----------

## mv

encfs

----------

## SarahS93

Bei meinem vorgehen

(Partition erstellen, mit Luks verschlüsseln, einhängen, riesige Datei erstellen die bis auf 5% das gesammte Laufwerk einnimmt. Dann diese riesige Datei mittels losetup einhängen, das neue Laufwerk wieder per Luks verschlüsseln usw.)

gehen mit jeder weiteren Verschlüsselungsschicht 5% vom Laufwerk durch EXT4 weg.

Empfielt es sich bei einer riesigen 2TB Datei in einem EXT4 Laufwerk auf dieses "5% freilassen" zuverzichten?

Sollte ich ein anderes Dateiensystem für mein vorhaben wählen?

Oder sollte ich ganz andere Wege gehen?

----------

## mv

Die 5% kannst Du senken. Journal kannst Du ebenfalls weglassen, weil Du mit losetup ohnehin kein transparentes Filesystem hast. Wie gesagt, encfs ist für Teilverschlüsselungen empfehlenswerter.

----------

## SarahS93

Diese 5% machen ja bei 2TB doch ganz schön viel aus...

Hab das ganze jetzt mal so versucht:

```
fdisk /dev/sdd

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/sdd1

cryptsetup luksOpen  /dev/sdd1  verschluesseltefestplatteSDD1-1

mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-1

mount /dev/mapper/verschluesseltefestplatteSDD1-1 /mnt/verschluesseltefestplatteSDD1-1

tune2fs -m 0.007 /dev/mapper/verschluesseltefestplatteSDD1-1

cd /mnt/verschluesseltefestplatteSDD1-1 ; dd if=/dev/zero of=datei seek=1832G count=0 bs=1

losetup /dev/loop1 /mnt/verschluesseltefestplatteSDD1-1/datei

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop1

cryptsetup luksOpen  /dev/loop1 verschluesseltefestplatteSDD1-2

mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-2

mount /dev/mapper/verschluesseltefestplatteSDD1-2 /mnt/verschluesseltefestplatteSDD1-2

tune2fs -m 0.007 /dev/mapper/verschluesseltefestplatteSDD1-2
```

wenn ich hier jetzt mit z.B. pydf nachsehe wieviel Speicherplatz auf den Laufwerken ist, wird mir hier schon angezeigt das 

"/dev/verschluesseltefestplatteSDD1/2" nur 1803G hat, wo sind die 30GB hingegangen?

```
cd /mnt/verschluesseltefestplatteSDD1-2 ; dd if=/dev/zero of=datei seek=1802G count=0 bs=1

losetup /dev/loop2 /mnt/verschluesseltefestplatteSDD1-2/datei

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop2

cryptsetup luksOpen  /dev/loop2 verschluesseltefestplatteSDD1-3

mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-3

mount /dev/mapper/verschluesseltefestplatteSDD1-3  /mnt/verschluesseltefestplatteSDD1-3

tune2fs -m 0.007 /dev/mapper/verschluesseltefestplatteSDD1-3

cd /mnt/verschluesseltefestplatteSDD1-3 ; dd if=/dev/zero of=datei seek=1772G count=0 bs=1

losetup /dev/loop3 /mnt/verschluesseltefestplatteSDD1-3/datei

cryptsetup -v -c aes-cbc-essiv:sha256 -h sha1 -s 256 luksFormat /dev/loop3

cryptsetup luksOpen  /dev/loop3 verschluesseltefestplatteSDD1-4_entschluesselt

mkfs.ext4 /dev/mapper/verschluesseltefestplatteSDD1-4_entschluesselt

mount /dev/mapper/verschluesseltefestplatteSDD1-4_entschluesselt /mnt/verschluesseltefestplatteSDD1-4_entschluesselt
```

```
/dev/verschluesseltefestplatteSDD1/1                1834G   22G 1811G  1.2 [........................] /mnt/verschluesseltefestplatteSDD1-1               

/dev/verschluesseltefestplatteSDD1/2                1803G   12G 1791G  0.7 [........................] /mnt/verschluesseltefestplatteSDD1-2               

/dev/verschluesseltefestplatteSDD1/3                1774G 5914M 1768G  0.3 [........................] /mnt/verschluesseltefestplatteSDD1-3               

/dev/verschluesseltefestplatteSDD1/4_entschluesselt 1744G  768M 1655G  0.0 [........................] /mnt/verschluesseltefestplatteSDD1-4_entschluesselt
```

Nur warum gehen mit jeder verschlüsselungsschicht 30GB weg? wohin gehen die?

----------

## mv

12 GB hast Du ja noch ausdrücklich reserviert (warum nicht -m0), und dann geht noch Platz für Journal und inodes verloren. Wie gesagt, journal ist bei einem loop-device weitestgehend sinnfrei. Um irgendeinen Overhead wirst Du nicht herumkommen, wenn Du ein eigenes Dateisystem anlegen willst statt mit encfs die bestehenden Daten zu nutzen. ext4 ohne Journal dürfte da noch so ziemlich der beste Filesystem-Kandidat sein, da sich andere Filesysteme wie btrfs bei ziemlich gefüllten Daten Gerüchten zufolge sehr unkooperativ verhalten.

----------

## SarahS93

Wie kommst du darauf das ich 12GB noch reserviert haben sollte?!

Mit den 0,007% sollten das irgendwas im unteren dreistelligen MB bereich sein.

Ist das Journaling bei EXT nicht wichtig im Fall wenn z.B. mal der Strom plötzlich weg ist?!

----------

## mv

 *SarahS93 wrote:*   

> Wie kommst du darauf das ich 12GB noch reserviert haben sollte?!
> 
> Mit den 0,007% sollten das irgendwas im unteren dreistelligen MB bereich sein.

 

Stimmt, sind ja % und nicht absoluter Anteil. Also 12GB/100=120MB. Trotzdem unnötig

 *Quote:*   

> Ist das Journaling bei EXT nicht wichtig im Fall wenn z.B. mal der Strom plötzlich weg ist?!

 

Dann sind Deine Daten ohnehin futsch: Bei loop "glaubt" ja der ext4-Treiber, dass sofort geschrieben wird, obwohl es in Wirklichkeit im Filesystem darunter gepuffert wird, und daher sowieso "zufällig" ist, was wann geschrieben wird. Das ganze Puffern ist also für die Katz' und kostet nur unnötig zwei- oder dreimalige Verschlüsselungszeit, die überhaupt nichts bringt. Genau aus diesem Grund wurde die loop-Verschlüsselung immer stiefmütterlicher behandelt - für Produktivitätssysteme ist sie eben nicht wirklich einsetzbar.

Edit: loop-AES schreibt anscheinend das selbe, und hier wird das Ganze noch etwas ausführlicher erklärt.

----------

## SarahS93

Achso. Welche Lösungsansetze gibt es denn sonst mit denen ich 3 oder mehrere Verschlüssellungsschichten über cryptsetup machen kann und das die Daten nach einem z.B. Stromausfall noch zugebrauchen sind?

----------

## mv

Ich vermute, das ist nicht möglich. Bei cryptsetup bin ich nicht mal bei einer "Schicht" sicher, weil z.B. barriers m.W. schon nicht mehr weitergegeben werden.

----------

## SarahS93

Wie kann man auf einer Festplatte eine Datei verstecken ohne das auf dem Laufwerk etwas angezeigt wird?

Das Laufwerk soll leer, unformatiert und unpartitionirt angezeigt werden, wie geht das?

(Die Datei (backup meiner Daten) soll natürlich noch lesbar sein)

----------

## mv

man cryptsetup --offset

----------

