אנונימיזציה ופסאודונימיזציה - מדריך מקיף
שתי טכניקות להפחתת סיכוני פרטיות - אבל שונות מאוד.
ההבדל המהותי
| | אנונימיזציה | פסאודונימיזציה | |--|-------------|-----------------| | הגדרה | הסרה בלתי הפיכה של זיהוי | החלפת מזהים בקודים | | אפשר לזהות חזרה? | לא | כן (עם המפתח) | | עדיין מידע אישי? | לא | כן | | חוק חל? | לא | כן | | דוגמה | "גבר בן 45 מהמרכז" | "USER_7823" במקום שם |
מתי להשתמש בכל שיטה?
אנונימיזציה מתאימה ל:
- מחקר סטטיסטי
- דוחות מצטברים
- פרסום נתונים
- שמירה ארוכת טווח
פסאודונימיזציה מתאימה ל:
- עבודה יומיומית עם מידע
- שיתוף עם ספקים
- ניתוח נתונים פנימי
- כשצריך אפשרות לזהות חזרה
טכניקות אנונימיזציה
1. הסרה (Suppression)
מחיקת שדות מזהים לחלוטין.
לפני: יוסי כהן, 052-1234567, תל אביב אחרי: [מוסר], [מוסר], תל אביב
2. הכללה (Generalization)
הפיכת ערכים ספציפיים לכלליים.
לפני: גיל 34 אחרי: גיל 30-40
לפני: רחוב הרצל 15 אחרי: אזור מרכז
3. ערבוב (Permutation)
ערבוב הקשר בין שדות.
לפני: | שם | עיר | גיל | |----|-----|-----| | יוסי | ת"א | 34 | | דנה | חיפה | 28 |
אחרי: | שם | עיר | גיל | |----|-----|-----| | דנה | ת"א | 28 | | יוסי | חיפה | 34 |
4. רעש (Noise Addition)
הוספת שגיאה אקראית לערכים.
לפני: הכנסה 15,000 ש"ח אחרי: הכנסה 15,000 ± 500 ש"ח (אקראי)
5. K-Anonymity
וידוא שכל רשומה זהה לפחות ל-K רשומות אחרות.
K=3 אומר: לכל שילוב תכונות יש לפחות 3 אנשים.
טכניקות פסאודונימיזציה
1. Tokenization
החלפת מזהה בטוקן אקראי.
לפני: יוסי כהן אחרי: TKN_a8f3d2e1
המפתח נשמר בנפרד: TKN_a8f3d2e1 → יוסי כהן
2. הצפנה
הצפנת השדות המזהים.
לפני: 052-1234567 אחרי: aGVsbG8gd29ybGQ=
עם המפתח אפשר לפענח.
3. Hashing
פונקציה חד-כיוונית.
לפני: יוסי כהן אחרי: 5f4dcc3b5aa765d61d8327deb882cf99
בעיה: ניתן להריץ dictionary attack פתרון: Salted hash
סיכונים וטעויות נפוצות
1. Re-identification
חשיפת זהות דרך שילוב מידע.
דוגמה:
- מסד A: [פסאודו-ID, עיר, גיל]
- מסד B: [שם, עיר, גיל]
- שילוב = זיהוי!
2. Quasi-identifiers
שדות שלבד לא מזהים, אבל ביחד כן.
מיקוד + תאריך לידה + מין = מזהים 87% מהאוכלוסייה
3. Insufficient K
K=2 לא מספיק. מומלץ K≥5.
4. שמירת המפתח באותו מקום
פסאודונימיזציה לא שווה כלום אם המפתח יחד עם הנתונים.
הנחיות מעשיות
לאנונימיזציה אפקטיבית:
- הסירו מזהים ישירים (שם, ת.ז., טלפון)
- הכלילו quasi-identifiers
- בדקו K-anonymity (K≥5)
- בצעו ניתוח סיכוני re-identification
- תעדו את התהליך
לפסאודונימיזציה:
- בחרו שיטה (token/encryption)
- שמרו מפתח בנפרד
- הגבילו גישה למפתח
- תעדו מי יכול לזהות חזרה
בדיקת הצלחה
האם האנונימיזציה הצליחה?
שאלות לשאול:
- האם אפשר לזהות אדם ספציפי?
- האם שילוב עם מקור אחר יאפשר זיהוי?
- האם יש קבוצות קטנות מדי?
- האם ערכים קיצוניים חושפים?
דוגמת קוד - פסאודונימיזציה בסיסית
import hashlib
import secrets
# Salted hash
def pseudonymize(identifier, salt=None):
if salt is None:
salt = secrets.token_hex(16)
salted = f"{salt}{identifier}"
hashed = hashlib.sha256(salted.encode()).hexdigest()
return hashed, salt
# Tokenization
def tokenize(identifier, token_map):
if identifier not in token_map:
token_map[identifier] = secrets.token_hex(8)
return token_map[identifier]
סיכום
אנונימיזציה נכונה פוטרת מחוק הגנת הפרטיות - אבל קשה לבצע נכון. פסאודונימיזציה מפחיתה סיכון - אבל עדיין צריך לעמוד בחוק.
צריכים עזרה באנונימיזציה? LLUMINATE מספקת ייעוץ טכני ומשפטי להסרת זיהוי.