Esta documentação foi traduzida automaticamente por IA.
Criptografia
Campo de coleção: CriptografiaProfessional Edition+Introdução
Dados de negócios confidenciais, como número de celular de clientes, endereços de e-mail e números de cartão, podem ser criptografados. Após a criptografia, eles são armazenados no banco de dados como texto cifrado.

Como funciona a Criptografia
O plugin gera automaticamente uma chave de aplicação, que é armazenada no diretório /storage/apps/main/encryption-field-keys.
O arquivo da chave de aplicação é nomeado com o ID da chave e tem a extensão .key. Por favor, não altere o nome do arquivo.
Mantenha o arquivo da chave de aplicação em segurança. Se você perder o arquivo da chave de aplicação, os dados criptografados não poderão ser descriptografados.
Se o plugin for ativado por uma sub-aplicação, a chave será salva por padrão no diretório /storage/apps/${sub-application name}/encryption-field-keys.
Como funciona
Utiliza Criptografia de Envelope

Processo de criação da chave
- Na primeira vez que um campo criptografado é criado, o sistema gera automaticamente uma
chave de aplicaçãode 32 bits e a armazena no diretório de armazenamento padrão, codificada em Base64. - Cada vez que um novo campo criptografado é criado, uma
chave de campoaleatória de 32 bits é gerada para ele. Em seguida, essa chave é criptografada usando achave de aplicaçãoe umvetor de criptografia de campode 16 bits gerado aleatoriamente (algoritmo de criptografiaAES), sendo então armazenada no campooptionsda tabelafields.
Processo de criptografia de campo
- Cada vez que você escreve dados em um campo criptografado, você primeiro obtém a
chave de campocriptografada e ovetor de criptografia de campodo campooptionsda tabelafields. - A
chave de campocriptografada é descriptografada usando achave de aplicaçãoe ovetor de criptografia de campo. Em seguida, os dados são criptografados usando achave de campoe umvetor de criptografia de dadosde 16 bits gerado aleatoriamente (algoritmo de criptografiaAES). - Os dados são assinados usando a
chave de campodescriptografada (algoritmo de resumoHMAC-SHA256) e convertidos para uma string codificada em Base64 (aassinatura de dadosresultante é usada posteriormente para recuperação de dados). - O
vetor de criptografia de dadosde 16 bits e otexto cifradocriptografado são concatenados em binário e convertidos para uma string codificada em Base64. - A string codificada em Base64 da
assinatura de dadose a string codificada em Base64 dotexto cifradoconcatenado são unidas, separadas por um.. - A string final concatenada é salva no banco de dados.
Variáveis de Ambiente
Se você quiser especificar uma chave de aplicação personalizada, defina a variável de ambiente ENCRYPTION_FIELD_KEY_PATH. O plugin carregará o arquivo nesse caminho como a chave de aplicação.
Requisitos para o arquivo da chave de aplicação:
- A extensão do arquivo deve ser
.key. - O nome do arquivo será usado como o ID da chave; é recomendado usar um UUID para garantir a exclusividade.
- O conteúdo do arquivo deve ser 32 bytes de dados binários codificados em Base64.
Configuração de campo

Impacto na filtragem após a criptografia
Campos criptografados suportam apenas as seguintes operações: igual a, diferente de, existe e não existe.

Fluxo de filtragem de dados:
- Obtenha a
chave de campodo campo criptografado e descriptografe-a usando achave de aplicação. - Use a
chave de campopara assinar o texto de pesquisa inserido pelo usuário (algoritmo de resumoHMAC-SHA256). - Concatene o texto de pesquisa assinado com um separador
.e realize uma pesquisa de correspondência de prefixo no campo criptografado no banco de dados.
Rotação de chaves
Antes de usar o comando de rotação de chaves nocobase key-rotation, certifique-se de que a aplicação já carregou este plugin.
Após migrar uma aplicação para um novo ambiente, se você não quiser continuar usando a mesma chave do ambiente antigo, pode usar o comando nocobase key-rotation para substituir a chave de aplicação.
A execução do comando de rotação de chaves requer que você especifique a chave de aplicação do ambiente antigo. Após a execução, uma nova chave de aplicação será gerada e substituirá a chave antiga. A nova chave de aplicação será salva (codificada em Base64) no diretório de armazenamento padrão.
Se você for substituir a chave de aplicação de uma sub-aplicação, precisará adicionar o parâmetro --app-name para especificar o name da sub-aplicação.

