พฤติกรรมการสุ่ม MAC

คุณสมบัติการสุ่ม MAC ช่วยให้อุปกรณ์ใช้ที่อยู่ MAC แบบสุ่มเมื่อเชื่อมต่อกับเครือข่าย Wi-Fi สำหรับคำแนะนำในการใช้งาน โปรดดูที่ Implementing MAC Randomization หน้านี้อธิบายพฤติกรรมของการสุ่ม MAC ใน Android

อุปกรณ์จะใช้ที่อยู่ MAC เมื่อเชื่อมต่อกับเครือข่าย Wi-Fi หรือจุดเข้าใช้งาน เนื่องจากที่อยู่ MAC เหล่านี้ถูกส่งโดยไม่มีการเข้ารหัสจึงสามารถบันทึกและใช้เพื่อติดตามตำแหน่งของผู้ใช้ได้ ในอดีต อุปกรณ์ต่างๆ ใช้ที่ อยู่ MAC ของโรงงาน เพื่อเชื่อมโยงกับเครือข่าย Wi-Fi ที่อยู่ MAC ของโรงงานมีความเป็นเอกลักษณ์และคงที่ทั่วโลก ทำให้อุปกรณ์สามารถติดตามและระบุเป็นรายบุคคลได้

คุณลักษณะการสุ่ม MAC เพิ่มความเป็นส่วนตัวของผู้ใช้โดยใช้ที่อยู่ MAC แบบสุ่มเมื่อเชื่อมต่อกับเครือข่าย Wi-Fi

ที่อยู่ MAC มีความยาว 48 บิต และมักจะแสดงด้วยเลขฐานสิบหก 12 หลัก (6 ออคเต็ตเนื่องจากแต่ละออคเต็ตคือ 8 บิต) เช่น 00:11:22:AA:BB:CC คุณลักษณะการสุ่ม MAC จะสุ่มที่อยู่โดยการตั้งค่าบิตที่ จัดการ ในเครื่องเป็น 1 และบิต unicast เป็น 0 ส่วนอีก 46 บิตจะถูกสุ่ม

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

ตัวเลือกการสุ่ม MAC

รูปที่ 1 ตัวเลือกการสุ่ม MAC

ประเภทการสุ่ม MAC

กรอบงาน Android ใช้การสุ่ม MAC สองประเภท: การสุ่มแบบถาวร และการสุ่มแบบ ไม่ต่อเนื่อง หากผู้ใช้ปิดใช้งานการสุ่ม MAC จะใช้ที่อยู่ MAC ของโรงงาน

Android กำหนดประเภทการสุ่ม MAC ที่จะใช้เมื่ออุปกรณ์เชื่อมโยงกับเครือข่าย Wi-Fi ตามค่าเริ่มต้น Android จะใช้การสุ่มแบบถาวร เริ่มต้นใน Android 12 Android ใช้การสุ่มแบบไม่ต่อเนื่องในสถานการณ์ต่อไปนี้:

  • แอปแนะนำเครือข่ายระบุว่าใช้การสุ่มแบบไม่ต่อเนื่องสำหรับเครือข่ายผ่าน WifiNetworkSuggestion.Builder#setMacRandomizationSetting API
  • เครือข่ายเป็นเครือข่ายแบบเปิดที่ไม่พบแคปทีฟพอร์ทัล และโอเวอร์ config_wifiAllowEnhancedMacRandomizationOnOpenSsids ถูกตั้งค่า true โอเวอร์เลย์นี้ถูกปิดใช้งาน (ตั้งค่า false ) โดยค่าเริ่มต้น

การสุ่มอย่างต่อเนื่อง

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

ที่อยู่ MAC แบบถาวรมีความจำเป็นในกรณีที่เครือข่ายอาศัยการคงอยู่ของที่อยู่ MAC เพื่อให้ฟังก์ชันที่เป็นประโยชน์แก่ผู้ใช้ เช่น เพื่อจดจำอุปกรณ์และอนุญาตให้ผู้ใช้ข้ามหน้าจอการเข้าสู่ระบบตามที่คาดไว้ หรือเพื่อเปิดใช้งานการควบคุมโดยผู้ปกครอง

สำหรับ Android 10 และ 11 เฟรมเวิร์กใช้การสุ่มแบบถาวรสำหรับเครือข่ายทั้งหมดเมื่อเปิดใช้งานการสุ่ม MAC

การสุ่มแบบไม่ต่อเนื่อง

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

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

หากไม่มีสถานการณ์เหล่านี้เกิดขึ้น กรอบงานจะใช้ที่อยู่ MAC แบบสุ่มก่อนหน้านี้เพื่อเชื่อมต่อกับเครือข่าย

ตัวเลือกนักพัฒนาสำหรับการสุ่มแบบไม่ต่อเนื่อง

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

ตัวเลือกการสุ่ม MAC แบบไม่ต่อเนื่องของ Wi-Fi

รูปที่ 2 ตัวเลือกการสุ่ม MAC แบบไม่ต่อเนื่องของ Wi-Fi