MAC 주소 무작위 지정 구현

Android 8.0부터 Android 기기는 네트워크와 현재 연결되지 않은 상태에서 새 네트워크를 탐색할 때 무작위 MAC 주소를 사용합니다. Android 9에서는 기기가 Wi-Fi 네트워크에 연결할 때 무작위 MAC 주소를 사용하도록 개발자 옵션(기본적으로 사용 중지되어 있음)을 사용 설정할 수 있습니다.

Android 10에서는 기본적으로 클라이언트 모드, SoftAp, Wi-Fi Direct에서 MAC 주소 무작위 순서 지정이 사용 설정됩니다.

MAC 주소 무작위 지정은 리스너가 MAC 주소를 사용하여 기기 활동 기록을 작성하지 못하게 하여 사용자 개인 정보 보호를 향상합니다.

또한 MAC 주소는 Wi-Fi AwareWi-Fi RTT 작업의 일부로 무작위로 지정됩니다.

자세한 내용은 MAC 무작위 순서 지정 방식을 참고하세요.

구현

기기에서 MAC 주소 무작위 지정을 구현하려면 다음 단계를 따르세요.

  1. Wi-Fi 칩 공급업체와 협력하여 다음 HAL 메서드를 구현합니다.

    • IWifiStaIface#setMacAddress: 인터페이스의 MAC 주소를 구성합니다. 기본 구현은 인터페이스를 종료하고 MAC 주소를 변경하며 인터페이스를 다시 시작합니다.
    • IWifiStaIface#getFactoryMacAddress: ioctl 호출을 통해 wlan0의 공장 출고 시 MAC 주소를 가져옵니다.
    • ISupplicantP2pIface#setMacRandomization: 서플리컨트의 P2P MAC 주소 무작위 지정을 설정하거나 해제합니다.
  2. 설정 config.xml에서 config_wifi_connected_mac_randomization_supportedtrue로 설정합니다. 이 작업은 기기 맞춤 오버레이에서 완료할 수 있습니다.

    • 이 플래그는 클라이언트 모드 MAC 주소 무작위 지정의 사용 설정 여부를 제어하는 데 사용됩니다.
  3. 설정 config.xml에서 config_wifi_p2p_mac_randomization_supportedtrue로 설정합니다. 이 작업은 기기 맞춤 오버레이에서 완료할 수 있습니다.

    • 이 플래그는 Wi-Fi Direct MAC 주소 무작위 지정의 사용 설정 여부를 제어하는 데 사용됩니다.
  4. 유효성 검사에 설명된 메서드를 사용하여 구현을 테스트합니다.

시스템 UI는 다음과 같아야 합니다.

  • 각 SSID의 무작위 지정을 사용 설정 또는 사용 중지하는 옵션이 있어야 합니다.
  • 기본적으로 새로 추가된 모든 네트워크의 MAC 주소 무작위 지정을 사용 설정해야 합니다.

새 메시지를 표시하도록 구현하려면 설정 UI의 참조 구현을 사용하세요.

Android 9 이하를 실행하는 기기는 Wi-Fi MAC 주소 무작위 지정을 지원하지 않을 수 있습니다. 이러한 기기를 Android 10으로 업그레이드할 때는 Wi-Fi 공급업체 HAL make 파일에서 WIFI_HIDL_FEATURE_DISABLE_AP_MAC_RANDOMIZATION 플래그를 true로 설정하여 Wi-Fi MAC 주소 무작위 지정 기능을 사용 중지할 수 있습니다.

유효성 검사

이 기능이 의도한 대로 작동하는지 확인하려면 통합 테스트(ACTS)와 수동 테스트를 모두 실행합니다.

통합 테스트를 실행하려면 tools/test/connectivity/acts_tests/tests/google/wifi에 있는 ACTS 파일 WifiMacRandomizationTest.py를 사용하여 기기가 무작위 MAC 주소를 사용하며 각 네트워크의 무작위 MAC 주소를 올바르게 저장하는지 확인합니다.

수동 테스트를 실행하려면 다음 단계를 따르세요.

  1. 기기 오버레이에서 config_wifi_connected_mac_randomization_supportedtrue로 설정되어 있는지 확인하여 기기에 MAC 주소 무작위 지정이 사용 설정되어 있는지 확인합니다.
  2. Wi-Fi 네트워크에 연결합니다.
  3. 네트워크를 탭하여 네트워크 세부정보 페이지로 이동합니다. MAC 주소 무작위 지정이 사용 설정되었는지 확인합니다. 표시된 MAC 주소가 로컬에 생성된 비트를 1로 설정하고 멀티캐스트 비트를 0으로 설정한 무작위 MAC 주소인지 확인합니다.
  4. MAC 주소 무작위 지정을 사용 중지합니다. 동일한 네트워크에 연결하고 공장 출고 시 MAC 주소가 사용되고 있는지 확인합니다.
  5. 네트워크 세부정보 페이지에서 삭제를 탭하여 네트워크를 삭제합니다.
  6. 동일한 네트워크에 연결하고 동일한 무작위 MAC 주소가 사용되고 있는지 확인합니다.

Android 10 이상으로 업그레이드한 Android 10 이전 기기(MAC 주소 무작위 지정 지원 가능)에서 MAC 주소 무작위 지정을 테스트하려면 다음 단계를 따르세요.

  1. Android 9 이하를 실행하는 기기에는 저장된 네트워크가 하나 이상 있어야 합니다.
  2. Android 10 시스템 이미지를 플래시합니다.
  3. Wi-Fi 선택도구에서 저장된 모든 네트워크의 MAC 주소 무작위 지정이 사용 중지되어 있는지 확인합니다.
  4. MAC 주소 무작위 지정을 사용 설정합니다. 동일한 네트워크에 연결하고 무작위 MAC 주소가 사용되고 있는지 확인합니다.