Hành vi ngẫu nhiên hóa MAC

Tính năng ngẫu nhiên hóa MAC cho phép các thiết bị sử dụng địa chỉ MAC ngẫu nhiên khi kết nối với mạng Wi-Fi. Để biết hướng dẫn triển khai, hãy xem Triển khai ngẫu nhiên MAC . Trang này mô tả hoạt động ngẫu nhiên hóa MAC trong Android.

Địa chỉ MAC được các thiết bị sử dụng khi kết nối với mạng Wi-Fi hoặc điểm truy cập. Vì các địa chỉ MAC này được truyền đi mà không mã hóa nên chúng có thể bị thu thập và sử dụng để theo dõi vị trí của người dùng. Trước đây, các thiết bị sử dụng địa chỉ MAC của nhà sản xuất để liên kết với mạng Wi-Fi. Địa chỉ MAC của nhà sản xuất là duy nhất và tĩnh trên toàn cầu, cho phép thiết bị được theo dõi và nhận dạng riêng lẻ.

Tính năng ngẫu nhiên hóa MAC tăng cường quyền riêng tư của người dùng bằng cách sử dụng địa chỉ MAC ngẫu nhiên khi kết nối với mạng Wi-Fi.

Địa chỉ MAC dài 48 bit và thường được biểu thị bằng 12 chữ số hex (6 octet vì mỗi octet là 8 bit), chẳng hạn như 00:11:22:AA:BB:CC . Tính năng ngẫu nhiên hóa MAC ngẫu nhiên hóa địa chỉ bằng cách đặt bit được quản lý cục bộ thành 1 và bit unicast thành 0. 46 bit còn lại được chọn ngẫu nhiên.

Đối với các thiết bị chạy Android 10 trở lên, khung sử dụng địa chỉ MAC ngẫu nhiên theo mặc định. Người dùng có thể bật hoặc tắt tính năng ngẫu nhiên hóa MAC cho từng mạng thông qua một tùy chọn trên màn hình Chi tiết mạng trong Cài đặt , như trong Hình 1. Nếu người dùng tắt tính năng ngẫu nhiên hóa MAC cho một mạng, khung sẽ sử dụng địa chỉ MAC gốc (địa chỉ duy nhất trên toàn cầu).

Tùy chọn ngẫu nhiên MAC

Hình 1. Tùy chọn ngẫu nhiên MAC.

Các loại ngẫu nhiên MAC

Khung Android sử dụng hai loại ngẫu nhiên MAC: ngẫu nhiên liên tụcngẫu nhiên không liên tục . Nếu người dùng tắt tính năng ngẫu nhiên hóa MAC thì địa chỉ MAC gốc sẽ được sử dụng.

Android xác định loại ngẫu nhiên MAC nào sẽ sử dụng khi thiết bị liên kết với mạng Wi-Fi. Theo mặc định, Android sử dụng tính năng ngẫu nhiên liên tục. Bắt đầu từ Android 12, Android sử dụng tính năng ngẫu nhiên không liên tục trong các trường hợp sau:

  • Ứng dụng đề xuất mạng chỉ định rằng sử dụng ngẫu nhiên không liên tục cho mạng thông qua API WifiNetworkSuggestion.Builder#setMacRandomizationSetting .
  • Mạng này là mạng mở chưa gặp phải cổng bị khóa và lớp phủ config_wifiAllowEnhancedMacRandomizationOnOpenSsids được đặt thành true . Lớp phủ này bị tắt (được đặt thành false ) theo mặc định.

Ngẫu nhiên liên tục

Android sử dụng loại ngẫu nhiên liên tục theo mặc định khi tính năng ngẫu nhiên MAC được bật. Android tạo địa chỉ MAC ngẫu nhiên liên tục dựa trên các tham số của cấu hình mạng bao gồm SSID, loại bảo mật hoặc FQDN (dành cho mạng Passpoint). Địa chỉ MAC này vẫn giữ nguyên cho đến khi khôi phục cài đặt gốc. Địa chỉ MAC không được sắp xếp lại ngẫu nhiên nếu người dùng quên và thêm lại mạng Wi-Fi vì địa chỉ MAC phụ thuộc vào các tham số của cấu hình mạng.

Địa chỉ MAC liên tục là cần thiết trong trường hợp mạng dựa vào tính liên tục của địa chỉ MAC để cung cấp chức năng hữu ích cho người dùng, chẳng hạn như để ghi nhớ một thiết bị và cho phép người dùng bỏ qua màn hình đăng nhập như mong đợi hoặc để bật quyền kiểm soát của phụ huynh.

Đối với Android 10 và 11, khung này sử dụng tính năng ngẫu nhiên hóa liên tục cho tất cả các mạng khi tính năng ngẫu nhiên hóa MAC được bật.

Ngẫu nhiên không liên tục

Trong loại ngẫu nhiên không liên tục, được sử dụng cho một số mạng trong Android 12 trở lên, mô-đun Wi-Fi sẽ ngẫu nhiên hóa lại địa chỉ MAC khi bắt đầu mỗi kết nối hoặc khung sử dụng địa chỉ MAC ngẫu nhiên hiện có để kết nối với mạng. Mô-đun Wi-Fi ngẫu nhiên hóa lại địa chỉ MAC trong các trường hợp sau:

  • Thời hạn thuê DHCP đã hết và đã hơn 4 giờ trôi qua kể từ lần cuối thiết bị ngắt kết nối khỏi mạng này.
  • MAC ngẫu nhiên hiện tại cho cấu hình mạng đã được tạo hơn 24 giờ trước. Việc tái ngẫu nhiên hóa địa chỉ MAC chỉ xảy ra khi bắt đầu kết nối mới. Wi-Fi sẽ không chủ động ngắt kết nối nhằm mục đích sắp xếp lại địa chỉ MAC một cách ngẫu nhiên.

Nếu không có tình huống nào trong số này xảy ra, khung sẽ sử dụng địa chỉ MAC ngẫu nhiên trước đó để kết nối với mạng.

Tùy chọn nhà phát triển cho ngẫu nhiên không liên tục

Đối với các thiết bị chạy Android 11 trở lên, người dùng có thể bật ngẫu nhiên MAC không liên tục trên toàn cầu cho tất cả các mạng Wi-Fi (đã bật ngẫu nhiên MAC) thông qua màn hình tùy chọn của nhà phát triển . Tùy chọn bật ngẫu nhiên MAC không liên tục cho tất cả các cấu hình được tìm thấy tại Cài đặt > Tùy chọn nhà phát triển > ngẫu nhiên hóa MAC không liên tục Wi-Fi .

Tùy chọn ngẫu nhiên MAC không liên tục của Wi-Fi

Hình 2. Tùy chọn ngẫu nhiên MAC không liên tục của Wi-Fi.