오늘은 Wi-Fi 망에서 802.1x 기반으로 가입자가 인증을 받고, 인터넷을 사용하는 흐름(call flow)에 대해 설명 드리도록 하겠습니다.
일단 기술적으로 들어가기 앞서 현 국내 통신 사업자의 Wi-Fi Hotspot의 인증방식에 알아 보도록 하죠.
"내가 사랑하는 KT"의 Wi-Fi Hotspot
KT Wi-Fi Hotspot에서 제공하는 SSID는 다음과 같습니다.
- ollehWiFi (secure, 자물쇠 모양 있는거): 단말(요즘 SmartPhone, SmartPads류에 국한)의 SIM(USIM) 카드내에 저장되어 있는 IMSI값으로 가입자 인증을 하며, 그 인증 프로토콜은 802.1x에서 규정하고 있는 EAP-AKA임
- NESPOT, OllehWifi (자물쇠 모양 없는 거): 802.1x 기반의 인증이 아닌 사업자 고유의 방식으로 판단됨. 가입자 단말의 MAC 주소를 미리 KT 서버에 등록하고, 이 MAC 기반으로 인증을 하거나 또는 KT에서 발급한 ID/PW를 가입자가 KT Portal 혹은 KT에서 제공한 CM(Connection Manager)을 통해 입력하여 인증 받음
여기서 SSID란? Wi-Fi 서비스를 나타내며, AP가 무선구간으로 브로드캐스팅하는 AP의 이름임. 하나의 AP는 여러개의 SSID를 가질 수 있음 (즉, KT의 AP 하나가 OllehWiFi와 NETSPOT이란 SSID를 무서구간으로 브로드캐스팅함. 각 SSID 별로 인증/암호화 방식을 따로 가질 수 있음)
"내가 동경하는 SK Telecom"의 WI-Fi Hotspot
SK Telecom Wi-Fi Hotspot에서 제공하는 SSID는 다음과 같습니다.
- T wifi zone (secure, 자물쇠 모양 있는거): KT와 동일하게 Smartphone/iPads/GalxyTab의 SIM(USIM) 카드내에 있는 ID인 IMSI값으로 가입자 인증을 하며, 그 인증 프로토콜은 802.1x에서 규정하고 있는 EAP-AKA임
- T wifi zone (자물쇠 모양 없는거): MAC 인증 혹은 ID/PW 인증
"내가 응원하는 LG U+"의 Wi-Fi Hotspot
LG U+ Wi-Fi Hotspot에서 제공하는 SSID는 다음과 같습니다.
- U+ zone (secure, 자물쇠 모양 있는거): 802.1x에서 규정하고 있는 MSCHAPv2 over PEAP(Protected EAP)을 사용. 쉽게 말해 가입자의 ID/PW 기반으로 인증을 하는 방식임 (EAP-TTLS와 매우 유사)
자. 오늘은 이 중에서 EAP-AKA 기반의 인증 및 인터넷 접속 흐름에 대해서 설명드리도록 하겠습니다. 아래 예를 KT ollehWiFi(secure)로 하였으나 SK Telecom의 T wifi zone(secure)도 본 그림과 유사할 것입니다. (KT, SK Telecom 모두 표준에 근거하여 망을 설계하면다면 아래와 같을 것입니다.)
- 모든 AP들은 Beacon 메시지를 무선 구간에서 브로드캐스팅하고 있습니다. 본 메시지에는 SSID(AP 이름 = ollehWiFi), AP의 MAC 주소, 그리고 본 SSID에 대한 암호화 방식(여기서는 WPA2 기반)을 단말에게 알려 줍니다. 따라서 Smartphone 등으로 무선랜을 검색하면 AP 별로 (1) SSID 이름과 함께, (2) 암호화 여부(olleahWiFi 옆에 자물쇠 모양 존재 여부)를 표시 해 줍니다.
- 사용자가 ollehWiFi (자물쇠 모양 있는거)를 선택하였습니다.
- 그럼 단말은 AP와 802.11 association 과정을 거칩니다. 별건 아니구요. 유선으로 얘기하면 "단말과 연결된 랜 케이블을 L2 switch포트에 연결하는" 행위와 같습니다.
- 자 이제 가입자 인증을 해야죠. ollehWiFi(자물쇠 있는 것)는 EAP-AKA 인증 방식을 사용합니다. EAP-AKA는 상호 인증이므로 망이 단말을 인증하고, 또한 단말도 망을 인증합니다. 이를 위해 Smartphone에 장착된 SIM(USIM) 카드에는 사용자 ID 역할을 하는 IMSI와 인증에 사용되는 K(Security Key)가 들어 있고 IMSI가 AP로 전달됩니다. (EAP-AKA over EAPoL)
- 그리고 AP는 RADIUS 프로토콜 메시지인 Access Request를 통해 본 IMSI 값을 AAA 서버로 전달합니다. (EAP-AKA over RADIUS) AAA 서버에는 가입자별 IMSI와 K가 미리 Provisioning 되어 있어야 합니다.
- 인증 결과는 RADIUS 프로토콜 메시지인 Access Accept을 통해 AP로 "인증 성공!"을 알리구요. 이때 MSK(Master Session Key)라는게 함께 전달이 되는데, 이를 Master Key로 여러가지 복잡한 계산과 메시지 교환을 통해(9번 과정) 무선 구간의 유저 데이터를 암호화 할 수 있게 됩니다.
- 인증 성공 사실을 단말에게 알립니다.
- 이제 단말과 AP 간에 무선 구간을 암호화 및 무결성 보호를 위한 절차를 밟게 됩니다. 그래서 8번 절차가 끝나면 이제 모든 사용자 데이터는 암호화 및 무결성 보호가 됩니다. DHCP 메시지도 마찬가지로 보호되지요.
- 이제 단말은 IP 주소를 할당(임대) 받기 위해서 DHCP 메시지(DHCP Discover/Request)를 보내고, 이를 수신한 AP는 DHCP Server로써 단말에 IP 주소를 할당해 줍니다(DHCP Offer/Ack). 확인을 해 보니 KT, SK Telecom의 Hotspot의 경우 AP가 DHCP 서버 기능으로 단말에 사설 IP를 할당해 주고, AP가 PAT(여러개의 사설 IP를 하나의 공인 IP로 변환하는 기능. 기술적으로 본 기능은 PAT라 부르고, NAT는 좀 다른건데 업계에서는 통상적으로 그냥 NAT라 표현하는 것 같습니다.)를 수행 하여 AP가 가지고 있는 하나의 공인 IP로 외부(인터넷)으로 나가게 됩니다.
- 단말에 IP 주소를 할당 해 준 AP는 이제 AAA 서버로 Accounting Request (Start)를 보내어 가입자가 Wi-Fi 망을 사용하기 시작하였고, 따라서 Accounting을 시작하겠음을 알립니다. 이 Accounting 메시지에는 사용자 ID(IMSI), 사용자에게 할당된 IP 주소, 단말 MAC 주소, 단말이 송수신한 패킷 양, 단말이 송수신한 패킷의 바이트 양등이 포함됩니다.
- 단말에 IP 주소까지 할당 되었으니 이제 가입자는 인터넷을 사용하게 되고, 앞에서 말씀드린 바와 같이 AP는 PAT/NAT를 수행합니다. (단말은 SIP(Source IP)를 172.30.10.10으로 해서 보내면 이를 수신한 AP는 PAT/NAT를 수행하여 SIP를 공인 IP인 123.228.77.23으로 변경하여 인터넷으로 송신)
- AP는 자신의 기본 설정 혹은 AAA가 Access Accept에서 알려준 Interval 값(예. 300초)의 주기로 AAA 서버에 Accounting Request (Interim) 메시지를 지속적으로 보냅니다.
- 네... 지속적으로 Accounting Request (Interim) 메시지를 보냅니다.
- 가입자가 Wi-Fi 접속을 해제하면 단말과 AP 간에 Disassociation 과정이 이루어 집니다. 유선망으로 얘기하면 L2 switch에서 랜 케이블를 빼는 거와 같은 행위지요.
- 가입자가 망에서 빠져 나왔으므로, AP는 그 사실을 Accounting Request (Stop)을 통해 AAA에게 알리게 됩니다.
LG U+의 SSID=U+ zone도 위 그림에서 절차 #4 ~ #7 과정이 MSCHAPv2 over PEAP인 것만 다르고 나머지는 동일한 절차일 것입니다.
다음에는 국내 통신 사업자의 MAC 인증, ID/PW 인증에 대한 기술도 분석하여 설명 드리도록 하겠습니다.
좋은 정보 감사합니다.
혹시 SKT나 Olleh 등에서 WiFi 접속 시에 중계 사이트 ( ? ) 등으로 연결하도록 하는 기능 등은 어떻게 구현되는지 알 수 있을 까요? 제가 오드로이드 등을 이용하여서 NAT 기능을 구현해서 사용자가 Wi-Fi에 연결되도록 하고자 하는데 이 때 사용자가 제가 정의한 사이트를 한번 거치고 Wi-Fi를 이용하도록 하고자 하는데 Wi-Fi 구현 단계에서 어떻게 구현해야 할지 몰라서 질문 올립니다. 2012년 글이라 늦은 댓글이긴 한데 혹시 보신다면 답변 부탁드립니다.