레이블이 WLAN인 게시물을 표시합니다. 모든 게시물 표시
레이블이 WLAN인 게시물을 표시합니다. 모든 게시물 표시

2009년 11월 2일 월요일

EAP(Extensible Authentication Protocol), 확장 가능 인증 프로토롤

 점대점 통신 규약(PPP)에서 규정된 인증 방식으로 확장이 용이하도록 고안된 프로토콜. NAS(Network Access Server)와 단말 간에 PPP 연결 시 링크 설정 과정에서 NAS는 자신에게 연결된 인증 서버가 인증 프로토콜을 사용할 때마다 인증 프로토콜 종류를 명시하는 영역을 연결 제어 절차(LCP)에 규정해야 하는 문제점이 발생한다. 이러한 문제점을 해결하기 위하여 확장 가능 인증 프로토콜(EAP) 헤더에 인증 방식의 종류(TLS, OTP, Token Card 등)를 명시함으로써 NAS는 인증 방식에 상관없이 단순히 EAP만으로 확장이 용이해진다. RFC 2284에 규정되어 있으며, 스마트 카드, Kerberos, 공개 키, 1회용 패스워드(OTP), 전송 계층 보안(TLS) 등의 사용이 가능해 진다.





< 사용자 >


EAPOL


< AP >


RADIUS Protocol


< 인증서버>






[1]---------------------------------------->

802.11 연결요청


























<----------------------------------------[2]

802.11 연결 응답


























[3]---------------------------------------->

EAPLOL 시작


























<----------------------------------------[4]

EAPOL 요청(식별자)


























[5]---------------------------------------->

EAPLOL 응답(식별자)


[6]---------------------------------------->

RADIUS 접속 요청










<----------------------------------------[8]

EAPOL 요청


<----------------------------------------[7]

RADIUS 접속 첼린지










[9]---------------------------------------->

EAPLOL 응답


[10]--------------------------------------->

RADIUS 접속 요청










<---------------------------------------[12]

EAPLOL 성공


<---------------------------------------[11]

RADIUS 접속 허용






사용자와 AP는 EAPOL(EAP Over Lan) 프로토콜을 통해서 패킷 전송.
AP와 인증서버는 RADIUS(remote Authentication Dial-in User Services) 프로토콜을 통해서 패킷 전송.

참고: 네이버 카페 -21세기 IT 리더: EAP 인증 절차

2009년 10월 14일 수요일

[진행중] Marvell 8686 소스 추적

============================================================================
관련 파일 추측
============================================================================
vim net/wireless/Kconfig
----------------------------------------------------------------------------
WIRELESS_OLD_REGULATORY [*] Old wireless static regulatory definitions
WIRELESS_EXT -*- Wireless extensions
WIRELESS_EXT_SYSFS [*] Wireless extensions sysfs files
LIB80211 -*- Common routines for IEEE802.11 drivers
----------------------------------------------------------------------------
vim net/wireless/Makefile
----------------------------------------------------------------------------
obj-$(CONFIG_WIRELESS_EXT) += wext.o
obj-$(CONFIG_LIB80211) += lib80211.o
----------------------------------------------------------------------------
wext.c
lib80211.c
lib80211_crypt_ccmp.c
lib80211_crypt_tkip.c
lib80211_crypt_wep.c
============================================================================
vim drivers/net/wireless/Kconfig
----------------------------------------------------------------------------
WLAN_PRE80211 [*] Wireless LAN (IEEE 802.11)
LIBERTAS <*> Marvell 8xxx Libertas WLAN driver support
LIBERTAS_SDIO
LIBERTAS_DEBUG [*] Enable full debugging output in the Libertas module.
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
----------------------------------------------------------------------------
vim drivers/net/wireless/Makefile
vim drivers/net/wireless/libertas/Makefile
----------------------------------------------------------------------------
libertas-objs := main.o wext.o rx.o tx.o cmd.o cmdresp.o scan.o 11d.o debugfs.o persistcfg.o ethtool.o assoc.o
libertas_sdio-objs += if_sdio.o
obj-$(CONFIG_LIBERTAS) += libertas.o
obj-$(CONFIG_LIBERTAS_SDIO) += libertas_sdio.o
----------------------------------------------------------------------------
11d.c
ethtool.c
persistcfg.c
assoc.c
if_sdio.c
rx.c
built-in.c
libertas.c
scan.c
cmd.c
libertas_sdio.mod.c
tx.c
cmdresp.c
libertas_sdio.c
wext.c
debugfs.c
main.c
============================================================================


============================================================================
drivers/net/wireless/libertas/if_sdio.c
- S3C6410 HSMMC 드라이버와 인터페이스 되는 파일
- 커널에 해당 디바이스 드라이버를 등록
- 펌웨어 다운로드 및 SDIO 인터페이스 초기화
----------------------------------------------------------------------------
module_init(if_sdio_init_module);
sdio_register_driver(&if_sdio_driver);
static struct sdio_driver if_sdio_driver = {
.name = "libertas_sdio",
.id_table = if_sdio_ids,
.probe = if_sdio_probe,
.remove = if_sdio_remove,
};
━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━ ━
홈