28 de julho de 2021

Do bit Ao Byte

Embarcados, Linux e programação

Criptografia no Raspberry (qualquer Linux, na verdade)

Criptografia no Raspberry

Adhesive note Post it Blank reminder vector

Essa dica é bastante básica, mas servirá como referência para futuras implementações relacionadas à Criptografia no Raspberry.

Comece baixando o sistema, preferencialmente o Raspberry Pi OS, no site oficial. Se o tipo de proteção que procura é para aumentar a vida útil do micro SD, leia esse artigo.

Introdução e recomendação 
A criptografia no Raspberry pode ser feita em uma partição ou arquivo de bloco. É recomendável que seja feito em arquivo de blocos que posteriormente será montado como uma partição, utilizando o dispositivo de sistema /dev/loop0, não tendo nenhuma representação significativa no I/O.

Configuração
Inicialmente deve-se carregar os módulos blowfish e cryptoloop. Esses módulos deverão ser carregados pelo sistema em tempo de boot. Para isso, deve-se adicioná-los em /etc/modules.conf

Sempre deve-se aplicar a criptografia sobre o alvo, seja disco ou arquivo de blocos:

losetup -e blowfish /dev/loop0 [/dev/ | arquivo_de_blocos]

Se for utilizado arquivo de blocos, deve-se primeiramente criá-lo (supondo um arquivo de 512MB):

dd if=dev/zero of=/media/cripto/cripto.data count=1048576 bs=512

O passo seguinte a qualquer um dos processos descritos acima é a formatação do alvo:

mkreiserfs /dev/loop0

Observe que a formatação aponta para o dispositivo de loop e não para o alvo diretamente.

Por fim, basta montar e copiar os dados (que devem ser estáticos para facilitar a restauração a partir de um backup do arquivo de blocos):

mount -t reiserfs /dev/loop0

Para desmontar:

umount
losetup -d /dev/loop0

Vale lembrar que nenhum sistema está seguro se houver acesso físico, mas se a montagem do alvo for feita manualmente, as chances de acesso aos dados diminuem exponencialmente utilizando criptografia. Em contrapartida, um micro SD criptografado tende a gerar mais I/O, consequentemente aumentando o desgaste. Tudo vai da necessidade e, quem sabe um dia o Raspberry tenha memória EMMC como os Banana Pi, não é mesmo?

Nos vemos nos próximos artigos!

 

Revisão: Ricardo Amaral de Andrade