MS-CHAP

MS-CHAP은 마이크로소프트 버전의 챌린지-핸드셰이크 인증 규약(CHAP)이다.

버전

이 프로토콜은 두 가지 버전이 있는데, MS-CHAPv1(RFC 2433에서 정의)과 MS-CHAPv2(RFC 2759에서 정의)이다. MS-CHAPv2는 윈도우 NT 4.0 SP4에 포함된 pptp3-fix와 함께 도입되었으며, "윈도우 98 다이얼업 네트워킹 보안 업그레이드 릴리스"를 통해 윈도우 98에, 그리고 "MS 윈도우 95용 다이얼업 네트워킹 1.3 성능 및 보안 업데이트" 업그레이드를 통해 윈도우 95에 추가되었다. 윈도우 비스타부터는 MS-CHAPv1에 대한 지원이 중단되었다.

애플리케이션

MS-CHAP은 가상사설망(VPN)을 위한 마이크로소프트의 점대점 터널링 프로토콜 프로토콜 구현에서 인증 옵션 중 하나로 사용된다. 또한 IEEE 802.1X(예: WPA-Enterprise 프로토콜을 사용하는 와이파이 보안)와 함께 사용되는 RADIUS 서버의 인증 옵션으로도 사용된다. 나아가 확장 가능 인증 프로토콜(PEAP)의 주요 인증 옵션으로도 활용된다.

기능

CHAP과 비교했을 때, MS-CHAP은 LCP 옵션 3(인증 프로토콜)에서 CHAP 알고리즘 0x80(MS-CHAPv2의 경우 0x81)을 협상하는 방식으로 작동한다. 이는 인증자가 제어하는 비밀번호 변경 메커니즘을 제공한다. 또한 인증자가 제어하는 인증 재시도 메커니즘을 제공하며, 실패 패킷 메시지 필드에서 반환되는 실패 코드를 정의한다.

MS-CHAPv2는 응답 패킷에 피어 챌린지를, 성공 패킷에 인증자 응답을 실어 보내는 방식으로 피어 간 상호 인증을 제공한다.

MS-CHAP은 각 피어가 일반 텍스트 비밀번호나 비밀번호의 MD4 해시 값을 알고 있어야 하며, 비밀번호를 링크를 통해 전송하지 않는다. 따라서 대부분의 비밀번호 저장 형식과 호환되지 않는다.

결함

MS-CHAP과 MS-CHAPv2에서는 취약점이 발견되었다. NTLMv1 및 MS-CHAPv2에서 NTLM 비밀번호 해시를 암호화하기 위해 사용되는 데이터 암호화 표준(DES) 암호화는 무차별 대입 방식을 사용하는 커스텀 하드웨어 공격을 가능하게 한다.

2012년 기준으로 MS-CHAP은 완전히 해독된 상태이다. 분할 정복 공격은 단일 DES 키를 해독하기만 하면 되는데, 이는 현대의 그래픽 처리 장치와 FPGA를 사용하면 어렵지 않다. MS-CHAP 전체는 일종의 눈속임 프로토콜로 간주할 수 있는데, 프로토콜의 약 80%가 실제 보안을 제공하지 않기 때문이다. 이는 단순히 구조를 매우 복잡하게 만들어 해독하기 불가능해 보이게 할 뿐이다. 실제로는 이 80%가 일반 텍스트 메시지이거나 일반 텍스트로 전송된 메시지로부터 쉽게 파생될 수 있는 데이터이다. 실제 보안 핵심은 NTLM 비밀번호 해시와 해당 해시 출력으로 키가 생성되는 DES 암호화로 축소되는데, 이는 근본적으로 취약하다.

윈도우 11 22H2 이후, 윈도우 디펜더 Credential Guard가 기본적으로 활성화되면서 사용자는 더 이상 MSCHAPv2로 인증할 수 없다. 개발자들은 MSCHAPv2 기반 연결에서 인증서 기반 인증(PEAP-TLS 또는 EAP-TLS 등)으로 전환할 것을 권장한다.

같이 보기

각주