Alternativa: ecryptfs
Você deve usar uma criptografia baseada em arquivo, como ecryptfs, em vez de uma solução de criptografia baseada em bloco nesses casos.
Vantagens:
- Considerando que você usa a mesma frase secreta para ambos os dispositivos, é possível rsync seus dados mesmo quando o ecryptfs não está montado e salva a descriptografia adicional e a sobrecarga de criptografia.
- Você grava apenas um pouco mais de dados do que a carga útil, não uma partição ou contêiner inteiro, o que reduz o desgaste das células de memória.
Desvantagens:
- A criptografia de nome de arquivo limita o comprimento do nome do arquivo, se seus sistemas de arquivos permitirem 255 bytes - como a maioria dos sistemas de arquivos modernos, incluindo FAT e EXT - o limite seria de 143 bytes. Esteja ciente de caracteres multi-byte em nomes de arquivos.
Ouvi dizer que algumas pessoas também usam ecryptfs para serviços on-line como o Dropbox ou o Google Drive.
Uso
O instalador do Ubuntu usa o ecryptfs para configurar a criptografia das pastas base dos usuários, então você pode já ter instalado o pacote ecryptfs-utils
. Usar o ecryptfs para mídia externa é muito simples, basta executar o seguinte comando para o ponto de montagem correspondente:
sudo mount -t ecryptfs my_mountpoint/ my_mountpoint/
Isso solicitará as seguintes opções e, finalmente, montará uma camada adicional no mesmo ponto de montagem ou diretório que criptografa e descriptografa seus dados:
Passphrase:
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]:
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]:
Enable plaintext passthrough (y/n) [n]:
Enable filename encryption (y/n) [n]: y
Filename Encryption Key (FNEK) Signature [0000000000000000]:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=0000000000000000
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=0000000000000000
Mounted eCryptfs
Se você usar um gerenciador de senhas, deverá salvar as opções ecryptfs_*
resumidas junto com a frase secreta. Certifique-se de ativar a criptografia de nome de arquivo (FNEK significa chave de criptografia de nome de arquivo).
Dicas para usar o ecryptfs
-
Localizando nomes extensos de arquivos
O comando a seguir deve fornecer uma lista de arquivos com nomes de arquivos com mais de 135 bytes (135 pontos de interrogação, se não me engano) e também funciona para caracteres multibyte.
LC_ALL=C find . -type f -name '???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????*'
É o 135 porque quando você usa o rsync para transferir arquivos ele cria arquivos temporários com um ponto inicial e 7 caracteres finais ( .<my_original_filename>.abcdef
). Se não puder criar o arquivo temporário, ele irá reclamar e continuar com o próximo arquivo.
-
Trabalhando com nomes de arquivos longos
Use metadados sempre que possível para incluir todas as informações necessárias ou arquivos zip com nomes de arquivos muito longos.
-
Eu uso o seguinte padrão no puddletag para renomear arquivos:
$left($num(%track%, 2) - %title%, 130)
É 130 por causa das extensões de nome de arquivo. Ele não funciona atualmente para caracteres multibyte, mas eu arquivei um bug no bugtracker deles.
como .flac
.