Documentation de référence sur les transformations

Cet article présente les techniques d'anonymisation, ou transformations, disponibles dans Sensitive Data Protection.

Types de techniques d'anonymisation

Le choix de la transformation d'anonymisation à utiliser dépend du type de données que vous souhaitez anonymiser et de l'objectif de l'opération. Les techniques d'anonymisation disponibles dans Sensitive Data Protection relèvent des catégories générales suivantes :

  • Effacement : supprime tout ou partie d'une valeur sensible détectée.
  • Remplacement : remplace une valeur sensible détectée par une valeur de substitution spécifiée.
  • Masquage : remplace un certain nombre de caractères d'une valeur sensible par un caractère de substitution spécifié, tel qu'un dièse (#) ou un astérisque (*).
  • Tokenisation cryptographique : chiffre la valeur des données sensibles d'origine à l'aide d'une clé cryptographique. La protection des données sensibles est compatible avec plusieurs types de tokenisation, y compris les transformations réversibles permettant d'effectuer une désanonymisation.
  • Binning : "généralise" une valeur sensible en la remplaçant par une plage de valeurs. Par exemple, remplacer un âge spécifique par une tranche d'âge, ou des températures par des plages correspondant à "chaud", "moyen" et "froid".
  • Changement de date : remplace les valeurs de date sensibles par une durée aléatoire.
  • Extraction de données temporelles : extrait ou conserve des portions spécifiées de valeurs de date et d'heure.

Le reste de l'article présente les différents types de transformation d'anonymisation, accompagnés d'exemples d'utilisation.

Méthodes de transformation

Le tableau ci-dessous répertorie les transformations fournies par Sensitive Data Protection pour anonymiser les données sensibles :

Transformation Objet Description Inversion possible1 Intégrité référentielle2 Type d'entrée
Effacement RedactConfig Efface une valeur en la supprimant. Tout
Remplacement ReplaceValueConfig Remplace chaque valeur saisie par une valeur donnée. Tous
Remplacer par le dictionnaire ReplaceDictionaryConfig Remplace une valeur d'entrée par une valeur sélectionnée de manière aléatoire dans une liste de mots. Tous
Remplacement par un infoType ReplaceWithInfoTypeConfig Remplace une valeur saisie par le nom de son infoType. Tout
Masquage avec un caractère CharacterMaskConfig Masque intégralement ou partiellement une chaîne en remplaçant un nombre donné de caractères par un caractère fixe spécifié. Tout
Pseudonymisation en remplaçant la valeur saisie par un hachage de chiffrement CryptoHashConfig Remplace les valeurs saisies par une chaîne hexadécimale de 32 octets générée à l'aide d'une clé de chiffrement des données. Pour en savoir plus, consultez la documentation relative au concept de pseudonymisation. Chaînes ou entiers
Pseudonymisation en remplaçant la valeur saisie par un jeton de chiffrement préservant le format CryptoReplaceFfxFpeConfig Remplace une valeur saisie par un jeton (ou valeur de substitution) de la même longueur à l'aide du chiffrement préservant le format (FPE), en mode d'opération FFX. Le résultat peut ainsi être utilisé dans les systèmes faisant appel à la validation de format des longueurs de chaînes. Cette méthode est utile pour les anciens systèmes dans lesquels la longueur de chaîne doit être gérée. Important : Pour les entrées dont la longueur est variable ou supérieure à 32 octets, utilisez CryptoDeterministicConfig. Pour garantir la sécurité des données, les limites suivantes sont recommandées par le National Institute of Standards and Technology :
  • radix^max_size <= 2^128.
  • radix^min_len >= 100
Chaînes ou entiers avec un nombre limité de caractères et de longueur uniforme. L'alphabet doit comporter un minimum de deux et un maximum de 95 caractères.
Pseudonymisation en remplaçant la valeur saisie par un jeton cryptographique CryptoDeterministicConfig Remplace une valeur d'entrée par un jeton ou une valeur de substitution de même longueur à l'aide de la méthode AES en mode vecteur d'initialisation synthétique (AES-SIV). Cette méthode de transformation, contrairement à la tokenisation qui préserve le format, n'impose aucune limitation aux jeux de caractères de chaîne compatibles, génère des jetons identiques pour chaque instance d'une valeur d'entrée identique, et applique des valeurs de substitution pour activer la désanonymisation à partir de la clé de chiffrement d'origine. Tout
Fragmentation des valeurs en fonction de plages de taille fixe FixedSizeBucketingConfig Masque les valeurs saisies en les remplaçant par des "buckets" (plages auxquelles appartiennent les valeurs spécifiées). Tout
Fragmentation des valeurs en fonction de plages de taille personnalisée BucketingConfig Fragmente les valeurs saisies d'après des plages configurables par l'utilisateur et des valeurs de remplacement. Tout
Changement de date DateShiftConfig Décale les dates d'un nombre aléatoire de jours. Offre la possibilité de rester cohérent dans un même contexte.
Conserve la séquence et la durée.
Dates/Heures
Extraction des données temporelles TimePartConfig Extrait ou conserve une partie des valeurs Date, Timestamp et TimeOfDay. Dates/Heures

Notes de bas de page

1 Les transformations réversibles peuvent être inversées pour désanonymiser les données sensibles à l'aide de la méthode content.reidentify.
2 L'intégrité référentielle permet de maintenir les relations existant entre les enregistrements, tout en continuant à anonymiser les données. Par exemple, si l'on tient compte du même contexte et de la même clé cryptographique, les données sont remplacées par la même version obscurcie à chaque transformation, ce qui permet de conserver les connexions entre les enregistrements.

Occultation

Si vous souhaitez simplement supprimer des données sensibles de votre contenu d'entrée, la protection des données sensibles accepte la transformation de masquage (RedactConfig dans l'API DLP).

Par exemple, supposons que vous vouliez effectuer un simple effacement de tous les infoTypes EMAIL_ADDRESS et que la chaîne suivante soit envoyée à Sensitive Data Protection :

My name is Alicia Abernathy, and my email address is aabernathy@example.com.

La chaîne renvoyée sera la suivante :

My name is Alicia Abernathy, and my email address is .

L'exemple JSON et le code suivants dans plusieurs langages montrent comment former la requête API et ce que renvoie l'API DLP.

C#

Pour savoir comment installer et utiliser la bibliothèque cliente pour la protection des données sensibles, consultez la page Bibliothèques clientes de la protection des données sensibles.

Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


using System;
using System.Collections.Generic;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dlp.V2;

public class DeidentifyDataUsingRedactWithMatchedInputValues
{
    public static DeidentifyContentResponse Deidentify(
        string projectId,
        string text,
        IEnumerable<InfoType> infoTypes =