Dateien auf der Kommandozeile kann man recht einfach mit openssl
verschlüsseln.
openssl aes-256-cbc -in file.txt -out file.enc
Entschlüsseln geht mit:
openssl aes-256-cbc -d -in file.enc -out file.txt
Der Key wird dabei aus einem Passwort generiert, welches von openssl abgefragt wird.
Möchte man von dav verschlüsselte Dateien von Hand mit openssl entschlüsseln, wird es ein wenig komplizierter. Die Keys die von dav verwendet werden, werden binär in Dateien gespeichert. Ein AES256-Key ist dann einfach eine 32 bytes große Datei.
Datei entschlüsseln
Zuerst muss der Key in eine für das openssl-Tool kompatible Form gebracht werden, nämlich ein Hex-String ohne Space.
hexdump -ve '/1 "%02X"' < ~/.dav/keys/mykey > mykey.hex
Dann muss aus der verschlüsselte Datei (hier im Beispiel encfile) noch der Initialisierungsvektor extrahiert werden. Dieser wird von dav nämlich immer an den Anfang der Datei gepackt. Die restlichen Bytes sind dann die eigentlichen verschlüsselten Daten.
dd if=encfile of=iv.bin bs=16 count=1
dd if=encfile of=encdata bs=16 skip=1
hexdump -ve '/1 "%02X"' < iv.bin > iv.hex
Jetzt haben wir den Key und den IV in passender Form und können die Datei mit openssl entschlüsseln:
openssl aes-256-cbc -d -K `cat mykey.hex` -iv `cat iv.hex` -in encdata -out file
Datei verschlüsseln
Um eine Datei zu verschlüsseln brauchen wir zunächst einen zufälligen Initialisierungsvektor.
dd if=/dev/random of=iv.bin bs=16 count=1
hexdump -ve '/1 "%02X"' < iv.bin > iv.hex
Dann können wir die Datei mit openssl verschlüsseln und anschließend mit cat den IV und die verschlüsselte Datei zusammenfügen:
openssl aes-256-cbc -K `cat mykey.hex` -iv `cat iv.hex` -in file.txt -out encdata
cat iv.bin encdata > file.enc
Kommentare