본문 바로가기
스터디/network

무선 네트워크 보안 WEP, WPA, WPA2 원리와 한계

by 깝태 2011. 3. 20.

 요즘 무선랜보안에 한창 관심이 쏘인다, 원래부터 공유기를 사게되면서 공부하고 싶었지만 기회는 없었다.
몇 일전에 넷북과 무선랜카드를 구입하게 된 이후로 한번 받게되면 크랙 실습을 해 보고자 그 전에 공부할려고 한다.

출처 - http://www.hardnara.com/kimsnetwork/print.php?no=454






 
무선 네트워크 보안
3. 무선 네트워크 보안

WEP (Wired Equivalent Privacy )

Wired Equivalent Privacy (WEP)는 무선 LAN 표준을 정의하는 IEEE 802.11 규약의 일부분으로 무선 LAN 운용간의 보안을 위해 사용되는 기술이다.
무선 LAN은 운용간에 전파를 이용하기 때문에, 전선이나 장비에 물리적으로 접근해야만 통신 내용을 도청할 수 있는 유선 통신과는 달리 외부의 침입에 의한 정보 유출의 가능성이 높다. 이를 보완하기 위해 고안된 기술이 WEP이다.


구현 원리

WEP는 무선 LAN에 연결된 어댑터와 액세스 포인트가 서로 주고받는 데이터를 64(40+24)비트 혹은 128(104+24)비트로 암호화함으로써 보안성을 강화시킨다. 이 때 암호화에 사용되는 키 값은 기기상호간에 일치하는 것이어야 한다. 이에 더해 데이터 송수신의 무결성을 위해 CRC-32 체크섬을 이용한다.


사용 범위와 보안상 한계

정보 유출의 위험이 크지 않은 일반 가정이나 공중 시설 등에서는 WEP 기술을 이용하지 않는 경우(이 경우에는 모든 데이터가 암호화되지 않아 전파 수신가능 거리에 있는 사람은 누구나 전파를 수신해 데이터의 내용을 확인할 수 있다)가 많다.
또한 WEP에 사용되는 암호키의 값이 노출되는 경우에는 누구나 통신의 내용을 해독해서 볼 수 있다는 단점이 있으며, 암호키의 값을 모르는 경우에도 널리 알려진 방법을 통해 누구나 데이터의 내용을 해독할 수 있는 취약점이 존재한다.
이러한 WEP 기술 자체의 보안 취약점 때문에 기업 등 보안을 중요시하는 곳에서는 이를 대체하는 WPA나 IEEE 802.11i 등의 다른 무선 LAN 보안 기술을 사용하는 것이 일반적이다.
 

WPA - PSK : Wi-Fi Protected Access - Pre Shared Key

무선랜을 구축할 때 암호화 방식을 사용하는 경우는 크게 세 가지로 나누어 볼 수 있다. 오픈 시스템 인증 방식에 WEP 암호화를 사용하지 않는 경우와  오픈 시스템 인증 방식에 WEP 암호화를 사용하는 경우, 그리고 마지막으로 쉐어드 키 인증 방식에 WEP 암호화를 사용하는 경우이다.
이 세 가지 방식은 보안에 매우 취약하며, WEP 키를 알아내는 방법 또한 많이 알려져서 위험에 노출되어 있는 상황이다.

오픈 시스템 without WEP encryption

오픈 시스템은 글자 그대로 인증이 없는 경우(즉, Null Authentication)이다.
인증 없이 접속하고 사용하는 데이터는 암호화를 하지 않는 구성이 바로 이 구성이다. 이러한 구성의 장점은 네트워크 성능이 가장 좋으며 사용자가 구성하고  사용하기에 가장 편리하다는 데 있다.
대부분의 경우 장비의 기본 셋팅만으로도 동작을 하며 사용자 편리P 주소만 설정해 주면 된다.
단점으로서는 보안이 떨어진다는 점이다.
이 구성을 공격하는 방법과 프로그램에는 여러 가지가 있으며 또한 공격 방법들이 상대적으로 단순하고 쉬워서 절대로 권장할 수 없는 구성이다.


오픈 시스템 with WEP Encryption40/104bit

오픈 시스템 인증은 인증이 별도로 없기 때문에 누구나 AP에 접속할 수 있지만 WEP 인크립션(Encryption)을 통해 데이터를 암호화하므로 WEP 키를 알지 못하면 통신이나 도청이 불가능하다. 그러나 최근에 발견된 WEP 알고리즘의 취약점으로 인해 WEP 키를 암호화된 데이터 트래픽만 가지고 알아낼 수 있는 기법들이 다양하게 알려지고 있다.


쉐어드 키 인증 (with WEP Encryption 40/104bit)

쉐어드 키 인증은 사용자가 AP에 접속 시 미리 설정한 WEP 키를 알아야만  인증을 하도록 하는 방법이다. 이러한 방법은 원래의 목적대로라면 오픈 시스템보다 보안성이 높아야 하지만 알고리즘의 취약점으로 인해 오히려 보안성이 떨어진다.
쉐어드 키 인증 알고리즘은 단순한 챌린지 리스폰스(Challenge-Response)  인증 방식을 응용한 것으로 리플레이(Replay) 공격이나  딕셔너리(Dictionary) 공격을 방어하는 수단이 갖춰져 있지 않다.
따라서 굳이 WEP 알고리즘의 취약점을 공격하지 않아도 인증 패킷만 스니핑을  해도 손쉽게 WEP 키를 알아낼 수 있는 것이다. 일단 WEP 키를 알아낸 후 AP에 접속하면 암호화 역시 동일한 키를 사용하므로 쉽게 내부 사용자와 같은 권한을 취득할 수 있다.


WPA - PSK (Wi-Fi Protected Access - Pre Shared Key)의 사용 배경, 동작 원리

기존의 WEP 암호화 방식은 취약한 보안으로 인해 기업환경에서는 거의 사용이 불가능해진 상태이다. WEP 알고리즘은 IV(Initialization Vector)의 평문전송, 키 스트림의 단순성, 고정키 사용에 따른 RC4 키 갱신 부재 등으로 인해 키 길이에 상관없이 그 보안기능이 취약하다고 판명되었다.
사용자들이 WEP 사용에 인색한 이유는, 대부분의 무선랜 제품들이 "WEP 사용안함"을 기본 설정으로 출고되기 때문에, 사용자들 역시 이 기능을 "사용함"으로 설정하는 걸 잊은 채(혹은 귀찮아서) 그냥 내버려 둔다는 게 첫 번째이며, 두 번째는 WEP 설정시 연결이 잘 안된다거나, 초보자들의 경우  여러 가지 옵션(ASCII, Hexadecimal, PassPhrase등)이나 키 입력 과정의 복잡함이 그 이유였다.
WPA는 옵션이나 키 입력의 방식이 WEP방식 보다 간단하여 설정하기 더욱  편리해 졌다.
WPA는, 대칭벡터(IV : Initialization Vector)라 불리는 WEP 헤더의 취약점 (고정 암호키 방식)을 해결하기 위해 그 대응책으로 개발되었다.
데이터 암호화를 강화하기 위해 TKIP(Temporal Key Integrity Protocol)과  AES(Advanced Encryption Standard)라는 IEEE 802.11i 보안 표준을 사용한다.
 

TKIP(Temporal Key Integrity Protocol)은 순서 규칙이 있는 48비트 초기화  벡터(WEP에서는 24비트 초기화 벡터)를 이용하는데, 이것은 키 재사용 및 재생 공격을 방지했다. 또한 WEP 취약 키 공격을 막아주는 패킷 당 키 혼합 기능과, 패킷 위조 공격을 막아주는 암호 체크섬 키 기능이 있다.
 

AES(Advanced Encryption Standard)는 128, 192, 256 비트 등의 가변 키 크기를  가지는 수학적 암호화 알고리즘을 사용한다. 암호화된 데이터는 AES 알고리즘의  키 없이 원래 데이터로 되돌리기가 거의 불가능하기 때문에 타인이 데이터를 송신하는 전파를 수신하더라도 기밀이 유출되는 사태를 막을 수 있다.

즉, 무선 통신상의 전송내용을 암호화하는 암호키가 기존 WEP에서는 고정되어 있던 것과 달리, WPA는 암호키를 특정 시간이나 일정 크기의 패킷 전송 후에 자동으로 변경시키기 때문에 해킹이 불가능하다는 것이다. 또한, 암호키 생성 진행과정이 매우 정교하고 키 갱신이 매우 신속하게 이루어지기 때문에, 암호를 해독하기 위한 충분한 데이터를 모으기가 불가능하다.
시스템 성능에 영향을 주지 않으며 소프트웨어 업그레이드를 통해 이용 가능 하여 SOHO 사용자들에겐 WPA-PSK라는 특정 모드로, 기업과 같이 인증서버 없이도 강력한 보안을 제공한다.
종합해 보면 인증 방법들의 보안성의 우수한 순위가 다음과 같이 정리 된다.

오픈 시스템(WEP사용안함) < 쉐어드 키 인증 < 오픈 시스템(WEP사용함) < WPA - PSK


WPA2 암호화

WPA2는 AES 알고리즘이 적용되는 데, 사실상의 산업 암호화 표준으로 DES와 3DES를 대체하고 있다. 계산이 필요한 집약적인 AES는 하드웨어 보조를 필요로 하는데, 이는 구형 무선랜 장비에서 발견되곤 한다. WPA2는 데이터와 MIC를 암호화할 수 있는 CTR(Counter Mode)와 인증, 보존을 위해 CBC-MAC(Cipher Block Chaining Message Authentication Code) 프로토콜을 사용한다.
WPA2의 MIC는 WEP와 WPA와는 달리 802.11 헤드 내 변하기 쉽지 않은 필드에 대한 데이터 보존을 제공하며, 체크섬과 유사하다. 이것은 패킷이 암호 정보를 절충하거나 패킷을 해독하기 위한 개발이 재연되는 것을 막는다. MIC 계산은 128비트 IV(Initialization vector)를 사용한다. IV는 128비트의 결과를 생성함으로써 일시적인 키와 AES로 암호화된다.
이후에 알고리즘은 결과상의 배타적인 OR과 다음의 128비트의 데이터를 수행한다. 이러한 계산의 결과는 AES와 TK로 암호화되고, 이후에 배타적인 OR은 그것과 다음의 128비트의 데이터에서 수행된다. 마지막 단계는 802.11 페이로드에서의 모든 128 블록이 소모될 때까지 되풀이된다. 동작의 마지막에는 첫 번째의 64비트가 MIC를 생산하기 위해 사용된다.
카운터 모드 암호화 알고리즘은 데이터와 MIC를 암호화한다. 이 알고리즘은 MIC IV와 유사한 128비트의 카운터 프리로드로 시작되지만 데이터의 길이 대신 1까지 초기화한 카운터 가치를 사용한다. 이에 따라 다른 카운터는 각각의 패킷을 암호화하는데 사용된다.
첫 번째 128비트는 128비트 결과를 산출함으로써 AES와 TK를 이용해 암호화된다. 배타적인 OR은 이 결과상에서 수행된다. 첫 번째 128비트 데이터는 첫 번째 128비트의 암호화된 블록을 만들어 낸다. 카운터 프리로드 가치는 점점 증가하고, AES와 데이터 암호화 키로 암호화된다. 이 후 배타적인 OR은 그 결과와 다음의 128비트 데이터 상에서 수행된다. 마지막 단계에서는 모든 128비트 블록이 암호화될 때까지 반복된다.
최종 카운터 가치는 MIC로 AES와 XORed를 사용해 암호화되고 0으로 세팅되고, 그 결과는 암호화 프레임으로 덧붙여진다. 일단 MIC는 CBC-MAC를 이용해 계산되며, 데이터와 MIC는 암호화된다. 이 정보는 802.11 트레일러에 덧붙여 CCMP 패킷 넘버 필드와 802.11 헤더에 사전 고정되며, 이후 발송된다.
WPA2 암호화는 역으로 작동된다. 카운터 가치는 암호화에서 사용된 동일한 알고리즘에서 비롯된다. 그 가치와 802.11 페이로드의 암호화 비율은 해독된 데이터와 MIC에서의 결과인 TK와 카운터 모드 해독 알고리즘으로 해독된다. 데이터는 MIC를 다시 계산하기 위해 CBC-MAC 알고리즘을 통과한다. 가치가 맞지 않는다면 패킷은 제거된다. 만약 그렇게 되면 해독된 데이터는 클라이언트와 네트워크 스택으로 보내진다.