이전에 이어서

 

 

 

네트워크 접근 인증 프로토콜에 대해서 설명해 드리겠습니다 ^^

 

 

 

 

 



 

음.. 위의 그림은 네트워크 접근 인증 프로토콜의 종류들입니다 ^^;; 많으면서도..어렵네요..

 

하지만 어렵지않습니다!!ㅋㅋㅋㅋ 제가 지난번에 PAP와 CHAP가 있다고만 말씀드렸죠?

 

과연 PAP와 CHAP란 무엇인지?? 또 다른 것에는 어떤 것들이 있는지 한번 알아보도록 하겠습니다 ㅋ_ㅋ

 

 

 

우선 공유 키를 이용한 인증 방법에 대해서 설명드릴게요~

 

 

공유 키(Shared Key) 인증이란, 말 그대로 키를 공유하는겁니다.

 

컴퓨터(이하, STA(Station))와 인증 서버가 동일한 비밀 키를 가지고 있는 것이지요. 

 

 

 

STA가 인터넷에 연결하고싶다.. 그러면 AP에게 요청을 보냅니다ㅋ 연결하고싶다고..

 

AP는 자신의 비밀 키와 연결 요청을 한 STA의 비밀 키를 서로 이게 맞나?다른가? 대조시켜봅니다.

물론 맞다면 OK하고 연결시켜주겠지만, 다르다면 연결시켜주지 않겠죠.

 

 

 

왠지 좀 강화된 인증방법같죠?ㅋ_ㅋ

 

 

 

하지만 이 공유 키를 이용한 인증은 아~무런 인증을 걸지 않은 Open System보다 더욱 취약한 인증 방식입니다 -_-;;

 

왜 그런지는 다음에 설명드릴게요~ RC4라고하는 알고리즘과 관계가 깊기 때문인데 아직 설명드리기가 이르네요 ㅋㅋ..

 

 

 

 

 

그럼 일단 공유 키 인증은 다음으로 미뤄두고~

 

 1장에서 미뤄두었던 PAP(Password Authentication Protocol)에 대해서 먼저 설명 드리겠습니다ㅋ

 

PAP란 은근히 간단한 녀석입니다. 하지만 간단한 만큼 문제점이 있는 놈인데요.. 한번 볼까요?


 

 

위의 그림은 PAP의 인증 절차입니다~

 

보시면 제일 처음에 'PPP LCP Negotiation' 이라는 절차를 수행하는데요.

 

 

 

이는 한번에 보낼 수 있는 최대 프레임(흔히들 MRU(Maximum Receive Unit라고도 하죠?)과 어떤 인증을 사용할것인지에 대해 협상하는 것입니다.

 

쉽게 말해서 최대한 한번에 패킷을 어느정도 보낼 수 있는지!! 어떤 인증?? 여기선 PAP 인증이 되겠죠?^^ 이것을 서로서로 방식을 정하는겁니다.

 

 

 

이렇게 협상을 하고나면 STA는 자신의 계정 정보를 NAS에게 줍니다.

 

NAS는 인증서버라고 생각하시면 되요 ㅋㅋㅋ 그런데!!

 

 

 

여기서 NAS 안에 계정 데이터베이스가 있으면 NAS혼자 비교해서 승낙거절하면 되는데 NAS가 그런 시스템이 없다면

 

옆에있는 RADIUS라는 인증 서버에게 "얘 정보 너  혹시 가지고 있어??" 라고 물어본답니다 ㅋ

 

만약 RADIUS가 없다고하면 인증을 거절해야겠지요?? 계정이 없는거니까요 ㅋ

 

 

 

그런데 이 절차에는 문제점이 하나 있습니다!!

 

 

 

바로 처음에 STA가 자신의 계정 정보를 NAS에게 넘겨줄 때 이게 평문으로 전송된다는 것!!

 

 

 

 

 

 

 

그래서!!! 만들어진게!!!!!!

 

 

 




 

 

바로 이 CHAP(Challenge-Handshake Authentication Protocol) 입니다!!

 

 

이건 기존의 PAP 인증 시 패스워드가 평문으로 노출되는 것을 막고자 제안된 프로토콜인데요.

 

이는 아이디는 평문전송시키되, 비밀번호는 특수한 처리를 시켜 보호하는 기술이 있습니다.

 

 

 

바로 Challenge-Key Handshaking이 비밀번호를 보호해주는 주요 역할을 수행해줍니다!!

 

 

 

이게 뭘까요?

 

과정을 보시면 금방 이해가 가실겁니다 ㅋ_ㅋ

 

 

 

1. 우선 사용자 명을 NAS에게 전송합니다.

 

2. NAS는 요청을 보고 프레임의 순서 번호인 Sequence Number(줄여서 Seq_Num) 과 임의의 값인 Challenge Value(CV)를

CHAP Challenge라는 패킷에 포함시켜 STA에게 전송합니다.


3.STA는 받은 정보(Seq_Num,CV)와 자신의 패스워드를 MD5 해쉬를 하여 다시 NAS에게 보냅니다.

 

4.NAS는 STA에게 받은 해쉬 값과 자신이 직접 Seq_num,CV와 계정 테이블에 있는 패스워드를 해쉬화한 값을 비교합니다.

 

5.일치하면 인증 성공 메세지를 STA에게 보냅니다.

 

 



 

바로 이런식이죠ㅋㅋㅋ

 

이런 식의 인증 형태가 바로 CHAP 인증이라는 것!! 아시겠죠??

 

 

그런데 이런 CHAP 인증 형태와 유사한 EAP 인증이 있습니다.

 

바로 EAP-MD5라는 인증인데요 음...그전에 EAP부터 설명을 드려야 겠지요??ㅋㅋㅋㅋ

 

 

 

 

 

EAP(Extensible Authentication Protocol)란, 뜻 그대로 확장된 인증 프로토콜이란 의미입니다.

 

EAP-MD5..OTP..LEAP..PEAP..TLS..등등 여러가지 방식을 모~~두 지원할 수 있을 정도로의

막강한 확장성을 지니고 있기 때문이랍니다.

 

 

그럼 과연 EAP-MD5.. 이건 어떤 인증 프로토콜일까요?

 



 

 

 

바로 요로코롬..복잡해보이는 -_- 프로토콜입니다...

 

하지만 이 역시(??) 매우 취약한 점이 존재한답니다!!

 

 

우선 그건 인증 절차를 보면 자연스레 나오게 되어있으니 ㅋ 인증 절차부터 한번 볼까요??ㅋ_ㅋ

 

 

 

 

이는 CHAP와 별 다를 바 없습니다..

 

뭐.. 일단 접속 요청을 하면! AP가 사용자에게 물어보겠죠? "니 아이디가 무엇이냐?"하고

 

그럼 "내 아이디는 Arami이다" 하고 EAP-Response를 날려줍니다! 이 프레임은 AP를 거쳐 인증 서버에게 도달하게 됩니다. 

 

인증 서버는 CHAP와 마찬가지로 Seq_num과 CV를 STA에게 넘겨줍니다. "이 값과 니 비밀번호를 같이 MD5해쉬해서 나한테 주라" 라고 하겠죠?

 

그렇게 해쉬해서 값을 넘겨주면 인증 서버 측에서 자신의 계정 테이블의 비밀번호와 CV,Seq_Num을 해쉬해서 넘겨받은 값과 비교를 합니다.

 

그렇게 일치하면 성공패킷을 넘겨주겠지요?

 

 

 

 

 

하지만 뭔가 빠진게 있습니다..

 

 

 

 

 

 

바로 상호인증을 하지 않는다는 것!!!!

 




 

 

상호간의 인증을 하지 않게 되면 서버이건..클라이언트건.. 지들이 통신하는 상대가 누구건 간에 항~~상~~ 올바른 사용자라고 믿게 됩니다 -_-;;

 

 

그렇기 때문에 위의 그림 처럼 Rogue AP(불법적으로 네트워크에 연결된 AP)가 연결되어있는 경우는..

 

 

말 다했죠..ㅋㅋㅋㅋㅋ개인정보 유출 끝장나는거지요..ㅋㅋㅋㅋㅋ

 

 

 

 

그래서..

 

EAP에 제안된 여러 인증 프로토콜이 존재한답니다.

 

 

 

기존의 MD5 방식과는 차원이 다른 인증 방식을 제공하지요..

 

대표적으로 EAP-TLS/TTLS, PEAP, EAP-FAST !!

 

 

 

이들은 모두 TLS(Transport Layer Security)기반으로 이루어져 있는데..

 

 

 

TLS란 간단히 말해서 그냥 인터넷 상의 어플리케이션과 사용자의 프라이버시를 지켜주기 위한 프로토콜이라고 생각하시면 되요!!ㅋㅋ

 

 

이런 프로토콜을 바닥으로 깔고있다!! 고 하는 인증 프로토콜들이니 웬만하면 다 쓸만하겠죠??ㅋ_ㅋ




 

위의 절차들이 바로 TLS기반의 EAP 인증 방식들입니다^^

 

 

EAP-TLS(Transport Layer Security)같은 경우엔 서버와 STA 양 측 모두에게 인증서를 요구하는 프로토콜입니다.

 

이는 보안상 매우 매우 매우 강화되었지만.. 보안이 강한 만큼 사용자 입장에선 매우 번거로운데요..

 

그래서 대체로 EAP-TLS같은 경우엔 금융쪽 시장에서 자주 사용된답니다~

 

 

 

이와 비슷한 EAP-TTLS(Tunneled Transport Layer Security)!!

 

이는 TLS의 STA에 인증서를 요구하는 부담을 덜어줬습니다!!(STA에게는 인증서를 요구하지 않는다는 뜻!!)

 

 

PEAP(Protected Extensible Authentication Protocol) 역시 STA에게 인증서를 요구하지 않는다고 합니다^^

 

 

 

 

TLS/TTLS,PEAP같은 경우엔 인증서를 이용한 인증이였지만, EAP-FAST(Flexible Extensible via Secure Tunneling)같은 경우엔

PAC라고 하는 색다른 절차를 이용한다고 하네요?

 

 

 

PAC(Protected Access Credential)이란, 인증서를 대체하기 위해 Cisco사에서 개발한 일종의 개인 키 인증 방식이라고 할 수 있습니다.

 

쉽게 말하자면, 개인의 고유한 식별자를 이용한 방식이라고 할까요? ㅋㅋ

고유한 식별자를 이용하게 되니 당연히 그만큼 보안성도 강화되기 마련이죠.

 

이 EAP에 대해서 좀 더 관심이 있으신 분들은 http://white-hacker.wo.tc/60128822149 여기를 참고해 주시길 바랍니다^^

 

 

 

 

 

 

2강은 이만 여기까지..ㅋㅋ

 

 

 

-----------------------------------

참고:

 

http://anrlab.kau.ac.kr

http://www.cisco.com

http://en.wikipedia.org

http://documentation.netgear.com

 

RFC 1334, PPP Authentication Protocols

RFC 2716, PPP EAP TLS Authentication Protocol

RFC 3748, Extensible Authentication Protocol(EAP)

 



출처 - 옛날 블로그 2011/05/27 02:21

Posted by extr
: