Criptografia com Criptsetup/LUKS¶
O LED da NextBox mudará para <x id=»31»></x>azul<x id=»36»></x> em cada pressão, após a segunda pressão mudará para azul intermitente (ver Documentação LED). Uma vez que o LED tenha finalmente atingido <x id=»187»></x>verde<x id=»193»></x> novamente durante pelo menos 20 segundos o seu NextBox está pronto para ser utilizado novamente. Por favor, não desligue o NextBox durante este processo, pois isso pode partir alguma coisa. |
|||||||
---|---|---|---|---|---|---|---|
✓ |
⨯ |
⨯ |
⨯ |
✓ |
✓ |
✓ |
✓ |
Este guia mostra como configurar volumes encriptados LUKS, para autenticar no arranque com Nitrokey Pro ou Nitrokey Storage.
Para fornecer algum fundo, cryptsetup-initramfs agora tem suporte para usar Cartões Smart Card OpenPGP como o Nitrokey Pro e Nitrokey Storage para desbloquear volumes encriptados em LUKS. Uma vez terminada a configuração, basta inserir o seu Nitrokey no arranque e introduzir o seu PIN de utilizador, em vez de digitar a sua frase-chave de encriptação do disco normal.
Estas instruções foram testadas no Ubuntu 20.04 e no Debian 10.
Aviso
O seguinte guia pode potencialmente bloqueá-lo para fora do seu computador. Você deve estar ciente desses riscos, e recomendamos que você use o script abaixo em um computador secundário, ou após uma cópia de segurança completa, pois você pode perder seus dados.
Requisitos¶
Um computador Ubuntu ou Debian com pelo menos um volume encriptado em LUKS.
Veja a seção abaixo para determinar qual método é compatível com este guia.
A Nitrokey Pro 2 ou Nitrokey Storage 2 inicializado com chaves.
Questões Conhecidas¶
Até agora, o script funciona apenas com volumes particionados manualmente, que são compostos de uma partição não criptografada /boot
, e uma raiz criptografada /
partição.
Por favor, não seleccione a encriptação automática do disco completo fornecida pelo sistema operativo que está a utilizar para este guia. Você enfrentará erros recorrentes quando o particionamento for feito automaticamente, usando a interface de instalação no Ubuntu e na Debian.
Instruções¶
Instalar dependências
$ sudo apt install scdaemon opensc gnupg2
Criar diretório smartcard-luks
$ mkdir smartcard-luks && cd smartcard-luks
Baixe o smartcard-luks-script
$ wget https://raw.githubusercontent.com/daringer/smartcard-key-luks/main/smartcard-key-luks $ sudo chmod +x smartcard-key-luks
Exportar a chave pública
Para exportar a sua chave pública do chaveiro do GnuPG:
$ gpg2 --armor --export KeyID > pubkey.asc
Se você já carregou uma chave pública para um servidor de chaves (ou a guardou em outro lugar), você deve recuperá-la da maneira que mais se sentir confortável, e prosseguir para o passo 5.
Determine e verifique o nome correto do dispositivo LUKS para a sua partição raiz:
$ cat /etc/crypttab # if there is only one entry, you want the 1st column of this entry
Dica
Normalmente isto deve ser algo como nvme0n1p3_crypt (para NitroPC) ou sda3_crypt (para NitroPads). Você pode e deve verificar se o UUID referido dentro de /etc/crypttab é a partição designada verificando o link simbólico dentro de /dev/discos/by-uuid/.
Execute o script com o nome do dispositivo luks (por exemplo, nvme0n1p3_crypt) e pubkey.asc como argumentos.
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey.asc
Uma vez, você executa o script com a chave pública OpenPGP como argumento, ele automaticamente configura um novo segredo LUKS, codifica-o contra essa chave pública, e configura crypttab, LUKS, initramfs, e GRUB.
Primeiro você será solicitado a User PIN`
Assim que desbloquear a Nitrokey, ser-lhe-á pedido o seu OLD passphrase`
. É a senha que você digitou para encriptar o seu volume na instalação.
Nota
Esta é uma alternativa de recurso no caso de perder a sua Nitrokey, ou se ela não estiver disponível. Até agora, não foi testado, e os utilizadores devem estar conscientes do risco de ficarem bloqueados fora do seu computador, se o método de fall-back não funcionar.
Uma vez inserida a frase-senha, o script termina a configuração em cerca de um minuto. Não interrompa o script, ou você pode ficar bloqueado fora do seu computador depois de reiniciar.
Feito!
A esta altura já deve poder reiniciar, e deve poder usar a sua Nitrokey para desbloquear a sua unidade encriptada.
Utilização¶
Depois de reiniciar, você deve ser solicitado a obter o seu PIN de usuário
Introduza o seu PIN de utilizador para desbloquear a unidade
Outras Dicas¶
Alterar a frase-senha¶
Uma vez feita esta configuração, você não deve mais usar o utilitário (gnome) discos para mudar a senha (fallback). A maneira correta de fazer isso é chamar cryptsetup diretamente dessa forma:
$ sudo cryptsetup luksChangeKey /dev/nvme0n1p3
Com nvme0n1p3 sendo a partição para a qual você configurou as chaves.
Use Múltiplas Chaves¶
É fácil usar múltiplas chaves de segurança (hardware) para que cada uma delas seja capaz de desbloquear a unidade LUKS independentemente. Basta exportar várias chaves públicas e também passar várias chaves para o script de configuração como este:
$ sudo ./smartcard-key-luks nvme0n1p3_crypt pubkey-1.asc pubkey-2.asc
Definir nome do portador do cartão¶
Durante a entrada do PIN no arranque para descodificação da partição raiz do LUKS é apresentado ao utilizador um titular do cartão, para definir isto por favor use $ gpg --edit-card
e dentro do tipo de prompt admin<`
e name`
para definir o titular do cartão OpenPGP (Nitrokey Storage 2 ou Nitrokey Pro 2).
Substituir/Delete Keys¶
Não é possível adicionar/remover chaves directamente. Portanto, você precisa apagar/remover a configuração antiga e executar novamente a configuração com a(s) chave(s) designada(s):
Remova o keyfile (caminho, se você usou o script acima) do luks-device (nvme0n1p3):
$ sudo cryptsetup luksRemoveKey /dev/nvme0n1p3 /etc/cryptsetup-initramfs/cryptkey.gpg
Retire o próprio ficheiro-chave:
$ sudo rm /etc/cryptsetup-initramfs/cryptkey.gpg
Reinicie a configuração acima.
Desbloqueio do LUKS2 com certificado X509¶
SystemD suporta desbloquear uma partição LUKS2 usando um certificado X509, encontre uma ótima entrada no blog sobre como realizar isso em Blog pessoal de Vladimir Timofeenko