Co je soukromé a proč nás to zajímá?

Ochrana soukromí a anonymizace dat v Pythonu

Rebeca Gonzalez

Data engineer

Skandál Facebook a Cambridge Analytica

Dopad ochrany soukromí dat

  • Neoprávněný přístup k osobním údajům 87 milionů lidí
  • Tvorba psychologických profilů amerických voličů
  • Cílené ovlivňování během politických kampaní

Mark Zuckerberg u soudu v důsledku porušení práv na ochranu soukromí dat

Ochrana soukromí a anonymizace dat v Pythonu

Co je soukromí?

Lidé procházející se po ulici

Ochrana soukromí a anonymizace dat v Pythonu

Tok informací a soukromí

Systém rozpoznávání obličeje aplikovaný na ženu na ulici, nad její hlavou ikona GPS

Ochrana soukromí a anonymizace dat v Pythonu

Tok informací a soukromí

  • Způsob, jakým vaše osobní informace proudí

 

„Schopnost zajistit toky informací, které odpovídají společenským a právním normám."

Systém rozpoznávání obličeje aplikovaný na ženu na ulici, nad její hlavou ikona GPS

Ochrana soukromí a anonymizace dat v Pythonu

Osobně identifikovatelné informace (PII)

Data, která sama o sobě nebo v kombinaci s jinými daty umožňují identifikaci osoby.

Papírový formulář s místem pro osobní údaje a pero

Ochrana soukromí a anonymizace dat v Pythonu

Citlivé PII

  • Jednoznačně se vztahují k určité osobě
  • Jejich zveřejnění může způsobit újmu, zahanbení nebo potíže

Kresba muže s vyskakovacími okny obsahujícími osobní informace

Ochrana soukromí a anonymizace dat v Pythonu

Citlivé PII

  • Celé jméno
  • Rodné číslo (SSN)
  • Finanční informace
  • Zdravotní záznamy

Obrázek GDPR zobrazující maximální sankce za nedodržení předpisů

Ochrana soukromí a anonymizace dat v Pythonu

Necitlivé PII

Data, která sama o sobě nestačí k identifikaci osoby

  • Pohlaví
  • Zaměstnání
  • PSČ
  • Město narození
Ochrana soukromí a anonymizace dat v Pythonu

Necitlivé PII

Data, která sama o sobě nestačí k identifikaci osoby – například pohlaví, zaměstnání, PSČ nebo město narození.

  • Pohlaví
  • Zaměstnání
  • PSČ
  • Město narození
V kombinaci s dalšími daty mohou osobu identifikovat!

Text „Vedoucí představitel vlády v Evropě" a datum narození s šipkami ukazujícími na tvář Angely Merkelové

1 Fotografie Angely Merkelové z Wikimedia Commons.
Ochrana soukromí a anonymizace dat v Pythonu

GDPR: Obecné nařízení EU o ochraně osobních údajů

Chrání PII osob žijících v Evropě nebo jejichž data jsou zde zpracovávána.

Klíčové zásady GDPR

  1. Zákonnost, spravedlnost a transparentnost
  2. Omezení účelu
  3. Minimalizace dat
  4. Přesnost
  5. Omezení uložení

Více informací zde

Obrázek GDPR zobrazující maximální sankce za nedodržení předpisů

Ochrana soukromí a anonymizace dat v Pythonu

Potlačení dat

Odstranění vybraných informací za účelem ochrany soukromí subjektů.

Potlačení atributů
  • Úplné odebrání sloupců
Potlačení buněk/záznamů
  • Odebrání nebo nahrazení dat v řádcích či buňkách
Ochrana soukromí a anonymizace dat v Pythonu

Potlačení atributů v datové sadě

# 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...
Ochrana soukromí a anonymizace dat v Pythonu

Potlačení záznamů v datové sadě

# 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 
Ochrana soukromí a anonymizace dat v Pythonu

Potlačení záznamů v datové sadě

# 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 
Ochrana soukromí a anonymizace dat v Pythonu

Potlačení dat a útoky propojením

Obrázek dvou tabulek: vlevo zdravotní data po potlačení atributů, vpravo registrace voličů se shodnými údaji

Ochrana soukromí a anonymizace dat v Pythonu

Pojďme si procvičit!

Ochrana soukromí a anonymizace dat v Pythonu

Preparing Video For Download...