본문 바로가기

KITRI/네트워크 기초

CHAP 인증

CHAP 인증


@CHAP VS PAP

PPP를 사용하면 각 시스템에서 피어가 두 개의 인증 프로토콜 중 하나를 사용하여 자체를 인증하도록 요구할 수 있다. 

하나는 암호 인증 프로토콜 (PAP)과 나머지 하나는 챌린지 핸드 셰이크 인증 프로토콜 (CHAP)이다. 

연결이 설정되면 호출자인지 수신자인지 여부에 관계없이 각 쪽에서 상대방에게 인증을 요청할 수 있습니다. 아래에서는 인증 시스템과 인증자를 구분할 때 '클라이언트'와 '서버'에 대해 자세히 이야기하겠습니다. PPP 데몬은 원하는 인증 프로토콜을 식별하는 또 다른 LCP 구성 요청을 전송하여 피어에게 인증을 요청할 수 있습니다.

PAP는 기본적으로 일반 로그인 절차와 동일한 방식으로 작동하며, 클라이언트는 사용자 이름과 (선택적으로 암호화 된) 암호를 서버에 보내 자신을 인증한다.

이 암호는 서버가 비밀 데이터베이스와 비교합니다. 이 기술은 직렬 회선에서 수신 대기하여 암호를 얻으려는 스니핑(Sniffing) 및 반복실행 버퍼오류 공격에 취약하다.

CHAP에는 이러한 결함이 없다. 


@ CHAP 인증 과정

CHAP의 경우, 인증 자 (즉, 서버)는 임의로 생성 된 "challenge"문자열을 호스트 이름과 함께 클라이언트에 보낸다. 클라이언트는 호스트 이름을 사용하여 적절한 암호값을 찾아 Challenge단계와 결합단계를 진행하며 단방향 해싱 기능을 사용하여 문자열을 암호화한다. 결과는 클라이언트의 호스트 이름과 함께 서버로 리턴되며 서버는 이제 동일한 계산을 수행하고 클라이언트가 동일한 결과에 도달하면 이를 확인한다.

@ CHAP의 또 다른 특징

 클라이언트가 시작시 자신을 인증 할 것을 요구할뿐만 아니라 클라이언트가 침입자에 의해 대체되지 않았는지 확인하기 위해 일정한 간격으로 문제를 보냄. (예 : 전화 회선을 전환하는 것).

pppd (PPP demon) 는 CHAP와 PAP의 비밀 키를 각각 / etc / ppp / chap-secrets와 pap-secrets라는 두 개의 개별 파일에 보관한다. 하나 또는 다른 파일에 원격 호스트를 입력하면 CHAP 또는 PAP가 피어와 함께 자신을 인증하는 데 사용되는지 여부를 정밀하게 제어 할 수 있으며 반대의 경우도 마찬가지이다.





프레임 유형 

코드 필드 

식별자 필드 

길이 필드 

데이터 필드 

 챌린지

각 프레임별 새로 생성된 값 

5 + 챌린지 문자열 길이 + Name 길이 

챌린지 텍스트나 응답 텍스트, 그리고 시스템 식별자를 전달한다.이들 정보는 3가지 하위 필드를 통해 전송된다.(아래 표 참고) 

응답 

대응되는 챌린지 프레임의 식별자 필드에서 복사한 값 

 5 + Value 길이 + Name 길이

성공 

대응되는 응답 프레임의 식별자 필드에서  복사한 값 

 4(추가 데이터가 포함된다면 그 이상)

인증이 성공했는지 실패했는지를 사용자에게 알리는 데 쓰이는, 각 구현별로 다른 메시지 필드를 포함할 수 있다. 

 실패

    [PPP CHAP 포맷]


 하위 필드 이름

크기(바이트) 

설명 

값 크기 

뒤에 따라오는 Value 하위 필드의 길이를 바이트로 나타냄 

값 

가변적 

챌린지 프레임의 경우, 초기 챌린지에 쓰이는 챌린지 문자열을 포함함.

응답 프레임의 경우, 인증자에게 되돌아가는 암호화된  챌린지 문자열을 포함함. 

 이름

가변적 

프레임을 전송한 장비를 식별하는 데 쓰이는 하나 이상의 바이트 

[CHAP 챌린지와 응답 프레임 하위 필드]

    0                4                     8                    12                 16                20                   24                   28             32 

 플래그

(2진수 01111110)

주소

(2진수 11111111) 

제어

(2진수 00000011) 

프로토콜

(첫째 바이트) 

프로토콜

(둘째 바이트) 

코드(유형) 

식별자 

길이

(첫째 바이트)

길이

(둘째 바이트) 

값 크기 

 

 값

 

이름 

 

패딩 

패딩 

FCS(Frame Check Sequence) 

4바이트가 될 수도 있음

플래그

(2진수 01111110) 

[PPP CHAP 챌린지와 응답 프레임 포맷]


 플래그

(2진수 01111110)

주소

(2진수 11111111) 

제어

(2진수 00000011) 

프로토콜

(첫째 바이트) 

프로토콜

(둘째 바이트) 

코드(유형)

식별자 

길이

(첫째 바이트) 

길이

(둘째 바이트) 

 

메시지 

 

패딩 

패딩 

FCS (Frame Check Sequence)

4바이트가 될 수도 있음 

플래그

(2진수 01111110) 

[PPP CHAP 성공과 실패 프레임 포맷]

출처: http://security-archive.tistory.com/25
       http://www.point.ro/sem4/chap.html

'KITRI > 네트워크 기초' 카테고리의 다른 글

test  (0) 2017.10.09
VPN  (0) 2017.10.09
트러블슈팅  (0) 2017.10.09
STP  (0) 2017.10.09
DHCP 인증 과정  (0) 2017.10.09