החל מ-Android 8.0, מכשירי Android משתמשים בכתובות MAC אקראיות כשמתבצעת בדיקה של רשתות חדשות בזמן שהמכשיר לא משויך לרשת. ב-Android 9, אפשר להפעיל אפשרות למפתחים (מושבתת כברירת מחדל) כדי שהמכשיר ישתמש בכתובת MAC אקראית כשהוא מתחבר לרשת Wi-Fi.
ב-Android 10, רנדומיזציה של כתובות MAC מופעלת כברירת מחדל במצב לקוח, ב-SoftAp וב-Wi-Fi ישיר.
האקראיות של כתובות MAC מונעת ממאזינים להשתמש בכתובות MAC כדי ליצור היסטוריה של פעילות המכשיר, וכך משפרת את פרטיות המשתמשים.
בנוסף, כתובות MAC מוגרלות כחלק מפעולות של Wi-Fi Aware ושל Wi-Fi RTT.
מידע נוסף זמין במאמר בנושא התנהגות של הקצאת כתובות MAC אקראיות.
הטמעה
כדי להטמיע רנדומיזציה של כתובות MAC במכשיר:
עובדים עם ספק של שבבי Wi-Fi כדי להטמיע את שיטות ה-HAL הבאות:
-
IWifiStaIface#setMacAddress: הגדרת כתובת ה-MAC של הממשק. ההטמעה שמוגדרת כברירת מחדל משביתה את הממשק, משנה את כתובת ה-MAC ומפעילה מחדש את הממשק. -
IWifiStaIface#getFactoryMacAddress: מקבל את כתובת ה-MAC של היצרן שלwlan0באמצעות קריאה ל-ioctl. -
ISupplicantP2pIface#setMacRandomization: מגדיר את האפשרות 'הקצאת כתובות MAC אקראיות ב-P2P' במבקש האימות למצב מופעל או מושבת.
-
מגדירים את
config_wifi_connected_mac_randomization_supportedל-trueבהגדרותconfig.xml(אפשר לעשות את זה בשכבת-על מותאמת אישית במכשיר).- הדגל הזה משמש כדי לקבוע אם רנדומיזציה של כתובות MAC במצב לקוח מופעלת.
מגדירים את
config_wifi_p2p_mac_randomization_supportedל-trueבהגדרותconfig.xml(אפשר לעשות את זה בשכבת-על מותאמת אישית במכשיר).- הדגל הזה משמש כדי לקבוע אם ההגדרה של אקראיות כתובת ה-MAC ב-Wi-Fi Direct מופעלת.
בודקים את ההטמעה באמצעות השיטות שמתוארות במאמר בנושא אימות.
ממשק המשתמש של המערכת צריך:
- אפשרות להפעיל או להשבית את האקראיות של כל SSID.
- הפעלת רנדומיזציה של כתובות MAC כברירת מחדל לכל הרשתות החדשות שנוספות.
כדי להטמיע הנחיות חדשות, אפשר להשתמש בהטמעה לדוגמה של ממשק המשתמש של ההגדרות.
יכול להיות שבמכשירים עם Android מגרסה 9 ומטה לא תהיה תמיכה בהקצאה אקראית של כתובות MAC ב-Wi-Fi. כשמשדרגים מכשירים כאלה ל-Android 10, אפשר להשבית את התכונה של רנדומיזציה של כתובות MAC ב-Wi-Fi על ידי הגדרת הדגל WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION כ-True בקובץ ה-make של ספק ה-Wi-Fi HAL.
אימות
כדי לוודא שהתכונה פועלת כמצופה, מריצים בדיקה ידנית:
- כדי לוודא שההגדרה 'הקצאת כתובות MAC אקראיות' מופעלת במכשיר, בודקים שהערך של
config_wifi_connected_mac_randomization_supportedמוגדר ל-trueבשכבת העל של המכשיר. - מתחברים לרשת Wi-Fi.
- מקישים על הערוץ כדי לעבור לדף הפרטים שלו. מוודאים שהאפשרות 'הקצאת כתובת MAC אקראית' מופעלת. מוודאים שכתובת ה-MAC שמוצגת היא כתובת MAC אקראית, שבה הביט שנוצר באופן מקומי מוגדר ל-1 והביט של שידור מרובה כתובות מוגדר ל-0.
- משביתים את האפשרות 'יצירת כתובת MAC אקראית'. מתחברים לאותה רשת ומוודאים שנעשה שימוש בכתובת ה-MAC המקורית.
- כדי למחוק את הרשת, מקישים על מחיקה בדף פרטי הרשת.
מתחברים לאותה רשת ומוודאים שנעשה שימוש באותה כתובת MAC אקראית.
כדי לבדוק רנדומיזציה של כתובות MAC במכשיר עם Android מגרסה קודמת ל-10 (שיכול לתמוך ברנדומיזציה של כתובות MAC) שמשודרג ל-Android מגרסה 10 ומעלה:
- לשמור לפחות רשת אחת במכשיר עם Android 9 או גרסה מוקדמת יותר.
- מבצעים צריבה של קובץ האימג' של מערכת Android 10.
- בבורר ה-Wi-Fi, מוודאים שהרנדומיזציה של כתובות MAC מושבתת בכל הרשתות השמורות.
- מפעילים רנדומיזציה של כתובות MAC. מתחברים לאותה הרשת ומוודאים שנעשה שימוש בכתובת ה-MAC האקראית.