본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

CHAP(Challenge-Handshake Authentication Protocol)은 PPP 링크에서 인증하는 쪽이 보낸 임의의 도전값에 접속하는 쪽이 공유 비밀과 함께 해시한 응답을 돌려주게 하여, 비밀번호를 회선에 싣지 않고 상대를 확인하는 인증 프로토콜이다.

PPP 는 링크 수립 단계에서 LCP 로 인증 프로토콜을 협상하고, 인증 단계를 마친 뒤에 네트워크 계층 협상(NCP)으로 넘어간다. CHAP 은 이 인증 단계에서 쓰는 방식 가운데 하나로 RFC 1994 가 정의한다. PPP 프로토콜 번호는 0xC223 이다. 같은 자리에 쓰이는 PAP 가 아이디와 비밀번호를 그대로 보내는 것과 달리, CHAP 은 비밀값 자체를 링크로 보내지 않는다.[1]

라우터 제조사 문서도 같은 흐름으로 설명한다. 인증하는 쪽이 무작위로 만든 도전값을 보내면 상대는 그 값을 일방향 해시로 계산해 돌려주고, 해시에 들어가는 키는 양쪽만 아는 비밀이다. 응답이 자기가 계산한 값과 맞으면 인증이 끝난다.[2]

CHAP 은 세 번의 메시지로 인증하는 3단계 핸드셰이크이다.

  1. Challenge - 인증하는 쪽(authenticator)이 식별자(Identifier)와 매번 새로 만든 도전값(Challenge Value)을 보낸다
  2. Response - 접속하는 쪽(peer)이 식별자, 공유 비밀(secret), 도전값을 이어 붙여 일방향 해시 함수에 넣은 값을 자기 이름과 함께 돌려준다. MD5 를 쓰면 응답은 16바이트이다
  3. Success / Failure - 인증하는 쪽이 같은 계산을 해서 맞으면 성공, 틀리면 실패를 알리고 연결을 끊는다

링크가 맺어진 뒤에도 인증하는 쪽은 아무 때나 새 도전값을 보내 같은 절차를 되풀이할 수 있다. 도전값과 식별자가 매번 바뀌므로 예전 응답을 녹음해 다시 보내는 재전송 공격이 통하지 않는다.[1]

  • 양쪽이 같은 비밀값으로 해시를 계산해야 하므로, 인증 서버가 비밀값을 복원 가능한 형태로 가지고 있어야 한다. 일방향으로 해시해 저장한 비밀번호 데이터베이스는 그대로 쓸 수 없다
  • 인증은 한쪽 방향이다. 서로를 확인하려면 양방향으로 각각 CHAP 을 협상한다
  • 링크를 지나는 데이터는 암호화하지 않는다. 인증만 하는 프로토콜이다[1]

PAP 와 구별하기

편집 원본 편집

"클라이언트가 인증 요청 패킷에 사용자 이름과 비밀번호를 실어 보낸다"는 PAP 의 동작이다. CHAP 의 응답 패킷에는 이름과 해시값이 들어 있고 비밀번호는 들어 있지 않다.

구분 PAP CHAP
핸드셰이크 2단계(인증 요청, 수락·거부) 3단계(도전, 응답, 성공·실패)
회선에 실리는 것 아이디와 비밀번호(평문) 도전값과 해시 응답
시작하는 쪽 접속하는 쪽이 계속 보낸다 인증하는 쪽이 도전값을 보낸다
재인증 링크 수립 때 한 번 링크 중에도 수시로
재전송 공격 막지 못한다 바뀌는 도전값으로 막는다

PPP 의 다른 구성 프로토콜과 구별하기

편집 원본 편집
프로토콜 하는 일
LCP(Link Control Protocol) 링크를 설정·구성·시험·해제하고, 쓸 인증 프로토콜을 협상한다
NCP(Network Control Protocol) 링크 위에서 쓸 네트워크 계층 프로토콜을 하나씩 설정한다
IPCP IP 를 위한 NCP. IP 주소 배정과 헤더 압축을 협상한다
PAP, CHAP 인증 단계에서 상대를 확인한다
  1. ↑ 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.
  2. ↑ 「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.