Ir para o conteúdo

Adicionando uma coluna criptografada a uma tabela no Jitterbit App Builder

A criptografia em nível de aplicativo pode ser usada para proteger dados sensíveis armazenados em colunas de tabela. A criptografia e a descriptografia ocorrem dentro do mecanismo de negócios do App Builder. Consequentemente, a criptografia em nível de aplicativo é neutra em relação ao fornecedor: o App Builder suporta a 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 no App Builder como administrador.

  1. Navegue até o App Workbench
  2. Clique no bloco Tables
  3. Identifique a tabela à qual deseja adicionar a coluna e clique no ícone correspondente Open Record
  4. No painel Columns, clique no botão + Column
  5. Forneça o Nome da coluna e selecione as seguintes opções:
    • Logical Data Type: String
    • Physical Data Type: Encrypted Text
  6. Clique no botão Save
  7. Clique no ícone Close (X) para fechar o popup

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

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

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

Conecte-se ao banco de dados usando uma ferramenta como SQL Server Management Studio. Selecione os dados da tabela. Os dados criptografados serão precedidos pela 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 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, usuários com permissão para o objeto de dados poderão visualizar e modificar o valor em texto simples.

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

  • Migrar dados de colunas não criptografadas para colunas criptografadas (ou vice-versa).
  • Copiar dados sensíveis para dentro ou para fora de um sistema de terceiros.
  • Passar dados sensíveis para um endpoint de serviço web REST ou OData.
  • Por fim, 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 mais informações.

Chaves de criptografia de dados

Os dados da coluna são criptografados com uma Chave de Criptografia de Dados (DEK). Cada fonte de dados possui seu próprio conjunto de chaves rotativas. 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.

As DEKs estão vinculadas aos seguintes atributos no modelo lógico do App Builder:

  • 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 mudarem, os valores criptografados existentes não podem ser descriptografados.

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

Visualizando chaves de criptografia de dados

Como as DEKs são usadas para criptografar dados dentro do banco de dados, o material da chave criptográfica não pode ser armazenado no banco de dados. Por essa razão, as DEKs são armazenadas em um dos vários locais configuráveis. Consulte Configuração de Criptografia de Dados para mais informações.

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

  1. Navegue até o App Workbench
  2. Clique no bloco Data Sources
  3. Selecione o banco de dados relacional no painel de Fonte de Dados
  4. Clique no botão Encryption Keys

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

  • Data de Criação - A data e hora em que a chave foi gerada.
  • Data de Ativação - A data e hora em que a chave foi usada para criptografar dados de coluna.
  • Data de Expiração - A data e 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; a validação, autenticidade (também conhecida como proteção contra adulteração).

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

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

Problemas conhecidos e limitações

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

  • Apenas o tipo de dado lógico String suporta criptografia.
  • Apenas provedores de dados RDBMS suportam criptografia.
  • Uma coluna não pode ser convertida para o tipo de dado de armazenamento Criptografado.
  • Uma coluna não pode ser convertida do tipo de dado de armazenamento Criptografado para outro tipo de dado.
  • Colunas criptografadas não suportam Filtro, Pesquisa ou Ordenaçã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.
  • O App Builder não migra automaticamente valores criptografados com chaves antigas: cabe ao desenvolvedor recriptografar os dados periodicamente.
  • Dados não podem ser migrados para/de colunas criptografadas usando uma regra de migração. Os desenvolvedores devem usar regras de negócios CRUD para mover dados para/de colunas criptografadas.
  • Dados não podem ser copiados para/de colunas criptografadas usando regras de banco de dados CRUD. Os desenvolvedores devem usar regras de negócios CRUD para mover dados para/de colunas criptografadas.
  • Expressões mvSQL podem apenas referenciar 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 é exibido: o valor aparece como NULL.

Solução de Problemas

Para solução de problemas relacionada, consulte o seguinte no guia de solução de problemas do App Builder: