eCryptFS: Como montar um backup de um diretório inicial criptografado?

10

Eu uso o eCryptFS para criptografar o diretório pessoal do meu laptop. Meu script de backup copia os arquivos criptografados para um servidor (junto com todo o restante em (home/.ecryptfs ).

Como posso montar os arquivos criptografados do backup? Gostaria de verificar se posso fazer isso e se tudo está funcionando.

Minha tentativa ingênua com

mount -t ecryptfs /backup/home/.ecryptfs/boldewyn /mnt/test

não funcionou, o eCryptFS queria criar uma nova partição.

    
por Boldewyn 31.12.2010 / 17:55

1 resposta

15

Supondo que você use o esquema de criptografia padrão do Ubuntu, sem ajustes adicionais.

A pasta $ HOME / .ecryptfs "é na verdade apenas um link.

O verdadeiro lugar onde seus arquivos ficam é /home/.ecryptfs/$USER

Existem duas pastas, .Private (com seus arquivos criptografados) e .ecryptfs, com arquivos como auto-mount, auto-umount, Private.mnt, Private.sig, senha-empacotada.

Espero que os arquivos de destino sejam copiados para seu backup de host.

Se não houver backup do seu wraped-passphrased neste servidor, você está perdido. Se houver um backup, seu esquema de criptografia foi enfraquecido ao armazenar sua frase secreta encapsulada na Web, a menos que você controle o host em que você faz o backup.

Eu encontrei este script para montagem:

ROOT=/home/.ecryptfs/$USER
TARGET=/mnt/$USER

# ROOT should be the parent of the .ecryptfs and .Private folders

sudo mkdir -p $TARGET
cd $ROOT

echo Type your password:
PASS=$(ecryptfs-unwrap-passphrase .ecryptfs/wrapped-passphrase | sed s/Passphrase:\ //)
SIG1=$(head -n1 .ecryptfs/Private.sig)
SIG2=$(tail -n1 .ecryptfs/Private.sig)

echo Passphrase:
echo $PASS
echo Signatures:
echo $SIG1
echo $SIG2

echo Should be empty:
sudo keyctl clear @u
sudo keyctl list @u

echo Do not type anything:
echo $PASS | sudo ecryptfs-add-passphrase --fnek

echo Sould have signatures:
sudo keyctl list @u

echo Mounting $ROOT on $TARGET...
sudo mount -t ecryptfs -o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes,ecryptfs_sig=$SIG1,ecryptfs_fnek_sig=$SIG2,passwd=$(echo $PASS) .Private $TARGET

ls $TARGET

unset -v PASS
    
por 04.01.2011 / 22:56