Puncte:5

Care este cea mai bună modalitate de a pseudonimiza adresele IP, păstrând în același timp capacitatea de a le identifica pe cele care partajează o subrețea?

drapel us

Fundal: Dezvolt o aplicație care se bazează pe utilizatorii înregistrați care votează asupra lucrurilor și vreau să creez o euristică care să implice adrese IP ca o modalitate de a semnala conturile pentru investigarea ulterioară a potențialului abuz de conturi multiple + vot. În interesul obligațiilor de confidențialitate/minimizarea datelor/GDPR, se pare că cea mai bună strategie este stocarea hash-urilor cu cheie ale IP-urilor, care ar fi suficient de pseudonim, dar determinist pentru verificarea potrivirilor. Așa că aș putea doar să folosesc HMAC-SHA256 sau similar pe întreaga adresă și să termin.

Totuși, mi se pare că ar putea fi util să identificăm nu numai IP-uri care sunt identice între ele, ci și pe cele care partajează o subrețea, ceea ce ar necesita ceva nu chiar atât de opac. Modul evident de a face acest lucru ar fi să faci hash fiecare parte a IP-ului separat. Problema este că cu HMAC-SHA256 (de exemplu) ieșirea completă este mult prea mare, în special pentru adrese IPv6 (8 x 256 = 2048 biți pentru fiecare adresă de 128 de biți). De asemenea, ar reduce substanțial dimensiunea spațiului de intrare (valori de 1 octet pentru IPv4, valori de 2 octeți pentru IPv6) - presupun că cel mai bine ar fi să folosesc o cheie diferită pentru fiecare parte dacă ar fi să fac acest lucru, ceea ce nu suna distractiv.

Care este o modalitate bună de a-mi atinge obiectivul, păstrând în același timp dimensiunea stocată relativ mică? Poate că este în regulă să trunchiați ieșirea atunci când utilizați SHA256? Poate din moment ce este un HMAC și cheia este secretă, este ok să folosiți o funcție de hashing mai mică și mai slabă în primul rând, cum ar fi MD5? Poate că există o altă funcție hash care este potrivită în mod unic pentru acest tip de caz de utilizare? Orice îndrumare este apreciată.

kelalaka avatar
drapel in
Vedea. criptare care păstrează formatul.
knaccc avatar
drapel es
„Se pare că cea mai bună strategie este stocarea hash-urilor cu cheie ale IP-urilor, care ar fi suficient de pseudonim, dar determinist pentru verificarea potrivirilor”
eddydee123 avatar
drapel mk
Cred că este nevoie de mai mult decât păstrarea formatului pentru a păstra relații precum subrețea comună
Puncte:1
drapel us

După mai multe căutări (mulțumesc pentru indicația din comentarii) am dat peste Schema Crypto-PAn (deseori scris fără cratima ca CryptoPAn), care a fost descris/dezvoltat tocmai în acest scop. Are o mână de implementări software în diferite limbi, dintre care câteva acceptă IPv6.

Proprietatea pe care o căutam se numește „prefix-preserving”, iar lucrarea care a introdus Crypto-PAn oferă o dovadă matematică că există o singură modalitate generală de a face acest lucru (cel puțin într-un mod în care valoarea pentru fiecare parte a prefixului depinde de tot ceea ce vine înaintea lui, spre deosebire de schema independentă pe care am propus-o).

Crypto-PAn implică utilizarea (repetată) a unei funcții pseudoaleatoare (PRF), care în implementarea de referință și majoritatea celorlalte este AES-128-ECB. Adresele IP pseudonimizate pot fi descifrate (când se cunoaște cheia secretă), chiar dacă pentru PRF se folosește o funcție hash, datorită modului în care funcționează algoritmul - cu alte cuvinte Crypto-PAn este o schemă de criptare indiferent de PRF.

Crypto-PAn se întâmplă, de asemenea, să păstreze formatul, astfel încât acest lucru face posibilă lucrarea cu adrese pseudonimizate la fel cum ați face cu originalele.

A fi determinist și a păstra prefixele și a opera pe un spațiu valoric mic vine cu dezavantajul că schema este neapărat slabă la analiza semantică. Este clar că, pentru a avea utilitatea dorită, există un compromis inevitabil în intimitate (pe care îl știam de la început). Cu alte cuvinte, este cel mai bun efort, dar este mai bine decât stocarea adreselor IP originale. Desigur, există tehnici suplimentare care ar putea sau ar trebui folosite pentru a ajuta la atenuarea riscului (de exemplu, rotația cheilor, ștergerea după un timp stabilit, partiționarea cu chei diferite). Evident, sper că celelalte practici ale mele de securitate împiedică expunerea datelor în primul rând.

Există un RFC IETF din 2020 care include un tabelul tehnicilor de anonimizare/pseudonimizare a adresei IP. În afară de Crypto-PAn, singurul care se încadrează atât în ​​categoriile „pseudonimizare” cât și „prefixare prefix” este ceva numit „Top-Hash Subtree-Replicated Anonymization (TSA)”, care aparent este optimizat pentru viteză (probabil că nu este un lucru bun în acest context?), dar vine cu o notă care sugerează că ar putea avea prea multă memorie pentru adrese IPv6 și nu am reușit să găsesc nicio implementare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.