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 K-anonymity

Related Post

Aprile 1, 2025
🎉 Level Up! Ho completato il corso “Complete Python Developer” e sbloccato nuove skill!

🎉 Level Up! Ho appena completato il corso “Complete Python Developer: Zero to Mastery” e mi sento come se avessi appena sbloccato un nuovo achievement nel mondo della programmazione! 🏆🐍 Un viaggio entusiasmante affrontato con il mio approccio preferito: sperimentare, costruire e imparare divertendomi… e sì, anche combattere qualche bug lungo il cammino. Ma del […]

Marzo 20, 2025
🎓 DALLE CERTIFICAZIONI ALLE COMPETENZE REALI: IL MIO WEEKEND PROJECT 🚀

Come vi avevo anticipato, ho recentemente completato il corso "Machine Learning and Data Science Bootcamp" di Zero To Mastery Academy. Ma sapete cosa rende davvero prezioso un corso? La capacità di trasformare le conoscenze in competenze concrete! Dal corso alla pratica: nascita di Dog Vision ✨ Vi presento il mio progetto finale "esteso": DOG VISION […]

veronicaschembri
Copyright © Veronica Schembri

Privacy Policy
Cookie Policy