챌린지 핸드쉐이크 인증 프로토콜

Challenge-Handshake Authentication Protocol

컴퓨팅에서 Challenge-Handshake Authentication Protocol(CHAP)은 원래 Point-to-Point Protocol(PPP)에서 사용자를 검증하기 위해 사용되는 인증 프로토콜입니다.CHAP는 RADIUS 및 Diameter 등의 다른 인증 프로토콜에서도 실행됩니다.

대부분의 네트워크액세스 서버와 마찬가지로 거의 모든 네트워크오퍼레이팅시스템이 CHAP를 사용한PPP를 지원하고 있습니다.CHAP는 DSL 사용자를 인증하기 위해 PPPoE에서도 사용됩니다.

PPP는 암호화되지 않은 상태로 데이터를 전송하기 때문에 CHAP는 PPP 세션을 감시할 수 있는 모든 공격자에게 취약합니다.공격자는 사용자 이름, CHAP 챌린지, CHAP 응답 및 PPP 세션과 관련된 기타 정보를 볼 수 있습니다.그런 다음 공격자는 오프라인 사전 공격을 실행하여 원래 암호를 얻을 수 있습니다.또한 PPP에서 CHAP를 사용하면 오센티케이터(일반적으로 네트워크액세스 서버)에 의해 생성되는 챌린지를 사용하여 피어에 의한 리플레이 공격으로부터 보호할 수 있습니다.

CHAP가 다른 프로토콜에서 사용되는 경우 CHAP는 클리어 방식으로 전송되거나 TLS(Transport Layer Security)와 같은 보안 계층에 의해 보호될 수 있습니다.예를 들어 User Datagram Protocol(UDP)을 사용하여 CHAP를 RADIUS 경유로 송신하는 경우, RADIUS 패킷을 확인할 수 있는 공격자는 PPP와 같이 오프라인 딕셔너리 공격을 실행할 수 있습니다.

CHAP에서는 클라이언트와 서버 모두 패스워드의 클리어 텍스트버전을 알고 있어야 합니다.단, 패스워드 자체는 네트워크를 통해 송신되지 않습니다.따라서 PPP에서 CHAP를 사용하면 Password Authentication Protocol(PAP)에 비해 보안이 향상됩니다.PAP는 이러한 이유로 모두 취약합니다.

CHAP의 이점

피어가 CHAP 를 송신하면, 인증 서버는 CHAP 를 수신해, 데이타베이스로부터 「정상」의 패스워드를 취득해, CHAP 계산을 실행합니다.결과 해시가 일치하면 사용자는 인증된 것으로 간주됩니다.해시가 일치하지 않으면 사용자 인증 시도가 거부됩니다.

인증 서버는 비밀번호를 클리어 텍스트로 저장해야 하므로 저장된 비밀번호에 다른 형식을 사용할 수 없습니다.공격자가 암호 데이터베이스 전체를 도용하면 해당 암호는 모두 데이터베이스에 "비밀번호"로 표시됩니다.

그 결과 CHAP는 PPP 링크를 통해 사용할 경우 PAP보다 안전하지만 PAP 의 다른 방법보다 더 안전한 스토리지를 "미사용"할 수 없게 됩니다.

변종

MS-CHAP는 CHAP와 비슷하지만 다른 해시 알고리즘을 사용하여 각 당사자가 서로 인증할 수 있습니다.

작업 주기

CHAP는 원래 Point-to-Point Protocol(PPP) 서버가 리모트클라이언트의 ID를 검증하기 위해 사용한 인증 방식입니다.CHAP는 3방향 핸드쉐이크를 사용하여 클라이언트의 ID를 정기적으로 확인합니다.이는 초기링크(LCP) 확립 시 발생하며 그 후 언제든지 다시 발생할 수 있습니다.확인은 공유 비밀 정보(클라이언트의 [1]패스워드 등)를 기반으로 합니다.

  1. 링크 확립 단계가 완료되면 오센티케이터는 피어에 "챌린지" 메시지를 보냅니다.
  2. 피어는 챌린지와 시크릿을 조합한 단방향 해시 함수를 사용하여 계산된 값으로 응답합니다.
  3. 오센티케이터는 예상되는 해시 값의 자체 계산에 대해 응답을 확인합니다.값이 일치하면 오센티케이터는 인증을 승인합니다.그렇지 않으면 접속이 종료됩니다.
  4. PPP에서는 오센티케이터가 새로운 챌린지를 임의의 간격으로 피어에 송신하고 스텝1 ~ 3을 반복합니다.다만, CHAP 가 대부분의 상황(RADIUS )에서 사용되고 있는 경우는, 이 순서는 실행되지 않습니다.

CHAP 패킷

묘사 1 바이트 1 바이트 2바이트 1 바이트 변수 변수
도전 코드 = 1 아이디 길이 챌린지 길이 과제값 이름.
대답 코드 = 2 아이디 길이 응답 길이 응답값 이름.
성공. 코드 = 3 아이디 길이 메세지
실패. 코드 = 4 아이디 길이 메세지

랜덤 챌린지에 선택된 ID는 대응하는 응답 패킷, 성공 패킷 및 실패 패킷에도 사용됩니다.새 ID를 가진 새 챌린지는 다른 ID를 가진 마지막 챌린지와 달라야 합니다.성공 또는 실패가 상실된 경우 동일한 응답을 다시 전송할 수 있으며 동일한 성공 또는 실패 표시가 트리거됩니다.해시로서의 MD5의 경우 응답 값은 다음과 같습니다.MD5(ID secret challenge)ID, 시크릿 및 [2]챌린지를 연결하기 위한 MD5입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Forouzan (2007). Data Communications & Networking 4E Sie. McGraw-Hill Education (India) Pvt Limited. pp. 352–. ISBN 978-0-07-063414-5. Retrieved 24 November 2012.
  2. ^ "Understanding and Configuring PPP CHAP Authentication". Cisco tech note. 2005. Retrieved 2011-08-14.

외부 링크

  • RFC 1994 PPP 챌린지 핸드쉐이크 인증 프로토콜(CHAP)
  • RFC 2865 Remote Authentication Dial In User Service(RADIUS): PAP 또는 CHAP 사용
  • RFC 3748 Extensible Authentication Protocol(EAP): CHAP에 대해 설명합니다.