일단 WLAN(Wireless Local Area Network)는 WI-FI 라는 브랜드명 아래 IEEE 802.11 기술기준으로 무선랜(WLAN)을 이용하여 통신하는 장치를 말한다.
그리고 IEEE802.11의 기술은 현재 지속적으로 버전업이 되므로, 이에 관련된 부분은 이 관련문서를 참고하는 것이 좋을 것 같다.
https://en.wikipedia.org/wiki/Wi-Fi
https://en.wikipedia.org/wiki/List_of_WLAN_channels
1.1 IEEE 802.11의 기본정보
IEEE 802.11x의 변화된 세부내용을 보고 싶다면 아래사이트를 참고하자.
- IEEE 802.11x 표준의 변화 및 역사 세부사항
http://ko.wikipedia.org/wiki/IEEE_802.11
http://doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/cha.wireless.wlan.html
- WIFI Spec 관련자료 얻기 (IEEE 802.11)
참고해서 봐야할 문서가 아래의 문서인데, 무료가 아니라고 해서 지인을 통해서 얻었지만, 내용이 방대하다.
Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
- The Wi-Fi CERTIFIED™ Product Finder (Wifi Alliance)
http://www.wi-fi.org/certified-products-results?capabilities%5B50%5D=50
- WPA_SUPPLICANT 개발자료
1.2 WLAN에서 사용되는 용어 및 관련자료
- STA(Station)
- AP(Access Point) or Router
- BSS(basic service set)
BSS는 ID를 가지고 있는데, 이를 BSSID라고 하며 이 BSSID는 AP와 접속할 경우 MAC Address로 사용되어진다.
그리고, BSS의 경우 두 가지 종류의 BSS가 존재하는데, IBSS(Infrastructure BSS)와 IBSS(Independent BSS)로 나누어진다고 한다.
- IBSS(Independent BSS)
- ESS(Extended Service Set)
그리고, 각 ESS는 ID를 가지고 있는데, 이를 SSID라고 하며, 최대 32byte의 문자로 Network의 이름을 나타낸다.
- DS(distribution system)
- SSID 와 BSSID
상위에도 간단히 설명했지만,
전부 Service Set이기 때문에 내부에 다양한 기능이 제공할거라고 생각이 든다.
만약 이외 좀 더 알아야 한다면 추후 수정하겠다.
- WNIC(Wireless Network Interface Controller)
WIFI에서 OSI 2 계층에 해당하는 부분을 말함
- MLME(MAC Sublayer Management Entity)
MLME의 경우 NIC의 hardware or firmware 구현되거나 host-base software로 구현되어진다.
- FullMAC/HardMAC WNIC
WNIC는 MLME(MAC Sublayer Management Entity) Function들로 구현하는데, hardware or Firmware로 구현되어지면, 이를 FullMAC이라고 한다.
주로 모바일 Device에서 많이 사용되어진다.
- SoftMAC WNIC
WNIC이 host software에서 구현되어지면, 이를 SoftMAC이라고 한다.
Linux Kernel의 mac80211 framework에 SoftMAC 지원하며, mesh network 등 다양하게 지원
- BSS/ESS 관련자료
- WLAN 관련자료
https://en.wikipedia.org/wiki/Wireless_LAN
- IEEE 802.11 전반적인 자료
- IEEE 802.11 Layer 2 구조
2. WLAN의 인증(Authentication)
STA이 AP에접속을 한다고 하면 가장 먼저 접하는 것이 인증일 것이며, 그에 관련된 자료를 인증자료를 간단하게 정리해본다.
관련세부사항은 아래의 사이트를 보고 알아가보자.
- WEP(Wired Equivalent Privacy)
여기서 더 발전되어 나온 것이 아래의 WPA/WPA2 인증방식이다.
https://en.wikipedia.org/wiki/Wired_Equivalent_Privacy
802.11의 표준 인증방식으로 WPA/WPA2 (Wi-Fi Protected Access 1st version/ 2nd Version)을 말한다.
- WPA(Wi-Fi Protected Access)/WPA2 인증
Wi-Fi Alliance에 의해 개발되어진 인증 시스템이며 현재 사용되어지고 있는 인증시스템이다.
내부를 좀 자세히 보면, WPA/WPA2는 분류를 하면 두가지로 분류되며 각각은 아래설명
https://ko.wikipedia.org/wiki/%EC%99%80%EC%9D%B4%ED%8C%8C%EC%9D%B4_%EB%B3%B4%ED%98%B8_%EC%A0%91%EC%86%8D
내부를 좀 자세히 보면, WPA/WPA2는 분류를 하면 두가지로 분류되며 각각은 아래설명
- WPA-Personal
- WPA-Enterprise
https://ko.wikipedia.org/wiki/%EC%99%80%EC%9D%B4%ED%8C%8C%EC%9D%B4_%EB%B3%B4%ED%98%B8_%EC%A0%91%EC%86%8D
- WPS(Wi-Fi Protected Setup, originally, Wi-Fi Simple Config)
Network의 보안기능이지만, 다른것과 다르게 AP와 STA에 WPS 버튼이 있어 서로 눌렀을 경우 쉽게 인증되고 설정되는 구조이다.
WPS도 상위 WPA/WPA2를 사용하고 있으며, 이부분을 쉽게 연결해주는 형태라고 생각하면 될꺼 같다.
https://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup
2.1 WPA/WPA2-Personal
세부적인 동작을 알려며, KEY 알고리즘과 관련된 부분을 알아야 할 것 같아, 좀 Link만 연결한다.
WPA-PSK의 이해
http://www.juniper.net/techpubs/en_US/junos-space-apps12.3/network-director/topics/concept/wireless-wpa-psk-authentication.html
2.2 WPA/WPA2 Enterprise
구조를 보면, SSL과 TLS를 이해한다면 대충은 이해가 가능하다.
EAP를 보면 각각 역할이 있으며, TLS처럼 키교환, 인증, 암호화 각각 나뉘어져 있으므로, 세부적으로 알고자 하면, EAP Method를 자세히 알아야 한다.
https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol
https://ko.wikipedia.org/wiki/%ED%99%95%EC%9E%A5_%EA%B0%80%EB%8A%A5_%EC%9D%B8%EC%A6%9D_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
https://en.wikipedia.org/wiki/Protected_Extensible_Authentication_Protocol
https://en.wikipedia.org/wiki/Transport_Layer_Security
우선 아래의 인증을 이해하기위해서는 기본적인 TLS에 대해서 이해를 해야한다.
2.3 WLAN의 인증 및 세부사항
아래의 내용을 참고하면될 것 같다.
http://etutorials.org/Networking/802.11+security.+wi-fi+protected+access+and+802.11i/Part+II+The+Design+of+Wi-Fi+Security/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+8.+WLAN+Encryption+and+Data+Integrity+Protocols/Encryption+Protocols/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+8.+WLAN+Encryption+and+Data+Integrity+Protocols/Key+Management/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+7.+EAP+Authentication+Protocols+for+WLANs/
3. WLAN의 AP와 STA의 기본동작구조
관련출처
http://w1.fi/wpa_supplicant/devel/
3. WLAN의 동작 Mode
WLAN은 동작모드는 두가지이며, infrastructure mode 와 ad hoc mode 존재한다.
아직 직접 사용해본적이 없어 관련자료만 수집한다.
https://en.wikipedia.org/wiki/Wi-Fi_Protected_Setup
2.1 WPA/WPA2-Personal
세부적인 동작을 알려며, KEY 알고리즘과 관련된 부분을 알아야 할 것 같아, 좀 Link만 연결한다.
WPA-PSK의 이해
http://www.juniper.net/techpubs/en_US/junos-space-apps12.3/network-director/topics/concept/wireless-wpa-psk-authentication.html
2.2 WPA/WPA2 Enterprise
WPA/WPA2 Enterprise는 기업용으로 좀 더 복잡한 인증요구를 하며, AP이외의 RADIUS Server를 통하여 인증까지 지원한다.
그래서 WPA/WPA2 Enterprise는 아래와 같은 추가적인 인증 프로토콜을 지원(TLS)
- EAP(Extensible Authentication Protocol)
- PEAP(Protected_Extensible_Authentication_Protocol)
구조를 보면, SSL과 TLS를 이해한다면 대충은 이해가 가능하다.
EAP를 보면 각각 역할이 있으며, TLS처럼 키교환, 인증, 암호화 각각 나뉘어져 있으므로, 세부적으로 알고자 하면, EAP Method를 자세히 알아야 한다.
- 관련용어 세부사항
https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol
https://ko.wikipedia.org/wiki/%ED%99%95%EC%9E%A5_%EA%B0%80%EB%8A%A5_%EC%9D%B8%EC%A6%9D_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C
https://en.wikipedia.org/wiki/Protected_Extensible_Authentication_Protocol
https://en.wikipedia.org/wiki/Transport_Layer_Security
우선 아래의 인증을 이해하기위해서는 기본적인 TLS에 대해서 이해를 해야한다.
- 다양한 EAP-x 관련 내용
- EAP-TLS
- EAP-PEAP/MSCHAPv2 (both PEAPv0 and PEAPv1)
- EAP-PEAP/TLS (both PEAPv0 and PEAPv1)
- EAP-PEAP/GTC (both PEAPv0 and PEAPv1)
- EAP-PEAP/OTP (both PEAPv0 and PEAPv1)
- EAP-PEAP/MD5-Challenge (both PEAPv0 and PEAPv1)
- EAP-TTLS/EAP-MD5-Challenge
- EAP-TTLS/EAP-GTC
- EAP-TTLS/EAP-OTP
- EAP-TTLS/EAP-MSCHAPv2
- 기타 등등
2.3 WLAN의 인증 및 세부사항
아래의 내용을 참고하면될 것 같다.
http://etutorials.org/Networking/802.11+security.+wi-fi+protected+access+and+802.11i/Part+II+The+Design+of+Wi-Fi+Security/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+8.+WLAN+Encryption+and+Data+Integrity+Protocols/Encryption+Protocols/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+8.+WLAN+Encryption+and+Data+Integrity+Protocols/Key+Management/
http://etutorials.org/Networking/Wireless+lan+security/Chapter+7.+EAP+Authentication+Protocols+for+WLANs/
3. WLAN의 AP와 STA의 기본동작구조
- AP와 STA의 기본구조
- ctrl i/f: GUI or wpa_cli/hostapd_cli 로 부터 control event를 받아제어
- l2_packet: socket으로 L2와 연결하여, Network 상태를 읽거나 , Ether type를 변경한다.
- Driver API: APP에서 kernel driver를 연결하는 통로이며 wext 나 nl80211 혹은 개별 vendor driver로 연결하여 실제 chip 제어 (ndiswrapper : window)
- STA(Station,wpa_supplicant)
- AP(hostapd)
관련출처
http://w1.fi/wpa_supplicant/devel/
3. WLAN의 동작 Mode
WLAN은 동작모드는 두가지이며, infrastructure mode 와 ad hoc mode 존재한다.
- infrastructure mode
현재 사용하는 AP(Access Point)와 STA(Station)을 두고 통신하는 구조로 STA끼리 통신하고자 한다면,
반드시 AP를 걸쳐 통신하도록 구현이 되어있는 구조이다.
반드시 AP를 걸쳐 통신하도록 구현이 되어있는 구조이다.
- ad hoc mode
상위모드와 달리 P2P(peer to peer)방식으로 STA(Station)끼리 직접 통신을 할때 사용되는 mode이다.
이와 유사한것이 Wifi Direct 이지만, Wifi Direct는 infrastructure mode에서 동작한다.
3.1 infrastructure mode
• STA (Station) infrastructure mode
STA은 Client 즉 단말이고, default 모드이라고 한다 , 상위에서도 설명했지만, 2개의 STA들이 통신을 할수 없고, AP를 걸쳐야하는 구조이기때문에,
먼저 STA이 AP에 접속을 해야한다. 이때 필요한 것이 AP와STA간의 인증이 존재하는데, 다양하게 존재한다.
이 모드를 WEXT tools (iwconfig) 안에서는 Managed Mode라고도 부른다.
• AP(Access Point, Hotspot) infrastructure mode
managed 된 network에서 AP로 Master Mode로 동작하며,이는 network를 관리하고 유지를 해준다.
주목적은 STA를 관리 및 제어 등 여러가지 설정을 하게된다.
Linux에서 이를 사용하기 위해서, hostapd가 사용되어진다.
STA와 AP를 사용을 동시에 동작 가능하도록도 하는 것도 가능한데, 핸드폰의 Hotspot 역시 AP 기능으로서 사용하는 것이다.
https://en.wikipedia.org/wiki/Wireless_access_point
처음 P2P로 연결할때, 누가 AP/STA 동작할 것인지에 대해 결정하고 동작한다고 한다.
WiFi Direct는 Single hop Network 이며, ad hoc는 multi-hop 이라고 한다.
WiFi Direct와 ad hoc의 중요한 차이점은 WiFi Direct는 WPA2에 의해 보호되고 있으며, 전형적인 WiFi speed와 range를 가지고 있다고 한다.
이와 유사한것이 Wifi Direct 이지만, Wifi Direct는 infrastructure mode에서 동작한다.
3.1 infrastructure mode
• STA (Station) infrastructure mode
STA은 Client 즉 단말이고, default 모드이라고 한다 , 상위에서도 설명했지만, 2개의 STA들이 통신을 할수 없고, AP를 걸쳐야하는 구조이기때문에,
먼저 STA이 AP에 접속을 해야한다. 이때 필요한 것이 AP와STA간의 인증이 존재하는데, 다양하게 존재한다.
이 모드를 WEXT tools (iwconfig) 안에서는 Managed Mode라고도 부른다.
• AP(Access Point, Hotspot) infrastructure mode
managed 된 network에서 AP로 Master Mode로 동작하며,이는 network를 관리하고 유지를 해준다.
주목적은 STA를 관리 및 제어 등 여러가지 설정을 하게된다.
Linux에서 이를 사용하기 위해서, hostapd가 사용되어진다.
STA와 AP를 사용을 동시에 동작 가능하도록도 하는 것도 가능한데, 핸드폰의 Hotspot 역시 AP 기능으로서 사용하는 것이다.
https://en.wikipedia.org/wiki/Wireless_access_point
- WiFi Direct
처음 P2P로 연결할때, 누가 AP/STA 동작할 것인지에 대해 결정하고 동작한다고 한다.
WiFi Direct는 Single hop Network 이며, ad hoc는 multi-hop 이라고 한다.
WiFi Direct와 ad hoc의 중요한 차이점은 WiFi Direct는 WPA2에 의해 보호되고 있으며, 전형적인 WiFi speed와 range를 가지고 있다고 한다.
아직 직접 사용해본적이 없어 관련자료만 수집한다.
WIFI Direct
https://en.wikipedia.org/wiki/Wi-Fi_Direct
https://en.wikipedia.org/wiki/Wi-Fi_Direct
Raspberry Pi WIFI Direct 설정
https://tomaketech.tistory.com/21
https://tomaketech.tistory.com/21
3.2 ad-hoc mode
• Ad-hoc (IBSS) Mode
Ad-hoc모드는 IBBS(Independent Basic Service Set) 모드로 알려져있으며, Peer to Peer 방식으로 AP의 도움 없이 통신이 가능하다.
IBBS에 있는 개별 STA이 서로 조절을 하며 P2P(Peer to Peer)로 그 이상이 가능하도록 되어 있다고 한다.
장점은 일 대 일 , 그 이상이 되고, 인증을 거치지 않고 AP 없이 직접 통신하고 전송속도 및 전송범위 또한 개선된다.
https://en.wikipedia.org/wiki/Wireless_ad_hoc_network
https://en.wikipedia.org/wiki/Ad_hoc_network
https://en.wikipedia.org/wiki/Mobile_ad_hoc_network
3.3 WIFI 그 외 다른 모드
아래 부분 Mode들은 각각의 소스들이 존재하지만, 각각의 정확한 역할과 사용용도를 모르기에, 관련된 부분을 언급한다.
https://en.wikipedia.org/wiki/Wireless_distribution_system
http://linuxwireless.sipsolutions.net/en/users/Documentation/iw/#Setting_up_a_WDS_peer
http://linuxwireless.sipsolutions.net/en/users/Documentation/iw/#Using_4-address_for_AP_and_client_mode
한마디로 Packet Sniffer 역할로, 보통 현재 동작 중인 WIFI Packet를 쉽게 잡아 분석할 수 있다.
• Ad-hoc (IBSS) Mode
Ad-hoc모드는 IBBS(Independent Basic Service Set) 모드로 알려져있으며, Peer to Peer 방식으로 AP의 도움 없이 통신이 가능하다.
IBBS에 있는 개별 STA이 서로 조절을 하며 P2P(Peer to Peer)로 그 이상이 가능하도록 되어 있다고 한다.
장점은 일 대 일 , 그 이상이 되고, 인증을 거치지 않고 AP 없이 직접 통신하고 전송속도 및 전송범위 또한 개선된다.
https://en.wikipedia.org/wiki/Wireless_ad_hoc_network
https://en.wikipedia.org/wiki/Ad_hoc_network
https://en.wikipedia.org/wiki/Mobile_ad_hoc_network
3.3 WIFI 그 외 다른 모드
아래 부분 Mode들은 각각의 소스들이 존재하지만, 각각의 정확한 역할과 사용용도를 모르기에, 관련된 부분을 언급한다.
- Wireless Distribution System (WDS) mode
- Monitor (MON) mode
- Mesh Mode
- WDS(Wireless Distribution System) mode
https://en.wikipedia.org/wiki/Wireless_distribution_system
http://linuxwireless.sipsolutions.net/en/users/Documentation/iw/#Setting_up_a_WDS_peer
http://linuxwireless.sipsolutions.net/en/users/Documentation/iw/#Using_4-address_for_AP_and_client_mode
- MON(Monitor) Mode
한마디로 Packet Sniffer 역할로, 보통 현재 동작 중인 WIFI Packet를 쉽게 잡아 분석할 수 있다.
이는 각 WIFI Driver 혹은 Chip 제조사에서 지원을 해줘야 가능하며, 이 기능이 제공되면 Packet Sniffering 가능하다.
- Mesh Mode
WIFI에서는 상위 Infra의 AP/STA가 단일 버스 구조가 아닌 Mesh로 구성하여, 사용하려는 것 같은데, 아직 WIFI에서 직접 구성을 본 적 없다.
다만, Mesh로 구성할 경우, 항상 Routing 알고리즘도 필요할 것으로 생각되어진다.
https://en.wikipedia.org/wiki/Mesh_networking
https://en.wikipedia.org/wiki/Wireless_mesh_network
4. 출처 및 관련사항
WLAN 관련내용
https://en.wikipedia.org/wiki/Wireless_LAN
http://wireless.kernel.org/en/users/Documentation/modes
http://www.haifux.org/lectures/206/wirelessLec.pdf
https://en.wikipedia.org/wiki/Mesh_networking
https://en.wikipedia.org/wiki/Wireless_mesh_network
4. 출처 및 관련사항
WLAN 관련내용
https://en.wikipedia.org/wiki/Wireless_LAN
http://wireless.kernel.org/en/users/Documentation/modes
http://www.haifux.org/lectures/206/wirelessLec.pdf