Encriptação

Criptografia de arquivo Linux

Criptografia de arquivo Linux
Vivemos em um mundo onde a privacidade e a segurança estão se tornando cada vez mais importantes. Quase todos os dias há notícias sobre uma violação de dados ou vazamento. Embora existam outras medidas que você pode tomar para proteger seus dados, criptografar arquivos é uma das mais óbvias.

Alternativas à criptografia de arquivo.

Antes de nos aprofundarmos na criptografia de arquivos, vamos considerar as alternativas e ver se a criptografia de arquivos é adequada para suas necessidades. Os dados confidenciais podem ser criptografados em diferentes níveis de granularidade: criptografia de disco total, nível de sistema de arquivos, nível de banco de dados e nível de aplicativo. Esta artigo faz um bom trabalho comparando essas abordagens. Vamos resumi-los.

A criptografia de disco completo (FDE) faz sentido para dispositivos que são suscetíveis a perda física ou roubo, como laptops. Mas o FDE não protegerá seus dados de muitas outras coisas, incluindo tentativas de hacking remoto e não é adequado para criptografar arquivos individuais.

No caso de criptografia em nível de sistema de arquivos, o sistema de arquivos realiza a criptografia diretamente. Isso pode ser feito empilhando um sistema de arquivos criptográficos em cima do principal ou pode ser integrado. De acordo com isso wiki, algumas das vantagens são: cada arquivo pode ser criptografado com uma chave separada (gerenciada pelo sistema) e controle de acesso adicional por meio de criptografia de chave pública. Claro, isso requer a modificação da configuração do sistema operacional e pode não ser adequado para todos os usuários. No entanto, oferece proteção adequada para a maioria das situações e é relativamente fácil de usar. Será abordado abaixo.

A criptografia em nível de banco de dados pode atingir partes específicas de dados, como uma coluna específica em uma tabela. No entanto, esta é uma ferramenta especializada que lida com o conteúdo do arquivo em vez de arquivos inteiros e, portanto, está fora do escopo deste artigo.

A criptografia em nível de aplicativo pode ser ideal quando as políticas de segurança exigem a proteção de dados específicos. Um aplicativo pode usar criptografia para proteger dados de várias maneiras, e criptografar um arquivo é certamente uma delas. Estaremos discutindo um aplicativo para criptografar arquivos abaixo.

Criptografar um arquivo com um aplicativo

Existem várias ferramentas disponíveis para criptografar arquivos no Linux. Esta artigo lista as alternativas mais comuns.  A partir de hoje, o GnuPG parece ser a escolha mais direta. Por que? Porque, provavelmente, ele já está instalado no seu sistema (ao contrário do ccrypt), a linha de comando é simples (ao contrário de usar o openssl diretamente), está sendo muito ativamente desenvolvida e está configurada para usar uma cifra atualizada (AES256 a partir de hoje ).

Se você não tiver o gpg instalado, poderá instalá-lo usando um gerenciador de pacotes apropriado para sua plataforma, como apt-get:

pi @ raspberrypi: ~ $ sudo apt-get install gpg
Lendo listas de pacotes ... Concluído
Construindo árvore de dependência
Lendo informações de estado ... Concluído

Criptografe um arquivo com GnuPG:

pi @ raspberrypi: ~ $ cat secret.TXT
Coisas secretas!
pi @ raspberrypi: ~ $ gpg -c secret.TXT
pi @ raspberrypi: ~ $ file secret.TXT.gpg
segredo.TXT.gpg: dados criptografados simetricamente por GPG (cifra AES256)
pi @ raspberrypi: ~ $ rm secret.TXT

Agora, para descriptografar:

pi @ raspberrypi: ~ $ gpg --decrypt secret.TXT.gpg> segredo.TXT
gpg: dados criptografados AES256
gpg: criptografado com 1 senha longa
pi @ raspberrypi: ~ $ cat secret.TXT
Coisas secretas!

Observe “AES256” acima. Esta é a cifra usada para criptografar o arquivo no exemplo acima. É um tamanho de bloco de 256 bits (seguro por enquanto) variante do "Advanced Encryption Standard" (também conhecido como Rijndae). Veja isso Artigo da Wikipedia Para maiores informações.

Configurando criptografia em nível de sistema de arquivos

De acordo com isso página wiki fscrypt, O sistema de arquivos ext4 possui suporte integrado para criptografia de arquivos. Ele utiliza a API fscrypt para se comunicar com o kernel do sistema operacional (assumindo que o recurso de criptografia esteja ativado). Ele aplica a criptografia no nível do diretório. O sistema pode ser configurado para usar chaves diferentes para diretórios diferentes. Quando um diretório é criptografado, todos os dados relacionados ao nome do arquivo (e metadados), como nomes de arquivo, seus conteúdos e subdiretórios também são criptografados. Metadados sem nome de arquivo, como carimbos de data / hora, são isentos de criptografia. Nota: esta funcionalidade tornou-se disponível no Linux 4.1 lançamento.

Enquanto isso Leia-me tem instruções, aqui está uma breve visão geral. O sistema segue os conceitos de “protetores” e “políticas”. “Política” é uma chave real que é usada (pelo kernel do sistema operacional) para criptografar um diretório. “Protetor” é uma senha longa do usuário ou equivalente usada para proteger as políticas. Este sistema de dois níveis permite controlar o acesso do usuário aos diretórios sem ter que criptografar novamente toda vez que houver uma mudança nas contas do usuário.

Um caso de uso comum seria configurar a política fscrypt para criptografar o diretório inicial do usuário com suas senhas de login (obtidas via PAM) como um protetor. Fazer isso adicionaria um nível adicional de segurança e permitiria proteger os dados do usuário, mesmo se o invasor conseguisse obter acesso de administrador ao sistema. Aqui está um exemplo que ilustra como seria a configuração:

pi @ raspberrypi: ~ $ fscrypt encrypt ~ / secret_stuff /
Devemos criar um novo protetor? [s / N] s
As seguintes fontes de protetor estão disponíveis:
1 - Sua senha de login (pam_passphrase)
2 - Uma senha longa personalizada (custom_passphrase)
3 - Uma chave bruta de 256 bits (raw_key)
Digite o número da fonte para o novo protetor [2 - custom_passphrase]: 1
Digite a senha de login para pi:
"/ home / pi / secret_stuff" agora está criptografado, desbloqueado e pronto para uso.

Isso pode ser completamente transparente para o usuário, uma vez configurado. O usuário pode adicionar um nível adicional de segurança a alguns subdiretórios, especificando diferentes protetores para eles.

Conclusão

A criptografia é um assunto profundo e complexo e há muito mais a cobrir e também é um campo em rápido crescimento, especialmente com o advento da computação quântica. É crucial manter contato com os novos desenvolvimentos tecnológicos, pois o que é seguro hoje pode ser quebrado em poucos anos. Seja assíduo e preste atenção às notícias.

Trabalhos citados

Como instalar e jogar Doom no Linux
Introdução ao Doom A série Doom teve origem nos anos 90 após o lançamento do Doom original. Foi um sucesso instantâneo e, a partir desse momento, a sé...
Vulkan para usuários de Linux
A cada nova geração de placas gráficas, vemos os desenvolvedores de jogos ultrapassarem os limites da fidelidade gráfica e se aproximarem mais do foto...
OpenTTD vs Simutrans
Criar sua própria simulação de transporte pode ser divertido, relaxante e extremamente atraente. É por isso que você precisa ter certeza de experiment...