API Java
HSM Dinamo
Carregando...
Procurando...
Nenhuma entrada encontrado
SVault

Descrição detalhada

Operações de tokenização e anonimização de dados.

SVault

As APIs do módulo SVault disponibilizam funcionalidades de tokenização para anonimização e pseudonimização de base de dados que contém informações de identificação pessoal (Personally Identifiable Information – PII). O processo de tokenização é baseado na geração de números randômicos por um DRBG FIPS SP800-90A (homologação NIST CAVP).

Arquitetura

O módulo SVault Dinamo faz a tokenização de uma informação de identificação pessoal (também chamada de secret) gerando um token randômico e um token blob (secret e metadados encriptados).

O token blob pode ser armazenado e utilizado para posterior recuperação do secret, para operações de pseudonimização. Para operações de anonimização o token blob deve ser descartado, não permitindo a recuperação posterior do secret.

O token gerado substitui o secret na base de dados original e pode ter o token blob associado, nos casos de pseudonimização. O token pode ter seu formato (decimal, base62 etc.) e habilitação de geração de dígitos verificadores (no caso de CPF, CNPJ, PAN etc.) especificados no momento da geração.

A proteção dos dados sigilosos é feita utilizando uma chave simétrica protegida dentro do HSM.

A recuperação do secret utilizando o token blob permite que ele seja recuperado em texto claro ou mascarado. O mascaramento é feito internamente ao HSM, evitando que o secret seja manipulado em texto claro pela aplicação.

--- title: Fluxo de codificação de segredos --- sequenceDiagram autonumber participant base as Base de dados participant app as Aplicação participant hsm as HSM Note over hsm: chave app ->> hsm: segredo hsm ->> hsm: codifica hsm ->> app: token (dado pseudomizado)
token blob (segredo encriptado) app ->> base: token
token blob Note over base: token
token blob

--- title: Fluxo de decodificação de tokens blobs --- sequenceDiagram autonumber participant base as Base de dados participant app as Aplicação participant hsm as HSM Note over base: token (dado pseudomizado)
token blob (segredo encriptado) Note over hsm: chave app ->> base: busca token blob base ->> app: token blob app ->> hsm: token blob hsm ->> hsm: decodifica hsm ->> app: segredo

Atenção
Os tokens são gerados de forma randômica e, naturalmente, há a possibilidade de geração de tokens conflitantes. Desta forma, a aplicação deverá fazer o tratamento das colisões, solicitando novamente a geração do token para garantir o armazenamento de tokens únicos.

Funções

SVaultGenTokenResponse GenSVaultToken (int op, SVaultGenTokenInfo tokenInfo, int reserved) throws TacException
 Faz a tokenização de um dado, gerando um token blob e seu respectivo token.
 
SVaultGenTokenResponse GenSVaultToken (SVaultGenTokenInfo tokenInfo) throws TacException
 Faz a tokenização de um dado, gerando um token blob e seu respectivo token.
 
SVaultGenTokenResponse GenSVaultDigitToken (byte CKS, byte maskFlags, String MK, String secret) throws TacException
 Faz a tokenização de dígitos, gerando um token blob e seu respectivo token.
 
SVaultGenTokenResponse GenSVaultStringToken (byte maskFlags, String MK, String secret) throws TacException
 Faz a tokenização de uma string UTF-8, gerando um token blob e seu respectivo token.
 
String GetSVaultTokenBlobData (int op, String MK, String mask, byte[] tokenBlob) throws TacException
 Recupera o secret ou token um dado tokenizado utilizando um token blob.
 
String GetSVaultSecret (String MK, String mask, byte[] tokenBlob) throws TacException
 Recupera o secret um dado tokenizado utilizando um token blob.
 
String GetSVaultToken (String MK, String mask, byte[] tokenBlob) throws TacException
 Recupera o token um dado tokenizado utilizando um token blob.
 

Funções

◆ GenSVaultToken() [1/2]

SVaultGenTokenResponse GenSVaultToken ( int op,
SVaultGenTokenInfo tokenInfo,
int reserved ) throws TacException

Faz a tokenização de um dado, gerando um token blob e seu respectivo token.

Parâmetros
opTipo da operação. Deverá ser 0.
tokenInfoDetalhes da operação de tokenização
reservedReservado para uso futuro (deve ser 0).
Retorna
Exceções
TacException

◆ GenSVaultToken() [2/2]

SVaultGenTokenResponse GenSVaultToken ( SVaultGenTokenInfo tokenInfo) throws TacException

Faz a tokenização de um dado, gerando um token blob e seu respectivo token.

Parâmetros
tokenInfoDetalhes da operação de tokenização
Retorna
Exceções
TacException

◆ GenSVaultDigitToken()

SVaultGenTokenResponse GenSVaultDigitToken ( byte CKS,
byte maskFlags,
String MK,
String secret ) throws TacException

Faz a tokenização de dígitos, gerando um token blob e seu respectivo token.

Parâmetros
CKSDefine o tipo de checksum para a geração de tokens. Pode ser uma das opções da tabela abaixo
Valor Operação
TacNDJavaLib.D_SVAULT_CKS_NULL Não faz geração de checksum. Apenas gera o token.
TacNDJavaLib.D_SVAULT_CKS_CPF Gera os 2 dígitos verificadores no padrão CPF (Cadastro de Pessoas Físicas) no token. O secret deverá conter apenas números e incluir os dígitos verificadores.
TacNDJavaLib.D_SVAULT_CKS_CNPJ Gera os 2 dígitos verificadores no padrão CNPJ (Cadastro Nacional da Pessoa Jurídica) no token. O secret deverá conter apenas números e incluir os dígitos verificadores.
TacNDJavaLib.D_SVAULT_CKS_PAN Gera um PAN (Primary Account Number) com o dígito verificador válido no token. O secret deverá ser completo e conter apenas números.
TacNDJavaLib.D_SVAULT_CKS_IEL Gera os 2 dígitos verificadores no padrão do número do título de eleitor no token. O secret deverá conter apenas números e incluir os dígitos verificadores.
maskFlagsOpções de geração. Pode ser uma das opções da tabela abaixo
Valor Operação
0 Não utiliza máscaras para geração do token ou recuperação do secret.
TacNDJavaLib.D_SVAULT_F_MASK_TOKEN Utiliza máscaras para geração do token. A máscara poderá ser passada ao recuperar o token ou secret.
TacNDJavaLib.D_SVAULT_F_MASK_SECRET Utiliza máscaras para geração do secret. A máscara poderá ser passada ao recuperar o token ou secret.
MKNome da chave utilizada para a proteção do dados
secretO secret que deverá ser uma string apenas com números. Deverá ter tamanho mínimo de TacNDJavaLib.D_SVAULT_MIN_TL e máximo de TacNDJavaLib.D_SVAULT_MAX_TL
Retorna
Exceções
TacException

◆ GenSVaultStringToken()

SVaultGenTokenResponse GenSVaultStringToken ( byte maskFlags,
String MK,
String secret ) throws TacException

Faz a tokenização de uma string UTF-8, gerando um token blob e seu respectivo token.

Parâmetros
maskFlagsOpções de geração. Pode ser uma das opções da tabela abaixo
Valor Operação
0 Não utiliza máscaras para geração do token ou recuperação do secret.
TacNDJavaLib.D_SVAULT_F_MASK_TOKEN Utiliza máscaras para geração do token. A máscara poderá ser passada ao recuperar o token ou secret.
TacNDJavaLib.D_SVAULT_F_MASK_SECRET Utiliza máscaras para geração do secret. A máscara poderá ser passada ao recuperar o token ou secret.
MKNome da chave utilizada para a proteção do dados
secretO secret que deverá ser uma string UTF-8. Deverá ter tamanho mínimo de TacNDJavaLib.D_SVAULT_MIN_TL e máximo de TacNDJavaLib.D_SVAULT_MAX_TL.
Retorna
Exceções
TacException

◆ GetSVaultTokenBlobData()

String GetSVaultTokenBlobData ( int op,
String MK,
String mask,
byte[] tokenBlob ) throws TacException

Recupera o secret ou token um dado tokenizado utilizando um token blob.

Esta API também permite a recuperação do secret ou token mascarados.

Parâmetros
opTipo da operação. Poderá ser uma das opções abaixo.
Valor Significado
TacNDJavaLib.D_SVAULT_GET_OP_SECRET Recupera o secret.
TacNDJavaLib.D_SVAULT_GET_OP_TOKEN Recupera o token.
MKNome da chave utilizada para a proteção do dados.
maskPadrão de máscara que será aplicado ao secret ou token, de acordo com o definido na geração do token blob em GenSVaultToken(). Buffer com tamanho mínimo de TacNDJavaLib.D_SVAULT_MIN_TL e máximo de TacNDJavaLib.D_SVAULT_MIN_TL contendo a máscara. Pode ser string vazia "" para não utilizar mascaramento. A máscara é uma string UTF-8 que contém os caracteres que serão aplicados sobre os dados fazendo o mascaramento do mesmo. Passe '\0' nas posições onde queira que o dado seja apresentado. Veja as observações para exemplos.
tokenBlobBuffer de tamanho TacNDJavaLib.D_SVAULT_TOKEN_BLOB_LEN, gerado pela API GenSVaultToken(), contendo o token blob.
Retorna
Retorno de acordo com o definido em op
Exceções
TacException
Anotações
Exemplos com um secret de valor "123456789".
  1. Com a máscara "***" teremos o seguinte resultado: "***456789".
  2. Com a máscara "9999" teremos o seguinte resultado: "999956789".
  3. Com a máscara "***\0\0\0***" teremos o seguinte resultado: "***456***".

◆ GetSVaultSecret()

String GetSVaultSecret ( String MK,
String mask,
byte[] tokenBlob ) throws TacException

Recupera o secret um dado tokenizado utilizando um token blob.

Esta API também permite a recuperação do secret mascarado.

Parâmetros
MKNome da chave utilizada para a proteção do dados.
maskPadrão de máscara que será aplicado ao secret ou token, de acordo com o definido na geração do token blob em GenSVaultToken(). Buffer com tamanho mínimo de TacNDJavaLib.D_SVAULT_MIN_TL e máximo de TacNDJavaLib.D_SVAULT_MIN_TL contendo a máscara. Pode ser string vazia "" para não utilizar mascaramento. A máscara é uma string UTF-8 que contém os caracteres que serão aplicados sobre os dados fazendo o mascaramento do mesmo. Passe '\0' nas posições onde queira que o dado seja apresentado. Veja as observações de GetSVaultTokenBlobData() para exemplos.
tokenBlobBuffer de tamanho TacNDJavaLib.D_SVAULT_TOKEN_BLOB_LEN, gerado pela API GenSVaultToken(), contendo o token blob.
Retorna
secret
Exceções
TacException

◆ GetSVaultToken()

String GetSVaultToken ( String MK,
String mask,
byte[] tokenBlob ) throws TacException

Recupera o token um dado tokenizado utilizando um token blob.

Esta API também permite a recuperação do token mascarado.

Parâmetros
MKNome da chave utilizada para a proteção do dados.
maskPadrão de máscara que será aplicado ao secret ou token, de acordo com o definido na geração do token blob em GenSVaultToken(). Buffer com tamanho mínimo de TacNDJavaLib.D_SVAULT_MIN_TL e máximo de TacNDJavaLib.D_SVAULT_MIN_TL contendo a máscara. Pode ser string vazia "" para não utilizar mascaramento. A máscara é uma string UTF-8 que contém os caracteres que serão aplicados sobre os dados fazendo o mascaramento do mesmo. Passe '\0' nas posições onde queira que o dado seja apresentado. Veja as observações de GetSVaultTokenBlobData() para exemplos.
tokenBlobBuffer de tamanho TacNDJavaLib.D_SVAULT_TOKEN_BLOB_LEN, gerado pela API GenSVaultToken(), contendo o token blob.
Retorna
token
Exceções
TacException