Salta el contingut

RGPD: Reglament General de Protecció de Dades

Introducció

El RGPD (Reglament (UE) 2016/679, General Data Protection Regulation) és la normativa europea que regula el tractament de dades personals. En vigor des del 25 de maig de 2018, substitueix la Directiva 95/46/CE i és d'aplicació directa a tots els estats membres de la UE, sense necessitat de transposició.

A Espanya, el RGPD es complementa amb la LOPDGDD (Llei Orgànica 3/2018 de Protecció de Dades Personals i Garantia dels Drets Digitals).

L'incompliment del RGPD pot suposar multes de fins a 20 milions d'euros o el 4% de la facturació global anual de l'empresa (la xifra que sigui superior).

mindmap
  root((RGPD))
    Principis
      Licitud
      Minimització
      Limitació de finalitat
      Exactitud
      Limitació de conservació
      Integritat i confidencialitat
    Drets dels interessats
      Accés
      Rectificació
      Supressió
      Portabilitat
      Oposició
      Limitació del tractament
    Obligacions del responsable
      Registre d'activitats
      DPO si requerit
      Privacy by Design
      Notificació de brecxes
      EIPD si risc alt
    Bases de legitimació
      Consentiment
      Contracte
      Obligació legal
      Interessos vitals
      Interès públic
      Interès legítim

Principis Fonamentals (Art. 5 RGPD)

1. Licitud, lleialtat i transparència

El tractament ha de tenir una base legal. L'interessat ha de ser informat.

2. Limitació de la finalitat

Les dades es recullen per a finalitats específiques i no es poden tractar de manera incompatible.

# ❌ Violació del principi de limitació de finalitat
# Una app de fitness recull el GPS per mostrar rutes
# Però la ven a asseguradores per a calcular primes
user_location = track_user_gps()
sell_to_insurance(user_location)  # Finalitat incompatible!

# ✅ Correcte: finalitat declarada i consistent
user_location = track_user_gps()  # Finalitat: mostrar rutes
display_route(user_location)       # Ús consistent amb la finalitat

3. Minimització de dades

"Adequades, pertinents i limitades al necessari" (data minimization):

# ❌ Excés de dades: demanar data de naixement per a un newsletter
registration_form = {
    'email': required,
    'name': required,
    'birth_date': required,   # Per a un newsletter? Innecessari!
    'phone': required,        # Innecessari per a un newsletter!
    'address': required,      # Innecessari!
}

# ✅ Minimitzat: únicament el necessari
registration_form = {
    'email': required,
    'name': optional,         # Útil per a personalitzar, però opcional
}

4. Exactitud

Les dades han de ser correctes i actualitzades. Posar mecanismes per a corregir-les.

5. Limitació de la conservació

Les dades no s'han de guardar indefinidament. Cal definir periódes de retenció:

# Política de retenció de dades - exemple
DATA_RETENTION_POLICIES = {
    'user_accounts':     {'inactive': '2 years', 'deleted': 'immediate'},
    'purchase_history':  {'period': '5 years'},   # Obligació fiscal
    'support_tickets':   {'period': '1 year'},
    'logs_access':       {'period': '6 months'},
    'marketing_emails':  {'period': 'until_unsubscribe + 1 year'},
    'video_cctv':        {'period': '15 days'},   # Estàndard
}

# Job periòdic per a eliminar dades expirades
def purge_expired_data():
    for category, policy in DATA_RETENTION_POLICIES.items():
        users_to_purge = db.query_expired(category, policy)
        for user in users_to_purge:
            anonymize_or_delete(user)
            log_deletion(user, category, reason='retention_policy')

6. Integritat i confidencialitat

Mesures tècniques i organitzatives per protegir les dades (el que hem après al mòdul d'enfortiment).

Bases de Legitimació (Art. 6)

El tractament de dades és lícit únicament si es dona una de les sis bases:

Base Descripció Exemple
Consentiment Explícit, lliure, específic, informat i inequívoc Newsletter marketing
Contracte Necessari per a executar un contracte amb l'interessat Dades d'enviament en e-commerce
Obligació legal Exigit per llei Declaració IRPF
Interessos vitals Per a protegir la vida Emergència mèdica
Interès públic Exercici de poders públics Padró municipal
Interès legítim Interès del responsable prevaleix sobre el de l'interessat Seguretat de la xarxa interna

El consentiment no és la única base

Un error comú és creure que tot tractament necessita consentiment. Si tens una base legal diferent (contracte, obligació legal, interès legítim), el consentiment no és necessari i de vegades no és el més adequat.

Drets dels Interessats (Arts. 15-22)

# Implementació dels drets RGPD en una aplicació web

class GDPRRights:

    def exercise_right_of_access(self, user_id: int) -> dict:
        """
        Art. 15: Dret d'accés - L'interessat pot saber quines dades tens d'ell.
        Termini màxim: 1 mes (prorrogable 2 mesos si es justifica)
        """
        user_data = db.get_all_user_data(user_id)
        return {
            'personal_data': user_data.profile,
            'processing_purposes': ['account_management', 'newsletter'],
            'data_recipients': ['payment_processor', 'email_provider'],
            'retention_period': '2 years from last login',
            'source': 'User registration',
            'rights_info': self.get_rights_summary()
        }

    def exercise_right_to_erasure(self, user_id: int) -> dict:
        """
        Art. 17: Dret de supressió ("dret a l'oblit").
        No absolut: hi ha excepcions (obligacions legals, interès públic, etc.)
        """
        exceptions = self.check_erasure_exceptions(user_id)
        if exceptions:
            return {'status': 'denied', 'reason': exceptions}

        # Anonimitzar en lloc d'eliminar (per a mantenir integritat estadística)
        self.anonymize_user_data(user_id)
        self.notify_third_parties_of_erasure(user_id)
        return {'status': 'completed', 'timestamp': now()}

    def exercise_right_to_portability(self, user_id: int) -> bytes:
        """
        Art. 20: Portabilitat. Proporcionar les dades en format llegible per màquina.
        """
        user_data = db.get_user_data_for_portability(user_id)
        return json.dumps(user_data).encode('utf-8')
        # Format JSON, XML o CSV (llegible per màquina, reutilitzable)

Privacitat per Disseny i per Defecte (Art. 25)

Privacy by Design significa incorporar la privacitat des del disseny inicial del sistema:

# Exemple: disseny d'un sistema d'analítica web amb Privacy by Design

# ❌ Mal disseny: emmagatzemar la IP completa i el User-Agent
def log_page_view(request):
    db.insert('page_views', {
        'ip': request.remote_addr,         # IP completa = dada personal
        'user_agent': request.user_agent,  # Pot identificar el dispositiu
        'url': request.url,
        'timestamp': datetime.now()
    })

# ✅ Privacy by Design: anonimitzar a la recollida
def log_page_view_private(request):
    # Truncar la IP per a preservar la privacitat
    ip_parts = request.remote_addr.split('.')
    anonymized_ip = f"{ip_parts[0]}.{ip_parts[1]}.{ip_parts[2]}.0"

    db.insert('page_views', {
        'ip_truncated': anonymized_ip,     # No és una dada personal (no identifica)
        'country': geoip_lookup(ip_parts[0:3]),  # País (no ubicació exacta)
        'browser_family': parse_ua_family(request.user_agent),  # Família, no versió exacta
        'url': request.url,
        'date': datetime.today()           # Data, no hora exacta
    })

Privacy by Default: les configuracions per defecte de l'app han de ser les més privades:

❌ Mal: Per defecte, el perfil d'usuari és públic (cal deshabilitar manualment)
✅ Bé: Per defecte, el perfil és privat (l'usuari pot fer-lo públic si vol)

❌ Mal: El newsletter és opt-out (cal desmarcar-lo)
✅ Bé: El newsletter és opt-in (cal marcar-lo activament)

Tractament de Categories Especials (Art. 9)

Les categories especials requereixen una protecció addicional:

Categoria Exemples
Origen racial o ètnic Fotografies de persones
Opinions polítiques Afiliació a partits
Conviccions religioses Menús especials per dieta religiosa
Dades sindicals Afiliació a sindicats
Dades genètiques i biomètriques ADN, empremtes dactilars, reconeixement facial
Dades de salut Historials mèdics, discapacitats
Vida o orientació sexual -

Biometria i reconeixement facial

El reconeixement facial en espais públics per identificar persones és considerat tractament de dades biomètriques (categoria especial). Per a finalitats d'ordre públic, és generalment prohibit a la UE (debat actual en la Llei d'IA de la UE).

EIPD - Evaluació d'Impacte en la Protecció de Dades (Art. 35)

És obligatòria quan el tractament "pugui comportar un risc alt": - Videovigilància sistemàtica d'espais públics - Tractament a gran escala de categories especials - Decisió automatitzada amb efectes jurídics significatius

## Estructura d'una EIPD

1. DESCRIPCIÓ DEL TRACTAMENT
   - Finalitats i bases jurídiques
   - Dades tractades i volum
   - Responsable i encarregats
   - Fluxos de dades (diagrama)

2. AVALUACIÓ DE LA NECESSITAT I PROPORCIONALITAT
   - Per quin motiu son necessàries les dades?
   - Podria fer-se amb menys dades (minimització)?

3. AVALUACIÓ DE RISCOS
   | Risc | Probabilitat | Impacte | Nivell |
   |------|-------------|---------|--------|
   | Accés no autoritzat | Mitjà | Alt | ALT |
   | Fuita de dades | Baix | Molt alt | ALT |
   | Ús indegut | Baix | Mig | BAIX |

4. MESURES DE MITIGACIÓ
   Per a cada risc: mesures tècniques i organitzatives

5. CONSULTA AL DPO
   [Signatura del DPO]

6. CONSULTA PRÈVIA (si els riscos residuals son alts)
   Contactar l'AEPD abans d'iniciar el tractament

Miniactivitat

Una empresa vol implementar un sistema de control d'accés a les seves oficines usant reconeixement facial. Realitza una anàlisi preliminar EIPD:

  1. Quina base legal usaries (de les 6 possibles)?
  2. Quins riscos identificaries per als empleats?
  3. Existeix una alternativa menys invasiva que seria suficient?
  4. Caldria fer una consulta prèvia a l'AEPD?

Transferències Internacionals de Dades (Cap. V)

flowchart TD
    TRANSFER[Transferir dades\nfora de la UE] --> Q1{País\nequivalent?}
    Q1 -->|Sí\nEx: UK, Canadà, Japó| OK[✅ Permès]
    Q1 -->|No| Q2{Garanties\nadequades?}
    Q2 -->|SCCs\nBCRs\nCertificació| OK2[✅ Permès amb salvaguardes]
    Q2 -->|Cap garantia| Q3{Excepció\nArt. 49?}
    Q3 -->|Consentiment explícit\nNecessitat de l'execució| OK3[✅ Permès excepcionalment]
    Q3 -->|Cap excepció| PROHIBIT[❌ Prohibit]

Implicació pràctica: Si ets empresa i uses serveis cloud d'AWS/Google/Azure (EUA), necessites tenir SCCs (Standard Contractual Clauses) signades amb el proveïdor.

Exercici pràctic

Realitza una Avaluació d'Impacte en la Protecció de Dades (EIPD) per a una app mòbil fictícia de gestió de salut per a un hospital que: - Recull dades de salut dels pacients - Integra un servei d'intel·ligència artificial per a diagnòstic preliminar - Els metges accedeixen des de dispositius mòbils personals - El proveïdor de l'IA és una empresa als EUA

Lliura la EIPD completa en el document eipd_NOMCOGNOM.md seguint l'estructura del tema.