Existem três métodos: configurar um volume criptografado em uma partição ( dm-crypt
, configurado com cryptsetup
), configurar um arquivo que é um volume criptografado (truecrypt), configurar um diretório no qual cada arquivo é criptografado separadamente ( ecryptfs
ou encfs
).
A configuração de um volume criptografado oferece um pouco mais de confidencialidade, porque os metadados (tamanho, tempo de modificação) de seus arquivos são invisíveis. No lado negativo, é menos flexível (você tem que decidir com antecedência sobre o tamanho do volume criptografado). A ecryptfs FAQ lista algumas diferenças entre as duas abordagens.
Se você optar por criptografar arquivo por arquivo, estou ciente de duas opções: ecryptfs
e encfs
. O primeiro usa um driver in-kernel enquanto o último usa o FUSE. Isso pode dar ecryptfs
uma vantagem de velocidade; isso dá a encfs
uma vantagem de flexibilidade, já que nada precisa ser feito como root. Um possível benefício de ecryptfs
é que uma vez que você tenha feito a configuração inicial, você pode usar sua senha de login como uma senha do sistema de arquivos graças ao módulo pam_ecryptfs
.
Para meu próprio uso em uma situação semelhante, escolhi encfs
, porque não vi nenhum benefício real de segurança para outras soluções, por isso a facilidade de uso foi o fator determinante. O desempenho não foi um problema. O fluxo de trabalho é muito simples (a primeira execução de encfs
cria o sistema de arquivos):
aptitude install encfs
encfs ~/.work.encrypted ~/work
... work ...
fusermount -u ~/work
Eu recomendo que você também criptografe seu espaço de troca e qualquer lugar onde arquivos temporários temporários possam ser gravados, como /tmp
e /var/spool/cups
(se você imprimir arquivos confidenciais). Use cryptsetup
para criptografar sua partição swap. A maneira mais fácil de lidar com /tmp
é mantê-lo na memória montando-o como tmpfs
(isso pode dar um leve benefício de desempenho em qualquer caso).