Wi-Fi 간편 액세스

Android 10에는 기기 프로비저닝 프로토콜(DPP)이라고도 하는 Wi-Fi Easy Connect 프로토콜 지원이 도입되었습니다. Wi-Fi Easy Connect는 Wi-Fi Protected 설정(WPS)의 대안으로 Wi-Fi Alliance(WFA)에 의해 도입되었습니다. WPS는 Android 9에서 지원 중단되었습니다.

Wi-Fi Easy Connect는 다음과 같은 간단하고 안전한 방법을 제공합니다.

  • 비밀번호를 입력하지 않고도 헤드리스 기기를 포함한 Wi-Fi 기기를 네트워크에 온보딩합니다.
  • 비밀번호를 모르거나 입력하지 않고도 Wi-Fi 네트워크에 참여합니다.

부트스트랩 및 인증은 URI를 사용하여 구성되며 URI는 카메라를 사용해 QR 코드를 스캔하여 획득하거나 예를 들어 BLE 또는 NFC를 사용하여 대역 외로 구성됩니다.

Wi-Fi Easy Connect는 암호화된 채널을 사용하여 기기 간에 Wi-Fi 사용자 인증 정보를 전송하며 공개 작업 프레임을 사용하므로 기기는 기존 액세스 포인트를 사용할 수 있습니다.

Android 10은 개시자(initiator) 모드에서만 Wi-Fi Easy Connect를 지원합니다(응답자[responder] 모드는 지원되지 않음). 다음과 같은 작동 모드가 지원됩니다.

  • Initiator-Configurator: QR 코드를 스캔하여 네트워크 사용자 인증 정보를 새 기기로 전송합니다.
  • Initiator-Enrollee: 네트워크 QR 코드를 스캔하여 네트워크에 참여합니다.

Android 10은 WPA2용 사전 공유 키(PSK) 프로토콜 및 WPA3용 SAE(Simultaneous Authentication of Equals) 프로토콜을 지원합니다.

Wi-Fi Easy Connect는 클라이언트 모드에서만 지원됩니다(SoftAP 모드는 지원되지 않음).

구현

Wi-Fi Easy Connect를 지원하려면 Android 오픈소스 프로젝트(AOSP)에서 제공되는 서플리컨트 인터페이스를 구현합니다. 구현된 인터페이스에 따라 다음 위치에 있습니다.

DPP를 지원하려면 다음이 필요합니다.

  • DPP를 지원하는 Linux 커널 패치:

    • cfg80211
    • nl80211
  • DPP를 지원하는 wpa_supplicant

  • DPP를 지원하는 Wi-Fi 드라이버

  • DPP를 지원하는 Wi-Fi 펌웨어

Android 10은 앱에서 사용하도록 다음과 같은 공개 API를 제공합니다.

Wi-Fi Easy Connect 사용 설정

Android 프레임워크에서 Wi-Fi Easy Connect를 사용 설정하려면 wpa_supplicant 구성 파일 android.config에 다음과 같이 CONFIG_DPP 컴파일 옵션을 포함합니다.

# Easy Connect (Device Provisioning Protocol - DPP)
CONFIG_DPP=y

유효성 검사

구현을 테스트하려면 다음 테스트를 실행하세요.

단위 테스트

DppManagerTest를 실행하여 DPP의 기능 플래그 동작을 확인합니다.

atest DppManagerTest

통합 테스트(ACTS)

통합 테스트를 실행하려면 tools/test/connectivity/acts_tests/tests/google/wifi에 있는 Android 커뮤니케이션 테스트 도구 모음(ACTS) 파일 WifiDppTest.py를 사용합니다.

VTS 테스트

HIDL 인터페이스가 구현된 경우 VtsHalWifiSupplicantV1_2TargetTest를 실행하여 서플리컨트 HAL v1.2의 동작을 테스트합니다.

AIDL 인터페이스가 구현된 경우 VtsHalWifiSupplicantStaIfaceTargetTest를 실행하여 서플리컨트 HAL의 동작을 테스트합니다.