Vad är privat, och varför spelar det roll?

Dataintegritet och anonymisering i Python

Rebeca Gonzalez

Data engineer

Skandalen med Facebook och Cambridge Analytica

Konsekvenser av dataskyddsbrister

  • Obehörig åtkomst till personuppgifter om 87 miljoner människor
  • Psykologiska profiler byggdes upp av amerikanska väljare
  • Dessa användes för påverkan under valkampanjer

Mark Zuckerberg inför rätta efter att inte ha följt dataskyddsregler

Dataintegritet och anonymisering i Python

Vad är integritet?

Människor som går på gatan

Dataintegritet och anonymisering i Python

Informationsflöde och integritet

Ansiktsigenkänningssystem applicerat på en kvinna på gatan, med en GPS-ikon ovanför hennes huvud

Dataintegritet och anonymisering i Python

Informationsflöde och integritet

  • Hur dina personuppgifter flödar

 

"Förmågan att säkerställa informationsflöden som uppfyller sociala och rättsliga normer."

Ansiktsigenkänningssystem applicerat på en kvinna på gatan, med en GPS-ikon ovanför hennes huvud

Dataintegritet och anonymisering i Python

Personidentifierbar information (PII)

Data som, ensamt eller i kombination med annan data, kan identifiera en person.

Pappersblankett med utrymme för personuppgifter och en penna

Dataintegritet och anonymisering i Python

Känslig PII

  • Tydligt kopplad till en specifik person
  • Exponering kan leda till skada, pinsamma situationer eller olägenheter

Illustration av en man med popup-fönster runt honom som visar personuppgifter

Dataintegritet och anonymisering i Python

Känslig PII

  • Fullständigt namn
  • Personnummer
  • Finansiell information
  • Medicinska journaler

GDPR-bild som visar de maximala böterna för den som inte följer reglerna

Dataintegritet och anonymisering i Python

Icke-känslig PII

Data som inte ensamt kan användas för att spåra en person

  • Kön
  • Yrke
  • Postnummer
  • Födelsestad
Dataintegritet och anonymisering i Python

Icke-känslig PII

Data som inte ensamt kan spåra en person, till exempel kön, yrke, postnummer eller födelsestad.

  • Kön
  • Yrke
  • Postnummer
  • Födelsestad
Kan ändå kombineras med annan information för att identifiera någon!

Text med "Regeringschef i Europa" och ett födelsedatum, med linjer som pekar mot Angela Merkels ansikte

1 Foto på Angela Merkel från Wikimedia Commons.
Dataintegritet och anonymisering i Python

GDPR: EU:s dataskyddsförordning

Skyddar PII för personer som bor, eller vars data behandlas, inom EU.

Viktiga principer i GDPR

  1. Laglighet, rättvisa och öppenhet
  2. Ändamålsbegränsning
  3. Dataminimering
  4. Korrekthet
  5. Lagringsbegränsning

Läs mer här

GDPR-bild som visar de maximala böterna för den som inte följer reglerna

Dataintegritet och anonymisering i Python

Dataundertryckning

Att ta bort vald information för att skydda personers integritet.

Attributundertryckning
  • Ta bort hela kolumner
Cell-/postundertryckning
  • Ta bort eller ersätta data i rader eller celler
Dataintegritet och anonymisering i Python

Attributundertryckning på en datamängd

# Attribute suppression on Sensitive PII "name"
suppressed_salaries = salaries.drop('name', axis="columns")


# Explore obtained dataset suppressed_salaries.head()
     gender    status    salary     pay_basis    position_title
0    Male    Employee    64400.0    Per Annum    DEPUTY DIRECTOR
1    Male    Employee    43600.0    Per Annum    ASSOCIATE DIRECTOR
2    Male    Employee    120000.0   Per Annum    SPECIAL ASSISTANT TO THE PRESIDENT AND DEPUTY ...
3    Male    Employee    86200.0    Per Annum    LEAD ADVANCE REPRESENTATIVE
4    Male    Employee    106000.0   Per Annum    SPECIAL ASSISTANT TO THE PRESIDENT AND DIRECTO...
Dataintegritet och anonymisering i Python

Postundertryckning på en datamängd

# Explore the DataFrame
salaries.head()
      hours    performance    salary 
0     72       51             $80,500.00 
1     20       99             $2,805,000.00 
3     75       62             $75,800.00 
4     74       58             $60,000.00 
5     70       54             $79,000.00 
Dataintegritet och anonymisering i Python

Postundertryckning på en datamängd

# Drop rows with salaries higher than 2,000,000
salaries = salaries.drop(salaries[salaries.Salary > 2000000].index)

# See reasulting DataFrame
salaries.head()
      hours    performance    salary 
0     72       51             80500 
2     75       62             75800 
3     74       58             60000 
4     70       54             79000 
5     68       53             62000 
Dataintegritet och anonymisering i Python

Undertryckning och länkningsattacker

Bild med två tabeller: till vänster medicinsk data efter attributundertryckning, till höger väljarregistreringsdata med delvis överlappande information

Dataintegritet och anonymisering i Python

Nu kör vi en övning!

Dataintegritet och anonymisering i Python

Preparing Video For Download...