Ir para o conteúdo

Adicionar uma Coluna Criptografada a uma Tabela

A criptografia em nível de aplicativo pode ser usada para proteger dados confidenciais armazenados em colunas de tabela. A criptografia e a descriptografia ocorrem dentro do App Builder motor de negócios. Consequentemente, a criptografia em nível de aplicativo é neutra em relação ao fornecedor: App Builder suporta criptografia de coluna em nível de aplicativo em todos os provedores de RDBMS.

Para adicionar uma coluna criptografada a uma tabela, comece fazendo login App Builder como administrador.

  1. Navegue até o App Workbench
  2. Clique no ficha Tabelas
  3. Identifique a tabela à qual deseja adicionar a coluna e clique no ícone Abrir registro correspondente
  4. No painel Colunas, clique no botão + Coluna
  5. Forneça a coluna Nome e selecione as seguintes opções:
    • Tipo de dados lógicos: String
    • Tipo de dados físicos: Texto criptografado
  6. Clique no botão Salvar
  7. Clique no ícone Fechar (X) para fechar o pop-up

Quaisquer valores escritos na coluna serão criptografados automaticamente. Valores lidos da coluna serão descriptografados automaticamente.

Se você tiver acesso direto ao banco de dados, você pode confirmar que os dados estão criptografados. Comece criptografando um valor:

  1. No painel Tabela, localize a tabela e clique no ícone Resultados para visualizar os dados da tabela
  2. Clique no ícone Editar para modificar uma linha existente
  3. Forneça um valor para a coluna criptografada
  4. Clique no ícone Salvar

Conecte-se ao banco de dados usando uma ferramenta como * SQL Server Management Studio*. Selecione os dados da tabela. Os dados criptografados serão prefixados com a sequência de bytes 0x09F0.

Usando uma Coluna de Tabela Criptografada

Colunas criptografadas podem ser usadas de várias maneiras. Normalmente, um desenvolvedor criará um objeto de dados que seleciona a coluna criptografada da tabela de destino. Usando a segurança baseada em funções, o desenvolvedor pode limitar o acesso ao objeto de dados. O desenvolvedor pode então vincular um painel ao objeto de dados e um controle de Texto ou Senha à coluna criptografada. Nesse ponto, os usuários com permissão para o objeto de dados poderão visualizar e modificar o valor de texto simples.

Além de vincular controles a colunas criptografadas, também é possível criar regras de negócios CRUD que copiam dados de e para colunas criptografadas. Regras de negócios CRUD podem ser usadas para:

  • Migrar dados de colunas não criptografadas para colunas criptografadas (ou vice-versa).
  • Copiar dados confidenciais para dentro ou para fora de um sistema de externo.
  • Passando dados confidenciais para um endpoint de serviço web REST ou OData.
  • Finalmente, colunas criptografadas podem ser usadas por plugins. No entanto, o suporte para colunas criptografadas varia de plugin para plugin. Consulte a documentação do Plugin para obter informações adicionais.

Chaves de Criptografia de Dados

Os dados da coluna são criptografados com uma Data Encryption Key (DEK). Cada fonte de dados tem seu próprio conjunto de rolling keys. Embora qualquer chave possa ser usada para descriptografar dados, apenas uma chave é usada para criptografia em um dado momento. Uma nova DEK é criada a cada 90 dias.

Os DEKs estão vinculados aos seguintes atributos no App Builder modelo lógico:

  • DataSourceId - O identificador da fonte de dados isola chaves.
  • TableId - O identificador da tabela é usado para criar uma chave derivada para a tabela.
  • ColumnId - O identificador da coluna é usado para criar uma chave derivada para a coluna.

Aviso

Se o DataSourceId, TableId ou ColumnId alteração, valores criptografados existentes não podem ser descriptografados.

Além disso, cada valor de coluna tem um vetor de inicialização exclusivo. Como resultado, o mesmo valor de texto simples terá um texto de cifra binária diferente em linhas diferentes.

Visualizando Chaves de Criptografia de Dados

Como DEKs são usados para criptografar dados dentro do banco de dados, o material da chave criptográfica não pode ser armazenado no banco de dados. Por esse motivo, DEKs são armazenados em um dos vários locais configuráveis. Veja Data Encryption Configuration para obter mais informações.

Embora o material da chave em si não esteja armazenado no banco de dados, os atributos da chave são visíveis de dentro do App Builder. Para obter os detalhes da chave de criptografia de uma fonte de dados, comece fazendo login em App Builder como administrador.

  1. Navegue até o App Workbench
  2. Clique no ficha Fontes de dados
  3. Selecione o banco de dados relacional no painel Fonte de dados
  4. Clique no botão Chaves de criptografia

A página Chaves de Criptografia de Dados listará as propriedades de chave existentes:

  • Data de criação - A data e a hora em que a chave foi gerada.
  • Data de ativação - A data e a hora em que a chave foi usada para criptografar dados da coluna.
  • Data de expiração - A data e a hora em que a chave não foi mais usada para criptografar dados.

Nota

Como as chaves de criptografia de dados são criadas sob demanda, uma fonte de dados não terá nenhuma chave de criptografia de dados até que os dados sejam criptografados pela primeira vez.

Algoritmos de Criptografia e Validação

A criptografia fornece confidencialidade; validação, autenticidade (também conhecida como proteção contra adulteração).

App Builder criptografa dados usando AES-256 no modo de cifra de bloco CBC com preenchimento PKCS #7.

App Builder garante a integridade dos dados criptografados usando HMAC-SHA256.

Problemas e Limitações Conhecidos

A lista a seguir descreve problemas e limitações conhecidos com App Builder implementação de criptografia em nível de coluna.

  • Somente o tipo de dado lógico String suporta criptografia.
  • Somente provedores de dados RDBMS oferecem suporte à criptografia.
  • Uma coluna não pode ser convertida para o tipo de dados de armazenamento criptografado.
  • Uma coluna não pode ser convertida do tipo de dados de armazenamento criptografado para outro tipo de dados.
  • Colunas criptografadas não suportam Filtro, Pesquisa ou Classificação.
  • Controles como páginas, painéis e listas não podem ser vinculados a uma coluna criptografada.
  • Colunas criptografadas não suportam tradução.
  • App Builder não migra automaticamente valores criptografados com chaves antigas: fica a cargo do desenvolvedor criptografar novamente os dados periodicamente.
  • Os dados não podem ser migrados de/para colunas criptografadas usando uma regra de migração. Os desenvolvedores devem usar regras de negócios CRUD para mover dados de/para colunas criptografadas.
  • Os dados não podem ser copiados de/para colunas criptografadas usando regras de banco de dados CRUD. Os desenvolvedores devem usar regras de negócios CRUD para mover dados de/para colunas criptografadas.
  • As expressões mvSQL podem referenciar apenas o texto cifrado binário, não o valor de texto simples de uma coluna criptografada.
  • Se um valor criptografado não puder ser descriptografado, nenhum erro será exibido: o valor parece ser NULL.