Como posso criptografar meu sistema (na melhor das hipóteses usando lvm + dm-crypt/luks) de modo que a suspensão na RAM funcione e que tudo esteja em um estado criptografado quando suspenso na RAM?
Responder1
O que você está pedindo não é uma simples suspensão para RAM, que deixa a RAM ligada e desliga todo o resto. Como você limparia os dados do processo de texto não criptografado da RAM, será necessário organizar tudo para a imagem de suspensão. Então você tem que invocar o código de hibernação (ou seja, suspender para disco). A maneira realista de fazer isso seria criar um disco virtual criptografado, declará-lo como espaço de troca e preencher a memória com outros processos. Mesmo assim, os dados do kernel não seriam criptografados; para fazer isso, acho que você precisaria de um patch de kernel considerável.
Por outro lado, se você deseja suspender para o disco, este é um problema resolvido. A imagem de hibernação é armazenada no espaço de troca. Seu espaço de troca já deve estar criptografado de acordo com seus requisitos de segurança. Certifique-se de que ele esteja criptografado com uma chave conhecida e não com uma aleatória (algumas configurações com swap criptografado usam /dev/random
como arquivo de chave para o espaço de swap, o que resulta em uma chave diferente a cada inicialização, portanto é impossível retomar um modo hibernado imagem). As principais distribuições devem oferecer suporte à hibernação imediatamente, incluindo a retomada de um espaço de troca criptografado.
Responder2
Confira tpm-luks
:https://github.com/shpedoykal/tpm-luks
Ele armazena suas chaves de criptografia no módulo de plataforma confiável do seu computador.
Outra opção pode serTESOURO, que usa registros de CPU para armazenar chaves secretas.