Criptografia em nível de coluna

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 12 min. de leitura
  • A Criptografia em nível de coluna (CLE), anteriormente chamada de Encryption Support, permite e nega o acesso a dados criptografados com base na função do usuário. O Column Level Encryption foi aprimorado no para incluir o gerenciamento básico de chaves usando módulos de criptografia sem custo adicional.

    Sobre a Column Level Encryption

    Nota:
    Os contextos de criptografia configurados anteriormente são convertidos automaticamente em módulos de criptografia. A Column Level Encryption (CLE) é um aprimoramento de segurança gratuito do suporte à criptografia. Para saber mais sobre as opções de criptografia, consulte Pacote de assinatura do Gerenciamento de criptografia e chaves.

    A implementação da criptografia em nível de coluna começa com a definição de um ou mais módulos de criptografia em suas instâncias da Now Platform. Este processo inclui a seleção de um algoritmo de criptografia e o fornecimento de uma chave secreta apropriada. O acesso aos dados criptografados posteriormente com o recurso é baseado em função, com a associação dos módulos a funções. Usuários sem a função correta não verão o campo. A Figura 1 ilustra como a criptografia baseada em função funciona.

    Figura 1. Figura 1 - Exemplo de criptografia baseada em função
    Criptografia baseada em função
    Aqui estão os resultados dos relacionamentos na Figura 1:
    • O usuário 1 é um membro da Função 1, que fornece acesso ao módulo de criptografia 1. O usuário 1 pode ver o conteúdo do Campo A e do Campo B.
    • O Usuário 2 e o Usuário 3 são membros do Grupo 1. O Grupo 1 é um membro da Função 1, o que permite que todos no Grupo 1 acessem o módulo de criptografia 1 e permite que o Usuário 2 e o Usuário 3 vejam o conteúdo do Campo A e do Campo B.
    • O Usuário 4 não é membro de nenhum grupo ou função e não tem acesso ao módulo de criptografia 1. O Usuário 4 não só não tem acesso ao Campo A ou Campo B, mas nem mesmo vê esses campos em um formulário. Em uma exibição de lista, os valores estariam em branco.

    Também é possível implementar uma criptografia baseada em função consideravelmente mais complexa.

    O acesso baseado em função também deve ser implementado de forma apropriada para que esse campo seja acessível aos usuários que estão atribuídos ao módulo de criptografia por meio de uma função.

    Todas as chaves de criptografia do cliente para uso com criptografia em nível de coluna são armazenadas no mesmo banco de dados de instância exclusivo no qual os dados criptografados por essas chaves são armazenados. Como medida de segurança adicional, os dados são criptografados novamente com uma chave secundária exclusiva para essa instância, o que reduz o acesso direto à chave de criptografia de qualquer módulo de criptografia, seja por um administrador de instância ou pelaServiceNow.

    Dados criptografados no nível de coluna não podem ser filtrados.

    Column Level Encryption:
    • O acesso aos dados criptografados é determinado pela função do usuário.
    • Você pode escolher a força do algoritmo de criptografia: AES-128 ou AES-256.
    • Você pode criptografar texto de Cadeia de caracteres, campos de Data e Data/Hora, anexos e URLs.
    • Os módulos de criptografia fornecem criptografia de preservação de igualdade.
    O Criptografia em nível de coluna para empresas oferece suporte aos seguintes recursos adicionais:
    • Chaves fornecidas pelo cliente.
    • O acesso à chave permite sessões de usuário com acesso ao módulo, e a chave pode acessar outros processos de back-end ou do usuário do sistema.
    • Acesso ao script, Resource Exchange e aplicativo
    • Suporte avançado a anexos.
    • Disponibilidade de acesso à interface de programação da aplicação (API).
    • A criptografia de preservação de ordem ou a criptografia padrão não determinística não são compatíveis.

    Edições Standard e Enterprise

    A Column Level Encryption está disponível nas versões Standard (padrão) e Enterprise (empresarial). A Column Level Encryption Enterprise é um plug-in pago que fornece recursos adicionais, bem como um número maior de módulos e políticas de acesso ao módulo.

    Tabela 1. Recursos da Column Level Encryption de acordo com a versão
    Column Level Encryption Column Level Encryption Enterprise
    • O acesso aos dados criptografados é determinado pela função do usuário
    • Suporte para até 5 módulos e políticas de acesso ao módulo (MAPs)
    • Algoritmos de criptografia AES-128 e AES-256
    • Criptografia de texto de cadeia de caracteres, campos de Data e Data/Hora, anexos e URLs.
    • Os módulos de criptografia fornecem criptografia de preservação de igualdade.
    • APIs getDisplayValue () e setDisplayValue () atualizadas que podem retornar valores de texto não criptografado e inserir dados criptografados em campos criptografados

    Além dos recursos listados à esquerda, a Column Level Encryption Enterprise oferece suporte a esses recursos adicionais.

    • Suporte para mais de 5 módulos e políticas de acesso ao módulo (MAPs)
    • Criptografia para tipos de campo adicionais, como registros, HTML e campos traduzidos.
    • Rotação de chave automática configurável.
    • Chaves fornecidas pelo cliente. Gerencie o ciclo de vida completo das chaves de criptografia de dados. Opcionalmente, é possível trocar com segurança chaves de criptografia de dados geradas em seu ambiente.
    • Chaves criptográficas efêmeras
    • APIs getValue () e setValue () atualizada.
    Para obter mais informações sobre a versão Enterprise deste produto, consulte Column Level Encryption Enterprise

    Métodos de criptografia

    Os campos que usam a Column Level Encryption podem incluir:

    • Campos de texto criptografado novos ou existentes.
    • Os campos Cadeia de caracteres, Data, Data/Hora ou URL incluídos nos registros de configuração de campo criptografados.

    A tabela Configurações de campo criptografado [sys_platform_encryption_configuration] contém um registro para cada campo criptografado com a Column Level Encryption. Essa tabela permite que um administrador de segurança monitore todos os campos na instância que usa a Column Level Encryption.

    Nota:
    Na atualização, são criados registros de configuração de campo criptografado para todos os campos de texto criptografados existentes. Quando um novo campo de texto criptografado for adicionado, um registro de configuração de campo criptografado será criado por padrão.

    As configurações de campo criptografado podem criptografar campos usando um dos seguintes métodos.

    Método Descrição
    Módulo de criptografia único O campo é criptografado com o método de criptografia definido no campo do módulo de criptografia. Os usuários que não têm acesso ao módulo criptografado não podem exibir ou atualizar valores de campo.
    Módulos de criptografia múltiplos O campo é criptografado com o módulo de criptografia do primeiro usuário a inserir dados nesse campo. Se o usuário tiver dois ou mais módulos de criptografia, será usado módulo definido no seletor de módulo de criptografia. Como o módulo de criptografia é definido por registro, os campos em uma lista podem ter módulos de criptografia diferentes. No entanto, em um único registro, o campo pode ser criptografado por apenas um módulo.
    Quando um campo de texto criptografado é criado, uma configuração de campo criptografada é criada com o método de módulos de criptografia múltiplos. Os campos de texto criptografado e os campos criptografados com o método de módulos de criptografia múltiplos se comportam da mesma forma.
    Nota:
    A criptografia em massa não está disponível ao usar o método de módulos de criptografia múltiplos.

    Acesso a dados criptografados

    Um módulo de criptografia determina o acesso aos dados criptografados. Os usuários Security_admin podem fornecer uma política de acesso ao módulo de criptografia para um usuário, atribuindo ao usuário uma função associada.

    Para monitorar a atribuição de funções, o cliente ou os serviços profissionais podem configurar medidas de segurança. Por exemplo, é possível enviar um e-mail para o gerente de criptografia indicado sempre que uma função associada a um módulo de criptografia for concedida a um usuário.

    Nota:
    A representação não muda o módulo de criptografia disponível para um usuário. Mesmo durante a representação, você tem somente os módulos de criptografia disponíveis originalmente. Essa funcionalidade foi introduzida em Vancouver.
    Nível de Acesso Acesso a dados a um campo usando o método de módulo de criptografia único Acesso a dados a um campo usando o método de módulos de criptografia múltiplos
    Usuário sem módulos de criptografia O formulário oculta o campo criptografado. Na exibição de lista, o campo aparece vazio e não pode ser editado, mesmo se os dados no campo forem descriptografados. O formulário oculta o campo criptografado. Na exibição de lista, o campo aparece vazio e não pode ser editado, mesmo se os dados no campo forem descriptografados.
    Usuário com um módulo de criptografia Para usar o campo, o usuário deve ter acesso aos módulos de criptografia definidos na configuração do campo criptografado. Se ele não tiver acesso aos módulos de criptografia, o formulário ocultará o campo. Na exibição de lista, o campo aparece vazio e não pode ser editado.
    • Se não houver dados no campo:
      • Se o usuário tiver acesso ao módulo de criptografia, o formulário mostrará o campo (supondo que a política de IU não o impeça).
      • Usuários com acesso ao módulo de criptografia podem exibir e atualizar o campo vazio.
      • Os dados inseridos no campo são criptografados com o módulo de criptografia definido no campo do módulo de criptografia.
    • Se houver dados no campo: se o usuário tiver acesso ao módulo de criptografia, poderá exibir e editar os dados no campo.
    O usuário usa automaticamente seus módulos de criptografia com o campo criptografado.
    • Se não houver dados no campo:
      • O formulário mostra o campo (supondo que ele não seja impedido por uma política de IU).
      • Usuários com qualquer módulo de criptografia podem exibir e atualizar o campo vazio.
      • A inserção de dados no campo faz com que o campo use o módulo de criptografia atualmente selecionado para criptografar os dados.
    • Se houver dados no campo: Se o usuário tiver acesso ao módulo de criptografia usado para criptografar o campo, o usuário poderá visualizar e editar o campo.
    Usuário com dois ou mais módulos de criptografia Para usar o campo, o usuário deve ter acesso ao módulo de criptografia definido na configuração do campo criptografado. Se não tiver acesso ao módulo de criptografia, o formulário ocultará o campo. Na exibição de lista, o campo aparece vazio e não pode ser editado.
    • Se não houver dados no campo:
      • Se o usuário tiver acesso ao módulo de criptografia, o formulário mostrará o campo (supondo que a política de IU não o impeça).
      • Usuários com acesso ao módulo de criptografia podem exibir e atualizar o campo vazio.
      • Os dados inseridos no campo são criptografados com o módulo de criptografia definido no campo do módulo de criptografia.
    • Se houver dados no campo:
      • Se o usuário tiver acesso ao módulo de criptografia, poderá exibir e editar os dados no campo.
      • O campo sempre usa o módulo de criptografia original para criptografar mudanças no campo. Esse comportamento ajuda a impedir que usuários com dois ou mais módulos de criptografia alterem o módulo de criptografia de um campo.
    O usuário pode selecionar um módulo de criptografia no seletor de módulo de criptografia na barra de boas-vindas.
    • Se não houver dados no campo:
      • O formulário mostrará o campo (supondo que a política de IU não o impeça). Usuários com qualquer módulo de criptografia podem exibir e atualizar o campo vazio.
      • A inserção de dados no campo faz com que o campo use o módulo de criptografia atualmente selecionado para criptografar os dados.
      • O campo sempre usa o módulo de criptografia original para criptografar mudanças no campo. Esse comportamento ajuda a impedir que usuários com dois ou mais módulos de criptografia alterem o módulo de criptografia de um campo.
    • Se houver dados no campo:
      • Se o usuário tiver acesso ao módulo de criptografia usado para criptografar o campo, poderá exibir e editar os dados no campo.
      • O campo usa o módulo de criptografia original para criptografar mudanças no campo. Esse comportamento ajuda a impedir que usuários com vários módulos de criptografia alterem o módulo de criptografia de um campo.

    Informações de configuração compatíveis

    • Os seguintes tipos de campo podem ser criptografados:
      • Anexos
      • Data
      • Data/Hora
      • Texto de cadeia de caracteres
      • URL
      Nota:
      Mais tipos de campo estão disponíveis no Enterprise. Consulte para obter detalhes.
    • Como os módulos estão vinculados a funções e as funções estão vinculadas a usuários, você não tem acesso a chaves de sessões de não usuário. Qualquer coisa executada como um usuário do sistema ou um trabalho programado que não tenha uma sessão de usuário não pode acessar a chave para criptografar ou descriptografar dados.
    • Você pode acessar o "valor" ou o "valor de exibição":
      • Quando escolhe "valor", o texto cifrado é retornado.
      • Quando escolhe "exibir valor", desde que tenha a função correta, o texto não criptografado será retornado.

      Muitos scripts nas camadas da aplicação são programados de forma a ignorar essa distinção e usar "valor". Se você não alterar os scripts para usar o valor de exibição, os dados não serão criptografados ou descriptografados.

    Criptografia de anexo

    Criptografia de anexo por padrão

    Para clientes que usam a Column Level Encryption, por padrão os anexos são criptografados em tabelas que têm um tipo de EFC (Encrypted Field Configuration, Configuração de campo criptografado) ativo de Attachment.

    Essa criptografia padrão definida pela configuração do EFC significa que os administradores não precisam declarar que um anexo deve ser criptografado no carregamento dessas tabelas manualmente.

    Recusar criptografia padrão

    Se você não quiser que os anexos sejam criptografados por padrão com base na configuração do EFC, poderá recusar essa opção entrando em contato com o suporte.

    Para recusar este recurso, crie um caso de suporte com suporte e inclua esta declaração em um comentário no registro do caso:

    "Eu [nome do cliente] entendo que estou solicitando a desativação de uma prática recomendada de segurança para anexos e que [a empresa do cliente] assume qualquer risco adicional relacionado à configuração e ao uso de anexos não criptografados na aplicação."

    Filtragem e pesquisa de campos criptografados

    Quando um campo de texto criptografado ou um campo com uma configuração de campo criptografado aplicada é selecionado como o operando esquerdo em um filtro, os seguintes operadores ficam disponíveis:
    • é
    • não é
    • está vazio
    • não está vazio

    Para campos de Data, use o seletor de data para especificar a data:

    Seletor de data

    Para campos de Data/Hora, use o seletor de data e hora para especificar a data e a hora:

    Seletor de data e hora

    Se um usuário com um módulo de criptografia filtrar por igualdade ou pesquisar um valor em uma lista:

    • Somente são retornados valores criptografados com um módulo de criptografia disponível para o usuário.
    • Os operadores vazio e não vazio retornam todos os registros correspondentes. Os campos criptografados com um módulo de criptografia não disponível para o usuário atual aparecem vazios.

    Se um usuário não tiver módulos de criptografia, nenhum registro será retornado.

    As opções Mostrar correspondência e Filtrar são compatíveis com listas. Somente correspondências exatas são retornadas ou filtradas.

    Nota:
    A adição de campos criptografados em filtros de condição é compatível com scripts, como políticas de IU e regras de negócio.

    Exportação de dados de campos criptografados

    Ao exportar campos criptografados em uma lista ou formulário para um formato de arquivo, somente os campos criptografados por um módulo de criptografia aparecem no documento exportado. O módulo de criptografia usado deve estar disponível para o usuário atual.

    Para desabilitar as exportações de dados criptografados de uma exibição de lista, adicione a propriedade do sistema glide.encryption.export_encrypted_data.allowed e defina o valor como falso.

    Criptografia em tabelas do sistema

    No momento, a Column Level Encryption não é compatível com a criptografia de campos e anexos de tabelas do sistema (tabelas que começam com sys_).