
Quero comparar diferentes soluções de criptografia para criptografar meu sistema, possivelmente soluções diferentes para diferentes partes do sistema, como /usr
ou /home
. Em particular, observo partições dm-crypt, contêineres, truecrypt, ecryptfs e encfs com parâmetros diferentes. Por vários motivos, acho que apenas medir as velocidades de leitura e gravação de sequência bruta usando dd
não é suficiente:
- leitura/gravação seq me dá diferentes cargas de CPU, por exemplo, ecryptfs carrega apenas um núcleo (até 100%), enquanto dm-crypt é mais rápido, mas carrega ambos os núcleos, portanto, em uso real, o ecryptfs pode ser mais rápido quando o sistema está sob carga de outros aplicativos (talvez não, mas como faço para avaliar isso?)
- é tudo sobre um SSD, então eu quero ter um benchmark, que indica para qual opção o sistema se sentirá mais responsivo, então devo incluir alguns testes aleatórios de leitura e gravação ou algo parecido também (mas não sei como fazer isso )
- o benchmarking de uma solução
/usr
pode precisar de outros benchmarks além do/home
já que as características de E/S podem ser diferentes
Devo acrescentar que minha CPU não suporta instruções AES, portanto é um fator limitante no desempenho. Não quero isolar uma parte do sistema, mas comparar as diferentes soluções de criptografia para o SSD no meu sistema específico. Então, qual é a melhor forma de fazer benchmark no meu caso e como fazer isso detalhadamente?
Responder1
E quanto ao embutido cryptsetup benchmark
?
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 633198 iterations per second
PBKDF2-sha256 329326 iterations per second
PBKDF2-sha512 216647 iterations per second
PBKDF2-ripemd160 474039 iterations per second
PBKDF2-whirlpool 248713 iterations per second
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 707.0 MiB/s 3120.9 MiB/s
serpent-cbc 128b 98.3 MiB/s 307.2 MiB/s
twofish-cbc 128b 195.0 MiB/s 381.7 MiB/s
aes-cbc 256b 513.8 MiB/s 2373.9 MiB/s
serpent-cbc 256b 97.4 MiB/s 315.1 MiB/s
twofish-cbc 256b 198.8 MiB/s 383.9 MiB/s
aes-xts 256b 2706.1 MiB/s 2634.1 MiB/s
serpent-xts 256b 318.0 MiB/s 310.4 MiB/s
twofish-xts 256b 370.5 MiB/s 380.1 MiB/s
aes-xts 512b 2083.2 MiB/s 2073.8 MiB/s
serpent-xts 512b 323.0 MiB/s 311.4 MiB/s
twofish-xts 512b 375.9 MiB/s 380.2 MiB/s
Normalmente você desejará usar uma das cifras AES. Mesmo que seu sistema não suporte AES-NI hoje, sua próxima caixa poderá...
Responder2
Veja seBonnie++fornece os testes/resultados que você procura. Bonnie++ pode estar disponível nos repositórios da sua distribuição.
Este artigo,Benchmarking SSD Linux: Comparando sistemas de arquivos e métodos de criptografiatambém pode ser interessante para você.
Responder3
As soluções mencionadas diferem muito no que realmente fazem - dm-crypt é a criptografia completa do sistema de arquivos, enquanto ecryptfs/encfs estão acima do sistema de arquivos. Se você quer segurança, decidaprimeiro o quevocê realmente quer e sóentão comopara fazer isso.
Dito isto, não se surpreenda se sua CPU se tornar o gargalo - presumo que, como ela não suporta AES-NI, seu desempenho é da ordem de grandeza, por exemplo, do Intel Core2 Duo - que testei por cerca de um ano atrás. A velocidade dos módulos criptográficos no kernel era de aproximadamente 38MB/s±10MB/s dependendo da cifra e do tamanho do bloco usado (Twofish, AES, Serpent e Camellia, com tamanhos de bloco 128/192/256b).