1. CHAP
ㅇ PPP 등에서 사용하는 인증용 프로토콜 중의 하나
ㅇ 특징
- 기존 PAP 방식의 보안상 취약점(평문으로 사용자명,암호를 그대로 전송)을 개선
. CHAP은 쌍방이 이미 알고있는 암호를 절대로 링크를 통해 그대로 전송 안함
- 링크 개설은 클라이언트가 하더라도, 인증 과정은 서버쪽에서 주관 함
ㅇ 표준 : RFC 1994 (1996년)
2. CHAP 동작 방식
ㅇ 동작방식 : Three-way Handshaking (3 단계 핸드세이킹) 방식
- ① Challenge 메세지 (Challenge Message)
. 인증 서버는 클라이언트에게 랜덤한 Challenge 메세지(통상 랜덤 수)를 보내서,
. 그 질문에 대한 올바른 응답을 요청
.. 한편, 챌린지 메세지는 매회 그 내용이 바뀌게 됨 (재생공격 방지)
. 또한, 순서번호도 함께 송신
- ② 응답
. 클라이언트는 보안을 위해 서버가 보내준 Challenge 메세지와 자신의 암호 등에 의해
해쉬 함수를 이용하여 계산한 결과인 해쉬 값을 보냄
. 사용자 비밀 정보(암호 등)에 의한 해쉬값화는 MD5 해쉬 사용
- ③ 인증 승인 또는 거부
. 인증 서버는 값이 일치하면 인증을 하게 됨
3. CHAP 패킷
ㅇ 기본 패킷 형식
- code (1 바이트) : (1) Challenge, (2) Response, (3) Success, (4) Failure
- ID (1 바이트) : 송신 순서번호
- Length (2 바이트) : CHAP 패킷 전체 길이
- CHAP data (가변)
ㅇ Challenge 및 Response 패킷 형식
- Value SIze (1 바이트) : Value 필드의 길이
- Value (가변) : 챌린지 메세지 값(Challenge, 1) 또는 해시 값(Response, 2)
. Challenge : 서버 생성 랜덤값
. Response : 클라이언트 생성 해시값 (송신 순서번호 + 암호 + 챌린지)
.. 해시 알고리즘은 기본적으로 MD5 사용 ☞ LCP 옵션 참조
- Name (가변) : 송신측 식별명
ㅇ Success 및 Failure 패킷 형식
4. MS-CHAP, MS-CHAP v2
ㅇ MS-CHAP (RFC 2433)
- MS社에서 독자적으로 개발하였으나, 후에 RFC 2433로 정의됨
- Identity(신원) 정보 안에 해싱된 암호를 포함시켜 전송시킴
- MS社 AD(Active Directory) 내에 암호가 해시된 값으로 저장되고,
후에 사용자가 제시한 해시값과 비교됨
ㅇ MS-CHAP v2 (RFC 2759)
- MS社 윈도우즈 2000 패밀리에서부터 사용
- EAP-PEAP, EAP-TTLS, EAP-FAST에서 MS-CHAP v2를 선택적으로 사용