Els requisits conflictius de 3 règims de privacitat
Organitzacions globals que operen en Europa (GDPR), Califòrnia (CCPA), Tailàndia (PDPA) enfronten requisits de conformitat que són no només diferenciant sinó potencialment conflictius:
GDPR (UE):
- Predilecció per anonimització irreversible (Recital 26: "anonimització vertadera" és irreversible)
- Dret a l'esborrat (Article 17): supressió completa de dades personals
- Dret a la portabilitat: dades exportables en format de máquina-llegible
CCPA (Califòrnia):
- Preferència per pseudonimització (Art. 1798.100: dades "raonablement linkables" a individus satisfan l'estàndard)
- Dret d'accés: els subjectes de dades han de poder accedir a versions desidentificades de les seves dades
- Dret a la supressió: similar a GDPR, però amb més excepcions
PDPA (Tailàndia):
- Equilibri entre anonimització i pseudonimització (Sec. 28)
- Cap dret a la portabilitat (diferent de GDPR/CCPA)
- Énfasis en el consentiment per a processament de dades sensibles
Com se reconcilien els conflictes
Conflicte 1: Irreversibilitat (GDPR) vs. Reversibilitat (CCPA/PDPA)
Semblaria que GDPR i CCPA són mutuament exclusius — GDPR demanda anonimització irreversible, mentre que CCPA permet pseudonimització reversible.
Solució:
-
Pas 1: Pseudonimització reversible (CCPA-compliant):
- Usar Hash SHA-256 per a noms complets, adreça, SSN:
John Smith + 123 Main St → f3a2d8c1...(reversible amb sal secret) - Usar Encrypt AES-256 per a identificadors de compte (clau secret es guarda per a accés futuro de subjecte de dada)
- Usar Hash SHA-256 per a noms complets, adreça, SSN:
-
Pas 2: Irreversibilitat (GDPR-compliant):
- Després d'un periode de retenció (p. ex., 90 dies), eliminar les claus de deshiframent
- Les dades ara són irreversiblement anonimitzades
- Se satisfà GDPR (irreversible) i CCPA (reversible durant periode de retenció)
Conflicte 2: Audit-accessibility (CCPA) vs. Privacy-first (GDPR)
CCPA requereix que organitzacions auditen dades desxifrades, mentre que GDPR prefereix que el processador no accedeixi a dades sensibles en clar.
Solució:
- Usar criptografia de costat del client + hash de verificació:
- El responsable de dades xifra les dades amb clau privada
- El processador emmagatzema només les dades xifrades + hash SHA-256 de les dades en clar
- Per a auditoria CCPA, el responsable de dades desxifra de forma local i proporciona hash per a verificació d'integritat
- Per a cumpliment de GDPR, el processador mai accedeix a dades en clar
Aquest model permet que el responsable de dades verifiqui que el processador no ha alterat les dades (audit-friendly CCPA) sense que el processador accedeixi a dades en clar (privacy-first GDPR).
Arquitectura de conformitat global
Arquitectura de 3 capes recomanda:
Capa 1: Detecció de PII (uniforme en tots els règims)
- Usar detector de PII com Presidio (identifica SSN, números de targeta de crèdit, adreces, telèfons)
- Resultats: llistat de PII detecció amb ubicacions de documents
Capa 2: Operador seleccionable per règim de conformitat
- GDPR mode: Usar Replace operador (irreversible) — tota la PII es reemplaça amb marcadors de posició genèrics
- CCPA mode: Usar Hash operador (reversible amb sal secret) — PII es transforma en hash SHA-256, sal es guarda per a accés futuro de subjecte de dada
- PDPA mode: Usar Encrypt operador (AES-256 amb clau governada) — PII es xifra, clau es guarda d'acord amb normes de retencio de Tailàndia
Capa 3: Governança de claus per règim
- GDPR: Eliminar totes les claus/salts após de periode de retenció (tipicament 90-180 dies)
- CCPA: Conservar sal secreto indefinidament per a accés de subjecte de dada future
- PDPA: Conservar clau de xifrat d'acord amb reglament de Tailàndia (típicament 1-5 anys)
Implementació pràctica: Com configurar una eina
Exemple usant Presidio + anonimització personalitzada:
# Detecció (uniforme)
from presidio_analyzer import AnalyzerEngine
analyzer = AnalyzerEngine()
results = analyzer.analyze(text="John Smith, SSN 123-45-6789")
# Resultats: [PII(entity_type='PERSON', start=0, end=10),
# PII(entity_type='US_SSN', start=12, end=23)]
# Operador selector por règim
regim = "GDPR" # o "CCPA" o "PDPA"
if regim == "GDPR":
# Irreversible: Replace
anonymized = "<PERSON>, SSN <US_SSN>"
elif regim == "CCPA":
# Reversible: Hash amb sal
import hashlib
salt = "secret-salt-stored-securely"
hashed_name = hashlib.sha256(("John Smith" + salt).encode()).hexdigest()[:12]
anonymized = f"{hashed_name}, SSN <US_SSN_HASH:123>"
elif regim == "PDPA":
# Encrypt
from Crypto.Cipher import AES
key = "32-byte-key-stored-securely"
encrypted_name = AES.encrypt("John Smith", key)
anonymized = f"<ENCRYPTED:{encrypted_name}>, SSN <US_SSN_ENCRYPTED>"
Validació de conformitat múltiple
Checklist de auditoria per a global compliance:
- Detecció de PII: Usar detector comun (Presidio o equivalent) en tots els règims
- Operadores selectables: Arquitectura suporta Replace (GDPR), Hash (CCPA), Encrypt (PDPA) sin "mode switcher" manual
- Governança de claus per règim: Polítiques de retenció de claus diferenciat per a cada règim són documentades
- Auditoria de selecció de regim: Registrar quin règim s'ha seleccionat per a cada document processado
- Testing d'irreversibilitat (GDPR): Verificar que claus son eliminades após de periode de retenció
- Testing d'reversibilitat (CCPA): Verificar que sal/claus estan disponibles per a accés de subjecte de dada
- Testing d'encriptació (PDPA): Verificar que claus es guarden d'acord amb politica de Tailàndia
Fonts: