Android 10은 Wi-Fi Alliance(WFA)의 Wi-Fi Protected Access 버전 3(WPA3) 및 Wi-Fi Enhanced Open 표준을 지원합니다. 자세한 내용은 WFA 사이트의 보안을 참고하세요.
WPA3은 개인 및 기업 네트워크를 위한 새로운 WFA 보안 표준입니다. 현대적인 보안 알고리즘과 강력한 암호화 스위트를 사용하여 전반적인 Wi-Fi 보안을 개선하는 것이 목표입니다. WPA3에는 다음 두 요소가 있습니다.
- WPA3-Personal: 사전 공유 키(PSK) 대신 SAE(Simultaneous Authentication of Equals)를 사용하여 오프라인 사전 공격, 키 복구 및 메시지 위조와 같은 공격에 맞서 사용자에게 강력한 보안 보호 기능을 제공합니다.
- WPA3-Enterprise: 강력한 인증 및 링크 레이어 암호화 메서드와 민감한 보안 환경을 위한 192비트 보안 모드(선택사항)를 제공합니다.
Wi-Fi Enhanced Open은 Opportunistic Wireless Encryption(OWE)을 기반으로 하는 공용 네트워크의 새로운 WFA 보안 표준입니다. 카페, 호텔, 식당, 도서관 등 비밀번호로 보호되지 않는 개방형 네트워크에서 암호화를 제공하고 개인 정보를 보호합니다. Enhanced Open은 인증을 제공하지 않습니다.
WPA3 및 Wi-Fi Enhanced Open은 전반적인 Wi-Fi 보안을 개선하여 더 나은 개인 정보 보호 기능을 제공하고 알려진 공격을 강력하게 차단합니다. 아직 많은 기기가 이러한 표준을 지원하지 않거나 이러한 기능을 지원하기 위한 소프트웨어 업그레이드를 받지 못했으므로 WFA는 다음과 같은 전환 모드를 제안했습니다.
- WPA2/WPA3 전환 모드: 제공하는 액세스 포인트는 WPA2 및 WPA3 표준을 동시에 지원합니다. 이 모드에서 Android 10 기기는 WPA3을 사용하여 연결하고, Android 9 이하를 실행하는 기기는 WPA2를 사용하여 동일한 액세스 포인트에 연결합니다.
- WPA2/WPA3-Enterprise 전환 모드: 제공하는 액세스 포인트는 WPA2-Enterprise 및 WPA3-Enterprise 표준을 동시에 지원합니다.
- OWE 전환 모드: 제공하는 액세스 포인트는 OWE와 개방형 표준을 동시에 지원합니다. 이 모드에서 Android 10 기기는 OWE를 사용하여 연결하고, Android 9 이하를 실행하는 기기는 암호화 없이 동일한 액세스 포인트에 연결합니다.
Android 12는 기기에 WPA2를 사용하지 않고 WPA3을 대신 사용하도록 지시하는 메커니즘인 전환 중지 표시를 지원합니다. 기기가 이 표시를 수신하면 WPA3을 사용하여 전환 모드를 지원하는 WPA3 네트워크에 연결합니다. Android 12는 WPA3 Hash-to-Element(H2E) 인증 교환도 지원합니다. 자세한 내용은 WPA3 사양을 참고하세요.
WPA3 및 Wi-Fi Enhanced Open은 클라이언트 모드에서만 지원됩니다.
구현
WPA3 및 Wi-Fi Enhanced Open을 지원하려면 서플리컨트 HAL 인터페이스를 구현합니다.
Android 13부터 인터페이스는 HAL 정의에 AIDL을 사용합니다.
Android 13 이전의 출시에서는 인터페이스와 공급업체 파티션이 HIDL을 사용합니다.
HIDL 인터페이스는 hardware/interfaces/wifi/supplicant/1.3/
에서, AIDL 인터페이스는 hardware/interfaces/wifi/supplicant/aidl/
에서 찾을 수 있습니다.
WPA3 및 OWE를 지원하려면 다음이 필요합니다.
SAE 및 OWE를 지원하는 Linux 커널 패치
- cfg80211
- nl80211
SAE, SUITEB192 및 OWE를 지원하는
wpa_supplicant
SAE, SUITEB192 및 OWE를 지원하는 Wi-Fi 드라이버
SAE, SUITEB192 및 OWE를 지원하는 Wi-Fi 펌웨어
WPA3 및 OWE를 지원하는 Wi-Fi 칩
Android 10에서는 앱이 기기에서 다음 기능이 지원되는지를 확인할 수 있도록 공개 API 메서드가 제공됩니다.
WifiManager#isWpa3SaeSupported
WifiManager#isWpa3SuiteBSupported
WifiManager#isEnhancedOpenSupported
WifiConfiguration.java
에는 OWE, WPA3-Personal 및 WPA3-Enterprise에 필요한 쌍방향 암호화, 그룹 암호화, 그룹 관리 암호화 및 Suite B 암호화는 물론 새로운 키 관리 유형도 포함되어 있습니다.
WPA3 및 Wi-Fi Enhanced Open 사용 설정
Android 프레임워크에서 WPA3-Personal, WPA3-Enterprise 및 Wi-Fi Enhanced Open을 사용 설정하려면 다음과 같이 하세요.
WPA3-Personal:
wpa_supplicant
구성 파일에CONFIG_SAE
컴파일 옵션을 포함합니다.# WPA3-Personal (SAE) CONFIG_SAE=y
WPA3-Enterprise:
wpa_supplicant
구성 파일에CONFIG_SUITEB192
및CONFIG_SUITEB
컴파일 옵션을 포함합니다.# WPA3-Enterprise (SuiteB-192) CONFIG_SUITEB=y CONFIG_SUITEB192=y
Wi-Fi Enhanced Open:
wpa_supplicant
구성 파일에CONFIG_OWE
컴파일 옵션을 포함합니다.# Opportunistic Wireless Encryption (OWE) # Experimental implementation of draft-harkins-owe-07.txt CONFIG_OWE=y
WPA3-Personal, WPA3-Enterprise 또는 Wi-Fi Enhanced Open이 사용 설정되지 않았다면 사용자는 이러한 유형의 네트워크를 수동으로 추가, 검사 또는 연결할 수 없습니다.
유효성 검사
구현을 테스트하려면 다음 테스트를 실행하세요.
단위 테스트
SupplicantStaIfaceHalTest
를 실행하여 WPA3 및 OWE의 기능 플래그 동작을 확인합니다.
atest SupplicantStaIfaceHalTest
WifiManagerTest
를 실행하여 이 기능의 공개 API 동작을 확인합니다.
atest WifiManagerTest
통합 테스트(ACTS)
통합 테스트를 실행하려면 tools/test/connectivity/acts_tests/tests/google/wifi
에 있는 Android 커뮤니케이션 테스트 도구 모음(ACTS) 파일 WifiWpa3OweTest.py
를 사용합니다.
VTS 테스트
HIDL 인터페이스가 구현된 경우 다음을 실행합니다.
atest VtsHalWifiSupplicantV1_3TargetTest
AIDL 인터페이스가 구현된 경우 다음을 실행합니다.
atest VtsHalWifiSupplicantStaIfaceTargetTest