אילו אותות שורדים עדכוני דפדפן? ניתוח יציבות
ניתחנו את יציבות האותות לאורך 50 עדכונים של Chrome, Firefox ו-Safari. הנה אותות טביעת האצבע היציבים והפחות יציבים ביותר.
עדכוני דפדפן הם האויב הטבעי של טביעת אצבע של מכשירים. כל 4–6 שבועות, Chrome, Firefox ו-Safari דוחפים גרסאות חדשות שעלולות לשנות ערכי אותות — לשנות מחרוזות User Agent, לשנות התנהגות רינדור, להוסיף או להסיר ממשקי API. כפי שצוין בהנחיות W3C בנושא טביעת אצבע, הדפדפנים פועלים באופן פעיל לצמצם את שטח הפנים הניתן לטביעת אצבע. עבור מערכות טביעת אצבע שמתייחסות לכל האותות באופן שווה, כל עדכון הוא שבירה פוטנציאלית של הזהות עבור מיליוני מבקרים.
הרצנו ניתוח יציבות מקיף לאורך 50 עדכוני דפדפן כדי לענות על השאלה הבסיסית: על אילו אותות אפשר לסמוך, ואילו מהם יבגדו בך?
מתודולוגיה
עשינו אינסטרומנטציה ל-200 מכשירים פיזיים ב-5 מערכות הפעלה (Windows 10, Windows 11, macOS Ventura, macOS Sonoma, Ubuntu 22.04) ו-3 דפדפנים (Chrome, Firefox, Safari). כל מכשיר הריץ איסוף אותות אוטומטי מדי יום במשך 14 חודשים, שכיסה 50 עדכוני גרסה מרכזיים של דפדפנים: 24 גרסאות Chrome, 16 גרסאות Firefox ו-10 גרסאות Safari.
עבור כל אות, עקבנו אחר: כמה פעמים הערך השתנה, האם השינוי היה בקורלציה עם עדכון דפדפן או גורם חיצוני (עדכון דרייבר, טלאי מערכת הפעלה), ומידת השינוי (החלפת ערך מלאה לעומת שינוי קל).
שכבות היציבות
שכבה 1: יציב כסלע (יציבות של 99.5%+)
אותות אלה השתנו רק כאשר החומרה הפיזית השתנתה או כאשר עודכנו דרייברים — לעולם לא בשל עדכוני דפדפן בלבד.
Hardware Concurrency (navigator.hardwareConcurrency): יציבות של 99.97%. השתנה רק במכשיר אחד שעבר עדכון BIOS שהשפיע על hyperthreading. Device Memory (navigator.deviceMemory): יציבות של 99.98%. מכשיר אחד שודרג מ-8GB ל-16GB במהלך המחקר. Screen Resolution ו-Color Depth: יציבות של 99.92%. השינויים היו בקורלציה עם החלפות מסך ואירועי תחנת עגינה. WebGL Max Texture Size: יציבות של 99.99%. אפס שינויים הקשורים לדפדפן. השתנה פעם אחת במכשיר שקיבל עדכון דרייבר של NVIDIA. Audio Sample Rate: יציבות של 100%. אפס שינויים בכל 200 המכשירים ו-50 העדכונים. זהו האות היציב ביותר שאנו עוקבים אחריו.
שכבה 2: יציב לרוב (95–99.5%)
אותות אלה משתנים מדי פעם עם עדכוני דפדפן אך נשארים יציבים ברוב הגרסאות.
Canvas 2D Fingerprint: יציבות של 97.8%. שינויים התרחשו ב-Chrome 118 (עדכון מנוע רינדור הגופנים), ב-Chrome 122 (שינוי בהחלקת קצוות ברמת תת-פיקסל) וב-Firefox 121 (עדכון עיצוב טקסט). כל שינוי השפיע על כל המכשירים באותו דפדפן בו-זמנית — דפוס ניתן לזיהוי שאנו מטפלים בו באמצעות התאמה מודעת לגרסת הדפדפן. WebGL Renderer String: יציבות של 98.1%. Chrome מעצב מחדש מדי פעם את מחרוזת עוטף ה-ANGLE. מידע ה-GPU הבסיסי אינו משתנה, אך ייצוג המחרוזת משתנה. אנו מנתחים את דגם ה-GPU מתוך המחרוזת במקום לבצע hash על המחרוזת ישירות. Font List: יציבות של 96.4%. עדכוני מערכת הפעלה מוסיפים או מסירים מדי פעם גופני מערכת. עדכוני דפדפן משפיעים לעיתים רחוקות על ספירת הגופנים, אך Chrome 120 שינה את הסדר שבו הגופנים מדווחים, מה ששבר טביעת אצבע של גופנים מבוססת hash. אנו משתמשים בהשוואה מבוססת קבוצות (דמיון קבוצות) במקום hashing מסודר.
שכבה 3: יציבות בינונית (80–95%)
אותות אלה משתנים בתדירות משמעותית אך עדיין מספקים ערך זיהוי שימושי בין השינויים.
Installed Plugins: יציבות של 89.2%. הצמצום המתמשך של מערך התוספים ב-Chrome (navigator.plugins) הסיר לחלוטין את נראות התוספים בהקשרים מסוימים. Firefox שמר על ספירת התוספים. Safari הגביל אותה למערכת סטנדרטית. CSS Feature Detection: יציבות של 91.7%. תכונות CSS חדשות מתווספות בכל גרסת דפדפן, מה שמשנה את קבוצת התכונות שמזוהות על ידי בדיקת ה-CSS שלנו. אנו משקללים תכונות חדשות נמוך יותר מתכונות מבוססות כדי לצמצם את ההשפעה. Touch Support: יציבות של 93.1%. דפדפני מחשב שולחני משנים מדי פעם את תמיכת המגע המדווחת שלהם כאשר Chrome מכוונן את זיהוי אמולציית המכשיר שלו.
שכבה 4: תנודתי (<80%)
אותות אלה משתנים בתדירות גבוהה ולעולם אסור שיהיו עוגני זיהוי ראשיים.
User Agent String: יציבות של 42.3%. יוזמת צמצום ה-User-Agent של Chrome שינתה את פורמט המחרוזת מספר פעמים. Firefox מעדכן את מספר הגרסה בכל שחרור. Safari משנה באופן קבוע את מחרוזת גרסת ה-WebKit. פעם זה היה עמוד השדרה של מערכות טביעת אצבע פשוטות — מערכות אלה שבורות כעת. Connection Type (navigator.connection): יציבות של 68.4%. משתנה עם החלפת רשת (WiFi לסלולרי, רשתות WiFi שונות). Battery API: יציבות של 71.2%. משתנה עם מצב הטעינה וזמינות ה-API בדפדפן. Chrome הגביל את הגישה ל-Battery API בהקשרים מסוימים. Available Screen Area: יציבות של 76.8%. משתנה עם נראות שורת המשימות, ניהול חלונות והתאמות קנה מידה של התצוגה.
השוואה בין דפדפנים
Chrome הוא הדפדפן התנודתי ביותר מבחינת יציבות טביעת אצבע. Google פועלת באופן פעיל לצמצם את יכולת טביעת האצבע, מה שאומר שעדכוני Chrome שוברים יותר אותות מעדכוני Firefox או Safari. לאורך תקופת המחקר שלנו:
Chrome גרם לשינויי אותות ב-3.2% מסשני האיסוף. Firefox גרם לשינויי אותות ב-1.8% מסשני האיסוף. Safari גרם לשינויי אותות ב-1.1% מסשני האיסוף.
התנודתיות הנמוכה יותר של Safari נובעת בין היתר מכך ש-Apple משחררת פחות גרסאות בשנה, ובין היתר מכך שאמצעי הנגד לטביעת אצבע של Safari (Intelligent Tracking Prevention) פועלים ברמת הרשת ולא באמצעות שינוי ערכי החזרה של ה-API.
המלצות מעשיות
בהתבסס על ניתוח זה, אנו נותנים חמש המלצות למערכות טביעת אצבע בסביבת ייצור:
לעולם אל תשתמש ב-User Agent כעוגן זיהוי. זהו האות המבחין הפחות יציב. השתמש בו לזיהוי הדפדפן ולניקוד ביטחון ברמת שכבה 3 בלבד.
הפרד בין אותות חומרה לאותות תוכנה. אותות חומרה (GPU, מסך, אודיו) יציבים פי 40 מאותות תוכנה (User Agent, תוספים, תכונות CSS). שקלל אותם בהתאם.
השתמש בהשוואה מבוססת קבוצות עבור אותות בני-מנייה. רשימות גופנים, רשימות תוספים ותוצאות זיהוי תכונות צריכות להיות מושוות באמצעות דמיון קבוצות או מדדי מרחק קבוצות דומים, ולא באמצעות hashing מסודר. שינויי סדר נפוצים; שינויי תוכן נדירים.
יישם התאמה מודעת לגרסת הדפדפן. כאשר Chrome 118 משנה את רינדור ה-canvas עבור כל משתמשי Chrome בו-זמנית, המערכת שלך צריכה לזהות זאת כעדכון דפדפן, ולא כשבירת זהות המונית. עקוב אחר גרסאות הדפדפן והחל סבילויות התאמה ספציפיות לגרסה.
עקוב אחר יציבות האותות באופן רציף. אחוזי היציבות שלנו מבוססים על נתונים היסטוריים. עדכוני דפדפן עתידיים עשויים לשנות את פרופיל היציבות של כל אות. אנו מריצים ניטור רציף ומכווננים אוטומטית את משקלי האותות כאשר היציבות משתנה.
השפעה על tracio.ai
ארכיטקטורת הזיהוי הרב-שכבתית שלנו בגרסה V3 משקפת ישירות את ניתוח היציבות הזה. אותות שכבה 1 (חומרה) נושאים משקל של 60%. אותות שכבה 2 (רינדור, גופנים) נושאים משקל של 30%. אותות שכבה 3 (מטא-נתוני דפדפן, חיבור) נושאים משקל של 10%. שקלול זה מבטיח שהאותות היציבים ביותר מובילים את הזיהוי, בעוד שהאותות התנודתיים תורמים לניקוד הביטחון מבלי לגרום לשבירות זהות.
התוצאה: 99.5% יציבות זיהוי לאורך 50 עדכוני דפדפן, לעומת 69% במערכות המשתמשות בטביעת אצבע שטוחה מבוססת hash. ההבדל אינו חוכמה אלגוריתמית — אלא ניתוח אותות אמפירי המיושם על החלטות ארכיטקטוניות.