המתכון לפסאודונימיזציה יעילה- לא לשכוח מלח ופלפל

תקציר

פסאודונימיזציה נועדה להפחית את הסיכון לזיהוי חוזר באמצעות החלפת מזהים ישירים בערכים חלופיים. דרך נפוצה לבצע פסאודונימיזציה היא באמצעות שימוש בפונקציות ערבול (Hash) המשנות את ערכי הקלט באופן בלתי הפיך.

במקרים מסוימים, ובמיוחד כאשר מרחב הקלט מצומצם או ידוע, ניתן לבצע שחזור וזיהוי חוזר של נתונים שעברו פסאודונימיזציה באמצעות פונקציות ערבול. במקרים אלו, השימוש בפונקציות ערבול בלבד אינו מספיק ונדרשים מנגנונים נוספים.

ניתן לשפר את רמת ההגנה בפסאודונימיזציה באמצעות פונקציות ערבול על ידי מנגנונים משלימים כמו שימוש בערכי “מלח” (Salt), ו”פלפל” (Pepper). שילוב מנגנונים אלו, בדומה לנהוג באחסון מאובטח של סיסמאות, עשוי לצמצם את הסיכון לזיהוי חוזר של ערכים שעברו פסאודונימיזציה באמצעות פונקציות ערבול.

פירוט

פסאודונימיזציה היא שיטת התממה נפוצה ויעילה שמטרתה לצמצם את הסיכון לזיהוי נושא המידע באמצעות החלפת מזהים ישירים כגון מספר תעודת זהות או מזהה מטופל בערכים חלופיים כך שלא ניתן יהיה לזהות אדם בקלות, אך עדיין ניתן יהיה לקשר בין רשומות השייכות לאותו אדם. כך למשל, ניתן לעקוב אחר מספר ביקורים בבית חולים של אותו מטופל או לנתח מספר רכישות של אותו צרכן מבלי לחשוף את זהות הפרט.

לפני

משה - זכר
דנה - נקבה

אחרי

דוגמא למזהים פיקדטיביים

אחת השיטות הנפוצות ליצירת אותם מזהים חלופיים היא שימוש בפונקציות ערבול (Hash). פונקציות אלו ממירות את הקלט לפלט באופן חדכיווני, כלומר בדרך שאינה מאפשרת באופן מעשי לשחזר את הקלט על סמך ידיעת הפלט. אלא ששיטה זו אינה מספקת את ההגנה הנדרשת במצב שבו ערכי הקלט אינם אקראיים או מגיעים ממרחב מצומצם. במצבים כאלו ניתן להגיע לזיהוי חוזר באמצעות מתקפות כגון חישוב ערך הערבול של כל מרחב הקלט (brute force) או שימוש בטבלאות מוכנות מראש כדי להשוות בין ערך הפלט לערכים שהתקבלו.

מספרי תעודות הזהות: דוגמה למרחב קלט מצומצם

מספר הצירופים השונים של 8 ספרות + ספרת ביקורת מחושבת הוא 100 מיליון, ואפשר בקלות לצמצם מספר זה עם ידיעת סדרות ורצפים שטרם נעשה בהם שימוש או כאלו המתאימים למי שנולדו בטווח גילאים מסוים או עלו לארץ בתקופה מסוימת. דוגמה נוספת היא שמות פרטיים: השמות השונים במרשם האוכלוסין במדינת ישראל מפורסמים באתר רשות האוכלוסין וההגירה ומספרם הוא נמוך מ120,000.

עבור מזהים כגון אלו, חישוב הערך של פונקציית ערבול עבור כלל האפשרויות תוך שימוש במשאבי מחשוב ביתיים הוא מספר שעות לכל היותר, כלומר בהישג ידו של הפורץ הסביר.

היסטורית, זיהוי חוזר בשיטה זו בוצע, למשל, במקרה של פרסום נתוני נסיעות מוניות בניו יורק (2014), שם בוצעה פסאודונימיזציה באמצעות ערבול למזהי נהגים ומוניות. מאחר שמרחב הערכים היה מוגבל, חוקרים ועיתונאים הצליחו לבצע זיהוי חוזר ולהסיק מידע אישי, בין היתר, על אודות מפורסמים. המקרה המחיש כי ערבול כשלעצמו אינו ערובה להתממה אפקטיבית.

כדי לצמצם את היכולת לזיהוי חוזר מתוך ערכים שעברו ערבול פותחו (במקור בתחום של אחסון מאובטח של סיסמאות) שני מנגנונים: מלח ופלפל. ניתן להשתמש במנגנונים אלו כדי לצמצם את הסיכון לזיהוי חוזר של ערכים שעברו פסאודונימיזציה באמצעות ערבול.

מלח” (Salt) הוא ערך אקראי השונה עבור כל קלט ומתווסף אליו לפני ביצוע הערבול. המשמעות היא שגם אם שני משתמשים חולקים את אותה סיסמה, הפלט עבורם יהיה שונה. כמו כן, המלח מונע שימוש יעיל בטבלאות מוכנות מראש, מאחר ועבור כל רשומה נדרש חישוב מחדש של טבלת ערבול עבור כל ערכי הקלט האפשריים. המלח אינו סודי, נשמר בדרך כלל יחד עם הנתונים ומשפר משמעותית את עמידות המערכת בפני מתקפות חישוביות.

פלפל” (Pepper) הוא ערך סודי שמתווסף לתהליך הערבול אך אינו נשמר יחד עם הנתונים – אלא במערכת נפרדת ומאובטחת. באופן מעשי זוהי מעין סיסמה שמגינה על הנתונים. כך, אם תוקף מצליח להשיג את הערכים המעורבלים, כדי לשחזר רשומה אחת מתוך הקלט בדרך של brute force הוא יצטרך לבצע ערבול של ערכי קלט עם כל הערכים האפשריים של הערך הסודי, וזה אינו מעשי חישובית בתנאי שהסיסמה (“פלפל”) אינה קלה לניחוש ומוחלפת בתדירות מתאימה.

דוגמה לשימוש במלח ופלפל בתהליך פסאודונימיזציה

נניח שבמאגר מידע רפואי יש רשומות עבור כמה אלפים של תעודות זהות. תוקף שיקבל גישה למאגר המידע יוכל לבצע ערבול לכל מספרי תעודת הזהות האפשריים, להשוות לערכי הערבול במאגר וכך לבצע זיהוי חוזר לכלל תעודות הזהות.

אם לכל תעודת זהות נוסף ערך אקראי (מלח) לפני הערבול – כדי לבצע זיהוי חוזר, התוקף יצטרך לבצע ערבול של המלח עם כל מספרי תעודת הזהות האפשריים. מכיוון שהמלח שונה לכל רשומה – יידרש לבצע זאת מחדש עבור כל רשומה. לפיכך זמן החישוב הנדרש לשם כך יגדל פי כמה אלפים בקירוב, בהתאם למספר הרשומות במאגר.

אם לתעודות הזהות נוסף ערך סודי (פלפל) לפני הערבול – כדי לבצע זיהוי חוזר, התוקף יצטרך לבצע ערבול של כל מספרי תעודת הזהות האפשריים עם כל הערכים הסודיים השונים האפשריים. זו למעשה משימה של ניחוש סיסמה שיכולה להיות בלתי מעשית בדרכים של brute force בתנאי שמקפידים על כך שהסיסמה לא תהיה קלה לניחוש ותוחלף לעיתים קרובות.

פסאודונימיזציה יעילה באמצעות פונקציות ערבול דורשת הבנה של סוגי הנתונים, מרחב הקלט והאפשרויות שיכולות לעמוד לרשות מי שירצה לבצע זיהוי חוזר. וכמו בכל מתכון טוב, אם שוכחים את המלח והפלפל – התוצאה של הטעם יכולה להיות רחוקה מלהיות מספקת.