מצגת סוף סמסטר מנחה: ד"ר גבי נקבלי מגיש: ויקטור מרגוליס Client ID מצגת סוף סמסטר מנחה: ד"ר גבי נקבלי מגיש: ויקטור מרגוליס
רקע ומוטיבציה לזיהוי משתמש באופן ייחודי יש יתרונות רבים לצד השרת, אחד מהם הוא היכולת לספק לו תוכן שתפור ספציפית לדפוס ההתנהגות של הלקוח ברשת. למשל בעזרת שימוש בCookies אתר פרסום יכול לשתול Cookie בצד הלקוח גם ללא שהלקוח יבקר באתר הפרסום, וזאת ע"י שימוש ב3rd Party Cookies. דבר זה הוביל לחסימת Cookies בצד הלקוח ויצירת מצב נסתר בדפדפנים בהם לא נשמר דבר בצד הלקוח בזמן גלישה. מה שהציב בפני אותם אתרים אתגר חדש של זיהוי משתמשים ללא שימוש בCookies.
הפתרון? אחת הדרכים בהן בחרו ספקי הפרסומות להתגבר על בעיות הCookies היא אפיון משתמש לפי פרמטרים של הדפדפן ומערכת ההפעלה בהן הלקוח משתמש. ע"י בדיקה של פרמטרים כמו סוג הדפדפן, Plugins שמותקנים בו, אזור זמן, רזולוציית מסך ועוד בונה צד השרת פרופיל עבור משתמש. למשל כאן (Panopticlick) ניתן לבדוק עד כמה פרופיל המחשב משתמש ייחודי. אך מה קורה במצב שמשתמשים בדפדפן אחר, או אפילו מבצעים על מחשב הלקוח התקנה חדשה של מערכת ההפעלה? נתקלנו בבעיה נוספת.
פתרון אמתי לבעיה גישה נוספת לבעיה היא בדיקת ה Skew בין מעבד השרת לבין מעבד הלקוח. גישה זו נבדקה במאמר "Clock Skew Based Client Device Identification in Cloud Environments " ונמצאה יעילה עד כדי 92%.
Clock Skew מהו? מסיבות של תהליך היצור, אין שני יצרני תדר בעלי אותו תדר מדויק ולכן עבור שני יצרני תדר i,j יתקיים כי הפרש התדר ביניהם יהיה Tskew i, j = TCi − TCj
כיוונים לפתרון ניתן לשפר את השיטה ע"י בדיקה מול יצרני תדר שונים בתוך המחשב ולקבל תוצאה מדויקת יותר. כיוון זה נחקר בפרויקט הנ"ל, ע"י מציאת הSkew בין הCPU לGPU אשר שניהם נמצאים בתוך מחשב הלקוח, וזאת כדי לקבל תוצאה מדויקת יותר ללא הפרעות.
היישום בשביל למצוא את הSkew בסביבת דפדפן השתמשתי בממשק הWebCL אשר נכון לעכשיו עדיין ניסיוני והמימוש היחיד שקיים לדפדפן מבוסס PC הוא של חברת נוקיה (מיקרוסופט?) ומתאים אך ורק לדפדפן Firefox בגרסה 32 בלבד. דבר שכמובן הקשה על המימוש הראשוני של הרעיון, ולכן בוצעה בדיקת התכנות על פלטפורמת OpenCL, שהיא הבסיס לממשק הרשת WebCL. פלטפורמת הOpenCL ותיקה יותר ונגישה יותר לעבודה.
התוצאה
התוצאה
התוצאה שני הגרפים הנ"ל התקבלו כתוצאה מהרצת הבדיקה על גבי שני מחשבים זהים כאשר כל גרף מייצג 3 הרצות שנפרדות של הבדיקה כאשר תוצאת השיפוע בגרף הראשון היא 15475, 15472, 15464 כאשר השוני הוא 0.07% בין שתי התוצאות הקיצוניות. תוצאות השיפוע בגרף השני היא 16152, 16156, 16159 כאשר השוני כאן הוא 0.04% בין שתי התוצאות הקיצוניות. כל זאת כאשר המרחק בין שתי המדידות עומד כמעט על 5% אחת מן השנייה. וזאת לשתי מערכות מחשב זהות לחלוטין בעלות מעבד core i7- 4770 ומעבד גרפי Intel HD4600.
הסבר ל"ברך" בגרף אף על פי שהגרפים שהתקבלו היו ליניאריים היו בהם קטעים שהSkew השתנה, דבר אשר ניתן ליחס לשינוי במצב האנרגיה של אחד המעבדים, דבר שבפועל שינה את תדר העבודה של המעבד.
תוצאות נוספות
תוצאות נוספות כמו כן לא כך התוצאות שהתקבלו היו ליניאריות, ובחלקן היה רעש אשר מנע מהן להיות תוצאות קבילות. הגרף מייצג שש ריצות שונות על גבי אותו מחשב, כאשר בכל פעם מופעל עליו עומס שונה מבחינת מטלות CPU/GPU וכך בעצם ניתן לראות כי עומס על אחד המעבדים גורם לא רק לרעש אלא לשינוי שיפוע הגרף של מדידת הSkew.
מימוש בסביבת WebCL
מימוש בסביבת WebCL
מימוש בסביבת WebCL בשביל להתגבר על בעיה שJavaScript לא מספק את ערך שעון הCPU נאלצתי להשתמש בממשק הWebCL בשביל לקבל תוצאות שעון מערכת על הCPU גם. התוצאות קרובות יותר ממה שהיו בסביבת הOpenCL אך עדיין קיים הפרש של 0.2% בין תוצאה אחת לשנייה כשההפרש בין כל התוצאות עומד על כ0.005%. מה שמלמד שניתן לבצע הבחנה בין שני המחשבים בכל זאת.
סיכום התקבלו בניסוי נתונים אשר מאשרים כי ניתן להבדיל בצורה חד משמעית בין שתי מערכות מחשב זהות לחלוטין שבדיקות רשת אחרות לא היו מצליחות להבדיל ביניהן. יש מקום להמשיך לחקור את הנושא בקנה מידה גדול יותר, עם מספר גדול יותר של מחשבים. כמו כן הגרפים הלינאריים לחלוטין אשר התקבלו בתוצאות הWebCL מלמדים כי מספיק לבצע מספק קטן של דגימות ובכך להפוך את התהליך לנסתר מן העין, בניגוד לבדיקה של 1800 איטרציות על פני שניה כל אחת שהסתכמו ל30 דקות.
תודה רבה על ההקשבה