Montare HFS crittografato in Ubuntu


32

Provo a montare una partizione HFS + crittografata su Ubuntu.

Un post più vecchio descriveva abbastanza bene come farlo, ma non ha le informazioni su come usare le partizioni crittografate.

Quello che ho trovato finora è:

  # install required packages
  sudo apt-get install hfsprogs hfsutils hfsplus loop-aes-utils
  # try to mount it
  mount -t hfsplus -o encryption=aes-256 /dev/xyz /mount/xyz

Ma una volta eseguito, ottengo il seguente errore:

  Error: Password must be at least 20 characters.

Quindi ho provato a digitarlo due volte, ma questo si traduce in questo:

  ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel

Eventuali suggerimenti?


Non sei sicuro che questo faccia la differenza, ma hai provato aes256invece aes-256?
Ansgar Wiechers,

sì - lo stesso risultato per entrambi - anche solo usando "aes" si ottiene lo stesso risultato
pagato il

Risposte:


59

Non è possibile montare una partizione HFS + crittografata in OS X usando mountl'opzione di encryption=aes. Il motivo è che le partizioni e i volumi crittografati HFS + utilizzano un formato proprietario .

CryptoloopLoop-AES , che sono i metodi di decrittazione sottostanti utilizzati da mounte encryption, comprendono quel formato.

Questo è quello che ho scoperto:

Cryptoloop può montare partizioni o immagini del disco crittografate come un singolo blocco AES (questo si chiama modalità a chiave singola, vedi http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-introduction ):

  /dev/sdXX                                                        
  disk image                                                       /dev/loopX
+-----------+                                                    +-------------+
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> |  partition  |
|           |                                                    |             |
|           |                                                    |             |
|           |                                                    |             |
+-----------+                                                    +-------------+

AES-Loop può montare partizioni o immagini disco crittografate a chiave singola (come sopra) e multi-chiave:

  /dev/sdXX                                                        
  disk image                                                         /dev/loopX
+------------+                                                    +-------------+
|AES block #1|                                                    |             |
+------------+                                                    |             |
|AES block #2|                                                    | unencrypted |
+------------+ -AES passwd->AES key(s)->decrypt I/O to loop dev-> |  partition  |
|AES block #3|                                                    |             |
+------------+                                                    |             |
|    ...     |                                                    |             |
+------------+                                                    +-------------+

D'altra parte, una partizione HFS + crittografata:

Il successore di Cryptoloop dm-crypt, non può leggere neanche HFS + crittografato.

Ma prima che sparisca ogni speranza:

Per quanto riguarda i messaggi di errore che hai riscontrato:

Primo errore:

Error: Password must be at least 20 characters.

Sorprendentemente, mountimpone password lunghe non solo per la crittografia ma anche per la decrittografia , anche se potresti non avere il controllo sulla partizione per decrittografare. Puoi aggirare questo fastidio scaricando e modificando la sorgente e ricompilando. (Altre distribuzioni, come SuSE Linux Enterprise Server (SLES), non hanno questa limitazione.)

Secondo errore:

ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel

Devi caricare il modulo del kernel Cryptoloop:

$ sudo modprobe cryptoloop

perché anche se installato il pacchetto loop-aes-utilsvoi non state utilizzando loop-AES.

Loop-AES utilizza diversi strumenti spaziali utente modificati ( mount, umount, losetup, swapone swapoff, fornito da loop-aes-utils) e una versione modificata loop.komodulo del kernel. Le versioni recenti di Ubuntu compilano un loopmodulo non modificato nel kernel:

    $ cd /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/block/
    $ diff -q /tmp/loop.c-3.x.patched loop.c
    Files /tmp/loop.c-3.x.patched and loop.c differ

quindi Loop-AES non può essere utilizzato su Ubuntu immediatamente. Devi patchare e ricompilare il kernel come spiegato qui: http://loop-aes.sourceforge.net/loop-AES.README . Ecco perché ha mountancora bisogno di Cryptoloop.

Se viene ancora visualizzato un messaggio di errore simile dopo aver caricato cryptoloop.koil tipo di crittografia, potrebbe non essere riconosciuto. Ad esempio, il mio Ubuntu 12.04 non ha riconosciuto aes-128, ma aes. SLES riconosce solo aes-128.


1
+1 per informazioni dettagliate e dettagli forniti nella risposta.
Daemon of Chaos,

4
Questa è una risposta semplicemente fenomenale. Eccezionalmente informativo, dettagliato e apparentemente estremamente ben studiato. Grazie per aver condiviso Jaume, grazie mille.
chmac,

3
Volevo solo notare che ho appena provato questo su OSX 10.10.3 con successo. Ho anche scoperto che il processo di decrittografia dell'unità non avrebbe fatto alcun progresso quando stavo facendo molto con il computer. Tuttavia, con il laptop alimentato a parete e l'unità collegata, ho lasciato il coperchio chiuso (a riposo) e ha terminato la decodifica mentre dormiva in PowerNap.
voxobscuro,

14

In realtà, esiste l'applicazione Java hfsexplorer che è in grado di aprire .dmgfile crittografati e crea .dmgimmagini decrittografate che possono essere montate su Linux.

Sono stato in grado di creare .dmgfile crittografati in OS X 10.9.5 e quindi esplorare l'immagine da una macchina virtuale che esegue Ubuntu 14.04.2 LTS. Sia la crittografia AES-128 che AES-256 hanno funzionato per i miei casi di test.

Ecco come ho creato l' .dmgimmagine:

$ hdiutil create -size 10m -layout NONE -fs HFS+ -encryption AES-256 -volname "Vault" vault.dmg

Dalla macchina virtuale che esegue Ubuntu sono stato in grado di aprire l'immagine:

$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg

Richiede una password e quindi mostra il contenuto dell'immagine. C'è un'opzione (Strumenti -> crea immagine disco) che crea un'immagine disco decrittografata che può quindi essere montata con gli strumenti hfs di linux.

$ mount vault_decrypted.dmg /mnt/hfs/

Anche i file system HFS + Journaled hanno funzionato. L'unica limitazione è che il supporto in scrittura ai file system HFS + J è disabilitato di default in Linux.

Ciò dimostra che la crittografia di .dmgè compresa hfsexplorere potrebbe essere implementata nel mountcomando. Con la creazione di un non crittografato .dmgè possibile montare l'immagine in Linux alla fine.

vfdecrypt non ha funzionato neanche per me.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.