Zpět na blogGDPR a shoda

Proč 'Smazat sloupec e-mail' nestačí...

Sloupce CSV jsou strukturovaná PII. Ale volný text v polích 'Poznámky' nebo 'Komentáře' obsahuje neevidovanou PII, která přežívá smazání sloupce.

April 21, 20267 min čtení
research dataCSV anonymizationGDPR Article 89survey datadata sharing

Falešná bezpečnost smazání sloupce

Standardní přístup k anonymizaci CSV dat: identifikovat sloupce obsahující PII (e-mail, telefon, jméno) a smazat je. Zbývající sloupce jsou bezpečné.

Tento přístup přehlíží zásadní kategorii PII: osobní data vložená do volně textových polí.

Volný Text PII v Datech Zákaznické Podpory

Zákaznická podpora CSV exporty typicky zahrnují pole jako:

  • Poznámky k záznamu: „zákazník nazval 15. března, muž jménem Jan Novák, SSN 123-45-6789..."
  • Interní komentáře: „kontaktujte jana.novakova@firma.cz před eskalací"
  • Popis problému: „zákazník uvádí, že jejich číslo účtu 4847291 je nesprávné"
  • Souhrn řešení: „ověřeno zákazníkovo datum narození 15.3.1985"

Smazání sloupce „E-mail" a „Telefon" nezabrání těmto PII uvnitř polí volného textu.

GDPR Problém Výzkumných Datasetů

Zdravotnické nebo sociální výzkumné datasety sdílené pro sekundární výzkum typicky zahrnují strukturovaná pole (věk, pohlaví, diagnóza) plus volně textová pole klinické poznámky.

Klinické poznámky mohou obsahovat:

  • Jméno pacienta nebo rodinného příslušníka zmíněná v průběhu
  • Adresy, telefonní čísla
  • Pojišťovací čísla nebo informace o zaměstnavateli
  • Jméno lékaře nebo identifikátor zdravotnického zařízení

Datové sdílení „anonymizované" odstraněním sloupce Jméno pacienta, zatímco klinické poznámky zůstávají nefiltrované, není anonymizace — je to neúplná anonymizace, která selhává při testu HIPAA Safe Harbor nebo GDPR anonymizace.

Implementace Analýzy Na Úrovni Buněk

Kompletní CSV anonymizace musí zahrnovat analýzu obsahu každé buňky pro detekci vložené PII:

import csv

def analyze_csv_for_pii(filepath):
    with open(filepath, 'r') as f:
        reader = csv.DictReader(f)
        for row_num, row in enumerate(reader):
            for column, value in row.items():
                if is_free_text_column(column):
                    # Spusťte PII detekci na obsah buňky
                    entities = detect_pii(value)
                    if entities:
                        print(f"Řádek {row_num}, sloupec {column}: "
                              f"nalezeno {len(entities)} PII entit")

Tato analýza na úrovni buněk je výpočetně náročnější než smazání sloupce, ale je nutná pro kompletní anonymizaci.

Zdroje:

Připraveni chránit svá data?

Začněte anonymizovat PII s více než 285 typy entit ve 48 jazycích.