해킹 기법 중 MAC Layer를 이용한 해킹 기법이 있습니다.

그래서 2계층 중 MAC Layer의 특징에 대해 좀더 알아볼 필요가 있습니다.

DCF (Distributed Coordination Function) 경쟁 방식

  • 데이터를 송신 하기 전 다른 station 이 데이터를 송신 중인지를 확인하고 일정 시간 동안 대기하 는 방식 (경쟁 방식)
  • 충돌을 사전에 회피함

CSMA/CA (Carrier Sense Multiple Access / Collision Avoidance)

  • 무선에서 사용하는 방식
  • CSMA/CD방식과 동일하게 Frame을 보내기 전에 채널 상태를 살피고 채널이 Idle 하면 frame을 전송하는 방식이다.
  • AP는 충돌이 나도 그 사실을 모르기 때문에 Jam Signal을 못 주고 그래서 Station 역시 충돌 사실을 모른 다.
  • 그래서 AP에게 먼저 Carrier Sense를 보내 회선이 비어있는지(Idle 상태) 확인한 후 DIFS 시간만큼 미리 기 다렸다가 보냄
  • DIFS : Random Backoff로 랜덤하게 기다리는 시간을 정하는 방식이다.
  • 그럼 사전에 충돌을 회피할 수 있다.
  • 기다리는 시간은 micro per second 시간이라 사람은 기다림을 느끼지 못한다.

 

DIFS
RTS
(NAV)
CTS
(NAV)
SIFS
DATA
ACK
SIFS
DATA
    • DIFS : 회선을 초기화 하기 위한 시간 (충돌이 일어날 경우 사고처리 시간)
    • RTS : station이 사용하겠다고 알림
    • CTS : AP가 station과 Add-on을 하겠다고 broadcast로 뿌림
    • SIFS : 데이터를 보내기 전의 지연시간

CSMA/CD (Carrier Sense Multiple Access / Collision Detect)

  • 유선인 Ethernet이 CSMA/CD 방식을 쓴다
  • 이 방식은 먼저 통신중인지 알아보기 위해 Carrier Sense를 보내고 통신한다.
  • 만약 Collision이 발생하면 switch가 Jam 시그널을 발생시키고 시스템은 DIFS 시간만큼 기다렸다 다시 보낸다.

PCF (Point Coordination Function)

  • AP (Access Point)가 단말에게 전송할 데이터가 있는지 확인 한 후, 전송할 데이터가 있는 단말에 게 전송 권한을 줌. (Token Ring 방식 유사함)
  • CSMA/CA 의 경쟁방식과는 다른 무경쟁 방식
  • PCF 를 사용하는 장비는 없음. (실제 지원하는 장비가 없어서 사용 못 함.)
  • 결국 몰라도 된다는뜻?ㅋㅋ

Wireless

  • AP (Access Point) : 무선 단말기로부터 전달된 프레임을 다른 단말에게 중계하는 유무선 연동 브리지 기능을 수행한다. ethernet의 브리지/스위치로 간주하면 된다.
  • 단말 (Station, STA) : 무선 LAN용 Network Interface Card(NIC)를 장착하여, IEEE802.11 표준에 기반한 물리계층 및 MAC 계층의 동작을 수행한다. 다른 단말과 직접 연결할 수도 있지만, AP에 연결되어 데이터 프레임을 전송한다.
  • 분배시스템(DS : Distribution system) : 여러 개의 AP를 연결하는 백본망으로써, 일반적으로 ethernet이 사용되지만, AP들을 무선에 연결하는 경우 도 있다.
  • 기본 서비스 집합 (BSS : Basic Service Set) : 하나의 AP와 이것에 접속된 단말로 구성된 그룹이다. BSSID는 해당 AP의 MAC주소이다.
  • 확장 서비스 집합 (ESS : Extended Service Set) : 여러 개의 BSS들, 즉, 여러 개의 AP들이 ethernet을 사용한 분배망에 연결되어, 각 단말들간에 상호 접속이 가능한 확장된 그룹이다. ESSID는 논리적으로 ESS를 구분하는 식별자로서 문자열이다. 동일한 ESS에 속한 단말들은 서로 다른 AP에 결합되어 있더라도 상호간에 통신할 수 있다.

802.11. MAC 의 특징

  • MAC 계층에서의 ACK 프레임 사용과 프레임 분할 기능
    • 프레임을 전달 받은 수신 측 MAC 은 반드시 이에 대한 명시적인 확인을 해 주기 위해 ACK 프레임으로 응답함.
    • 긴 프레임 전송 시 무선구간 품질을 위해 여러 개의 짧은 프레임으로 조각 내어 전송 함.(Fragmentation)
    • 무선이라는 환경으로 인해 프레임을 분할하기 때문에 응답이 없으면 데이터를 다시 보내고 다시 보내 진 데이터는 계속 쌓이게 됨.
    • 무선이 신호로 통신한다는 특징으로 인해 데이터를 받을 때 마다 정확하게 받았는지 ACK 를 날리는 것임.

* 데이터를 받을 때 마다 받았다는 ACK 를 날리는 것을 Positive Acknowledgement 라고 한다.

여기서 알수 있는 특징은 802.11MAC은 2계층인데도 불구하고 3,4계층의 역활도 수행한다. ACK 패킷을 보내고(4계층 역활), 프레임 분할(3계층 역활)을 한다. 이는 보안의 취약점의 보완과 품질 향상을 하기 위해 사용되어 진다.

  • Hidden-Node 문제
    • AP 를 중심으로 통신하는 각 Station 들의 시야를 기준으로 받았을 때 자신의 캐리어 감지 범위를 벗어난 다른 Station 은 숨겨진 노드(Hidden-Node)가 됨.

  • RTS (Requset To Send) /CTS (Clear To Send) 에 의한 Hidden-Node 문제 해결
    • RTS (Request To Send) - Station이 AP에게 Idle한지 물어보고 Idle하면 RTS(NAV)를 AP에게 보냄
    • CTS (Clear To Send) - AP가 RTS를 받으면 AP는 브로드케스트로 CTS(NAV)를 발생시킨다. 다른 Station은 NAV의 정보에 있는 시간 동안 송신을 연기한다.

    • host 가 AP 와 통신하고 있으면 다른 host 는 통신 할 수 없다.
    • 예로 Fragmentation Threshhold값을 3000이라 설정하면 NTT가 보낼 데이터값이 3000byte 이상이면 그때 1:1 통신을
    • 하기 위해 RTS를 보낼 수 있다. (1:1 점유 방지를 위함)
    • Hidden - Node 문제는 실제적 해결방안이 없다.
    • 이 방식은 실제적으로 사용 잘 안 함.

  • 전원 공급 문제를 줄이기 위한 Power Saving Mode
    • 무선상은 엄청난 패킷들이 돌아다니고 들어온 패킷들은 어찌됬던 처리를 해야 한다.
    • 그럼 결국 베터리 소모량을 늘어날 수 밖에 없다. 이를 해결 하기 위한 방법이 이 방법이다.

    • Power Saving Mode
      • NTT는 power saving mode를 설정한다.
      • NTT는 설정했음을 AP에게 알려준다.
      • AP는 더 이상 NTT에게 패킷을 넘겨주지 않는다.
      • 만약 NTT에게 패킷이 왔다면 AP는 Buffer에 해당 패킷을 저장해 놓는다.
      • NTT는 다시 Awake를 AP에게 알려준다.
      • AP는 그때 Buffer에 있던 내용을 보낸다.

 

802.11 Layer Overview

전의 설명처럼 유선통신과 무선통신은 2계층에서 사용하는 프로토콜이 다릅니다.

무작정 해킹을 따라하는 것도 좋지만 해킹의 원리를 이해하기 위해 802.11 레이어에 대한 이해가 필요합니다.

먼저 무선 통신 2계층인 Data Link Layer의 생김새를 보겠습니다.

Data Link Layer

뭐가 뭔지 아직은 잘 모르겠죠?

OSI 7 Layer 중 1,2계층을 비교해보겠습니다.

3계층부터는 유선과 동일하기 때문에 볼 필요가 없습니다.

이해를 돕기 위해 OSI 7 Layer와 비교

 

  1. PHY Layer
    • OSI 7 Layer 의 1계층이라 생각하면 됨.
    • voltage => bit (인코딩), bit => voltage (디코딩)
    • bit를 무선 신호로 변조해서 보내고 받는쪽은 무선신호를 bit로 복조함
  2. MAC Layer
    • OSI 7 Layer 에서 Data Link 계층이 가지고 있는 두 개의 부 계층 중 하나.
    • 여러 대의 컴퓨터 사이에서 네트워크의 물리적인 접속을 공유하는데 관여하고 있음.
    • 각 컴퓨터는 자신만의 고유한 MAC 주소를 가지고 있다. Ethernet 은 MAC 계층의 차원에서 동작하는 대표적인 프로토콜의 예.
  3. LLC Layer
    • MAC Layer 와 마찬가지로 Data Link 계층이 가지고 있는 두 개의 부 계층 중 하나로 물리적 매체 상에 서 흐름 제어와 에러 제어 등의 트래픽 관리에 관여.
    • LLC 계층은 SDLC, NetBIOS, NetWare 등과 같은 회선 프로토콜을 식별하며, 프레임에 일련번호를 매 겨서 도착 확인을 추적할 수 있다.
    • 2계층까지 온 데이터를 상위계층으로 넘겨줌.

 

​802.11 Physical Layer를 좀더 파보자!
  1. PMD (Physical Medium Dependent)
    • 변/복조를 하는 무선 모뎀 역할을 함.
    • 각각의 전송 매체마다 다른 변/복조 방식을 사용함.
  2. PLCP (Physical Layer Convergence Protocol)
    • 하부에 다양한 종류의 PMD 와 상위에 MAC 계층간의 동작을 정합시키는 역할을 수행함.
    • MAC 계층으로부터 수신된 MPDU (MAC_PDU)에 프리앰블(Preamble)과 PLCP 헤더 정보를 추가하여 PMD 에게 보냄.​
      • 프리앰블(Preamble) : 1계층 헤더
        1. 네트워크 통신에서 두 개 이상의 시스템간에 전송 타이밍을 동기화 하기 위해 사용되는 신호.
        2. 적절한 타이밍은 모든 시스템들이 정보 전달의 시작을 올바르게 해석 할 수 있도록 보장.
        3. 프리앰블은 "누군가가 지금 막 데이터를 전송하려 한다." 는 의미로서 통신 시스템들이 이해할 수 있는 일련의 특정 송 신 펄스를 정의.
        4. 이것은 정보를 수신하고 있는 시스템들이 언제 데이터 전송이 시작되는지를 올바르게 이해하도록 보장.
        5. ㅁ). 프리앰블로서 사용되는 실제 펄스들은 사용하는 네트워크 통신 기술에 따라 달라짐.
    • 한마디로 1계층과 2계층을 연결해 줌.

 

 

​802.11 Data Link Layer를 좀더 파보자

 

  1. MAC (Media Access Control)
    • 상위계층 패킷(MAC Service Data Unit - MSDU)이나 probe beacon 등의 MAC 매니지먼트용 프레임 (MMPDU)를 MPDU 에 수납한 후 전송 함.
      • MMPDU : 무선상 지속적인 관리를 위해 관리용 패킷을 만들어주기도 하고, 실제로 preamble이 장착된 MPDU를 상위계층으로 올려주는 역할
    • 필요에 따라서, MSDU 나 MAC Management PDU(MMPDU)를 여러 개의 Fragmented SDU(FSDU)로 분할한 후, 각각을 MPDU 로 전송 함.
  2. LLC (Logical Link Control)
    • 상위계층과 MAC 을 연결하는 역할을 함.
    • 모든 상위계층의 패킷을 LLC PDU 수집함.
  3. MLME (MAC Layer Management Entity)
    • 전원관리, 탐색, 인증, 결합, 시간동기등 MAC계열에 들어있는 모듈.
    • MAC 계층에서 필요한 관리 기능들을 수행함. (MMPDU)
  4. PLME (PHY Layer Management Entity)
    • 물리 계층의 설정을 변경하거나 읽어오는 기능을 수행함
    • 슬롯타임, 프리앰블의 길이, 송수신 절환 지연시간 등

 

​인캡슐레이션 / 디캡슐레이션

 

  • 인캡슐레이션 (Encapsulation)

 

  • 디캡슐레이션 (Decapsulation)

 

* MAC -> PLCP -> PMD -> PLCP -> MAC :

이것이 무선에 사용하기 위해 encapsulation에 추가된 것.

AP - AP, AP - NTT 간에 이정보가 추가됨.

 

+ Recent posts