Tính năng tạo địa chỉ MAC ngẫu nhiên 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 phần Triển khai tính năng ngẫu nhiên MAC. Trang này mô tả hành vi của tính năng tạo địa chỉ MAC ngẫu nhiên trong Android.
Các thiết bị sử dụng địa chỉ MAC 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 mà không cần mã hoá nên chúng có thể được ghi lại và sử dụng để có thể 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 ban đầu để liên kết với một 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 theo dõi và xác định riêng lẻ thiết bị.
Tính năng tạo địa chỉ MAC ngẫu nhiên giúp tă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 có độ dài 48 bit và thường được biểu thị bằng 12 chữ số hệ thập lục phân (6 octet vì mỗi octet là 8 bit) như 00:11:22:AA:BB:CC
. Tính năng sắp xếp ngẫu nhiên MAC sẽ sắp xếp ngẫu nhiên địa chỉ bằng cách đặt bit được quản lý cục bộ thành 1 và bit unicast là 0. 46 bit còn lại được
sắp xếp ngẫu nhiên.
Đối với các thiết bị chạy Android 10 trở lên, theo mặc định, khung này sẽ sử dụng địa chỉ MAC được tạo ngẫu nhiên. Người dùng có thể bật hoặc tắt tính năng tạo địa chỉ MAC ngẫu nhiên cho từng mạng thông qua một tuỳ chọn trong màn hình Thông tin chi tiết về mạng trong phần Cài đặt, như minh hoạ trong Hình 1. Nếu người dùng tắt tính năng tạo địa chỉ MAC ngẫu nhiên cho một mạng, thì khung này sẽ sử dụng địa chỉ MAC ban đầu (địa chỉ duy nhất trên toàn cầu).
Hình 1. Tuỳ chọn tạo địa chỉ MAC ngẫu nhiên.
Kiểu sắp xếp ngẫu nhiên MAC
Khung Android sử dụng hai loại tạo địa chỉ MAC ngẫu nhiên: tạo địa chỉ MAC ngẫu nhiên cố định và tạo địa chỉ MAC ngẫu nhiên không cố định. Nếu người dùng tắt tính năng ngẫu nhiên hoá MAC, thì địa chỉ MAC gốc sẽ được sử dụng.
Android xác định loại tạo địa chỉ MAC ngẫu nhiên 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 xáo trộn liên tục. Kể từ Android 12, Android sử dụng phương thức tạo số 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 việc tạo số ngẫu nhiên không liên tục sẽ được sử dụng cho mạng thông qua API
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
. - Mạng này là một mạng mở chưa gặp phải trang xác thực và lớp phủ
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
được đặt thànhtrue
. Lớp phủ này bị tắt (được đặt thànhfalse
) theo mặc định.
Sắp xếp ngẫu nhiên liên tục
Theo mặc định, Android sử dụng loại ngẫu nhiên ổn định khi bật tính năng ngẫu nhiên MAC. Android tạo một địa chỉ MAC ngẫu nhiên cố định dựa trên các tham số của hồ sơ mạng, bao gồm cả SSID, loại bảo mật hoặc FQDN (đối với mạng Passpoint). Địa chỉ MAC này sẽ giữ nguyên cho đến khi đặt lại về trạng thái ban đầu. Đị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 của địa chỉ MAC phụ thuộc vào các tham số của cấu hình mạng.
Địa chỉ MAC ổn định là cần thiết trong trường hợp mạng dựa vào địa chỉ MAC ổn định để 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ư dự kiến hoặc để bật chế độ kiểm soát của cha mẹ.
Đối với Android 10 và 11, khung này sẽ sử dụng quá trình ngẫu nhiên liên tục cho tất cả các mạng khi tính năng ngẫu nhiên hoá MAC được bật.
Sắp xếp ngẫu nhiên một cách bền vững
Trong loại tạo địa chỉ ngẫu nhiên không ổn định (dùng cho một số mạng trong Android 12 trở lên), mô-đun Wi-Fi sẽ tạo lại địa chỉ MAC ngẫu nhiên ở đầu mỗi kết nối hoặc khung sẽ 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 tạo lại địa chỉ MAC ngẫu nhiên trong các trường hợp sau:
- Thời hạn thuê DHCP đã hết và đã hơn 4 giờ kể từ lần gần nhất 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 hồ sơ mạng được tạo cách đây hơn 24 giờ. Việc tạo lại địa chỉ MAC ngẫu nhiên chỉ xảy ra khi bắt đầu một kết nối mới. Wi-Fi sẽ không chủ động ngắt kết nối để tạo lại địa chỉ MAC ngẫu nhiên.
Nếu không có trường hợp nào trong số này áp dụng, khung sẽ sử dụng địa chỉ MAC được tạo ngẫu nhiên trước đó để kết nối với mạng.
Tuỳ chọn cho nhà phát triển để sắp xếp ngẫu nhiên một cách không ổn định
Đối với các thiết bị chạy Android 11 trở lên, người dùng có thể bật tính năng tạo địa chỉ MAC ngẫu nhiên không cố định trên toàn cầu cho tất cả mạng Wi-Fi (đã bật tính năng tạo địa chỉ MAC ngẫu nhiên) thông qua màn hình tuỳ chọn cho nhà phát triển. Bạn có thể bật tuỳ chọn bật tính năng sắp xếp ngẫu nhiên MAC không ổn định cho tất cả hồ sơ tại phần Cài đặt > Tuỳ chọn cho nhà phát triển > Sắp xếp ngẫu nhiên địa chỉ MAC không ổn định cho Wi-Fi.
Hình 2. Tuỳ chọn sắp xếp ngẫu nhiên địa chỉ MAC không ổn định khi kết nối Wi-Fi.