Compatibilidades do sistema de arquivos em disco criptografado

3

No meu sistema Debian durante a instalação eu decidi usar criptografia de disco (aquela oferecida durante uma instalação Debian regulard). Quando o sistema é inicializado, preciso inserir uma senha e, em seguida, a inicialização "real" é iniciada.

Alguém poderia explicar como essa criptografia é realizada? Isso acontece antes ou depois do layout do sistema de arquivos? Posso usar qualquer sistema de arquivos disponível para Linux com a criptografia de disco?

O / etc / mtab / é mais complicado do que o que eu usei com o Linux e acho que está relacionado à criptografia de disco, mas não tenho certeza. Aqui está (o que eu acho) os bits relevantes do meu / etc / mtab :

/dev/sda1 /boot ext2 rw,relatime,errors=continue 0 
/dev/mapper/archon-root / ext4 rw,noatime,errors=remount-ro,user_xattr,commit=300,barrier=1,data=ordered 0 0
rootfs / rootfs rw 0 0

Eu realmente não entendo porque / boot é ext2 e porque / é ext-4 e usando um / dev / mapper .

Poderia / boot ser em si mesmo usando ext4?

Poderia estar usando, digamos, o ZFS e ainda oferecer criptografia?

    
por Cedric Martin 29.03.2013 / 18:08

2 respostas

6

/boot não é criptografado (o BIOS não teria como descriptografá-lo ...). Pode ser ext4, mas realmente não há necessidade de ser. Geralmente não é escrito para. A BIOS lê o GRUB a partir do MBR, depois o GRUB lê o resto de si mesmo, o kernel e o initramfs de / boot. O initramfs solicita a senha. (Supostamente, está usando cryptsetup e cabeçalhos LUKS.).

A criptografia é realizada em uma camada abaixo do sistema de arquivos. Você está usando algo chamado dm-crypt (que é o backend de kernel de baixo nível que o cryptsetup usa), onde "dm" significa "Device Mapper". Você também parece estar usando o LVM, que também é implementado pela camada do Mapeador de Dispositivos do kernel. Basicamente, você tem uma pilha de armazenamento que se parece com isso:

1. /dev/sda2              (guessing it's 2, could be any partition other than 1)
2. /dev/mapper/sda2_crypt (dm-crypt layer; used as a PV for VG archon)
3. LVM (volume group archon)
4. /dev/mapper/archon-root (logical volume in group archon)
5. ext4

Você pode encontrar tudo isso com o comando dmsetup . Por exemplo, dmsetup ls informará os dispositivos da lista de dispositivos na lista. dmsetup info fornecerá alguns detalhes e dmsetup table fornecerá detalhes técnicos da tradução que a camada de mapeamento está fazendo.

A maneira como funciona é que a camada dm-crypt (# 2, acima) "mapeia" os dados executando criptografia. Portanto, qualquer coisa escrita em / dev / mapper / sda2_crypt é criptografada antes de ser passada para / dev / sda2 (o disco rígido real). Qualquer coisa vinda de / dev / sda2 é decriptada antes de ser passada de / dev / mapper / sda2_crypt.

Assim, qualquer camada superior usa essa criptografia de forma transparente. A camada superior que você usa primeiro é o LVM. Você está usando o LVM para dividir o disco em vários volumes lógicos. Você tem (pelo menos) um, chamado root, usado para o sistema de arquivos raiz. É um dispositivo de bloco simples, para que você possa usá-lo como qualquer outro - você pode colocar qualquer sistema de arquivos que desejar, ou até mesmo dados brutos. Os dados são transmitidos, por isso serão criptografados.

Coisas para aprender (cheque manpages, etc.):

  • /etc/crypttab
  • LVM (alguns comandos importantes: lvs , pvs , lvcreate , lvextend )
  • cryptsetup
por 29.03.2013 / 20:45
2

Sua configuração do Debian e muitas outras distribuições usam a criptografia completa de Cryptsetup / LUKS .

A criptografia completa do disco criptografa partições on-disc e envolve a criptografia / decription de forma que a partição criptografada simplesmente apareça como um dispositivo normal em nível de bloco para o resto do sistema. O dispositivo de bloco pode então ser formatado em qualquer sistema de arquivos normal que se deseje: ext2 / 3/4, xfs, jfs, btrfs ( kernel 3.2 ou posterior ). O sistema de arquivos simplesmente grava dados não criptografados no disco normalmente. O subsistema LUKS criptografa esses dados antes de gravar no dispositivo físico. Lê o trabalho ao contrário. Isso transparente para sistemas de arquivos, aplicativos e usuários. Tudo realmente gravado em um disco desse tipo é criptografado. Se esse disco fosse examinado externamente, pareceria lixo aleatório.

As parções físicas são mapeadas para /dev/mapper/<a unique name here> devices em /etc/crypttab . Seu crypttab pode ser algo assim:

archon-root     /dev/sda2     none

que criptografa e mapeia a partição real /dev/sda2 para o dispositivo criptografado /dev/mapper/archon-root . Seu /etc/fstab irá então montar o dispositivo mapeado /dev/mapper/archon-root to / ou o que mais for desejado.

O ZFS no Solaris inclui criptografia embutida. No linux, isso não acontece. Eu espero que o zfs deva funcionar em partições Cryptstup / LUKS, mas não sei se há algum problema que possa ser descoberto. Para obter proteção completa do ZFS / ZRaid, certamente seria ... difícil de configurar. Outros sistemas de arquivos funcionam perfeitamente bem nessa configuração. Eles são, de fato, alheios a isso. O ZFS faz muito mais com os discos subjacentes do que a maioria dos outros sistemas de arquivos (excluídos o btrfs).

Sua partição de inicialização certamente pode ser ext4. Ele não pode, no entanto, ser criptografado usando o Cryptsetup / LUKS, pois a partição de inicialização precisa ser legível pelo seu boot carregado (grub) e que não tem suporte para criptografia (até onde eu sei). Depois que o kernel carregar e iniciar o processo de inicialização, ele solicitará uma senha para abrir os dispositivos criptografados, que é o aviso exibido.

    
por 29.03.2013 / 20:45