יישום MAC Randomization

החל מ-Android 8.0, מכשירי אנדרואיד משתמשים בכתובות MAC אקראיות בעת חיפוש אחר רשתות חדשות בעוד שהם אינם משויכים כעת לרשת. באנדרואיד 9, אתה יכול להפעיל אפשרות מפתח (היא מושבתת כברירת מחדל) כדי לגרום למכשיר להשתמש בכתובת MAC אקראית בעת חיבור לרשת Wi-Fi.

באנדרואיד 10, האקראיות של MAC מופעלת כברירת מחדל עבור מצב לקוח, SoftAp ו-Wi-Fi Direct.

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

בנוסף, כתובות MAC מחולקות באופן אקראי כחלק מפעולות Wi-Fi Aware ו- Wi-Fi RTT .

למידע נוסף, ראה התנהגות אקראית של MAC .

יישום

כדי ליישם אקראיות של MAC במכשיר שלך:

  1. עבוד עם ספק שבבי Wi-Fi כדי ליישם את שיטות ה-HAL הבאות:

    • IWifiStaIface#setMacAddress : מגדיר את כתובת ה-MAC של הממשק. יישום ברירת המחדל מוריד את הממשק, משנה את כתובת ה-MAC ומעלה את הממשק בחזרה.
    • IWifiStaIface#getFactoryMacAddress : מקבל את ה-MAC של היצרן של wlan0 באמצעות קריאת ioctl .
    • ISupplicantP2pIface#setMacRandomization : מגדיר את האקראי של P2P MAC להפעלה/כיבוי של המבקש.
  2. הגדר את config_wifi_connected_mac_randomization_supported ל- true בהגדרות config.xml (ניתן לעשות זאת בשכבת-על מותאמת אישית של התקן).

    • דגל זה משמש כדי לשלוט אם אקראית MAC במצב לקוח מופעלת.
  3. הגדר את config_wifi_p2p_mac_randomization_supported ל- true בהגדרות config.xml (ניתן לעשות זאת בשכבת-על מותאמת אישית של התקן).

    • דגל זה משמש כדי לקבוע אם מופעלת אקראית של Wi-Fi Direct MAC.
  4. בדוק את היישום שלך באמצעות השיטות המתוארות באימות .

ממשק המשתמש של המערכת חייב:

  • יש אפשרות להפעיל או לבטל אקראי עבור כל SSID.
  • הפעל את האקראיות של MAC כברירת מחדל עבור כל הרשתות החדשות שנוספו.

השתמש ביישום הייחוס של ממשק המשתמש של הגדרות כדי ליישם הנחיות חדשות.

ייתכן שלמכשירים עם אנדרואיד 9 ומטה אין תמיכה באקראי של Wi-Fi MAC. בעת שדרוג מכשירים כאלה לאנדרואיד 10, ניתן להשבית את תכונת האקראיות של Wi-Fi MAC על ידי הגדרת הדגל WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION כ-true בקובץ ה-HAL של ספק ה-Wi-Fi.

מַתַן תוֹקֵף

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

כדי להפעיל בדיקת אינטגרציה, השתמש בקובץ ACTS, WifiMacRandomizationTest.py , הממוקם ב- tools/test/connectivity/acts_tests/tests/google/wifi , כדי לוודא שהמכשיר משתמש בכתובת ה-MAC האקראית ומאחסן נכון את כתובת ה-MAC האקראית עבור כל רֶשֶׁת.

כדי להפעיל בדיקה ידנית:

  1. ודא שאקראיות MAC מופעלת במכשיר על ידי בדיקה ש- config_wifi_connected_mac_randomization_supported מוגדר כ- true בשכבת-העל של המכשיר.
  2. התחבר לרשת Wi-Fi.
  3. הקש על הרשת כדי לעבור לדף פרטי הרשת. ודא שהאקראי של MAC מופעלת. ודא שכתובת ה-MAC המוצגת היא MAC אקראי, שהסיבית שנוצרה באופן מקומי מוגדרת ל-1 וה-MAC-bit מוגדר ל-0.
  4. כבה את האקראיות של MAC. התחבר לאותה רשת וודא שה-MAC של היצרן נמצא בשימוש.
  5. מחק את הרשת על ידי הקשה על שכח בדף פרטי הרשת.
  6. התחבר לאותה רשת וודא שמשתמשים באותה כתובת MAC אקראית.

כדי לבדוק אקראיות של MAC במכשיר טרום אנדרואיד 10 (המסוגל לתמוך באקראי של MAC) המשדרג לאנדרואיד 10 ומעלה:

  1. יש לפחות רשת אחת שמורה במכשיר עם אנדרואיד 9 ומטה.
  2. הבזק את תמונת המערכת של אנדרואיד 10.
  3. בבוחר ה-Wi-Fi, ודא שהאקראי של MAC כבוי עבור כל הרשתות השמורות.
  4. הפעל את האקראיות של MAC. התחבר לאותה רשת וודא שה-MAC האקראי נמצא בשימוש.