본문 바로가기

보안

보안기사 - 무선랜 보안

무선랜 보안 메커니즘

무선랜 통신방식은 공기를 전송매체로 하여 브로드캐스트하기 때문에 무선AP의 비콘 프레임/메시지를 수신할 수 있는 범위 내에서는 무선 패킷의 도청/스니핑과 위변조 가능
=> 무선전송 데이터 암호 기술을 통해 무선패킷에 대한 기밀성과 무결성을 보장하고, 무선랜 접속 인증 기술을 통해 통신 상대방에 대한 신뢰성을 확인하여 안전한 무선랜 환경을 구축!

최초 무선랜 표준안 IEEE 802.11에는 별도의 무선랜 접속 인증기술과 전송 데이터 암호기술 포함X -> 인증절차 없이 접속 가능, 평문 데이터 전송
IEEE 802.11b 표준(1999)부터 WEP 보안 규격을 규정 -> 무선전송 데이터 암호화와 인증을 제공
하지만 취약성이 발견되었고 이를 보완하기 위한 보안표준 IEEE 802.11i가 제정(2004)
IEEE 802.11i 표준은 WPA, WPA2 보안 규격을 규정 -> 강화된 사용자 인증방식, 키교환 방식 및 향상된 무선구간 암호 알고리즘을 제공

보안 기술 유형
보안 기술
무선랜 접속 인증기술     SSID 숨김 설정을 통한 접속 제한 - 비콘 프레임의 SSID 부분이 비어있음
    MAC 주소 인증(MAC 주소 필터링) - 허용할 MAC 주소 등록
    공유키 인증 (PSK: Pre-Shared Key) - 접속 비밀번호 사용
    IEEE 802.1x/EAP (인증서버 이용) - RADIUS
무선전송 데이터 암호기술     WEP (Wired Equivalent Privary)
    WPA (WPA1), WPA2 (Wi-Fi Protected Access)
  • SSID 설정을 통한 접속제한
    무선랜 관리자가 무선AP의 SSID를 브로드캐스트하지 않도록 설정(숨김모드) -> SSID를 모르는 사용자는 무선랜에 접속할 수 없음
    무선데이터 분석도구(ex. airodump)를 이용한 무선 데이터 수집, 분석을 통해 손쉽게 SSID를 알아낼 수 있다는 단점
  • MAC주소 인증(MAC주소 필터링)
    무선랜 접속을 허용할 단말의 MAC주소를 무선AP에 사전 등록하여 등록된 단말에 대해서만 접속을 허용
    설정방법이 간단하고 기본적인 공격을 효과적으로 방어할 수 있는 기술로 많은 종류의 무선AP에서 지원하는 기법이지만 공격자가 정상 단말의 MAC주소로 위조함으로써 쉽게 무력화
    무선AP에 대한 관리 소홀, 해킹으로 인해 등록된 MAC주소 정보가 외부로 노출될 수 있는 취약점, 대규모 네트워크에서 MAC주소 관리 부담이 큼

WEP (Wired Equivalent Privacy)


유선랜과 동등한 수준의 보안성 제공(Wired Equivalent Privacy) 목적으로 만들어진 초기 무선랜 보안 기술
IEEE 802.11b 표준에서부터 적용, 데이터 암호화와 사용자 인증 기능 제공

고정된 공유키와 무작위로 생성한 초기벡터(IV)를 조합한 키를 이용한 RC4 알고리즘 기반의 데이터 암호화를 제공
서로 같은 공유키를 갖는 사용자들을 정상적인 사용자로 인증하여 통신하는 공유키 인증방식을 제공

RC4 기반 암호 알고리즘 자체 취약점과 인증 및 암호화에 사용되는 WEP 공유키가 쉽게 추출될 수 있는 취약점으로 인해 사용 권장X

암호 기술

  • 암호화
  1. 무작위로 생성하는 24bit 초기벡터(IV)와 고정된 40bit(WEP-40) 또는 104bit(WEP-104)의 WEP 공유키를 조합WEP 암호키를 생성
    이를 RC4 암호 알고리즘을 기반으로 한 난수발생기(PRNG)에 입력하여 스트림 암호를 위한 키스트림을 생성
  2. CRC-32 알고리즘을 이용하여 무결성 체크값(ICV: Integrity Check Value)을 생성한 후 평문과 조합
  3. 평문과 ICV를 합친 데이터와 키스트림을 XOR하여 암호문을 생성
  4. 생성된 암호문에 IV와 802.11 표준에서 사용하는 헤더를 추가하여 최종적으로 전송하고자 하는 패킷 구성

* 전송데이터 비트 오류 검증 - 패리티 비트 체크, 체크섬, CRC

  • 복호화
  1. 패킷에서 IV를 추출하고 이를 자신이 갖고 있는 WEP 공유키와 조합하여 PRNG를 통해 키스트림을 생성
  2. 암호문을 키스트림과 XOR하여 평문과 ICV를 생성
  3. 복호화된 평문의 무결성 체크를 위해 CRC-32 알고리즘을 이용해 ICV를 구한후 복호화된 ICV와 비교하여 패킷 무결성 여부를 검사
  4. 무결성 체크가 성공적으로 이루어지면 최종적으로 평문 데이터를 수신
  • WEP 암호화/복호화 문제점
    1. IV는 무작위로 생성되지만 24bit의 짧은 길이를 사용하므로 IV값이 재사용될 가능성이 높다
      IV 재사용으로 인해 동일한 키스트림으로 암호화된 암호문이 존재하고 어느 한 암호문의 평문을 알고 있다면 공격자는 암호키를 알지 못해도 평문을 알고 있는 암호문을 이용해 다른 암호문 복호화 가능
          2개의 평문 (P1, P2)에 대해 동일한 키스트림(KS)을 이용해 암호문 (C1, C2)이 생성되었다고 가정할 경우
       C1 ⊕ C2 = (P1 ⊕ KS) ⊕ (P2 ⊕ KS) = P1 ⊕ P2
       공격자가 평문 P1을 알고 있다면 다음과 같은 방식으로 암호문을 복호화할 수 있다
       C1 ⊕ C2 ⊕ P1 = P2
    2. 불완전한 RC4 암호 알고리즘 사용으로 인해 암호키 노출 가능성이 높다
      RC4 암호 알고리즘의 키 스케줄링 알고리즘과 IV 사용법의 취약점으로 인해 암호키가 노출되는 문제점이 공개됨
    3. 짧은 길이의 고정된 암호키 사용으로 인한 공격 가능성이 높다
    4. 암호키 노출로 인해 무선전송 데이터의 노출 위험성이 높다

인증 기술

  • 과정

Challeng-Response 방식

  1. 무선단말(이용자)은 무선AP에 연결요청 메시지 전송
  2. 연결요청 메시지 받은 무선AP는 임의의 문장(Challenge)을 생성해 원본을 저장하고 연결요청응답 메시지를 이용해 그 사본을 전달
  3. 연결요청응답 메시지를 받은 사용자는 무선AP가 보내온 임의의 문자(Challenge)를 자신이 가진 WEP 공유키를 이용해 암호화한 후 암호문을 무선AP에 전송
  4. 암호문을 전송받은 무선AP는 자신의 공유키를 이용해 복호화한 후 원본 문장과 비교해 동일한 경우 정상적인 무선단말(이용자)로 인증
  • 문제점
    1. 단방향 인증방식 제공으로 인한 취약성
      사용자 입장에서는 악의적으로 설치된 불법AP(Rogue AP)인지 알 수 없기 때문에 피해 발생
    2. 고정된 공유키 사용으로 인한 취약성
      무선랜을 사용하는 모든 장비(무선AP 및 단말기)가 동일한 WEP 공유키를 사용하므로 외부로 유출될 경우 많은 문제 발생
      위험요소를 줄이기 위해 WEP 공유키를 주기적으로 변경해야 하지만 무선랜을 사용하는 장비가 많을 경우 각각 설정해야하는 어려움 발생

IEEE 802.11i 보안 표준




IEEE 802.11i 표준은 초기 무선랜 보안 규격인 WEP의 취약성을 보완하기 위한 표준 (2004)

  • WPA/WPA2-개인 : PSK 모드
    무선 AP와 단말이 사전에 공유한 비밀키를 가지고 있다는 것을 4-way handshake 절차에 의해 확인하는 방식
  • WPA/WPA2-기업 : 802.1x/EAP 모드
    RAIDUS 인증서버를 이용해 상호 인증을 수행하고 그 결과를 기반으로 AP 접근을 허용하는 방식

WPA(WPA1) 암호방식 : RC4-TKIP

TKIP 방식은 사용자 인증결과로부터 무선AP와 단말 사이의 무선 채널 보호용 공유 비밀키를 동적으로 생성해 무선 구간 패킷을 암호화
WEP를 소프트웨어적으로 확장하는 방법을 사용하여 WEP 방식 하드웨어 교체없이 구현할 수 있도록 설계
WEP와 동일하게 RC4 암호 알고리즘을 기반으로 하며 다음 4가지 보안기술로 WEP 취약성을 보완

  1. WEP의 24bit IV를 확장한 48bit IV 사용
  2. IV의 순차적 증가 규칙 보완
  3. Key Mixing 함수를 이용한 별도의 키 생성 과정을 거쳐 각 패킷/프레임마다 별도의 암호키를 적용
  4. 메시지 무결성 검사를 위해 WEP에서 사용한 CRC-32알고리즘보다 안전한 MIC(Message Integerity Check)를 적용
  • 동작방식
  1. 48bit의 확장된IV를 만들기 위해 임시키, 전송 주소, TKIP 시퀀스 카운터(TSC)를 입력으로 1단계 Key Mixing 함수를 통해 TTAK를 생성
    전송 주소(Transmitter Address) : 송신할 때 경유하는 AP의 MAC 주소
    TTAK : TKIP-mixed Transmitter Address and Key
  2. TTAK와 TSC를 입력으로 2단계 Key Mixing 함수를 통해 WEP 암호키를 생성
  3. 전송 데이터에 MIC키, 출발지 주소, 목적지 주소를 이용해 MIC 값을 생성하고 이를 전송 데이터에 추가한 후 TSC와 조각화하여 전송하기 위한 평문을 생성
  4. 평문과 앞에서 생성한 WEP 암호키를 이용해 WEP 암호화 알고리즘에 적용해 암호문을 생성
  • 문제점
    1. 여전히 취약한 RC4 암호 알고리즘을 사용, 키 관리 방법을 제공X, 무선 패킷 수집을 통한 키 크랙 공격에 대한 취약성 그대로
    2. TKIP의 적용은 소프트웨어 업그레이드를 이용하고 있기 때문에 소프트웨어적인 처리에 따른 성능상 문제점이 존재(암호화와 복호화 시간지연 등)

WPA2 암호 방식 : AES-CCMP

IEEE 802.11i 규격을 완전히 수용하는 표준으로 WPA(WPA1)와 구분하기 위해 WPA2로 정의
AES-CCMP를 통한 암호화 기능향상, EAP를 통한 사용자 인증 강화

AES가 제공하는 블록 암호 모드 중 CCMP는 Counter 모드 기반으로 CBC-MAC을 결합한 CCM을 기반으로 한다. 패킷의 데이터 영역과 IEEE 802.11 헤더의 무결성을 보장하고 패킷번호(Packet Number)를 이용해 재전송 공격을 방지
AES-CCMP는 기본적으로 키관리에 있어 TKIP과 유사하지만, AES 기반의 128bit 대칭키를 사용하고 블록암호 모드로 CCM모드를 사용하는 차이점이 존재

  • CCM 모드(Counter mode with CBC-MAC)
    COUTER 모드 (블록암호 운영모드) + CBC-MAC (데이터 인증)
    암호화와 메시지 인증 기능을 동시에 제공하는 블록암호 모드 중 하나
    메시지 인증을 위해 CBC-MAC을 사용하고 메시지 암호화를 위해 CTR 모드를 사용
(출처 : https://www.researchgate.net/figure/WPA-2-encryption-and-integrity-check_fig5_262458771)

WPA/WPA2-개인(Personal) 인증 방식 : PSK

인증 서버가 설치되지 않은 소규모 망에서 사용
무선AP와 단말기가 동일한 공유키(PSK: Pre-Shared Key)를 가지고 있는지 802.1x에 규정된 EAPoL-Key 프레임을 활용해 4-way handshake 과정을 통해 확인하여 인증을 수행

  • 동작방식
  1. 무선AP와 무선단말에 설정된 무선랜 접속 패스워드와 SSID 정보를 이용하여 256bit 사전 공유키(PSK)를 각자 생성
    PSK(PMK) = PBKDF2(PW, SSID, SSID길이, 4096, 256)
    PBKDF2(Password-BAsed Key Derivation Function Version 2) : 패스워드 기반 키유도 함수
    입력값을 4096번 해시 반복을 수행한 후 256bit 키를 생성한다
    PSK(PMK)는 무선랜 접속 패스워드와 SSID 정보를 알고 있는 사용자에 의해서만 생성되므로 이를 알고 있는 사용자를 정당한 사용자로 인증
    PSK(PMK) 이후 전송되는 파라미터와 조합하여 암호화 통신에 사용되는 임시키인 PTK 생성에 사용
  2. 4단계 handshake 과정을 통해 얻은 파라미터와 PSK(PMK)를 이용해 512bit PTK를 생성
    PTK = PRF-512(PSK(PMK), "Pairwise key expansion", Min(AA, SA) || MAX(AA, SA) || Min(SNonce, ANonce) || Max(SNonce, ANonce))
    PRF-512(Pseudo Random Function) : 의사 난수 생성 함수
    PSK(PMK)와 AA(무선AP MAC), SA(무선단말 MAC), ANonce(무선AP 난수), SNonce(무선단말 난수)를 조합한 입력값을 이용해 512bit 난수를 생성
  3. PTK는 이후 무선AP와 단말 통신을 위해 세션동안 사용되는 3개의 키로 파생
    - KCK(EAPoL-Key Confimation Key) : 송수신 메시지의 무결성과 송신처 인증을 위한 MIC용 키
    - KEK(EAPoL-Key Encryption Key) : 부가적인 데이터(그룹키 등) 암호화/복호화용 키
    - TK(Temporal Key) : 송수신 데이터 암호화/복호화용 키
  4. 동일한 PTK가 생성되었는지 여부는 MSG2와 MSG3에서 주고받은 MIC값을 상호 간에 검증하여 확인 가능
    MIC는 PTK로부터 파생된 KCK와 주고받은 파라미터(AA, SA, ANonce, SNonce)를 HMAC알고리즘(HMAC-MD5 또는 HMAC-SHA1)을 이용해 생성
    MIC 검증에 성공했다는 것은 무선AP와 단말이 생성한 PTK가 동일하다는 것이고 결과적으로 PSK(PMK)가 동일하다는 의미이므로 정당한 사용자로 인증 가능
  • 문제점 : 접속/인증 패스워드를 짧게 설정하거나 추측하기 쉬운 값으로 설정할 경우 사전 공격을 통해 손쉽게 패스워드 크랙 가능
    인증 및 키 생성 위한 4-way handshake 과정에서 PTK를 생성할 때 사용되는 파라미터 중 패스워드를 기반으로 생성한 PSK(PMK)를 제외하고 모두 네트워크 상에 노출
    따라서 공격자는 패스워드를 사전에서 추측해 PSK(PMK)를 생성한 후 노출된 파라미터를 이용해 PTK를 생성하고 이를 노출된 MIC값을 통해 검증함으로써 패스워드 크랙 가능
[WPA-PSK 사전 공격 절차]
  1. 공격자는 4-way handshake 과정을 스니핑
  2. 사전 파일에 있는 단어를 이용해 PSK(PMK)를 추측하여 생성
  3. 생성한 PSK(PMK)와 스니핑한 무선패킷에 있는 파라미터를 이용해 PTK 생성
  4. 생성한 PTK를 이용해 MIC값을 생성한 후 스니핑한 MIC값과 비교하여 검증
    일치할 경우 추측한 패스워드가 접속/인증 패스워드가 되고, 일치하지 않으면 다른 단어를 이용해 반복

WPA-기업(Enterprise) 인증 방식 : IEEE 802.1x/EAP

WEP 인증상의 문제점을 해결하기 위해 802.1x 표준에서는 EAP 인증 기능을 제공

  • EAP(Extensible Authentication Protocol)
    RFC 2284에 공식적인 명세가 발표되었으며 무선랜 표준인 IEEE 802.1x에서 사용자 인증 방법으로 사용
    어떤 링크에도 접속이 가능한 단순한 캡슐화 개념의 프로토콜
    EAP 자체는 실제 인증 프로토콜이 아니지만 다양한 종류의 인증 방법을 전송하는 역할 수행
    내부적으로 EAP-MD5, 전송계층보안(EAP-TLS), 터널 방식으로 개량된 TLS(EAP-TTLS), PEAP 등의 다양한 인증 방법 지원

  • 동작방식
  1. 무선랜 클라이언트인 사용자A가 AP에 무선랜 접속 요청
  2. 무선AP는 사용자A가 연결을 설정할 때까지 다른 사용자의 연결시도를 차단하고 사용자A에게 연결 요청에 대한 응답 메시지를 전송
  3. 사용자A는 EAPoL-시작 메시지를 AP에 보내 RADIUS를 이용한 연결설정을 시작할 것을 AP에 알린다
  4. 무선AP는 사용자가 보낸 EAPoL-시작 메시지를 받은 후 EAP-요청 메시지를 사용자 A에게 전송해 사용자 A의 정보를 요구
  5. 사용자A는 네트워크에 로그온하기 위해 사용자명과 암호를 입력창을 통해 입력하여 사용자 인증을 위한 정보를 무선AP에 전송
  6. 무선AP는 사용자에게 받은 정보를 RADIUS서버에 접속요청 메시지에 담아 상호인증 요구
  7. RADIUS서버는 AP에게 사용자A로 전송할 사용자 인증 챌린지(Challenge) 메시지를 전송
  8. 무선AP는 RADIUS 서버에서 보낸 사용자 인증 챌린지를 사용자A에게 전송
  9. 사용자A는 챌린지에 대한 응답으로 사용자명과 암호를 해시하여 EAP 응답 메시지를 구성해 무선AP에 전송
  10. 무선AP는 사용자A에게 받은 정보를 이용해 RADIUS서버에 Radius-접속요청 메시지 전송
  11. 사용자 관리 DB정보를 사용해 RADIUS서버는 자신이 보낸 챌린지에 대한 대응 메시지를 생성하여, 사용자A가 보내온 응답메시지의 값과 비교해 사용자A를 인증
  12. 사용자A와 RADIUS서버의 상호인증이 성공적으로 완료

WPA-PSK 접속/인증 패스워드 크래킹 실습

무선랜 보안대책

  • 기업 네트워크
    1. 무선 단말 인증 : WPA2-기업의 RADIUS서버를 활용한 EAP 기반 인증 권고
    2. 전송데이터 암호화 : 안전성이 검증된 WPA2 보안규격의 AES-CCMP 방식 권고
  • 개인 및 SOHO 사업자
    1. 사설망을 통한 인증 및 암호화
      인증서버를 두기 어려운 상황이 대부분이므로 WPA2-개인의 PSK 인증방식을 설정한 후 패스워드 크랙에 충분히 안전한 인증 패스워드 이용
      전송데이터 암호화는 안전성이 검증된 WPA2 보안규격의 AES-CCMP 방식 권장
    2. 무선랜 사업자의 서비스 이용 : 무선랜 사업자(이동통신사)에서 제공하는 인증서버를 통한 단말 인증기능도 고려
  • 무선AP 물리적/관리적 보안
    1. SSID 변경 및 브로드캐스트 금지
      SSID를 초기 설정값이 아닌 새로운 값으로 변경하고, 숨김모드로 설정해 공격자에게 무선랜이 노출되는 것을 최소화
    2. 무선AP의 Deault Password 변경
      무선AP에 설정된 초기 패스워드는 공개되어 있으므로 반드시 변경
      추측 어려운 안전한 생성방법에 따라 생성하고 주기적으로 변경하여 공격자가 무선AP 관리자 모드로 접속하는 것 방지
    3. 무선AP의 물리적 접근 제한
      무선AP의 도난 및 공격자의 접근으로부터 보호할 수 있도록 보호케이스 설치, AP 리셋버튼 차단 등 물리적 보안대책 확보

'보안' 카테고리의 다른 글

보안기사 - IP 보안(IPsec)  (0) 2020.04.30
보안기사 - VPN  (0) 2020.04.29
보안기사 - 무선랜  (0) 2020.04.26
보안기사 - DDoS, DRDoS  (0) 2020.04.25
보안기사 - 서비스 거부 공격(DoS, DDoS)  (0) 2020.04.23