Criptografia Password2 com o KMF (Key Management Framework, Estrutura de gestão de chaves)

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 3 min. de leitura
  • Compatível com Estrutura de gestão principal, o tipo de campo Password2 (criptografia bidirecional) é usado para criptografar e descriptografar campos personalizados com segregação de tarefas, proteção de chave e gerenciamento de ciclo de vida. Ele funciona de acordo com as diretrizes NIST 800-57 e fornece proteção FIPS 140-2-L3.

    O Password2 é um campo de texto que armazena senhas com criptografia bidirecional. A criptografia bidirecional armazena senhas como um valor criptografado seguro que pode ser descriptografado na instância.

    Dica:
    A partir da versão Vancouver, os administradores podem descontinuar a criptografia 3DES em campos password2 e dar preferência para o AES (Advanced Encryption Standard) mais atual. Para obter mais detalhes, consulte Descontinuar o uso do GlideEncrypter do 3DES para campos Password2.

    Ativação

    A funcionalidade do Password2 está ativa por padrão. Ela é controlada pela propriedade glide.kmf.encrypter.enabled, que é definida como true (verdadeira) para todas as novas instâncias e upgrades. Não é necessário habilitar o Criptografia de campo Enterprise para usar o Password2.

    Entendendo o funcionamento do Password2

    O Estrutura de gestão principal fornece um módulo criptográfico primário do sistema base cm_glide_encrypter. Esse módulo fornece uma especificação criptográfica e uma chave que pode descriptografar campos legados Password2.

    Figura 1. Módulo criptográfico do Password2
    Módulo criptográfico do Password2.

    Este módulo cm_glide_encrypter pode ter submódulos, cada um com seu próprio módulo de chave e especificação. Se um submódulo estiver presente com o mesmo escopo da aplicação do campo em que o Password2 está, o sistema usará o submódulo. Por exemplo, se uma tabela da aplicação ServiceNow® Atendimento ao cliente tiver um submódulo, e você gravar informações em um campo de Password2 em uma tabela no escopo da aplicação do Atendimento ao cliente, o processo criptográfico chamará o submódulo Atendimento ao cliente. O processo também usa a chave desse submódulo para criptografia e descriptografia com uma chave de criptografia AES 256 GCM exclusiva. É permitido um submódulo por escopo da aplicação. O módulo primário nem sempre é usado para o escopo global. Geralmente, os novos campos usam instance_level_glide_encrypter.

    Nota:
    Não é possível criar seus próprios submódulos na Yokohama. Os submódulos são fornecidos em vários plug-ins de aplicação na Now Platform. Você pode girar chaves em submódulos, mas não no módulo primário cm_glide_encrypter.

    Domain separation e clientes no local

    O KMF Password2 não é compatível com Domain Separation. Você pode usar o Password2 com instâncias locais.

    Password2 herdado e Password2 atual

    No Yokohama, o campo Password2 existente foi atualizado.

    A implementação atual do Password2:
    • Usa o Estrutura de gestão principal de acordo com as diretrizes de encapsulamento de chave NIST 800-57 e fornece proteção FIPS 140-2-L3 para toda a hierarquia de chaves.
    • Inclui recursos para criar submódulos KMF Password2 dedicados e exclusivos para aplicações específicas, fornecendo controle por meio do escopo da aplicação. Cada submódulo tem sua própria chave de criptografia AES 256 GCM exclusiva.

    Campos Password2 em scripts.

    Ao acessar campos Password2 com um script, execute o script no mesmo escopo do escopo da tabela. Use setDisplayValue () para criptografar valores Password2 e getDecryptedValue () para descriptografar e ler o valor.

    Nota:
    Não use a API GlideEncrypter () em campos Password2.
    Este script de exemplo mostra como criptografar my@Password na coluna password2 da tabela 'table_xyz'.
    
    var  gr =  new GlideRecord(‘table_xyz’);
    gr.setDisplayValue(‘pwd2column_name’, ‘my@Password’); 
    gr.insert();
    
    Importante:
    Você não pode usar a API setValue () para o campo Password2.

    Este script de exemplo mostra como descriptografar o mesmo campo para recuperar o valor:

    
    var  gr =  new GlideRecord(‘table_xyz’);
    gr.query();
    gr.next();
    var ge=gr.getElement('pwd2column_name');
    var ged1 = ge.getDecryptedValue(); 
    
    Importante:
    A API getDecryptedValue () não tem escopo. Ela está disponível globalmente.
    1. Quando você criptografa dados em um campo Password2, o sistema determina o escopo da aplicação em que o campo Password2 reside.
    2. O sistema vai procurar um submódulo do módulo primário cm_glide_encrypter com o mesmo escopo da aplicação se a propriedade estiver definida como true.
      Nota:
      Se um submódulo com o mesmo escopo estiver presente, ele usará a especificação e a chave do submódulo para executar a criptografia.

    Esta ilustração explica como sua instância descriptografa dados em campos Password2 :

    Figura 2. Fluxo de descriptografia do Password2
    Fluxo de descriptografia do Password2.

    Trabalho de migração do KMF Password2

    Um trabalho de migração é fornecido para clientes que atualizam de versões anteriores. Ele usa os dados criptografados com uma criptografia herdada do Password2 e os criptografa novamente com a chave em uma chave de submódulo KMF Password2. A recriptografia se aplica somente a tabelas com campos Password2 em escopos da aplicação que também têm submódulos criados para esse escopo. Por exemplo, um campo Password2 herdado na aplicação XYZ_example (com o escopo da aplicação XYZ_example ) somente será recriptografado se um submódulo para o escopo da aplicação XYZ_example existir no módulo primário cm_glide_encrypter.

    As chaves de criptografia KMF Password2 no submódulo são protegidas (criptografia de envelope) na hierarquia de chaves KMF.