Informations d'identification personnelle

Le langage détecte, classe et fournit des options pour dépersonnaliser les informations d'identification personnelle (PII) dans du texte non structuré.

Cas d'utilisation

Détection et conservation des informations privées dans les commentaires des utilisateurs

De nombreuses organisations collectent les commentaires des utilisateurs via divers canaux tels que les avis sur les produits, les demandes de retour, les tickets de support et les forums de commentaires. Vous pouvez utiliser le service de détection des informations d'identification personnelle du langage pour la détection automatique des entités d'informations d'identification personnelle pour non seulement avertir de manière proactive, mais aussi anonymiser avant de stocker les commentaires publiés. En utilisant la détection automatique des entités d'informations d'identification personnelle, vous pouvez avertir de manière proactive les utilisateurs du partage de données privées et les applications pour mettre en œuvre des mesures telles que le stockage de données masquées.

Balayage du stockage d'objets pour détecter la présence de données sensibles

Les solutions de stockage en nuage telles qu'OCI Object Storage sont largement utilisées par les employés pour stocker des documents d'affaires dans des emplacements contrôlés localement ou partagés par de nombreuses équipes. S'assurer que ces emplacements partagés ne stockent pas d'informations privées telles que les noms des employés, les données démographiques et les informations sur la paie nécessite un balayage automatique de tous les documents pour détecter la présence d'informations d'identification personnelle. Le modèle d'informations d'identification personnelle du service de langue pour OCI fournit une API par lots pour traiter de nombreux documents texte à grande échelle pour le traitement des données à grande échelle.

Entités prises en charge

Le tableau suivant décrit les différentes entités que les informations d'identification personnelle peuvent extraire.

Type d'entité Description
PERSON Nom de personne
ADDRESS Addresse
AGE Ancienneté
DATE_TIME Date ou heure
SSN_OR_TAXPAYER Numéro de sécurité sociale ou ID contribuable (États-Unis)
EMAIL Courriel
PASSPORT_NUMBER_US Numéro de passeport (États-Unis)
TELEPHONE_NUMBER Téléphone ou télécopieur (États-Unis)
DRIVER_ID_US Numéro d'identification du conducteur (É.-U.)
BANK_ACCOUNT_NUMBER Numéro du compte bancaire (É.-U.)
BANK_SWIFT Compte bancaire (SWIFT)
BANK_ROUTING Numéro d'acheminement de la banque
CREDIT_DEBIT_NUMBER Numéro de carte de crédit ou de débit
IP_ADDRESS Adresse IP, IPV4 et IPV6
MAC_ADDRESS Adresse MAC

Voici les types de clé secrète :

COOKIE Cookies de site Web
XSRF TOKEN Jeton de faux de demande inter-sites (XSRF)
AUTH_BASIC Authentification de base
AUTH_BEARER Authentification du porteur
JSON_WEB_TOKEN Jeton Web JSON
PRIVATE_KEY Clé privée cryptographique
PUBLIC_KEY Clé publique cryptographique

Voici les données d'identification du compte OCI qui sont les informations d'authentification requises pour accéder aux ressources et les gérer dans OCI. Ces données d'identification ont pour but de garantir une authentification sécurisée des utilisateurs, des applications et des services pour interagir avec les services et les ressources OCI.

OCI_OCID_USER Utilisateur OCI
OCI_OCID_TENANCY OCID (identificateur Oracle Cloud) de la location
OCI_SMTP_USERNAME Nom d'utilisateur SMTP (Simple Mail Transfer Protocol)
OCI_OCID_REFERENCE Référence OCID
OCI_FINGERPRINT Empreinte numérique OCI
OCI_CREDENTIAL Ce type couvre le jeton d'authentification OCI, les données d'identification OAuth et les données d'identification SMTP
OCI_PRE_AUTH_REQUEST Demande préauthentification OCI
OCI_STORAGE_SIGNED_URL URL dédiée au stockage OCI
OCI_CUSTOMER_SECRET_KEY Clé secrète de client OCI
OCI_ACCESS_KEY Clés d'accès OCI ou données d'identification de sécurité

Exemples

Texte entré Texte de sortie masqué avec "*"

Hello Support Team,

I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-0100 also I emailed from my email id my.name1234@myemail.com. Would you please let me know the refund status?

Regards,

Sarah

Hello Support Team, I am reaching out to seek help with my credit card number ******************* expiring on ***** . There was a suspicious transaction on *********** which I reported by calling from my mobile number ** ************** also I emailed from my email id *************************** . Would you please let me know the refund status? Regards, *****

Le JSON de l'exemple est :

Exemple de demande
POST https://<region-url>/20210101/actions/batchDetectLanguagePiiEntities
Format de demande d'API :
{
  "documents": [
    {
      "languageCode": "en",
      "key": "1",
      "text": "Hello Support Team, I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-01900 also I emailed from my email id my.name1234@myemail.com. Would you please let me know the refund status? Regards, Sarah"
    }
  ],
  "compartmentId": "ocid1.tenancy.oc1..aaaaaaaadany3y6wdh3u3jcodcmm42ehsdno525pzyavtjbpy72eyxcu5f7q",
  "masking": {
    "ALL": {
      "mode": "MASK",
      "isUnmaskedFromEnd": true,
      "leaveCharactersUnmasked": 4
    }
  }
}
Réponse JSON :
{
    "documents": [
        {
            "key": "1",
            "entities": [
                {
                    "offset": 79,
                    "length": 19,
                    "type": "CREDIT_DEBIT_NUMBER",
                    "text": "5111 1111 1111 1118",
                    "score": 0.75,
                    "isCustom": false
                },
                {
                    "offset": 111,
                    "length": 5,
                    "type": "DATE_TIME",
                    "text": "11/23",
                    "score": 0.9992455840110779,
                    "isCustom": false
                },
                {
                    "offset": 156,
                    "length": 11,
                    "type": "DATE_TIME",
                    "text": "12-Aug-2022",
                    "score": 0.998766303062439,
                    "isCustom": false
                },
                {
                    "offset": 218,
                    "length": 2,
                    "type": "TELEPHONE_NUMBER",
                    "text": "+1",
                    "score": 0.6941494941711426,
                    "isCustom": false
                },
                {
                    "offset": 221,
                    "length": 14,
                    "type": "TELEPHONE_NUMBER",
                    "text": "(650) 555-0100",
                    "score": 0.9527066349983215,
                    "isCustom": false
                },
                {
                    "offset": 268,
                    "length": 27,
                    "type": "EMAIL",
                    "text": "my.name1234@myemail.com",
                    "score": 0.95,
                    "isCustom": false
                },
                {
                    "offset": 354,
                    "length": 5,
                    "type": "PERSON",
                    "text": "Sarah",
                    "score": 0.9918518662452698,
                    "isCustom": false
                }
            ],
            "languageCode": "en",
            "maskedText": "Hello Support Team, \nI am reaching out to seek help with my credit card number ***************2345 expiring on *1/23. There was a suspicious transaction on *******2022 which I reported by calling from my mobile number +1 **********9999 also I emailed from my email id ***********************.com. Would you please let me know the refund status?\nRegards,\n*arah"
        }
    ],
    "errors": []
}

Configuration de la sortie de texte des informations d'identification personnelle ou des informations personnelles

Dans le service Language, vous pouvez configurer la sortie PII/PHI lors de l'analyse du texte.

  1. Terminez Analyse du texte..
  2. Dans la section Informations d'identification personnelle ou PHI, cliquez sur Configurer dans la section Sortie.
  3. Sélectionnez Informations d'identification personnelle dans la liste déroulante.
  4. Sélectionnez l’une des valeurs suivantes :
    • Masquer : sélectionnez cette option pour inclure ou exclure des entités.
      1. Liste d'exclusion d'anonymisation : Entrez les entités à exclure de la sortie de l'interface utilisateur et de la trousse SDK.
      2. Inclure les entités exclues du masquage dans les entités détectées : Sélectionnez cette option pour inclure l'entité qui a été exclue de la sortie dans l'interface utilisateur, mais pour continuer à inclure l'entité dans la sortie de la trousse SDK.
      3. Caractère de masquage : Caractère de masquage pour masquer le texte d'entrée.
    • Remplacer : Remplacez les entités d'informations d'identification personnelle par une séquence de caractères donnée.
    • Supprimer : Supprimez les entités d'informations d'identification personnelle de la sortie.
  5. Cliquez sur Enregistrer les modifications.

Règles d'informations d'identification personnelle

Règles d'informations d'identification personnelle personnalisées
Clés Type Description
ruleId Chaîne Identificateur unique de la règle.
regex Chaîne Modèle d'expression rationnelle pour mettre en correspondance les types de données personnalisés. Par exemple, ([A-Z]{5}[0-9]{4}[A-Z]{1}) pour faire correspondre la carte panoramique.
type Chaîne Nom du type d'entité à mettre en correspondance. Par exemple, PAN_CARD.
prefix Liste<String> Mots ou expressions à rechercher dans maxDistance de regex mot détecté.
suffix Liste<String> Mots ou expressions à rechercher dans maxDistance de regex mot détecté.
isCaseSensitive Boolean Détermine si le processus de correspondance doit considérer les lettres majuscules et minuscules comme distinctes, avec une valeur true indiquant la sensibilité à la casse et false indiquant l'insensibilité à la casse.
maxDistance Entier Définit la distance maximale autorisée en caractères entre prefix/suffix et le modèle correspondant, en s'assurant que le modèle se trouve à une certaine proximité de prefix/suffix.
priority Entier Priorité des règles. Intervalle entre 1 et 50 où la priorité 1 est la plus élevée. Par exemple, s'il existe deux règles avec le même regex mais différentes prefix et suffix, la règle ayant la priorité la plus élevée est prise en compte
regexOnly Boolean

Si la valeur est Vrai, le modèle supprime les entités détectées qui ont le même regex que la règle regex.

Par exemple :

Dans la phrase, "J'ai 25 ans et il a 11 mois", avec le suffixe réglé à ["années"] :

  • Si regexOnly est vrai, seulement 25 est détecté, car le suffixe "months" ne correspond pas au suffixe "years" spécifié.
  • Si regexOnly est faux, 25 et 11 sont détectés : 25 de la règle (en raison du suffixe "years") et 11 du modèle.
filterEntityTypes Liste<String>

Types d'entité OCI à filtrer. Par exemple, [PERSON, AGE] pour filtrer les types d'entité PERSON et AGE à partir des détections de modèle. Si le filtre est réglé à [ALL], toutes les entités détectées du modèle sont exclues du filtrage.

Lors de la création de la liste [All], la détection est basée sur regex et ignore les entités de modèle prédéfinies.

disable Boolean Réglez à Vrai pour désactiver cette règle.

Exemples de fichiers de règles

[
          {
          "ruleId": "rule 1",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "NAREGA_ID",
          "isCaseSensitive": true,
          "suffix": ["id", "narega"],
          "regexOnly": true,
          "maxDistance": 10,
          "priority": 2
          },
          {
          "ruleId": "rule 2",
          "regex": "([A-Z]{5}[0-9]{4}[A-Z]{3})",
          "type": "PAN_CARD",
          "prefix": ["pan", "pancard"],
          "isCaseSensitive": false,
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 2,
          "filterEntityTypes": ["PERSON"]
          },
          {
          "ruleId": "rule 3",
          "regex": "([A-Z]{4}[0-9]{7})",
          "type": "IFSC_CODE",
          "prefix": ["IFSC"],
          "isCaseSensitive": false,
          "regexOnly":false,
          "maxDistance": 20,
          "priority": 2,
          "disable": false
          },
          {
          "ruleId": "rule 4",
          "regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
          "type": "TIRA_ID",
          "isCaseSensitive": false,
          "prefix": ["Narega"],
          "regexOnly": false,
          "maxDistance": 10,
          "priority": 1
          }
          ]