Tính năng tạo địa chỉ MAC ngẫu nhiên cho phép 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 bài viết Triển khai tính năng ngẫu nhiên hoá địa chỉ MAC. Trang này mô tả hành vi của tính năng ngẫu nhiên hoá địa chỉ MAC 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 đi mà không mã hoá, nên chúng 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ạng Wi-Fi. Địa chỉ MAC của nhà máy là duy nhất và tĩnh trên toàn cầu, cho phép theo dõi và xác định từng thiết bị.
Tính năng tạo địa chỉ MAC ngẫu nhiên giúp 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 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), chẳng hạn như 00:11:22:AA:BB:CC
. Tính năng ngẫu nhiên hoá địa chỉ MAC sẽ ngẫu nhiên hoá địa chỉ bằng cách đặt bit được quản trị cục bộ thành 1 và bit đơn hướng thành 0. 46 bit còn lại được ngẫu nhiên hoá.
Đố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 ngẫu nhiên. Người dùng có thể bật hoặc tắt tính năng ngẫu nhiên hoá địa chỉ MAC cho từng mạng thông qua một lựa chọn trên 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 ngẫu nhiên hoá địa chỉ MAC cho một mạng, thì khung sẽ sử dụng địa chỉ MAC gốc (địa chỉ duy nhất trên toàn cầu).
Hình 1. Lựa chọn gán địa chỉ MAC ngẫu nhiên.
Các loại địa chỉ MAC ngẫu nhiên
Khung Android sử dụng 2 loại tính năng tạo địa chỉ MAC ngẫu nhiên: tạo địa chỉ ngẫu nhiên cố định và tạo địa chỉ 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á địa chỉ MAC, thì địa chỉ MAC ban đầu sẽ được dùng.
Android xác định loại ngẫu nhiên hoá địa chỉ MAC sẽ dùng khi thiết bị liên kết với một mạng Wi-Fi. Theo mặc định, Android sử dụng tính năng ngẫu nhiên hoá liên tục. Kể từ Android 12, Android sẽ sử dụng tính năng ngẫu nhiên hoá không liên tục trong các trường hợp sau:
- Một ứng dụng đề xuất mạng chỉ định rằng tính năng ngẫu nhiên hoá không liên tục sẽ được dùng cho mạng thông qua API
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
. - Mạng này là mạng mở, chưa gặp phải trang xác thực và lớp phủ
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
được đặt thànhtrue
. Theo mặc định, lớp phủ này bị tắt (được đặt thànhfalse
).
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 hoá liên tục khi bật tính năng ngẫu nhiên hoá địa chỉ MAC. Android tạo một địa chỉ MAC ngẫu nhiên liên tục dựa trên các thông 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 vẫn giữ nguyên cho đến khi bạn đặt lại về trạng thái ban đầu. Địa chỉ MAC sẽ 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 cố định là cần thiết trong trường hợp các mạng dựa vào tính cố định của địa chỉ MAC để cung cấp chức năng hữu ích cho người dùng, ví dụ: để 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 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 ngẫu nhiên hoá liên tục cho tất cả các mạng khi bật tính năng ngẫu nhiên hoá MAC.
Tạo địa chỉ ngẫu nhiên không cố định
Trong loại ngẫu nhiên hoá không liên tục (được dùng cho một số mạng trong Android 12 trở lên), mô-đun Wi-Fi sẽ ngẫu nhiên hoá 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 sẽ tạo lại địa chỉ MAC ngẫu nhiên trong các trường hợp sau:
- Thời gian thuê DHCP đã hết hạn và đã quá 4 giờ kể từ lần cuối thiết bị ngắt kết nối vớ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ờ. Quá trình tạo lại địa chỉ MAC ngẫu nhiên chỉ diễn 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 xảy ra, thì khung sẽ sử dụng địa chỉ MAC đã được ngẫu nhiên hoá trước đó để kết nối với mạng.
Tuỳ chọn dành cho nhà phát triển để ngẫu nhiên hoá 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 ngẫu nhiên hoá địa chỉ 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 tính năng ngẫu nhiên hoá địa chỉ MAC) thông qua màn hình tuỳ chọn cho nhà phát triển. Bạn có thể tìm thấy lựa chọn bật tính năng tạo địa chỉ MAC ngẫu nhiên, không cố định cho tất cả các hồ sơ tại phần 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. Lựa chọn tạo địa chỉ MAC ngẫu nhiên, không cố định mỗi khi kết nối Wi-Fi.