Hành vi tạo địa chỉ MAC ngẫu nhiên

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.

Khi kết nối với một mạng Wi-Fi hoặc điểm truy cập, thiết bị của bạn sẽ sử dụng địa chỉ MAC. 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 một địa chỉ MAC ngẫu nhiên. Bạn 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 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 bạn 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 ban đầu (địa chỉ duy nhất trên toàn cầu).

Lựa chọn tạo địa chỉ MAC ngẫu nhiên

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ố địnhtạ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 cần dùng khi thiết bị của bạn 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 những 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ành true. Theo mặc định, lớp phủ này bị tắt (được đặt thành false).

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ạn bật tính năng ngẫu nhiên hoá MAC. Android tạo một địa chỉ MAC ngẫu nhiên liên tục 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 vẫn giữ nguyên cho đến khi bạn đặ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 bạn quên rồi thêm lại mạng Wi-Fi, vì địa chỉ MAC phụ thuộc vào các thông số của hồ sơ mạng.

Bạn cần có địa chỉ MAC cố định khi các mạng dựa vào tính năng duy trì địa chỉ MAC để cung cấp chức năng hữu ích. Ví dụ: chúng có thể giúp ghi nhớ một thiết bị và cho phép bạn 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ỉ MAC ngẫu nhiên, không cố định

Với chế độ tạo địa chỉ MAC ngẫu nhiên 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ẽ tạo lại địa chỉ MAC ngẫu nhiên 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 những 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 để sắp xếp lại ngẫu nhiên địa chỉ MAC.

Nếu không có trường hợp nào trong số này áp dụng, 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, bạn 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 các 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 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.

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

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.