CHAP
더 많은 작업
CHAP(Challenge-Handshake Authentication Protocol)은 PPP 링크에서 인증하는 쪽이 보낸 임의의 도전값에 접속하는 쪽이 공유 비밀과 함께 해시한 응답을 돌려주게 하여, 비밀번호를 회선에 싣지 않고 상대를 확인하는 인증 프로토콜이다.
PPP 는 링크 수립 단계에서 LCP 로 인증 프로토콜을 협상하고, 인증 단계를 마친 뒤에 네트워크 계층 협상(NCP)으로 넘어간다. CHAP 은 이 인증 단계에서 쓰는 방식 가운데 하나로 RFC 1994 가 정의한다. PPP 프로토콜 번호는 0xC223 이다. 같은 자리에 쓰이는 PAP 가 아이디와 비밀번호를 그대로 보내는 것과 달리, CHAP 은 비밀값 자체를 링크로 보내지 않는다.[1]
라우터 제조사 문서도 같은 흐름으로 설명한다. 인증하는 쪽이 무작위로 만든 도전값을 보내면 상대는 그 값을 일방향 해시로 계산해 돌려주고, 해시에 들어가는 키는 양쪽만 아는 비밀이다. 응답이 자기가 계산한 값과 맞으면 인증이 끝난다.[2]
CHAP 은 세 번의 메시지로 인증하는 3단계 핸드셰이크이다.
- Challenge - 인증하는 쪽(authenticator)이 식별자(Identifier)와 매번 새로 만든 도전값(Challenge Value)을 보낸다
- Response - 접속하는 쪽(peer)이 식별자, 공유 비밀(secret), 도전값을 이어 붙여 일방향 해시 함수에 넣은 값을 자기 이름과 함께 돌려준다. MD5 를 쓰면 응답은 16바이트이다
- Success / Failure - 인증하는 쪽이 같은 계산을 해서 맞으면 성공, 틀리면 실패를 알리고 연결을 끊는다
링크가 맺어진 뒤에도 인증하는 쪽은 아무 때나 새 도전값을 보내 같은 절차를 되풀이할 수 있다. 도전값과 식별자가 매번 바뀌므로 예전 응답을 녹음해 다시 보내는 재전송 공격이 통하지 않는다.[1]
- 양쪽이 같은 비밀값으로 해시를 계산해야 하므로, 인증 서버가 비밀값을 복원 가능한 형태로 가지고 있어야 한다. 일방향으로 해시해 저장한 비밀번호 데이터베이스는 그대로 쓸 수 없다
- 인증은 한쪽 방향이다. 서로를 확인하려면 양방향으로 각각 CHAP 을 협상한다
- 링크를 지나는 데이터는 암호화하지 않는다. 인증만 하는 프로토콜이다[1]
"클라이언트가 인증 요청 패킷에 사용자 이름과 비밀번호를 실어 보낸다"는 PAP 의 동작이다. CHAP 의 응답 패킷에는 이름과 해시값이 들어 있고 비밀번호는 들어 있지 않다.
| 구분 | PAP | CHAP |
|---|---|---|
| 핸드셰이크 | 2단계(인증 요청, 수락·거부) | 3단계(도전, 응답, 성공·실패) |
| 회선에 실리는 것 | 아이디와 비밀번호(평문) | 도전값과 해시 응답 |
| 시작하는 쪽 | 접속하는 쪽이 계속 보낸다 | 인증하는 쪽이 도전값을 보낸다 |
| 재인증 | 링크 수립 때 한 번 | 링크 중에도 수시로 |
| 재전송 공격 | 막지 못한다 | 바뀌는 도전값으로 막는다 |
| 프로토콜 | 하는 일 |
|---|---|
| LCP(Link Control Protocol) | 링크를 설정·구성·시험·해제하고, 쓸 인증 프로토콜을 협상한다 |
| NCP(Network Control Protocol) | 링크 위에서 쓸 네트워크 계층 프로토콜을 하나씩 설정한다 |
| IPCP | IP 를 위한 NCP. IP 주소 배정과 헤더 압축을 협상한다 |
| PAP, CHAP | 인증 단계에서 상대를 확인한다 |
- ↑ 1.0 1.1 1.2 「RFC 1994: PPP Challenge Handshake Authentication Protocol (CHAP)」, IETF, https://www.rfc-editor.org/rfc/rfc1994, 확인일: 2026-11-04.
- ↑ 「PPP Challenge Handshake Authentication Protocol」, Juniper Networks Junos OS 문서, https://www.juniper.net/documentation/us/en/software/junos/network-access-protocols/topics/topic-map/interfaces-configuring-the-ppp-challenge-handshake-authentication-protocol.html, 확인일: 2026-11-04.