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ó mã hoá, nên có thể bị thu thập và 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 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 tạo địa chỉ MAC ngẫu nhiên sẽ tạo địa chỉ ngẫu nhiên bằng cách đặt bit do cục bộ quản lý thành 1 và bit unicast thành 0. 46 bit còn lại được tạo 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 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.
Các loại địa chỉ MAC ngẫu nhiên
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 tạo địa chỉ MAC ngẫu nhiên, thì địa chỉ MAC ban đầu 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 tạo số ngẫu nhiê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 ổn định dựa trên các tham số của hồ sơ mạng, bao gồm 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 thiết bị được đặt lại về trạng thái ban đầu. Địa chỉ MAC không được tạo ngẫu nhiên lại 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 hồ sơ 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ử dụng tính năng tạo giá trị ngẫu nhiên liên tục cho tất cả mạng khi bật tính năng tạo giá trị MAC ngẫu nhiên.
Tạo địa chỉ MAC ngẫu nhiên, không cố định mỗi khi kết nối Wi-Fi
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 hạn 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 dành cho nhà phát triển để tạo số 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 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ể tìm thấy tuỳ chọn bật tính năng tạo địa chỉ MAC ngẫu nhiên, không cố định mỗi khi kết nối Wi-Fi cho tất cả hồ sơ tại Cài đặt > Tuỳ chọn cho nhà phát triển > Tạo địa chỉ MAC ngẫu nhiên, không cố định mỗi khi kết nối Wi-Fi.
Hình 2. Tuỳ chọn tạo địa chỉ MAC ngẫu nhiên, không cố định mỗi khi kết nối Wi-Fi.