Co jest prywatne i dlaczego to ważne?

Prywatność danych i anonimizacja w Pythonie

Rebeca Gonzalez

Data engineer

Skandal Facebook i Cambridge Analytica

Wpływ prywatności danych

  • Nieautoryzowany dostęp do danych osobowych 87 milionów osób
  • Tworzenie psychologicznych profili amerykańskich wyborców
  • Wpływanie na nich podczas kampanii politycznych

Mark Zuckerberg przed sądem w związku z naruszeniem praw do prywatności danych

Prywatność danych i anonimizacja w Pythonie

Czym jest prywatność?

Ludzie chodzący po ulicy

Prywatność danych i anonimizacja w Pythonie

Przepływ informacji a prywatność

System rozpoznawania twarzy zastosowany do kobiety na ulicy, nad jej głową ikona GPS

Prywatność danych i anonimizacja w Pythonie

Przepływ informacji a prywatność

  • Sposób, w jaki przepływają Państwa dane osobowe

 

„Zdolność do zapewnienia przepływu informacji zgodnego z normami społecznymi i prawnymi."

System rozpoznawania twarzy zastosowany do kobiety na ulicy, nad jej głową ikona GPS

Prywatność danych i anonimizacja w Pythonie

Dane osobowe (PII)

Dane, które samodzielnie lub w połączeniu z innymi danymi mogą identyfikować osobę.

Formularz papierowy z miejscem na dane osobowe i długopis

Prywatność danych i anonimizacja w Pythonie

Wrażliwe dane osobowe

  • Jednoznacznie dotyczą konkretnej osoby
  • Ujawnienie może prowadzić do szkody, zawstydzenia lub niedogodności

Rysunek mężczyzny z wyskakującymi okienkami zawierającymi dane osobowe

Prywatność danych i anonimizacja w Pythonie

Wrażliwe dane osobowe

  • Pełne imię i nazwisko
  • Numer PESEL / SSN
  • Dane finansowe
  • Dokumentacja medyczna

Obraz RODO przedstawiający maksymalne kary za nieprzestrzeganie przepisów

Prywatność danych i anonimizacja w Pythonie

Niewrażliwe dane osobowe

Dane, które samodzielnie nie pozwalają zidentyfikować osoby

  • Płeć
  • Zawód
  • Kod pocztowy
  • Miasto urodzenia
Prywatność danych i anonimizacja w Pythonie

Niewrażliwe dane osobowe

Dane, które samodzielnie nie pozwalają zidentyfikować osoby, np. płeć, zawód, kod pocztowy czy miasto urodzenia.

  • Płeć
  • Zawód
  • Kod pocztowy
  • Miasto urodzenia
Mogą jednak być użyte z innymi danymi do identyfikacji osoby!

Tekst „Szef rządu w Europie" i data urodzenia ze strzałkami wskazującymi na twarz Angeli Merkel

1 Zdjęcie Angeli Merkel pochodzi z Wikimedia Commons.
Prywatność danych i anonimizacja w Pythonie

RODO: Ogólne Rozporządzenie o Ochronie Danych UE

Chroni dane osobowe osób mieszkających w Europie lub których dane są tam przetwarzane.

Kluczowe zasady RODO

  1. Zgodność z prawem, rzetelność i przejrzystość
  2. Ograniczenie celu
  3. Minimalizacja danych
  4. Prawidłowość
  5. Ograniczenie przechowywania

Więcej informacji

Obraz RODO przedstawiający maksymalne kary za nieprzestrzeganie przepisów

Prywatność danych i anonimizacja w Pythonie

Supresja danych

Usuwanie wybranych informacji w celu ochrony prywatności osób.

Supresja atrybutów
  • Usuwanie całych kolumn
Supresja komórek/rekordów
  • Usuwanie lub zastępowanie danych w wierszach lub komórkach
Prywatność danych i anonimizacja w Pythonie

Supresja atrybutów na zbiorze danych

# 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...
Prywatność danych i anonimizacja w Pythonie

Supresja rekordów na zbiorze danych

# 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 
Prywatność danych i anonimizacja w Pythonie

Supresja rekordów na zbiorze danych

# 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 
Prywatność danych i anonimizacja w Pythonie

Supresja i ataki przez łączenie danych

Dwie tabele: po lewej dane medyczne po supresji atrybutów, po prawej dane z rejestru wyborców zawierające wspólne pola

Prywatność danych i anonimizacja w Pythonie

Czas na ćwiczenia!

Prywatność danych i anonimizacja w Pythonie

Preparing Video For Download...