quinta-feira, 28 de janeiro de 2010

Criptografia de Disco



Porque Criptografar o Disco ?


Por que criptografar o disco?
Quando falamos de segurança da informação, podemos usar várias
técnicas e ferramentas para evitar intrusões remotas e locais através do
terminal. Mas nós devemos pensar em outras possibilidades além do acesso ao
terminal propriamente dito.

Como podemos garantir a segurança do nosso servidor se ele for
roubado? E se alguém conseguir clonar o HD? E se roubarem o nosso
notebook?
Nessas situações não teremos o que fazer, o ladrão(invasor) vai ter
acesso a todas as nossas informações.

O que podemos fazer para evitar esse tipo de situação?
Existem duas coisas que podemos fazer:


A primeira é ter uma boa proteção física ao seus servidores, colocando
acessos através de cartões, acessos biométricos, salas cofres ou pelo
menos que a sala fique trancada e somente pessoas de confiança
tenham acesso a eles.

O segundo ponto é criptografar o disco, ou melhor dizendo, colocar uma
criptografia nas partições onde ficam as informações confidencias da
empresa.



Como Fazer a Criptografia ?


Como fazer essa criptografia?

Para trabalharmos com criptografia de discos e partições, devemos
adotar primeiramente um método de criptografia.
Um método que é muito recomendado em sistemas GNU/Linux é o LUKS que
significa Linux Unified Key Setup.
O LUKS foi desenvolvido para implementar uma padrão único de
criptografia de discos, pois outras soluções não mantinham uma padronização
de criptografia, o que causava grandes dores de cabeças aos usuários, quando
precisavam fazer alguma migração de versão ou migração de ferramentas.
Por que o LUKS?
Por que o LUKS é um método padronizado de implementar criptografia de
discos.


Qual tipo de padrão?
O LUKS se baseia em uma documentação escrita por Clemens Fruhwirth
chamada “TKS1 - An anti-forensic, two level, and iterated key setup scheme”
Pode-se diszer que o LUKS é a implementação de prova de conceitos dessa
documentação. Esse material está postado no Avançado dessa aula.
Para implentarmos o LUKS em um sistema Linux utilizaremos as
seguintes ferramentas:


dm-crypt: O dm-crypt é um subsistema de criptografia de discos em
Kernel's Linux versão 2.6. Ele faz parte do infraestrutura device-mapper
(Sistema de mapeamente de dispositivos de blocos). O dm-crypt foi
desenvolvido para trabalhar com várias modos de criptografia como CBC,

ESSIV, LRW e XTS. Como o dm-crypt reside na camada de Kernel, ele
precisa de front-ends para criar os dispositivos criptografados e
manuseia-los. Esses fornt-ends são o cryptsetup e cryptmount.
cryptsetup: O cryptsetup é usado para configurar a criptografia nos
dispositivos utilizando o dm-crypt. Ele possui comandos para trabalhar
com e sem o LUKS.

cryptmount: Comando usado para montar/desmontar dispositivos
criptografados. Ele permite que usuários montem dispositivos
criptografados sem a necessidade do super-usuário.



O que a Norma da Segurança diz Sobre Criptografia de Disco ?


O que a norma diz sobre criptografia de discos e segurança física?

Em relação ao acesso físico a Norma ABNT NBR ISO/IEC 27002:2005 diz no
item 9.1.1, que convém que sejam utilizados perímetros de segurança
(barreiras tais como paredes, portões de entrada controlados por cartão ou
balcões de recepção com recepcionistas) para proteger as áreas que
contenham informações e instalações de processamento da informação.
Sobre a criptografia a Norma diz no item 12.3.1 na letra C que convém
o uso de criptografia para a proteção de informações sensíveis transportadas
em celulares e PDA, mídias removíveis ou móveis, dispositivos ou linhas de
comunicação.





Essa criptografia é feita na Instalação do sistema Operacional ou depois que ele está instalado?


Quando trabalhamos com criptografia de discos, podemos escolher se
desejamos fazer na instalação do sistema ou fazer depois que o sistema já está
instalado. As distribuições Debian e Red Hat tem essa opção de fazer a
criptografia logo na instalação.



Como vai ser o nosso Trabalho ?


No nosso caso, estamos supondo que estamos trabalhando em um
servidor que já estava instalado, então temos alguns procedimentos a seguir
para fazer esse trabalho.
Se vamos fazer em uma servidor que já está em produção, qual é o
primeiro passo a ser feito?
Se vamos criptografar uma partição que já está montada e já contém
dados, vamos ter que fazer um Backup, pois na construção do sistema de
criptografia os dados serão perdidos. Caso seja uma partição que ainda não
contenha dados esse procedimento é mais tranquilo.
Para o nosso ambiente, vou supor que vocês tem uma partição
sobrando, no caso no meu exemplo, vou usar a /dev/sda10.
Para trabalharmos com o sistema de criptografia dm-crypt, precisamos
que os módulos relacionados a ele estejam ativados:

# lsmod | grep dm
dm_crypt 11172 0
crypto_blkcipher 15236 1 dm_crypt
dm_mod 46184 1 dm_crypt
# lsmod | grep md5
# cat /proc/crypto
Com os módulos carregados, podemos instalar a ferramenta
cryptsetup:
# aptitude install cryptsetup
Com o cryptsetup instalado, podemos configurar como será utilizada a
criptografia em nossa partição:

# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat
/dev/sda10
WARNING!
========
This will overwrite data on /dev/hda10 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.




Como vai ser o nosso Trabalho ?


No nosso caso, estamos supondo que estamos trabalhando em um
servidor que já estava instalado, então temos alguns procedimentos a seguir
para fazer esse trabalho.
Se vamos fazer em uma servidor que já está em produção, qual é o
primeiro passo a ser feito?
Se vamos criptografar uma partição que já está montada e já contém
dados, vamos ter que fazer um Backup, pois na construção do sistema de
criptografia os dados serão perdidos. Caso seja uma partição que ainda não
contenha dados esse procedimento é mais tranquilo.
Para o nosso ambiente, vou supor que vocês tem uma partição
sobrando, no caso no meu exemplo, vou usar a /dev/sda10.
Para trabalharmos com o sistema de criptografia dm-crypt, precisamos
que os módulos relacionados a ele estejam ativados:

# lsmod | grep dm
dm_crypt 11172 0
crypto_blkcipher 15236 1 dm_crypt
dm_mod 46184 1 dm_crypt
# lsmod | grep md5
# cat /proc/crypto
Com os módulos carregados, podemos instalar a ferramenta
cryptsetup:
# aptitude install cryptsetup
Com o cryptsetup instalado, podemos configurar como será utilizada a
criptografia em nossa partição:

# cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat
/dev/sda10
WARNING!
========
This will overwrite data on /dev/hda10 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.




Parâmetros do cryptsetup:


Parâmetros do cryptsetup:
-y ou --verify-passphrase: Faz a checagem da senha digitada.

--cipher: Define qual é o modo de criptografia que o dispositivo vai usar.

--key-size: Define em bits o tamanho da chave de criptografia.

luksFormat: Indica que o dispositivo vai utilizar o padrão LUKS.

Nesse momento, outros módulos de criptografia foram ativados:
# lsmod | grep aes
# cat /proc/crypto




Parâmetros do cryptsetup:


Parâmetros do cryptsetup:
-y ou --verify-passphrase: Faz a checagem da senha digitada.

--cipher: Define qual é o modo de criptografia que o dispositivo vai usar.

--key-size: Define em bits o tamanho da chave de criptografia.

luksFormat: Indica que o dispositivo vai utilizar o padrão LUKS.

Nesse momento, outros módulos de criptografia foram ativados:
# lsmod | grep aes
# cat /proc/crypto




Ativando o Serviço, e Dando os Ultimos Retoques


Após configurarmos o nosso dispositivo, precisamos ativa-lo para ser
usado:

# cryptsetup luksOpen /dev/sda10 crypt1
Enter LUKS passphrase:
Com a opção luksOpen, o nosso dispositivo /dev/sda10 foi mapeado
para /dev/mapper/crypt1, e a partir de agora, não pode mais ser
acessado diretamente por /dev/sda10, somente por
/dev/mapper/crypt1.
# ls -l /dev/mapper/crypt1
Para acessarmos o dispositivo, temos que definir um sistema de
arquivos para ele:
# mkfs.ext3 /dev/mapper/crypt1

Agora o nosso dispositivo está pronto para ser usado. Vamos definir
um diretório onde ele será montado:

# mdkir /documentos
# mount /dev/mapper/crypt1 /documentos
# ls -l /documentos
O que devemos fazer para a partição ser montada na inicialização do
sistema?
Dessa maneira, a nossa partição não vai ser montada na inicialização do
sistema. E quando estamos falando partições criptogradas, não basta apenas
acrescentar a partição ao /etc/fstab. Ele precisa ser configurado em mais um
arquivo que é o /etc/crypttab.


Vamos configurar o dispositivo no arquivo /etc/crypttab:
# vim /etc/crypttab
#
crypt1 /dev/sda10 none luks


Notem que a key_file está definida como none. Existe a possibilidade de
criar um arquivo ou um dispositivo removível com a chave para esse
dispositivo ser iniciado. No nosso caso, a senha será solicitada na inicialização
do sistema.


Agora seguindo os moldes padrão de sistemas Linux, temos que
colocar esse dispositivo no /etc/fstab:

# vim /etc/fstab
/dev/mapper/crypt1 /documentos ext3 defaults 0 2
Podemos fazer um teste manual antes de reinicializar o sistema. Para
isso, precisamos desativar o dispositivo criptogrado e iniciar o
script /etc/init.d/cryptdisks:

# cryptsetup luksClose crypt1
# /etc/init.d/cryptdisks start
Enter passphrase to unlock the disk /dev/sda10 (crypt1):
# mount -a
# mount
Agora podemos fazer o teste reinicializando o sistema:
# reboot
Logo na inicialização do sistema, será pedido para digitar a senha do
ponto de montagem criptografado.





Postado por Henrique Inside, Espero que Gostem.






Nenhum comentário :

Postar um comentário