การใช้ MAC Randomization

เริ่มต้นใน Android 8.0 อุปกรณ์ Android จะใช้ที่อยู่ MAC แบบสุ่มเมื่อตรวจสอบเครือข่ายใหม่ในขณะที่ไม่ได้เชื่อมโยงกับเครือข่ายในปัจจุบัน ใน Android 9 คุณสามารถเปิดใช้งานตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ได้ ( ปิดใช้งาน โดยค่าเริ่มต้น) เพื่อทำให้อุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มเมื่อเชื่อมต่อกับเครือข่าย Wi-Fi

ใน Android 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 (ซึ่งสามารถทำได้ในโอเวอร์เลย์ที่กำหนดเองของอุปกรณ์)

    • แฟล็กนี้ใช้เพื่อควบคุมว่าจะเปิดใช้งานการสุ่ม MAC ของ Wi-Fi โดยตรงหรือไม่
  4. ทดสอบการใช้งานของคุณโดยใช้วิธีการที่อธิบายไว้ใน การตรวจสอบความถูกต้อง

UI ของระบบจะต้อง:

  • มีตัวเลือกในการเปิดหรือปิดการสุ่มสำหรับแต่ละ SSID
  • เปิดใช้งานการสุ่ม MAC เป็นค่าเริ่มต้นสำหรับเครือข่ายที่เพิ่มใหม่ทั้งหมด

ใช้ การใช้งานอ้างอิง ของ UI การตั้งค่าเพื่อใช้พร้อมท์ใหม่

อุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่าอาจไม่รองรับการสุ่ม Wi-Fi MAC เมื่ออัปเกรดอุปกรณ์ดังกล่าวเป็น Android 10 คุณสามารถปิดใช้งานฟีเจอร์การสุ่ม Wi-Fi MAC ได้โดยตั้งค่าสถานะ WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION เป็นจริงในไฟล์สร้าง 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 และบิตมัลติคาสต์ตั้งค่าเป็น 0
  4. ปิดการสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ MAC จากโรงงาน
  5. ลบเครือข่ายโดยแตะ ลืม ในหน้ารายละเอียดเครือข่าย
  6. เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ที่อยู่ MAC แบบสุ่ม เดียวกัน

หากต้องการทดสอบการสุ่ม MAC บนอุปกรณ์รุ่นก่อน Android 10 (สามารถรองรับการสุ่ม MAC ได้) อัปเกรดเป็น Android 10 หรือสูงกว่า:

  1. มีเครือข่ายที่บันทึกไว้อย่างน้อยหนึ่งเครือข่ายบนอุปกรณ์ที่ใช้ Android 9 หรือต่ำกว่า
  2. แฟลชอิมเมจระบบ Android 10
  3. ในตัวเลือก Wi-Fi ให้ตรวจสอบว่าปิดการสุ่ม MAC สำหรับเครือข่ายที่บันทึกไว้ทั้งหมดแล้ว
  4. เปิดการสุ่ม MAC เชื่อมต่อกับเครือข่ายเดียวกันและตรวจสอบว่ามีการใช้ MAC แบบสุ่ม