Como montar um contêiner VeraCrypt em um RPi com ótimo desempenho?

Nov 25 2020

Em um Raspberry Pi, para usar um contêiner / partição criptografado com VeraCrypt, qual solução oferece o melhor desempenho entre instalar ou usar o VeraCrypt cryptsetup( que parece suportá-lo )?


Contexto: Eu tenho um HDD externo USB3, que conterá:

  • um recipiente VeryCrypt de 1 TB, hospedado dentro de uma partição exFAT (1) ou NTFS (2), para ser capaz de ler o HDD com o Windows no futuro, se necessário

  • ou uma partição Veracypt 1 TB (3)

Vou comparar (1), (2), (3) para ver qual oferece o melhor desempenho de leitura / gravação de RPi.

Respostas

1 Basj Nov 27 2020 at 05:50

Eu executei um grande número de testes hoje em um RaspberryPi4 2GB (com PSU oficial, e verifiquei que não ocorreu nenhum afogamento; RaspiOS padrão).

Eu usei um HDD USB3 externo, testado para ser capaz de ler e escrever no RPi4 mais rápido do que 70 MB / s para arquivo sequencial de 1 GB, ao usar uma ext4partição normal (não criptografada) (apenas para ter certeza de que o próprio disco não é o elemento mais fraco da cadeia).

Os resultados a seguir devem ser considerados em valor relativo para comparar o FS, não em valor absoluto.

Eu testei ambos:

  • a velocidade de gravação RAW em uma partição criptografada

    dd if=/dev/zero of=/mnt/b/1000mb bs=1M count=1000 iflag=fullblock
    

    (mesmo se for constante de zero bytes, o algoritmo AES tem que criptografar novamente cada bloco, para que a repetição não seja identificável, consulte crypto.SE para perguntas sobre isso, é comum)

  • a velocidade de transferência com Samba ao enviar um arquivo de 2,3 GB de um computador Windows para a partição / contêiner criptografado RPi (mais uma vez, verifiquei se a rede, o disco do computador de destino etc. não eram um gargalo)

Como quero que o disco contendo dados criptografados também possa ser aberto no Windows (digamos que minha esposa precise), sem comandos de linha de comando do Linux, testei apenas exFAT e NTFS .

Resultados

host ↓       FS inside container →   exFAT                       NTFS
Veracrypt part.                      dd:41 MB/s  samba:!! MB/s   dd:28 MB/s  samba: 25 MB/s
exFAT part. + Veracrypt container    dd:39 MB/s  samba:!! MB/s   dd:25 MB/s  samba: 20 MB/s
NTFS part. + Veracrypt container     dd:29 MB/s  samba:!! MB/s   dd:25 MB/s  samba: 15 MB/s       

!!: o Windows Explorer não responde no início da transferência do arquivo de 2,3 GB, por cerca de ~ 30 segundos, e então começa, mas bem lento. Este parece ser um bug ao usar fuse-exfat+ samba+ 1 GB+ file tranferdo Windows, mesmo sem usar VeraCrypt. É até ampliado quando há uma camada adicional de Veracrypt.

Concluindo, a melhor opção se quisermos que o disco criptografado seja legível no Windows também, e que possamos usá-lo via Samba, é usar uma partição Veracrypt, contendo uma partição NTFS.


Nota: quando não estiver usando criptografia, usar este pequeno truque "big_writes" ajuda a acelerar as gravações NTFS de 30 MB / s para mais de 70 MB / s:

sudo mount /dev/sda4 /mnt/a -o big_writes

Mas, novamente, após a camada adicional de Veracrypt, caímos novamente para ~ 20-30 MB / s.