요약
- RFC 2444는 일회용 비밀번호(OTP)를 애플리케이션이 임의로 파싱하던 방식 대신, 이름이 부여된 SASL 메커니즘과 정의된 교환 형식 집합으로 대체했습니다.
- 이 메커니즘은 OTP 응답으로 인증을 수행했지만, 보안 계층, 세션 기밀성, 서버 인증, 능동적 공격으로부터의 보호는 명시적으로 제공하지 않았습니다.
1990년대 후반의 메일 클라이언트에서는 인증 교환이 구현자가 선택한 어떤 로컬 방식으로든 애플리케이션 프로토콜에 접목될 수 있었습니다. RFC 2444가 지적한 문제는 바로 이 경계였습니다. OTP가 “휴리스틱 파싱을 통한 임시방식(ad-hoc)”으로 추가되고 있었다는 것입니다. 이 문서는 Simple Authentication and Security Layer, 즉 SASL 안에 OTP에 공식 이름을 부여해, 애플리케이션 프로토콜이 자체 OTP 파서를 발명하는 대신 정의된 명령과 교환을 통해 메커니즘을 호출할 수 있도록 했습니다.
이는 유용한 표준화 성과였습니다. 그러나 이것이 SASL/OTP가 연결 전체를 보안으로 감쌌다는 주장은 아니었습니다. RFC 2222는 인증과 선택적 보안 계층을 별개의 협상 속성으로 다루었습니다. RFC 2444는 더 명확했습니다. OTP 메커니즘 자체는 보안 계층을 제공하지 않는다는 점입니다. 그 보안 섹션은 세션 기밀성, 서버 인증, 능동적 공격으로부터의 보호를 명시적으로 배제했습니다. 이 구분은 놓치기 쉽습니다. 한 번의 교환으로 성공적인 로그인 응답이 나올 수 있지만, 그 다음 명령을 실어 나르는 연결은 여전히 서로 다른 보호 수준을 가진 별개의 대상이기 때문입니다.
RFC 2444는 RFC 2289의 OTP 시스템과 RFC 2243의 확장 응답을 중심으로 프로파일을 정의했습니다. 서버는hex,word,init-hex,init-word네 가지 형식을 이해해야 했습니다. 앞의 두 가지는 답을 전달했고,init-형식은 시퀀스도 재설정했습니다. 이 프로파일은 MD5 지원을 요구하고 SHA-1 지원을 권고했습니다. 클라이언트에게는 시퀀스 번호가 너무 낮아진 경우 이를 보고하고 재설정 경로를 제공하도록 지시했습니다. 매 사용 시 사용자의 인증 데이터베이스 항목이 갱신되었습니다. 이런 세부 사항들은 클라이언트와 서버의 동작을 더 예측 가능하게 만들었지만, 동시에 호환성과 상태 관리를 배포 계약의 일부로 만들었습니다.
의도된 사용 용도 섹션은 키오스크 같은 신뢰할 수 없는 클라이언트를 언급합니다. 캡처된 OTP는 그 클라이언트에게 사용자를 대신해 행동할 단 한 번의 기회만 제공해야 하며, 이는 그 기회 이후의 세션 보호보다 좁은 약속입니다. 같은 섹션은 침해된 인증 데이터베이스가 사전 공격(dictionary attack)에 노출된다고 밝히면서도, 반드시 평문 비밀번호 저장소와 동등한 것은 아니라고 언급합니다. 어느 쪽도 이 메커니즘을 무적이라고 만들지는 않습니다. RFC 2444는 또한 수동적 사전 공격 노출에 대해 경고하고, 하위 OTP 사양이 기술한 레이스 공격에 대한 방어를 구현에 요구합니다.
SASL은 두 가지 신원도 구분합니다. 인증 신원(authentication identity)은 자격 증명을 제공하고, 인가 신원(authorization identity)은 누구의 권한이 요청되는지를 말합니다. 한 에이전트가 다른 사용자를 대리할 때처럼 둘은 다를 수 있으며, 빈 인가 신원은 서버가 자격 증명으로부터 신원을 도출하도록 허용합니다. 따라서 정확한 OTP 응답은 교환 안의 한 가지 질문에 답할 뿐입니다. 호스트 프로토콜이 권한으로 매핑하는 것은 또 다른 문제입니다. 메커니즘 이름, 챌린지 문법, 호스트 프로토콜의 토큰 인코딩, 전송 보호, 서버 신원, 인가 결정을 하나의 “인증됨” 라벨로 묶어서는 안 됩니다.
RFC 2444는 1997년 SASL 사양을 갱신하며 S/Key SASL 메커니즘의 의도된 사용을 폐기(obsolete)로 변경했습니다. 이후 RFC 4422가 원래 SASL 프레임워크를 대체했고, RFC 5034는 POP3 프로파일을 문서화하며, RFC 5802는 다른 메커니즘인 SCRAM을 규정합니다. 이후 문서들은 유용한 경계 표식이지만, RFC 2444가 보편적으로 배포되었다거나 그 1998년 알고리즘 권고가 오늘날에도 적절하다는 증거는 아닙니다. 이 RFC는 구현 현황 조사가 아니라 표준화된 인터페이스이자 규범적 설계입니다.
역사적 성과는 소박하고 구체적이었습니다. 애플리케이션 프로토콜이 로컬 관례로 비밀번호 방식을 파싱하는 대신 이름이 부여된 OTP 메커니즘을 요청할 수 있게 된 것입니다. 해결되지 않은 과제는 텍스트 안에 그대로 남아 있었습니다. 프로토콜 설계자는 SASL 토큰이 어떻게 전송되는지를 여전히 규정해야 했고, 구현자는 시퀀스 갱신의 일관성을 유지해야 했으며, 운영자는 인증 이후의 부분에 대한 보호를 제공해야 했고, 애플리케이션은 인증된 신원이 무엇을 할 수 있는지 여전히 결정해야 했습니다. “일회용(one-time)”은 답의 재사용 경계를 설명했을 뿐, 세션의 보안을 설명하지 않았습니다.
출처
- RFC 2444: The One-Time-Password SASL Mechanism
- RFC 2222: Simple Authentication and Security Layer
- RFC 2289: A One-Time Password System
- RFC 2243: OTP Extended Responses
- RFC 4422: Simple Authentication and Security Layer (SASL)
- RFC 5034: The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism
- RFC 5802: Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms
- RFC 2444 정보 기록
- Lu Heng, Running-Code Primacy
- Lu Heng, Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
- Lu Heng, On Reality Layers, Symbolic Power, and Why Clarity Feels So Hostile
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





