각 인증별 상황에 따른 무선 패킷 분석을 통해 각 인증에서 어떻게 동작하는지에 대한 충분한 개념이해를 할 수 있다.
캡쳐한 무선 환경은 다음과 같다.
공유기 | 00:26:66:cd:bd:a4 |
Station | 00:11:5f:f0:c3:11 |
공유기 설정 - NONE(암호없음)
접속 성공 시
아래는 암호가 걸려있지 않은 공유기에 접속이 성공했을 때의 과정을 나타낸 것이다.
위의 인증 및 접속 과정에서 가장 중요한 프레임은 'IEEE802.11 wireless LAN management frame' 이며 여기에 인증 결과를 담아 실어보낸다.
잘못된 인증방식(WPA2)으로 접속 시
접속시도를 하지 않음. 실제 스캔에서 얻은 해당 공유기의 인증 정보와 다름에도 WPA2 로 접속을 시도할 때, wpa_supplicant 에서 필터링하여, 명령어가 드라이버에 전달되지 않아 접속에 필요한 패킷 자체가 전송되지 않는다.
잘못된 인증방식(SHARED)으로 접속 시
접속시도를 하지 않음. 실제 스캔에서 얻은 해당 공유기의 인증 정보와 다름에도 SHARED 로 접속을 시도할 때, wpa_supplicant 에서 필터링하여, 명령어가 드라이버에 전달되지 않아 접속에 필요한 패킷 자체가 전송되지 않는다.
잘못된 인증방식(OPEN)으로 접속 시
접속시도를 하지 않음. 실제 스캔에서 얻은 해당 공유기의 인증 정보와 다름에도 OPEN 으로 접속을 시도할 때, wpa_supplicant 에서 필터링하여, 명령어가 드라이버에 전달되지 않아 접속에 필요한 패킷 자체가 전송되지 않는다.
잘못된 SSID 로 접속 시
접속시도를 하지 않음. 어찌보면, 너무 당연한 건데, 스캔 리스트에 없는 엉뚱한 SSID 로 접속 시도를 하면, wpa_supplicant 에서 필터링하여, 명령어가 드라이버에 전달되지 않아 접속에 필요한 패킷 자체가 전송되지 않는다.
만일 스캔 리스트 상의 다른 SSID 로 접속시도를 한다면, 그에 따른 접속 절차가 진행될 것이다.
공유기 설정 - OPEN(개방모드)
접속 성공 시
아래는 인증방식이 OPEN(개방모드)로 설정된 공유기에 접속이 성공했을 때의 과정을 나타낸 것이다. 앞서 설명한 암호가 지정되지 않은 공유기에 접속했을 때와 동일한 과정을 거치고 있음을 알 수 있다.
잘못된 비밀번호와 키 번호로 접속 시
아래는 공유기에 설정된 패스워드가 아닌 다른 패스워드, 그리고 키 넘버 또한, 설정된 것이 아닌 다른 숫자를 지정하여 접속 할 때의 모습이다.
정확한 패스워드와 키 번호를 입력하여 접속이 성공했던 경우와 동일한 것을 볼 수 있다.
잘못된 정보를 입력하더라도, 접속이 된 것으로 인식하기 때문에, wpa_supplication 에서는 이후 별다른 동작을 하지 않는다(접속이 된 것으로 판단하기 때문이다. 참고로 접속이 안되거나 끊어지면, 스캔을 하든지, 아니면 재접속 시도를 한다).
다시말해 드라이버 레벨에서는 정확한 접속 여부를 판단할 수 없다. 때문에 이러한 문제를 해결하기 위해 2가지 방법이 주로 사용되고 있다.
- DHCP 가 제대로 할당되었는지 여부
- cfg80211/nl80211 사용
제대로된 패스워드와 키 번호가 아닐 경우, 공유기에서는 DHCP 할당을 하지 않는다. 이를 체크하여, 접속 여부를 판단할 수 있다. 하지만 이런 경우, DHCP 의 할당여부를 판단하기 위해 일정 시간을 기다려야 한다.
그래서 나온 것이 두번째 방법인데, 기본적으로 wpa_supplicant 는 WEXT 라는 드라이버 인터페이스를 사용한다. WEXT 방식에서는 앞서 설명한 문제를 피할 수 없다.
최근에 나온 cfg80211/nl80211 방식의 경우, 드라이버 레벨에 바로 성공 여부를 알 수 있다. 이 방식을 사용하기 위해서는 먼저 드라이버에서 지원 여부를 확인 및 재빌드 한 뒤, wpa_supplicant 의 빌드 옵션을 수정해야 하고, Netlink 라이브러리를 사용해야 한다.
잘못된 비밀번호와 올바른 키 번호로 접속 시
앞서와 동일하게 접속된 것으로 인식한다. 비밀번호와 키번호의 올바른지 구분에 상관없이 접속에 성공한 것으로 동작한다.
잘못된 인증방식(NONE)으로 접속 시
wpa_supplicant 상에서 스캔된 정보와 다를 시 필터링하여 시도 조차하지 않는다.
잘못된 인증방식(WPA2)으로 접속 시
wpa_supplicant 상에서 스캔된 정보와 다를 시 필터링하여 시도 조차하지 않는다.
잘못된 인증 방식(SHARED)으로 접속 시
공유기 설정 - SHARED(공유모드)
접속 성공 시
아래는 인증방식이 SHARED(공유모드)로 설정된 공유기에 접속이 성공했을 때의 과정을 나타낸 것이다.
앞서 살펴본 NONE, OPEN(개방모드) 과는 달리, 인증 부분에 실제 키를 보내고 이에 대한 결과를 받는 과정이 추가되어 있다. 이것 때문에 SHARED 모드에서는 잘못된 비밀번호로 접속 시도에 대한 구분이 가능하다.
올바른 비밀번호와 잘못된 키 번호로 접속 시
잘못된 비밀번호와 올바른 키 번호로 접속 시
잘못된 인증방식(NONE)으로 접속 시
wpa_supplicant 상에서 스캔된 정보와 다를 시 필터링하여 시도 조차하지 않는다.
잘못된 인증방식(WPA2)으로 접속 시
wpa_supplicant 상에서 스캔된 정보와 다를 시 필터링하여 시도 조차하지 않는다.
잘못된 인증방식(OPEN)으로 접속 시
아래 그림 처럼, 접속이 된다. 확실히 이해가 되진 않지만, 접속된 것으로 인식하고, 실제 IP 할당도 성공적으로 받는다.
하지만, 위의 경우는 비밀번호와 키 번호가 모두 정확히 맞아야 접속이 되는 경우다. 둘 중에 하나라도 틀리면, 접속되지 않는다.
공유기 설정 - WPA2
접속 성공 시
WPA2 은 다른 인증 방식과는 다르게 접속(Association)이 된 이후에 키 값을 전송한다. 또한 EAPOL 이라는 프로토콜을 사용하여 키를 전송하기 때문에 보안성이 높다. 처음 인증할 때는 마치 NONE 이나 OPEN(개방모드) 처럼 접속한다.
잘못된 비밀번호로 접속 시
이후 재접속 시
접속에 실패하고 난 뒤, wpa_supplicant 에서 같은 정보로 재접속을 시도 한다. 아래 그림은 그 과정이다.
잘못된 비밀번호로 접속 시도를 하기 때문에 결과는 앞서와 동일하다.
잘못된 인증방식(OPEN)으로 접속 시
마치 OPEN(개방모드)로 접속된 것과 같은 모습이다. Station 측에서는 OPEN 으로 접속시도를 했기 때문에 이후에 EAPOL 을 이용하여 Key 를 전송하지는 않는다. 접속 된 것으로 보이지만, 실제 통신은 되지 않는다.
잘못된 인증방식(SHARED)로 접속 시
잘못된 키값(6자리)으로 접속 시
원래 최소 8자 이상이지만, 6자로 접속 시, wpa_supplicant 에서 필터링하여 아예 시도조차 하지 않는다.