לפעמים כל מה שצריך כדי לחשוף מנגנון מעקב מתוחכם הוא זוג אוזניות שמפסיק לעבוד. מפתח תוכנה המכונה "laserphile" נתקל לאחרונה בתופעה משונה: בכל פעם שפתח את אתר עליאקספרס (AliExpress) במחשב, המוזיקה שהתנגנה מהטלפון שלו דרך אוזניות הבלוטות' נעצרה. ברגע שסגר את הלשונית של האתר - המוזיקה חזרה להתנגן.
האוזניות שבהן השתמש תומכות ב-Multipoint, טכנולוגיה שמאפשרת להן להיות מחוברות לשני מכשירים במקביל. למשל, אפשר לשמוע מוזיקה מהטלפון, ובאותו זמן לקבל דרך האוזניות צליל התראה מהמחשב. אלא שבמקרה שלו, משהו באתר של ענקית הקניות הסינית, שבבעלות עליבאבא, גרם למחשב לתפוס את ערוץ האודיו - למרות שלא התנגן באתר שום סרטון, שיר או תוכן קולי אחר.
המפתח ניסה את הפתרונות המתבקשים. הוא השתיק את הלשונית, את הדפדפן ואפילו את הצלילים ב-Windows, אבל שום דבר לא עזר. רק סגירת AliExpress שחררה מיד את האוזניות ואפשרה למוזיקה בטלפון להמשיך להתנגן.
בשלב הזה הוא החליט לבדוק מה האתר עושה מאחורי הקלעים. מה שמצא בקוד חשף שיטת מעקב שלא דורשת להקליט את המשתמש, להפעיל את המיקרופון שלו או אפילו להשמיע לו צליל שהוא מסוגל לשמוע.
עליאקספרס, לפי הבדיקה שלו, השתמשה ב-WebAudio API - רכיב בדפדפנים שמאפשר לאתרים ליצור ולעבד צלילים - כדי לייצר ברקע אות שמע בעוצמה אפסית. במילים פשוטות: האתר "מנגן" צליל, אבל מנמיך אותו כך שהמשתמש לא שומע דבר. לאחר מכן הוא בודק כיצד המחשב עיבד את הצליל הזה.
וזה בדיוק החלק החשוב. האתר לא מקשיב למשתמש ולא מקליט את מה שקורה בחדר. במקום זאת, הוא מקשיב, במובן מסוים, למחשב עצמו.
מחשבים שונים לא תמיד מעבדים צליל בצורה זהה לחלוטין. גרסת הדפדפן, מערכת ההפעלה, רכיבי החומרה וספריות התוכנה שאחראיות על עיבוד האודיו יכולים ליצור הבדלים זעירים בתוצאה. עבור המשתמש מדובר בהבדלים בלתי מורגשים, אבל עבור קוד שמודד אותם בדיוק גבוה הם יכולים להפוך לעוד סימן מזהה.
אפשר לחשוב על זה כמו לבקש מקבוצה של אנשים לכתוב בדיוק את אותו משפט. התוכן יהיה זהה, אבל כתב היד של כל אחד יהיה מעט שונה. כאן, במקום כתב יד, האתר בוחן את "כתב היד" של מערכת האודיו במחשב.
השיטה הזאת היא חלק מעולם שנקרא Fingerprinting - יצירת "טביעת אצבע" דיגיטלית. בניגוד לעוגיות, שהן קבצים שאתרים שומרים בדפדפן כדי לזהות משתמש שחוזר אליהם, כאן לא בהכרח צריך לשמור משהו על המחשב. האתר אוסף שורה של מאפיינים שכבר קיימים במכשיר ובדפדפן, מחבר אותם יחד ומנסה ליצור מהם פרופיל מספיק ייחודי כדי לזהות את אותו מכשיר גם בהמשך.
במקרה הזה, מנגנון האודיו גם מסביר את התקלה שהובילה לחשיפה. האתר החזיק את מערכת הקול של המחשב פעילה ברקע, והאוזניות, שמחוברות במקביל למחשב ולטלפון, התייחסו לכך כאילו המחשב מנסה להשתמש בהן. כתוצאה מכך, השמע שהגיע מהטלפון נעצר. באג קטן מבחינת המשתמש הפך לרמז למה שהתרחש מאחורי הקלעים.
אלא שהאודיו היה רק חלק מהתמונה. בבדיקת הקוד מצא laserphile כי אותם סקריפטים בוחנים גם שורה ארוכה של מאפיינים נוספים של המכשיר והדפדפן.
בין היתר מדובר ב-Canvas וב-WebGL, טכנולוגיות שמשמשות דפדפנים לציור גרפיקה ולהצגת תוכן תלת-ממדי. גם כאן הרעיון דומה: האתר יכול לבקש מהמחשב לצייר תמונה או לבצע פעולה גרפית מסוימת, ואז לבדוק את התוצאה. הבדלים בכרטיס המסך, בדרייברים, במערכת ההפעלה ובדפדפן עשויים לייצר שינויים זעירים שאפשר לצרף לטביעת האצבע.
לכך מצטרפים גם נתונים על החומרה, ממדי המסך, הרשת ו-WebRTC, לצד תנועות עכבר ואירועי מגע. הסקריפטים בודקים גם סימנים שעשויים להעיד שהגולש אינו אדם רגיל שיושב מול האתר, אלא כלי אוטומטי או תוכנה שמפעילה את האתר בעצמה.
כל אחד מהפרטים האלה בפני עצמו עשוי להיראות כמעט חסר משמעות. רזולוציית המסך שלכם, למשל, משותפת כנראה למיליוני משתמשים אחרים. גם סוג הדפדפן או מערכת ההפעלה אינם מזהים אתכם לבדם. אבל כשמחברים מספר גדול של מאפיינים כאלה - מערכת ההפעלה, הדפדפן, הכרטיס הגרפי, עיבוד האודיו, המסך, הרשת ודפוסי האינטראקציה - מספר המכשירים שמתאימים בדיוק לאותו שילוב הולך ומצטמצם.
לדברי laserphile, גם טביעת האצבע שמתקבלת ממערכת האודיו לבדה אינה בהכרח ייחודית מספיק כדי לזהות מחשב מסוים. הערך שלה מגיע כשהיא מצטרפת לכל שאר הנתונים שנאספים. לפי הבדיקה שלו, המידע שנאסף נשלח בחזרה לשרתי הטלמטריה של עליבאבא.
לעלי אקספרס ועליבאבא יכולות להיות כמה סיבות להשתמש במנגנוני זיהוי מהסוג הזה. פלטפורמת מסחר מקוונת ענקית נדרשת להתמודד עם חשבונות מזויפים, הונאות וניצול לרעה של קופונים והטבות. במקביל, מאגרי מידע שמאפשרים לזהות מכשירים ולעקוב אחר התנהגות משתמשים יכולים להיות בעלי ערך גם לצורכי שיווק.
עליאקספרס, לפי הבדיקה שלו, השתמשה ב-WebAudio API של הדפדפן כדי להפעיל ברקע אותות קוליים בעוצמה אפסית. המשתמש לא אמור לשמוע דבר - וחשוב מכך, האתר גם לא מקליט אותו. במקום זאת, הוא מודד כיצד המחשב מעבד את האות שנוצר.
הסיבה פשוטה יחסית: הבדלים קטנים בין גרסאות דפדפן, מערכות הפעלה, ספריות אודיו ורכיבי חומרה יכולים לגרום לאותו אות בדיוק לעבור עיבוד מעט שונה. את ההבדלים האלה אפשר למדוד ולהפוך לחלק מ"טביעת אצבע" של המכשיר.
טביעת אצבע דיגיטלית, או Fingerprinting, מאפשרת לאתרים לנסות לזהות משתמשים ומכשירים גם ללא הסתמכות על Cookies. במקרה הזה, מנגנון האודיו היה גם זה שהחזיק את ערוץ הקול של המחשב פעיל - וגרם במקרה לתקלה באוזניות שחשפה את כל הסיפור.
אלא שהאודיו הוא רק חלק מהתמונה. בבדיקת הקוד מצא laserphile כי הסקריפטים אוספים ומודדים גם נתונים נוספים, בהם Canvas ו-WebGL, מפרטי חומרה, ממדי מסך, WebRTC, מידע על הרשת, תנועות עכבר ומגע ואינדיקציות שעשויות להעיד על שימוש בכלי אוטומציה. השילוב בין כל אלה מאפשר לבנות פרופיל מפורט יותר של המכשיר, שנשלח לשרתי הטלמטריה של עליבאבא.
לדברי המפתח, טביעת האצבע שמתקבלת מעיבוד האודיו לבדה לא בהכרח מספיקה כדי לזהות באופן ייחודי מחשב מסוים. הכוח שלה מגיע כשהיא מצטרפת לשורה ארוכה של מאפיינים אחרים - מהכרטיס הגרפי והדפדפן ועד תזמונים ואופן האינטראקציה של המשתמש עם האתר.
לעלי אקספרס ועליבאבא יכולות להיות סיבות שונות להשתמש במנגנוני זיהוי כאלה. פלטפורמת מסחר ענקית נדרשת להתמודד עם חשבונות מזויפים, הונאות וניצול לרעה של קופונים, בעוד שמאגרי מידע על התנהגות משתמשים יכולים לשמש גם לצורכי שיווק.
אבל במקרה הזה, מה שמשך את תשומת הלב לא היה חלון קופץ, בקשת הרשאה או הודעת פרטיות. זו הייתה פשוט מוזיקה שהפסיקה להתנגן - תקלה קטנה באוזניות בלוטות' שהפכה לחלון הצצה לאחת הדרכים שבהן אתר יכול לנסות לזהות את המחשב שמאחורי המסך.
