Segurança total é algo impossível, e mesmo tendo os melhores recursos de segurança na configuração de firewalls ou permissões de acesso, os usuários não estão livres do roubo físico dos seus dados. Criptografar o sistema de arquivos da máquina é uma forma efetiva de proteger-se de roubo de dados.
Para os testes de criptografia foi usado um notebook Compaq Armada 1120, com processador de 100 MHZ, 16 MB de memória RAM, disco rígido de 2,1 GB. É um equipamento obsoleto, e por isso serviu para testar também o desempenho da solução em máquinas com poucos recursos. Para compilar o kernel foi usado um computador com processador Duron 1200 MHZ e 128 MB de memória RAM DDR, com disco rígido de 20 GB.
A distribuição Linux usada foi o Debian GNU/Linux[7], versão 3.0 (Woody) atualizada para testing (Sarge), nas duas máquinas usadas no teste. Essa distribuição oferece uma excelente ferramenta de auxílio na compilação e configuração de um novo kernel. Trata-se do pacote kernel-package. Algumas informações sobre o pacote retiradas da documentação que o acompanha, com o comando "apt-cache show kernel-package" (semelhante ao "rpm -qi pacote"):
Description: Debian Linux kernel package build scripts. This package provides the capability to create a debian kernel-image package by just running make-kpkg kernel_image in a kernel source directory tree. It can also package the relevant kernel headers into a kernel-headers package. In general, this package is very useful if you need to create a custom kernel, if, for example, the default kernel does not support some of your hardware, or you wish a leaner, meaner kernel. It also scripts the steps that need be taken to compile the kernel, which is quite convenient (forgetting a crucial step once was the initial motivation for this package). Please look at /usr/share/doc/kernel-package/Rationale.gz for a full list of advantages of this package. . If you are running on an intel x86 platform, and you wish to compile a custom kernel (why else are you considering this package?), then you may need the package bin86 as well. (This is not required on other platforms).
[4] Comentário enviado por androle em 01/10/2004 - 20:00h
Levei um puxão de orelha do meu orientador por não comentar o motivo de ter escrito esse artigo.
Artigo desenvolvido para a disciplina de "Segurança Computacional", do curso ARL - Administração em Redes Linux. (http://ginux.comp.ufla.br/arl), cujo tutor foi o professor Joaquim Quinteiro Uchôa.
[6] Comentário enviado por engos em 05/10/2004 - 13:43h
Parabéns pelo artigo, nem sabia que isso é possível... é inacreditável o que se pode fazer com o Linux!
Só uma pergunta, não consegui entender direito como os dados ficam armazenados. Significa que se a partição ou o arquivo estiverem criptografados, mesmo que eu entre (boot) com um rescue disk e monte a partição como praxe, não conseguirei acesso aos dados?
[7] Comentário enviado por androle em 05/10/2004 - 23:41h
Olá. Obrigado.
Sim, é isso mesmo! Eu testei isso aqui. Se vc não tiver os módulos cryptoloop, loop e blowfish (ou o que vc tiver usado para criptografar), e também a senha correta, os dados ficam inacessíveis. Não tem jeito.
Basta colocar a senha errada e vc não monta a partição ou arquivo. No meu notebook eu coloquei no script uma mensagem dizendo: "Tecle ENTER agora" no momento de pedir a senha. Assim, o sistema inicializa com o /home desmontado :)
Para poder montar a partição criptografada vc precisa da senha, senão o losetup associa a partilção/arquivo ao /dev/loop(0-7), mas o mount não consegue ler a partição e não monta nada. Os teus arquivos estão lá, mas não podem ser lidos, nem pelo root nem por ninguém.
O interessante é que se vc quiser pode montar um arquivo de, digamos, 150KB, como dispositivo de bloco, gravar informações nele e enviá-lo a alguém. Ai, se a pessoa sabe a senha ela pode montá-lo normalmente. Desse modo vc pode ter pacotes criptografados enviados por email sem ter de usar gpg ou outra ferramenta do tipo. E não é muito difícil fazer um pequeno script para enviar junto com o arquivo para facilitar a montagem e extração dos dados. Claro, a senha vc tem de combinar antes com a pessoa através de algum meio seguro de comunicação.