Melhor maneira de avaliar diferentes soluções de criptografia em meu sistema

Melhor maneira de avaliar diferentes soluções de criptografia em meu sistema

Quero comparar diferentes soluções de criptografia para criptografar meu sistema, possivelmente soluções diferentes para diferentes partes do sistema, como /usrou /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 ddnã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 /usrpode precisar de outros benchmarks além do /homejá 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).

informação relacionada