Neste tópico, abordamos as técnicas de desidentificação disponíveis, ou transformações, na Proteção de dados sensíveis.
Tipos de técnicas de desidentificação
Escolher a transformação de desidentificação que você quer usar depende do tipo de dado que será desidentificado e da finalidade de desidentificar os dados. As técnicas de desidentificação compatíveis com a Proteção de Dados Sensíveis se enquadram nas seguintes categorias gerais:
- Redação: exclui todo valor confidencial detectado ou parte dele.
- Substituição: substitui um valor confidencial detectado por um valor alternativo especificado.
- Mascaramento: substitui alguns caracteres de um valor confidencial por um caractere substituto especificado, como um hash (#) ou um asterisco (*).
- Tokenização baseada em criptografia: criptografa o valor original dos dados confidenciais usando uma chave criptográfica. A proteção de dados sensíveis aceita vários tipos de tokenização, incluindo transformações que podem ser revertidas ou "reidentificadas".
- Agrupamento por classes: "generaliza" um valor confidencial, substituindo-o por um intervalo de valores. Por exemplo, a substituição de uma idade específica por uma faixa etária ou de temperaturas por intervalos correspondentes a "Quente", "Médio" e "Frio".
- Mudança de datas: muda valores de data confidenciais por um tempo aleatório.
- Extração de tempo: extrai ou preserva partes especificadas de valores de data e hora.
No restante deste tópico, tratamos de cada tipo diferente de transformação de desidentificação e fornecemos exemplos de uso.
Métodos de transformação
A tabela a seguir lista as transformações que a Proteção de dados sensíveis oferece para desidentificar dados sensíveis:
Transformação | Objeto | Descrição | Passível de reversão1 | Integridade referencial2 | Tipo de entrada |
---|---|---|---|---|---|
Edição | RedactConfig |
Edita um valor removendo-o. | Todas | ||
Substituição | ReplaceValueConfig |
Substitui cada valor de entrada por um determinado valor. | Qualquer | ||
Substituir pelo dicionário | ReplaceDictionaryConfig
|
Substitui um valor de entrada por um valor escolhido aleatoriamente de uma lista de palavras. | Qualquer | ||
Substituição por infoType | ReplaceWithInfoTypeConfig |
Substitui um valor de entrada pelo nome de seu infoType. | Todas | ||
Máscara com caractere | CharacterMaskConfig |
Mascara uma string total ou parcialmente substituindo um determinado número de caracteres por um caractere fixo especificado. | Todas | ||
Pseudonimização pela substituição do valor de entrada por hash criptográfico | CryptoHashConfig |
Substitui valores de entrada por uma string hexadecimal de 32 bytes gerada usando uma determinada chave de criptografia de dados Consulte a documentação conceitual de pseudonimização para saber mais. | ✔ | Strings ou números inteiros | |
Pseudonimização pela substituição do formato criptográfico, preservando o token | CryptoReplaceFfxFpeConfig |
Substitui um valor de entrada por um "token" ou valor alternativo do mesmo tamanho usando criptografia com preservação de formato (FPE, na sigla em inglês) com o modo de operação FFX. Isso permite que a saída seja usada em sistemas que tenham validação de formato no comprimento. Isso é útil para sistemas legados em que o comprimento da string precisa ser mantido.
Importante: para a entrada que varia em comprimento ou tem um comprimento maior que 32 bytes, use CryptoDeterministicConfig .
Para manter a segurança, os seguintes limites são recomendados pelo National Institute of Standards and Technology:
|
✔ | ✔ | Strings ou números inteiros com um número limitado de caracteres e de tamanho uniforme. O alfabeto precisa ser composto de pelo menos dois caracteres e não pode conter mais de 95 caracteres. |
Pseudonimização pela substituição por token criptográfico | CryptoDeterministicConfig |
Substitui um valor de entrada por um token, ou um valor alternativo, do mesmo comprimento usando AES em modo Vetor de inicialização sintética (AES-SIV, na sigla em inglês). Esse método de transformação, diferentemente da tokenização de preservação do formato, não tem limitação em conjuntos de caracteres de string compatíveis, gera tokens idênticos para cada instância de um valor de entrada idêntico e usa alternativos para ativar a reidentificação, dada a chave de criptografia original. | ✔ | ✔ | Todas |
Valores de bucket baseados em buckets de tamanho fixo | FixedSizeBucketingConfig |
Mascara valores de entrada substituindo-os por buckets ou faixas em que o valor de entrada se enquadra. | Todas | ||
Valores de bucket baseados em faixas de tamanho personalizado | BucketingConfig |
Agrupa valores de entrada com base em buckets configuráveis pelo usuário e valores de substituição. | Todas | ||
Mudança de data | DateShiftConfig |
Altera as datas por um número aleatório de dias, com a opção de ser consistente para o mesmo contexto. | ✔ Preserva a sequência e a duração |
Datas/Horários | |
Extração de dados de hora | TimePartConfig |
Extrai ou preserva uma parte dos valores Date , Timestamp e TimeOfDay . |
Datas/Horários |
Notas de rodapé
content.reidentify
.
Encobrimento
Se você quiser simplesmente remover dados sensíveis do conteúdo de entrada,
a Proteção de dados sensíveis oferece suporte a uma transformação de edição
(RedactConfig
na
API DLP).
Por exemplo, suponha que você queira executar uma edição simples de todos os
infoTypes EMAIL_ADDRESS
e a string a seguir seja enviada para a
Proteção de dados confidenciais:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta será a string retornada:
My name is Alicia Abernathy, and my email address is .
O exemplo e o código JSON a seguir em várias linguagens mostram como formar a solicitação de API e o que a API DLP retorna.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Consulte o guia de início rápido do JSON para mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Substitua PROJECT_ID
pelo ID do projeto.
Entrada JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Saída JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Substituição
As transformações de substituição trocam cada valor de entrada por um valor de token fornecido ou pelo nome do infoType.
Substituição básica
A transformação de substituição básica (ReplaceValueConfig
na API DLP) substitui valores de dados confidenciais detectados por um valor que você especifica. Por exemplo, suponha que você tenha solicitado a Proteção de dados sensíveis a usar
"[fake@example.com]" para substituir todos os infoTypes EMAIL_ADDRESS
detectados e
a string a seguir seja enviada para a Proteção de dados sensíveis:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta é a string retornada:
My name is Alicia Abernathy, and my email address is [fake@example.com].
O exemplo e o código JSON a seguir em várias linguagens mostram como formar a solicitação de API e o que a API DLP retorna.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Consulte o guia de início rápido do JSON para mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Substitua PROJECT_ID
pelo ID do projeto.
Entrada JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Saída JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Substituição do dicionário
A substituição de dicionário
(ReplaceDictionaryConfig
)
substitui cada parte dos dados sensíveis detectados por um valor que
a Proteção de dados sensíveis seleciona aleatoriamente em uma lista de palavras fornecidas.
Esse método de transformação é útil se você quiser usar valores substitutos realistas.
Suponha que você queira que a Proteção de Dados Sensíveis detecte endereços de e-mail e substitua cada valor detectado por um dos três endereços de e-mail substitutos.
Você envia a seguinte string de entrada para a Proteção de dados sensíveis com a lista de endereços de e-mail substitutos:
String de entrada
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Lista de palavras
- izumi@example.com
- alex@example.com
- tal@example.com
A string retornada pode ser uma das seguintes:
My name is Alicia Abernathy, and my email address is izumi@example.com.
My name is Alicia Abernathy, and my email address is alex@example.com.
My name is Alicia Abernathy, and my email address is tal@example.com.
O exemplo de JSON a seguir mostra como formar a solicitação de API e o que a API DLP retorna.
Consulte o Início rápido do JSON para ver mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Substitua PROJECT_ID
pelo ID do projeto.
Entrada JSON
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"primitiveTransformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
}
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
]
}
}
Saída JSON
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is izumi@example.com."
},
"overview": {
"transformedBytes": "22",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "22"
}
]
}
}
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Substituição de InfoType
Também é possível especificar uma substituição de infoType (ReplaceWithInfoTypeConfig
na API DLP). Essa transformação faz o mesmo que a transformação de substituição básica, mas troca todos os valores de dados confidenciais detectados pelo infoType do valor detectado.
Por exemplo, imagine que você tenha solicitado que a Proteção de dados sensíveis detecte endereços de e-mail e sobrenomes e substitua todos os valores detectados pelo infoType do valor. Você envia a string a seguir para a Proteção de dados sensíveis:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Esta é a string retornada:
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
Mascaramento
É possível configurar a Proteção de Dados Sensíveis para mascarar total ou parcialmente um
valor confidencial detectado
(CharacterMaskConfig
na API DLP) substituindo cada caractere por um caractere de mascaramento único fixo,
como um asterisco (*) ou hash. (#). O mascaramento pode começar do
início ou do fim da string. Essa transformação também funciona com tipos de números, como inteiros longos.
A transformação de mascaramento da Proteção de Dados Sensíveis tem as seguintes opções:
- Caractere de mascaramento (o argumento
maskingCharacter
na API DLP): o caractere a ser usado para mascarar cada caractere de um valor confidencial. Por exemplo, especifique um asterisco (*) ou um cifrão ($) para mascarar uma sequência numérica, como um número de cartão de crédito. - O número de caracteres a serem mascarados (
numberToMask
): se você não especificar esse valor, todos os caracteres serão mascarados. - Se a ordem será invertida (
reverseOrder
): se os caracteres serão mascarados na ordem inversa. A inversão da ordem faz os caracteres em valores correspondentes serem mascarados do fim para o início do valor. - Caracteres a serem ignorados (
charactersToIgnore
): um ou mais caracteres a serem ignorados ao mascarar valores. Por exemplo, é possível informar à Proteção de dados sensíveis para deixar hifens ao mascarar um número de telefone. Também é possível especificar um grupo de caracteres comuns (CharsToIgnore
) a serem ignorados ao mascarar.
Imagine que você envie a string a seguir para a Proteção de dados sensíveis e a instrua a usar a transformação de mascaramento do caractere em endereços de e-mail:
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
Com o caractere de mascaramento enviado para "#", os caracteres a serem ignorados são definidos como o conjunto de caracteres comum. Em caso de outras configurações padrão, a Proteção de dados confidenciais retorna o seguinte:
My name is Alicia Abernathy, and my email address is ##########@#######.###.
Os exemplos de código e JSON a seguir demonstram como funciona a transformação de mascaramento.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Consulte o guia de início rápido do JSON para mais informações sobre o uso da API DLP com o JSON.
Método HTTP e URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
Substitua PROJECT_ID
pelo ID do projeto.
Entrada JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
Saída JSON
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
Transformações de tokenização baseadas em criptografia
As transformações de tokenização baseadas em criptografia (também chamadas de "pseudonimização") são métodos de desidentificação que substituem os valores originais de dados confidenciais por valores criptografados. A proteção de dados sensíveis oferece suporte aos seguintes tipos de tokenização, incluindo transformações que podem ser revertidas e permitem a reidentificação:
- Hash criptográfico: dado um
CryptoKey
, a Proteção de dados sensíveis usa um código de autenticação de mensagens baseado em SHA-256 (HMAC-SHA-256) no valor de entrada e, em seguida, substitui o valor de entrada pelo valor com hash codificado em base64. Ao contrário de outros tipos de transformações baseadas em criptografia, esse tipo de transformação não é reversível. - Criptografia com preservação de formato: substitui um valor de entrada por um token que tenha sido gerado com a criptografia com preservação de formato (FPE, na sigla em inglês) com o modo FFX de operação. Esse método de transformação produz um token limitado ao mesmo alfabeto do valor de entrada e que tem o mesmo comprimento do valor de entrada. A FPE também é compatível com reidentificação, dada a chave de criptografia original.
- Criptografia determinística: substitui um valor de entrada por um token gerado com AES em modo vetor de inicialização sintética (AES-SIV, na sigla em inglês). Esse método de transformação não tem limitação em conjuntos de caracteres de strings compatíveis, gera tokens idênticos para cada instância de um valor de entrada idêntico e usa alternativos para permitir a reidentificação, dada a chave de criptografia original.
Hash criptográfico
A transformação de hash criptográfico
(CryptoHashConfig
na API DLP) usa um valor de entrada (um dado confidencial detectado pela
Proteção de Dados Sensíveis) e o substitui por um valor com hash. O valor de hash é gerado usando um código de autenticação de mensagens baseado em SHA-256 (HMAC-SHA-256) no valor de entrada com um CryptoKey
.
A Proteção de dados sensíveis gera uma representação codificada em base64 do valor de entrada com hash no lugar do valor original.
Antes de usar a transformação de hash criptográfico, tenha em mente os itens a seguir:
- O valor de entrada não é criptografado, mas com hash.
- Não é possível desfazer essa transformação. Ou seja, dado o valor de saída com hash da transformação e a chave criptográfica original, não há como restaurar o valor original.
- Atualmente, é possível gerar hash apenas de valores de string e inteiros.
- A saída com hash da transformação tem sempre o mesmo tamanho, dependendo do tamanho da chave criptográfica. Por exemplo, se você usar a transformação de hash criptográfico em números de telefone de dez dígitos, cada número telefônico será substituído por um valor de hash codificado em Base64 de comprimento fixo.
Criptografia com preservação de formato
O método de transformação de criptografia com preservação de formato (FPE, na sigla em inglês)
(CryptoReplaceFfxFpeConfig
na API DLP) usa um valor de entrada (um dado confidencial
detectado pela Proteção de dados sensíveis), criptografa-o usando criptografia com preservação de formato
no modo FFX e um
CryptoKey
,
e, em seguida, substitui o valor original pelo valor criptografado, ou token.
O valor de entrada precisa:
- ter pelo menos dois caracteres (ou a string vazia);
- ser codificado como ASCII;
- ser composto dos caracteres especificados por um "alfabeto", que é o conjunto de entre 2 e 95 caracteres permitidos no valor de entrada. Para mais informações, consulte o campo do alfabeto em
CryptoReplaceFfxFpeConfig
.
O token gerado:
- é o valor de entrada criptografado;
- preserva o conjunto de caracteres ("alfabeto") e o comprimento do valor de entrada pós-criptografia;
- é calculado usando a criptografia com preservação de formato no modo FFX com chave na chave criptográfica especificada;
- não é necessariamente único, porque cada instância do mesmo valor de entrada se desidentifica com o mesmo token. Isso ativa a integridade referencial e, portanto, permite uma pesquisa mais eficiente de dados desidentificados. É possível alterar esse comportamento usando "ajustes" de contexto, conforme descrito em Contextos.
Se houver várias instâncias de um valor de entrada no conteúdo de origem, todas elas serão desidentificadas para o mesmo token. A FPE preserva o comprimento e o espaço alfabético (o conjunto de caracteres), limitado a 95 caracteres. É possível alterar esse comportamento com "ajustes" contextuais, o que pode aumentar a segurança. A adição de um ajuste de contexto à transformação permite que a Proteção de dados sensíveis desidentifique várias instâncias do mesmo valor de entrada para tokens diferentes. Se você não precisar preservar o comprimento e o espaço alfabético dos valores originais, use criptografia determinística, descrita abaixo.
A Proteção de dados sensíveis calcula o token de substituição usando uma chave criptográfica. Há três maneiras de fornecer essa chave:
- Incorpore-a sem criptografia na solicitação de API. No entanto, não recomendamos esse procedimento.
- Solicitando que a Proteção de Dados Sensíveis a gere.
- incorporando-a criptografada na solicitação da API.
Se você optar por incorporar a chave na solicitação da API, será necessário criar uma chave e incorporá-la (criptografar) usando uma chave do Cloud Key Management Service (Cloud KMS). Para mais informações, consulte Criar uma chave encapsulada. Por padrão, o valor retornado é uma string codificada em base64. Para definir esse valor na Proteção de dados sensíveis, decodifique-o em uma string de bytes. Os snippets de código a seguir destacam como isso é feito em várias linguagens. Veja exemplos completos após esses snippets.
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
Para mais informações sobre criptografia e descriptografia de dados usando o Cloud KMS, consulte Como criptografar e descriptografar dados.
Exemplos de criptografia com preservação de formato: desidentificação
Este exemplo usa o método de transformação
CryptoReplaceFfxFpeConfig
para desidentificar dados sensíveis. Para mais informações, consulte
Criptografia com preservação de formato nesta página.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: desidentificação com tipo alternativo
Este exemplo usa o método de transformação
CryptoReplaceFfxFpeConfig
para desidentificar dados sensíveis. Para mais informações, consulte
Criptografia com preservação de formato nesta página.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: desidentificação de dados sensíveis em tabelas
Este exemplo usa o método de transformação
CryptoReplaceFfxFpeConfig
para desidentificar dados sensíveis em tabelas. Para mais
informações, consulte Criptografia com preservação de formato nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: reidentificação
A amostra de código a seguir demonstra em várias linguagens como usar a
Proteção de dados sensíveis para reidentificar dados sensíveis que foram desidentificados
pelo método de transformação
CryptoReplaceFfxFpeConfig
. Para mais informações, consulte Criptografia com preservação
de formato nesta página.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: reidentificação de texto
A amostra de código a seguir demonstra em várias linguagens como usar a
Proteção de dados sensíveis para reidentificar texto sensível que foi desidentificado
pelo método de transformação
CryptoReplaceFfxFpeConfig
. Para mais informações, consulte Criptografia com preservação
de formato nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: reidentificação com tipo substituto
A amostra de código a seguir demonstra em várias linguagens como usar a Proteção de dados sensíveis para reidentificar dados sensíveis que foram desidentificados pelo método de transformação CryptoReplaceFfxFpeConfig
. Para mais informações, consulte Criptografia com preservação
de formato nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia com preservação de formato: reidentificação de dados sensíveis em tabelas
A amostra de código a seguir demonstra em várias linguagens como usar a
Proteção de dados sensíveis para reidentificar dados sensíveis em tabelas que foram
desidentificadas pelo método de transformação
CryptoReplaceFfxFpeConfig
. Para mais informações, consulte Criptografia com preservação
de formato nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criptografia determinística
O método de transformação de criptografia determinística
CryptoDeterministicConfig
na API DLP usa um valor de entrada (um dado confidencial detectado pela
Proteção de dados sensíveis), criptografa-o usando
AES-SIV
com um
CryptoKey
e, em seguida, substitui o valor original por uma representação codificada em Base64 do
valor criptografado.
O uso da transformação de criptografia determinística permite uma pesquisa mais eficiente de dados criptografados.
O valor de entrada precisa:
- ter pelo menos um caractere;
- não ter limitações do conjunto de caracteres.
O token gerado:
- é uma representação codificada em Base64 do valor criptografado;
- não preserva o conjunto de caracteres ("alfabeto") ou o comprimento de pós-criptografia do valor de entrada;
- é calculado usando a criptografia AES no modo SIV (AES-SIV) com um
CryptoKey
; - não é necessariamente único, porque cada instância do mesmo valor de entrada se desidentifica com o mesmo token. Isso permite uma pesquisa mais eficiente de dados criptografados. É possível alterar esse comportamento usando "ajustes" de contexto, conforme descrito em Contextos;
- É gerado com um prefixo adicionado, no formato
[SURROGATE_TYPE]([LENGTH]):
, em que[SURROGATE_TYPE]
representa um infoType alternativo que descreve o valor de entrada e[LENGTH]
indica o tamanho do caractere. O alternativo permite que o token seja reidentificado usando a chave de criptografia original utilizada na desidentificação.
Este é um exemplo de configuração JSON para desidentificação usando criptografia determinística. Optamos por usar "PHONE_SURROGATE" como nosso tipo alternativo descritivo, porque estamos desidentificando números telefônicos.
[CRYPTO_KEY]
representa uma chave criptográfica desencapsulada conseguida do Cloud KMS.
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
A desidentificação da string "My phone number is 206-555-0574" com essa transformação resulta em uma string desidentificada como esta:
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
Para reidentificar essa string, use uma solicitação JSON como a que está abaixo, em que [CRYPTO_KEY] é a mesma chave criptográfica usada para desidentificar o conteúdo.
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
A reidentificação dessa string resulta na string original:
My phone number is 206-555-0574, call me
Se você quiser usar um CryptoKey
encapsulado (criptografado) para ter uma
segurança melhor, consulte Guia de início rápido: como desidentificar e reidentificar
o texto confidencial para ver um exemplo. Quando estiver
pronto para usar uma biblioteca de cliente para desidentificar conteúdo, lembre-se de decodificar a
chave encapsulada (que é uma string codificada em base64 por padrão), como demonstrado em
Criptografia com preservação de formato
nesta página.
Exemplos de criptografia determinística: desidentificação
Este exemplo usa o método de transformação
CryptoDeterministicConfig
para desidentificar dados sensíveis. Para mais informações, consulte
Criptografia determinista nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Exemplos de criptografia determinística: reidentificação
Este exemplo demonstra como reidentificar dados sensíveis que foram
desidentificados pelo método de transformação
CryptoDeterministicConfig
. Para mais informações, consulte Criptografia determinística
nesta página.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Agrupamento por classes
As transformações de agrupamento por classes servem para desidentificar dados numéricos, "agrupando-os por classes" em intervalos. O intervalo de números resultante é uma string hifenizada que consiste em um limite inferior, um hífen e um limite superior.
Agrupamento por classes de tamanho fixo
A Proteção de dados sensíveis pode agrupar por classes os valores de entrada numéricos com base em intervalos de tamanho fixo (FixedSizeBucketingConfig
na API DLP). Especifique os itens a seguir para configurar o agrupamento por classes de tamanho fixo:
- O valor limite mínimo de todos os buckets. Todos os valores menores que o limite mínimo são agrupados em um único bucket.
- O valor limite máximo de todos os buckets. Todos os valores maiores que o limite máximo são agrupados em um único bucket.
- O tamanho de cada bucket diferente dos buckets mínimo e máximo.
Por exemplo, se o limite mínimo estiver definido como 10, o limite máximo será definido como 89. Se o tamanho do bucket fosse definido como 10, os buckets a seguir seriam usados: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.
Para mais informações sobre o conceito de agrupamento por classes, consulte Generalização e agrupamento por classes.
Agrupamento por classes personalizável
O agrupamento por classes personalizável (BucketingConfig
na API DLP) oferece mais flexibilidade do que o agrupamento por classes de tamanho fixo.
Em vez de especificar limites superiores e inferiores e um valor de bucket com o qual os buckets iguais serão criados, especifique os valores máximo e mínimo para cada bucket que quiser criar. Cada par de valor máximo e mínimo precisa ser do mesmo tipo.
Você configura o agrupamento por classes personalizável especificando buckets individuais. Cada bucket tem as propriedades a seguir:
- O limite mínimo do intervalo. Omita esse valor para criar um bucket sem limite inferior.
- O limite máximo do intervalo. Omita esse valor para criar um bucket sem limite superior.
- O valor de substituição desse bucket. Esse é o valor com que substituir todos os valores detectados que se enquadrem nos limites mínimo e máximo. Se você não fornecer um valor de substituição, será gerado um intervalo mín-máx hifenizado.
Por exemplo, considere a configuração JSON a seguir para essa transformação do agrupamento por classes:
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
Isso define o comportamento a seguir:
- Valores inteiros entre 1 e 30 são mascarados ao serem substituídos por
LOW
. - Valores inteiros entre 31 e 65 são mascarados ao serem substituídos por
MEDIUM
. - Valores inteiros entre 66 e 100 são mascarados ao serem substituídos por
HIGH
.
Para mais informações sobre esse conceito, consulte Generalização e agrupamento por classes.
Mudança de data
Quando você usa a transformação de mudança de data
(DateShiftConfig
na API DLP) em um valor de entrada de data, a Proteção de dados sensíveis muda as
datas por um número aleatório de dias.
As técnicas de mudança de data alteram aleatoriamente um conjunto de datas, mas preservam a sequência e a duração de um período. Geralmente, a mudança de datas é feita no contexto para um indivíduo ou uma entidade. Ou seja, você quer mudar todas as datas de um indivíduo específico usando o mesmo diferencial de mudança, mas utilizar um diferencial de mudança separado para cada indivíduo.
Consulte Mudança de datas para mais informações.
A amostra de código a seguir demonstra em várias linguagens como usar a API Cloud DLP para desidentificar datas usando mudança de data.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Extração de data/hora
Executar o objeto de extração de tempo (TimePartConfig
na API DLP) preserva uma parte de um valor correspondente que, em uma data, hora ou carimbo de data/hora, preserva uma parte de um valor correspondente. Você
especifica para a Proteção de dados sensíveis que tipo de valor de tempo quer extrair, incluindo ano, mês, dia do mês e assim por diante (enumerado no
objeto
TimePart
).
Por exemplo, suponha que você tenha configurado uma transformação timePartConfig
definindo a parte do tempo que será extraída para YEAR
. Depois de enviar os dados na primeira coluna abaixo para a Proteção de Dados Sensíveis, você terá os valores transformados na segunda coluna:
Valores originais | Valores transformados |
---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |
C#
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente para a Proteção de dados sensíveis, consulte Bibliotecas de cliente para a Proteção de dados sensíveis.
Para autenticar na Proteção de dados sensíveis, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.