Cryptsetup 2.8.0: modo inline revoluciona criptografia NVMe, com reparo avançado e segurança reforçada no Linux

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...

Cryptsetup 2.8.0: modo inline revoluciona criptografia NVMe, com reparo avançado de keyslots, reencryption e segurança reforçada no Linux.

A segurança e o desempenho da criptografia de dados no Linux atingem um novo patamar! O Cryptsetup, a ferramenta padrão para gerenciar volumes criptografados com LUKS e dm-crypt, acaba de lançar sua versão 2.8.0. Este é um lançamento estável que promete turbinar a produtividade e a proteção de dados com uma série de novas funcionalidades e centenas de correções de bugs.

O grande destaque do Cryptsetup 2.8.0 é o suporte ao modo inline em drives NVMe, que promete eliminar gargalos de desempenho na criptografia. Além disso, a versão traz melhorias cruciais em recuperação de dados, gerenciamento de chaves e compatibilidade com tecnologias de hardware modernas, reforçando a posição do Cryptsetup como uma ferramenta essencial para a segurança de dados no Linux.

Este artigo fará um mergulho aprofundado nas novidades do Cryptsetup 2.8.0, explorando como essas inovações impactam diretamente a sua experiência de criptografia, o desempenho de seu armazenamento e a capacidade de recuperação de dados em cenários críticos.

Modo inline: a revolução da criptografia em NVMe de alto desempenho

O que é o modo inline?

A versão Cryptsetup 2.8.0 introduz suporte ao modo inline para drives NVMe que possuem espaço adicional para metadados de hardware – por exemplo, setores de 4096 bytes + 64 bytes adicionais para metadados.

Quando esse espaço não está sendo utilizado internamente pelo próprio drive para funcionalidades como verificação de integridade, ele pode ser usado diretamente pelo kernel, eliminando a necessidade da camada dm-integrity para armazenar metadados externos.

O resultado? Criptografia muito mais rápida, já que o journal do dm-integrity, que era um gargalo, é completamente eliminado nesse cenário.

Esse suporte foi adicionado ao Linux Kernel 6.11, com melhorias no device-mapper. A opção --integrity-inline ativa esse modo no Cryptsetup e também no Integritysetup.

Na prática:

  • Integritysetup ainda usa o dm-integrity, mas os metadados são gravados diretamente nos setores extras do hardware.
  • Cryptsetup elimina totalmente o dm-integrity e trabalha diretamente com dm-crypt, otimizando o desempenho.

Além disso, a libcryptsetup agora exporta a nova chamada de API crypt_format_inline, facilitando a implementação por desenvolvedores.

Como habilitar e formatar com modo inline

Requisitos:

  • O drive NVMe precisa suportar o espaço de metadados inline.

Verificação:
Execute:

nvme id-ns -H /dev/nvmeXnY

Procure o LBA Format com espaço extra.

Formatação (com perda de dados):

nvme format -l <lbaf> /dev/nvmeXnY

Escolha um perfil com 4096 bytes por setor, que é fortemente recomendado para desempenho.

Exemplos de uso

Integritysetup com modo inline:

integritysetup format --sector-size 4096 --integrity-inline /dev/nvmeXnY

O status mostrará:

inline mode
journal: not active

LUKS2 com criptografia autenticada (AEGIS AEAD):

cryptsetup luksFormat --integrity-inline --integrity aead --sector-size 4096 \
             -c aegis128-random --key-size 128 /dev/nvmeXnY

O comando luksDump mostrará:

Requirements: inline-hw-tags

Atenção: A criptografia autenticada LUKS2 ainda é experimental. O modo inline melhora o desempenho, mas não a estabilidade dessa funcionalidade.

Gerenciamento de chaves e reencryption: mais controle e segurança

API de Keyslot Context finalizada e auto-contida

A Keyslot Context API agora está finalizada e totalmente auto-contida:

  • Não requer mais que o chamador aloque memória – tudo é feito internamente.
  • Permite uso de tokens em comandos como open, resume e reencryption, sem APIs específicas.
  • Mantém compatibilidade retroativa.

Novas opções –key-description e –new-key-description

Agora é possível recuperar passphrases diretamente do keyring, em comandos como:

  • open
  • resize
  • luksResume
  • luksFormat
  • luksAddKey
  • luksDump

Seleção precisa de keyslot em reencryption

A função de reencryption agora aceita:

  • Filtros com --token-id, --token-type, --token-only para especificar quais keyslots serão atualizados.
  • Utilização de chaves de volume diretas com --volume-key-file e --new-volume-key-file.
  • Apagar todos os keyslots após reencryption com --force-no-keyslots.
  • Retomar operações com tokens ou volume keys.

Recuperação e reparo: diagnóstico de keyslots corrompidos

Verificação de corrupção em áreas de keyslot

O comando:

cryptsetup repair

tenta detectar corrupções em áreas binárias de keyslot. Ele usa um teste estatístico de Chi-quadrado para verificar a distribuição dos dados nos blocos de 4096 bytes.

Quando detecta irregularidades, exibe mensagens como:

Keyslot 2 binary data could be corrupted.
Suspected offset: 0x88000

Importante:

  • Não modifica o cabeçalho.
  • Não repara o keyslot automaticamente.
  • Serve como diagnóstico para casos em que senhas deixam de funcionar após possíveis falhas de disco.
  • É necessário restaurar de um backup do cabeçalho.

Suporte a Opal2 SEDs: segurança reforçada para drives de autocriptografia

PSID keyfile e métodos de apagar

O PSID keyfile precisa ter 32 caracteres alfanuméricos.

O comando Secure Erase agora é preferido ao Erase, por ser mais confiável no modo Single-user (SUM) dos Opal2 SEDs.

Correções de erros e desativação imediata

  • Mensagens de erro ajustadas conforme as especificações TCG.
  • A desativação adiada de SEDs não é mais permitida.

Flexibilidade e interoperabilidade: o Cryptsetup se adapta

Combinação de –reduce-device-size e –device-size

Agora é possível combinar essas opções durante reencryption para:

  • Criptografar apenas parte do dispositivo.
  • Reservar espaço para um novo cabeçalho LUKS.

Suporte ao formato de cipher capi: do kernel

  • Avoida fallback para o device-mapper.
  • Incompatível com LUKS1.
  • Desativado para keyslot encryption, usado apenas para dados.

Proteção contra keyslots ‘unbound’

A conversão LUKS2 → LUKS1 não é permitida se houver keyslots unbound, pois o LUKS1 não oferece suporte.

Ajuste do tamanho da chave XTS

A chave XTS tem agora seu tamanho dobrado de forma automática ao usar cipher capi:, de acordo com o formato dm-crypt.

Otimizações de memória e usabilidade

Argon2 KDF: sem limite de memória em sistemas com muita RAM

  • Sem limite artificial em sistemas com >4GB RAM.
  • Detecta e reporta erros de OOM nos backends.
  • Evita overflow para KDF2 em sistemas 32-bit.

Veritysetup: checagem antecipada de hash device

  • Verifica se o Merkle tree cabe no dispositivo antes de começar.
  • Evita falhas posteriores por falta de espaço.

Saídas de comandos claras e unificadas

  • Unidades explícitas como [512-byte units], [bytes] agora são exibidas.
  • Reduz ambiguidade para usuários e scripts.

Otimizações diversas

  • Escritas de LUKS2 metadata otimizadas.
  • Verificação de direct-io em block devices desativada.
  • Benchmarks não incluem alocação de cipher.
  • Mbed-TLS agora é um backend opcional.
  • Correções de segfaults e builds com Meson.
  • Licenças reorganizadas.

Extensões de API libcryptsetup: novas funcionalidades para desenvolvedores

  • Compatibilidade retroativa com símbolos antigos.
  • Novas versões de símbolos como crypt_keyslot_context_init_by_passphrase.
  • Novos símbolos: crypt_format_inline, crypt_safe_memcpy, entre outros.
  • Novas flags: CRYPT_ACTIVATE_HIGH_PRIORITY, CRYPT_REQUIREMENT_INLINE_HW_TAGS.

TCRYPT (TrueCrypt/VeraCrypt): melhorias para sistemas criptografados

  • Mapeamento automático de partições com base no tamanho detectado dos metadados do VeraCrypt.
  • O comando tcryptDump agora exibe todas as informações descriptografadas do cabeçalho.
  • Maior compatibilidade e facilidade de depuração.

Conclusão: Cryptsetup 2.8.0 – a vanguarda da segurança e performance no Linux

O Cryptsetup 2.8.0 é um lançamento monumental que consolida sua posição na vanguarda da segurança de dados no Linux. Com o modo inline que promete revolucionar a criptografia em drives NVMe, juntamente com ferramentas avançadas de reparo de keyslots, opções flexíveis de reencryption e um foco contínuo em performance e segurança, o Cryptsetup 2.8.0 eleva o patamar da proteção de dados em sistemas Linux.

Para garantir que seus dados estejam seguros e sua criptografia seja a mais eficiente possível, atualize seu Cryptsetup para a versão 2.8.0 hoje mesmo! Explore as novas funcionalidades e proteja seu sistema. Para mais notícias e análises sobre criptografia, segurança Linux e armazenamento, continue acompanhando o SempreUpdate!

Compartilhe este artigo