Cosa è la k-anonymity?

Oggi mi sono immersa nel concetto di k-anonymity.  

La k-anonymity è una tecnica che permette di proteggere i dati sensibili garantendo che ogni individuo sia indistinguibile da almeno k altre persone. È come nascondersi in una folla: se un dato appare almeno k volte, diventa impossibile identificare chi ci sia dietro.

Immagina un database come una gigantesca illustrazione di "Dov’è Wally?": prima, ogni persona ha dettagli unici che la rendono facilmente riconoscibile. Con la k-anonymity, invece, ogni Wally si confonde tra decine di altri con la stessa maglietta a righe e berretto. Trovarlo diventa praticamente impossibile!

⚙️ Dalle persone alle password:  

il ruolo dell’hashing e della k-anonymity

La stessa logica si applica alla protezione delle password. Per verificarne la sicurezza senza inviarla in chiaro, ho creato uno script che utilizza l’API di Have I Been Pwned e il metodo delle prime 5 cifre dell’hash, una pratica che rientra perfettamente nella k-anonymity.

🔑 Come funziona:

1️⃣ La password viene trasformata in un hash SHA-1.  

2️⃣ Si inviano solo le prime 5 lettere dell’hash all’API.  

3️⃣ L’API restituisce tutti gli hash che iniziano con quella sequenza.  

4️⃣ Localmente, si controlla se la parte restante dell’hash corrisponde a uno degli hash compromessi.

💡 Ma cos’è esattamente un hash?

Una funzione hash trasforma un input di qualsiasi lunghezza in una stringa di lunghezza fissa (es. SHA-1 restituisce sempre 40 caratteri esadecimali). Questo processo è irreversibile per design, grazie a una serie di passaggi complessi:

  • 🔄 Mescolamento: Ogni bit influisce su molti altri bit del risultato finale.
  • 📏 Compressione: L’input viene ridotto a una lunghezza fissa, causando perdita di informazioni.

👉 È come fare una spremuta: puoi spremere l’arancia, ma non puoi ricostruirla dal succo! 🍊

🌪 Effetto valanga:

Anche un singolo cambiamento nell’input genera un hash completamente diverso.  

Ad esempio:

`password123 → CBFDAC6008F9CAB4083784CBD1874F76618D2A97`
`password124 → 4B2ADDDCC8993F3BB7244AF7A8C8B44B322B1A84`

🚫 Non esistono chiavi segrete:  

A differenza della crittografia, l’hash non usa chiavi. L’unico modo per risalire all’input originale è tentare tutte le combinazioni possibili, come provare ogni pezzo di un puzzle alla cieca.

💪 K-Anonymity e Hashing insieme:

Quando il mio script invia solo le prime 5 lettere dell’hash (CBFDA), sta applicando la stessa logica della k-anonymity: senza la parte restante, è impossibile sapere quale fosse la password originale, perché ogni hash corrisponde a migliaia di possibili input.

Insomma, la prossima volta che cerchi Wally in un mare di dati anonimi, ricordati che non è solo un gioco… è sicurezza! 😉

Qui il link alla mia repository contenente lo script

Illustrazione che rappresenta la sorpresa di fronte a un problema di sicurezza, come descritto nell'articolo K-anonymity. Design di Veronica Schembri

Related Post

Maggio 14, 2025
Il mio viaggio con AWS SageMaker

Sono entusiasta di condividere che ho recentemente completato l'AI Engineering Bootcamp: Build, Train and Deploy Models with AWS SageMaker della scuola Zero To Mastery tenuto da Patrik Szepesi! Dopo giornate di apprendimento intensivo e progetti pratici, ho acquisito competenze cruciali che mi hanno fatto progredire nel mio percorso come ingegnere AI. Cos'è AWS SageMaker? Per […]

Aprile 4, 2025
Come la meditazione sta migliorando la mia produttività e resilienza mentale: il mio percorso con ZTM

Ho appena completato il corso "Learning to Meditate" di Zero To Mastery e non posso fare a meno di condividere come questa pratica abbia trasformato la mia routine quotidiana. In pochi mesi, sono passata da essere una novizia della meditazione (ma di quelle persone che non reggono 2 minuti!) a qualcuno che può iniziare ad […]

veronicaschembri
Copyright © Veronica Schembri

Privacy Policy
Cookie Policy
💬