Kann ich ein verschlüsseltes Image erstellen, indem Sie die opensl-Verschlüsselungstools anstelle von dmsetup verwenden?

602
shuofei

Im Allgemeinen kann ich ein verschlüsseltes ext4-Image erstellen, indem Sie Folgendes tun:

fallocate -l 6553600 encrypt.img losetup -f encrypt.img dmsetup create encrypt_disk --table "0 12800 crypt aes 32BYTEKEY 0 /dev/loop0 0" mkfs.ext4 /dev/mapper/encrypt_disk 

Dann kann ich / dev / mapper / encrypt_disk in ein Verzeichnis einbinden und alle Dateien auf dieser Festplatte werden automatisch verschlüsselt. Und ich habe eine encrypt.img. Es kann beim nächsten Mal von dmsetup geladen werden.

Hier ist meine Frage: Kann ich eine encrypt.img mithilfe von openssl-Tools anstelle von dmsetup erstellen? Vielleicht wird es so gefallen:

fallocate -l 6553600 encrypt.img losetup -f encrypt.img mkfs.ext4 /dev/loop0 openssl aes ... 

Vielen Dank.

2
Ich habe immer davon ausgegangen, dass sich OpenSSL auf Stream-Chiffrierungen konzentrierte, aber das ist möglicherweise nicht ganz korrekt. Stellen Sie also sicher, dass Block-Chiffren wie AES im CBC-Modus (Cipher Block Chaining) implementiert werden können. Die erste Krypto-Regel, die sie an führenden Universitäten unterrichten, lautet: "Versuchen Sie nicht, es selbst zu tun. Dieses Zeug erfordert Experten und viel Peer-Review. Die besten Kryptographen der Welt arbeiten nicht alleine und auch nicht sollten Sie". Zusammenfassend sollten Sie sich also beim Implementieren der Kryptographie nicht zu weit vom üblichen Pfad entfernen. Es ist wahrscheinlicher, dass Basteln das System schwächt. Frank Thomas vor 8 Jahren 0

1 Antwort auf die Frage

2
Juergen

Nein, das ist nicht möglich:
Da das von Ihnen verwendete Dateisystem im Kernel implementiert ist, benötigen Sie eine zugrunde liegende Implementierung von verschlüsselten Blockgeräten, die ebenfalls im Kernel implementiert ist. Dies ist der Fall dmsetup ... crypt.
opensslist eine Benutzerraumimplementierung, die außerhalb des Kernels verschlüsselt. Sie kann daher nicht für die Implementierung von Geräten verwendet werden, die ein Dateisystem unterstützen.

Wenn Sie stattdessen ein Userspace-Dateisystem verwendet haben, das nicht ist ext4, aber etwas in der Nähe sein könnte fuse, könnte dieses auf etwas anderem als einem Kernel-basierten Blockgerät basieren. Dies ist jedoch ein anderes Thema.