Há (muitos) outros métodos de alternativa para criptografar discos, eu mostro aqui somente os métodos que conheço e utilizo. Tenha em mente que segurança só é boa desde que o OS não tenha sido adulterado. Um intruso poderia facilmente gravar a senha a partir de eventos teclado. Além do mais o dado é livremente acessível quando a partição for attached e não evitará que um intruso tenha acesso a isso neste estado.
Linux
Essas instruções utilizam o Linux dm-crypt
(device-mapper ou mapeador de dispositivo) facilidade disponível no kernel 2.6. Nesse exemplo, vamos criptografar a partição /dev/sdc1
, poderia no entanto ser qualquer outra partição ou disco, ou USB ou uma partição baseada em arquivo criada com losetup
. Nesse caso poderias usar /dev/loop0
. Veja file image partition. O mapeador de dispositivo utiliza etiquetas (labels) para identificar uma partição. Nós utilizamos sdc1
nesse exemplo, mas poderia ser qualquer string.
dm-crypt com o LUKS
LUKS com dm-crypt tem melhor criptografia e torna possível ter múltiplas passphrase para a mesma partição ou alterar a senha facilmente. para testar se o LUKS está disponível, simplesmente digite # cryptsetup --help
, se nada a respeito do LUKS for exibido, use as instruções abaixo Without LUKS. Primeiro crie uma partição se necessário: fdisk /dev/sdc
.
Criar partição criptografada
# dd if=/dev/urandom of=/dev/sdc1 # Opcional. For paranoids only (leva dias) # cryptsetup -y luksFormat /dev/sdc1 # Isso destrói qualquer dado no sdc1 # cryptsetup luksOpen /dev/sdc1 sdc1 # mkfs.ext3 /dev/mapper/sdc1 # cria sistema de arquivo ext3 # mount -t ext3 /dev/mapper/sdc1 /mnt # umount /mnt # cryptsetup luksClose sdc1 # Desanexar a partição criptografada
Anexar
# cryptsetup luksOpen /dev/sdc1 sdc1 # mount -t ext3 /dev/mapper/sdc1 /mnt
Desanexar
# umount /mnt # cryptsetup luksClose sdc1
dm-crypt sem LUKS
# cryptsetup -y create sdc1 /dev/sdc1 # ou qualquer outra partição como /dev/loop0 # dmsetup ls # verifica, exibirá: sdc1 (254, 0) # mkfs.ext3 /dev/mapper/sdc1 # Isso é feito somente a primeira vez! # mount -t ext3 /dev/mapper/sdc1 /mnt # umount /mnt/ # cryptsetup remove sdc1 # Desanexar a partição criptografada
Faz exatamente o mesmo (sem a parte do mkfs!) para reanexar a partição. Se a senha não estiver correta, o comando mount falhará. Nesse caso simplesmente remova o map sdc1 (cryptsetup remove sdc1
) e crie-a novamente.
FreeBSD
Os dois modulos de criptografia de disco populares do FreeBSD são o gbde
e geli
. Agora eu utilizo o geli por que ele é mais rápido e também utiliza o crypto device para aceleração de hardware. Veja o FreeBSD handbook Chapter 18.6http://www.freebsd.org/handbook/disks-encrypting.html para todos os detalhes. o módulo geli deve ser carregado ou compilado dentro do kernel:
options GEOM_ELI device crypto # ou como modulo: # echo 'geom_eli_load="YES"' >> /boot/loader.conf # ou faça: kldload geom_eli
Utilizar senha e chave
Eu utilizo essas configurações para uma criptografia de disco típica, ela utiliza uma passphrase AND uma chave para criptografar a chave mestre (master). Isso é, você precisa tanto da senha e quando da chave gerada /root/ad1.key
para anexar a partição. A chave mestre fica armazenada dentro da partição e não fica visivel. Veja abaixo para USB típico ou imagem baseada em arquivo.
Criar partição criptografada
# dd if=/dev/random of=/root/ad1.key bs=64 count=1 # Essa chave criptografa a chave mestre # geli init -s 4096 -K /root/ad1.key /dev/ad1 # -s 8192 também é bom para discos # geli attach -k /root/ad1.key /dev/ad1 # FAÇA um backup de /root/ad1.key # dd if=/dev/random of=/dev/ad1.eli bs=1m # Opcional e leva um bom tempo # newfs /dev/ad1.eli # Cria sistema de arquivo # mount /dev/ad1.eli /mnt
Anexar
# geli attach -k /root/ad1.key /dev/ad1
# fsck -ny -t ffs /dev/ad1.eli # na dúvida verifique o sistema de arquivo
# mount /dev/ad1.eli /mnt
Desanexar
o procedimento de desanexação é feito automaticamente no shutdown.
# umount /mnt # geli detach /dev/ad1.eli
/etc/fstab
A partição criptografada pode ser configurada para ser montada com /etc/fstab. A senha será solicitada quando botar. As seguintes configurações são exigidas para esse exemplo:
# grep geli /etc/rc.conf geli_devices="ad1" geli_ad1_flags="-k /root/ad1.key" # grep geli /etc/fstab /dev/ad1.eli /home/private ufs rw 0 0
Usar somente a senha
É mais conveniente criptografar um pendrive ou imagem baseada em arquivo com somente uma passphrase e sem chave. Nesse caso não é necessário carregar o arquivo de chave adicional por aí. O procedimento é o bem como o acima, simplesmente sem o arquivo chave. Vamos criptografar uma imagem baseada em arquivo /cryptedfile
de 1 GB.
# dd if=/dev/zero of=/cryptedfile bs=1M count=1000 # Arquivo de 1 GB # mdconfig -at vnode -f /cryptedfile # geli init /dev/md0 # criptografa somente com senha # geli attach /dev/md0 # newfs -U -m 0 /dev/md0.eli # mount /dev/md0.eli /mnt # umount /dev/md0.eli # geli detach md0.eli
Agora é possível montar essa imagem em outro sistema somente com a senha.
# mdconfig -at vnode -f /cryptedfile # geli attach /dev/md0 # mount /dev/md0.eli /mnt
imagem de disco criptografa do OS X
Não sabe somente por linha de comando. Veja Imagem de disco criptografada do OS Xhttps://wiki.thayer.dartmouth.edu/display/computing/Creating+a+Mac+OS+X+Encrypted+Disk+Image e Apple supporthttp://support.apple.com/kb/ht1578