NIST SP 800-63B
더 많은 작업
NIST SP 800-63B(Digital Identity Guidelines: Authentication and Authenticator Management)는 미국 국립표준기술연구소(NIST, National Institute of Standards and Technology)가 발행한 디지털 신원 인증 및 인증기 관리 지침으로, 온라인 서비스의 인증 보증 수준(AAL), 인증 수단별 기술적 요구사항, 인증기 수명 주기, 계정 복구 및 세션 관리 기준을 정의하는 특별간행물이다.
NIST SP 800-63B는 온라인 서비스에 접근하는 사용자가 사전에 등록된 가입자(Subscriber)임을 확인하기 위한 인증(Authentication) 절차와 인증기(Authenticator)의 관리 요구사항을 규정한다.
이 문서는 디지털 신원 지침인 NIST SP 800-63 시리즈의 일부로, 신원 증명(Identity Proofing)이나 연합 신원 관리(Federation)보다는 인증 과정 자체의 보안성에 초점을 맞춘다.
핵심 목적은 인증 과정에서 발생할 수 있는 계정 탈취, 인증정보 유출, 피싱, 재전송 공격, 인증기 도난 및 복제 등의 위험을 줄이는 것이다.[1]
주요 내용은 다음과 같다.
- 인증 보증 수준(Authentication Assurance Level, AAL) 정의.
- 인증 요소와 인증기 유형 구분.
- 비밀번호의 길이·저장·검증 요구사항.
- 일회용 비밀번호(OTP) 및 대역 외 인증 요구사항.
- 공개키 기반 암호 인증 요구사항.
- 다중 인증(MFA)과 피싱 내성 인증.
- 생체정보를 이용한 인증기 활성화.
- 동기화 가능한 인증기와 패스키 관리.
- 인증기의 등록·연결·교체·폐기.
- 인증기 분실 및 계정 복구.
- 인증 시도 횟수 제한.
- 세션 관리 및 재인증.
- 인증 과정의 개인정보 보호와 이용자 경험.
| 항목 | 내용 |
|---|---|
| 문서 번호 | NIST SP 800-63B |
| 정식 명칭 | Digital Identity Guidelines: Authentication and Authenticator Management |
| 발행기관 | 미국 국립표준기술연구소(NIST) |
| 최신 확정판 | SP 800-63B-4 |
| 발행일 | 2025년 7월 31일 |
| 이전판 | SP 800-63B(2020년 3월 갱신본) |
| 상위 지침 | NIST SP 800-63-4 |
| 핵심 체계 | AAL1, AAL2, AAL3 |
| 주요 적용 대상 | 온라인 서비스 제공기관, 인증 서비스 제공자, 검증자, 신원 제공자 |
| 주요 분야 | 인증, 다중 인증, 디지털 신원, 인증기 관리 |
| 공식 문서 | NIST CSRC |
NIST SP 800-63B는 2017년 SP 800-63 시리즈가 디지털 신원 지침으로 개편되면서 별도 문서로 분리되었다.
이전에는 인증 관련 요구사항이 SP 800-63의 본문에 포함되어 있었다.
| 시기 | 문서 | 주요 내용 |
|---|---|---|
| 2006년 | SP 800-63 | 전자 인증(Electronic Authentication) 지침 최초 발행 |
| 2017년 | SP 800-63B | 디지털 신원 지침의 인증 및 인증기 관리 분야를 별도 문서로 분리 |
| 2020년 3월 | SP 800-63B 갱신 | Revision 3 체계의 인증 지침 갱신 |
| 2022년 12월 | SP 800-63B-4 최초 공개 초안 | 인증기 요구사항 및 인증 보증 수준 개정 추진 |
| 2024년 8월 | SP 800-63B-4 두 번째 공개 초안 | 비밀번호·피싱 내성·동기화 인증기 등의 요구사항 보완 |
| 2025년 7월 31일 | SP 800-63B-4 최종본 | Revision 4 확정 |
2026년 10월 23일 기준 최신 확정판은 SP 800-63B-4이다.[2]
2026년 10월 6일에는 SP 800-63 Revision 4의 구현을 지원하는 자료 모음인 Implementation Resource Hub가 공개되었다.[3]
2025년 확정된 Revision 4는 기존 인증 요구사항을 보완하면서 다음 내용을 추가하거나 변경하였다.
- 단일 요소 인증에 사용하는 비밀번호의 최소 길이를 15자로 강화.
- 비밀번호 구성 규칙과 주기적 변경 강제 금지 원칙 명확화.
- AAL2에서 피싱 내성 인증 수단을 반드시 제공하도록 요구.
- AAL3에서 내보낼 수 없는 개인키를 사용하는 피싱 내성 암호 인증 요구.
- 동기화 가능한 인증기(Syncable Authenticator)에 대한 별도 요구사항 추가.
- 생체인증의 정확도와 위조 생체 탐지 요구사항 갱신.
- 음성 기반 생체 비교를 인증 수단으로 사용하는 행위 금지.
- 인증기에 사용되는 로컬 활성화 비밀(Activation Secret)의 요구사항 분리.
- 유선·무선·하이브리드 방식으로 연결되는 인증기의 보안 요구사항 추가.
- 인증기 등록과 계정 복구 절차 보완.
- 세션 관리 및 지속적인 세션 감시 관련 내용 보완.
Revision 4는 비밀번호를 복잡하게 만들거나 주기적으로 변경하도록 강제하는 기존 관행보다 충분한 길이, 유출 비밀번호 차단, 인증 시도 제한, 피싱 내성 인증을 강조한다.[4]
NIST SP 800-63B에서 인증은 인증 요청자(Claimant)가 가입자 계정에 연결된 인증기를 실제로 보유하거나 통제하고 있음을 검증자(Verifier)에게 증명하는 과정이다.
주요 참여 주체는 다음과 같다.
| 주체 | 영문 | 역할 |
|---|---|---|
| 가입자 | Subscriber | 인증기가 연결된 계정을 보유한 개인 |
| 인증 요청자 | Claimant | 자신이 해당 가입자임을 주장하며 인증을 시도하는 개인 |
| 인증기 | Authenticator | 인증 요청자가 보유하거나 통제하는 인증 수단 |
| 검증자 | Verifier | 인증 프로토콜을 통해 인증기의 소유·통제 여부를 검증하는 주체 |
| 자격 증명 서비스 제공자 | Credential Service Provider(CSP) | 가입자 계정과 인증기의 연결 관계를 관리하는 주체 |
| 신뢰 당사자 | Relying Party(RP) | 인증 결과를 이용하여 서비스 접근 여부를 결정하는 주체 |
일반적인 인증 절차는 다음과 같다.
- 가입자가 CSP에 등록하고 인증기를 계정에 연결한다.
- 인증 요청자가 온라인 서비스에 접근하여 인증을 요청한다.
- 검증자가 인증에 필요한 정보를 요청하거나 챌린지를 생성한다.
- 인증 요청자가 인증기를 이용하여 인증 결과를 생성한다.
- 검증자가 인증 결과를 확인한다.
- 인증에 성공하면 RP가 인증 결과를 이용하여 세션을 생성하거나 서비스 접근을 허용한다.
인증에 성공했다는 사실만으로 모든 자원에 대한 접근 권한이 부여되는 것은 아니다.
인증은 사용자의 신원을 확인하는 과정이며, 특정 자원에 대한 접근 권한을 결정하는 인가(Authorization)와 구분된다.
NIST SP 800-63B는 인증 요소(Authentication Factor)를 세 가지로 구분한다.
| 인증 요소 | 영문 | 설명 | 예시 |
|---|---|---|---|
| 지식 요소 | Something You Know | 사용자만 알고 있는 정보 | 비밀번호, PIN |
| 소유 요소 | Something You Have | 사용자가 보유하거나 통제하는 물리적 인증기 | 보안 키, 스마트카드, OTP 기기 |
| 존재 요소 | Something You Are | 사용자의 생체적 특성 | 지문, 얼굴, 홍채 |
서로 다른 두 인증 요소를 결합하면 다중 인증(Multi-Factor Authentication, MFA)을 구성할 수 있다.
다만 인증 수단이 두 개라는 사실만으로 다중 인증이 성립하는 것은 아니다.
예를 들어 비밀번호 두 개를 사용하는 것은 지식 요소 두 개를 사용하는 것이므로 서로 다른 두 요소를 사용하는 다중 인증에 해당하지 않는다.
반면 비밀번호와 소유 기반 OTP를 결합하면 지식 요소와 소유 요소를 함께 사용하는 다중 인증이 된다.
NIST SP 800-63B는 생체정보 자체를 독립적인 인증기로 인정하지 않는다.
생체정보는 물리적 인증기와 결합하여 사용하는 인증 요소이다.
예를 들어 스마트폰에 저장된 암호 키를 지문으로 활성화하는 경우 다음 두 요소가 사용된다.
- 소유 요소: 암호 키가 저장된 스마트폰 또는 인증기.
- 존재 요소: 인증기를 활성화하는 지문.
생체정보만으로 원격 서비스의 인증을 완료하는 방식과 생체정보를 이용하여 로컬 인증기의 사용을 허용하는 방식은 구분해야 한다.
AAL(Authentication Assurance Level)은 인증 요청자가 가입자 계정에 연결된 인증기를 실제로 통제하고 있다는 사실에 대한 신뢰 수준이다.
NIST SP 800-63B는 인증 보증 수준을 AAL1, AAL2, AAL3의 세 단계로 정의한다.[5]
| 구분 | AAL1 | AAL2 | AAL3 |
|---|---|---|---|
| 보증 수준 | 기본 | 높음 | 매우 높음 |
| 인증 요소 | 단일 요소 허용 | 서로 다른 두 요소 필수 | 서로 다른 두 요소 필수 |
| 피싱 내성 | 필수 아님 | 피싱 내성 인증 수단 제공 필수 | 필수 |
| 재전송 공격 저항성 | 필수 아님 | 필수 | 필수 |
| 인증 의도 확인 | 필수 아님 | 권고 | 필수 |
| 암호 키 내보내기 | 허용 | 허용 | 금지 |
| 동기화 인증기 | 허용 | 허용 | 사용 불가 |
| 전체 세션 재인증 간격 | 30일 이하 권고 | 24시간 이하 권고 | 12시간 이하 필수 |
| 비활동 제한 | 별도 필수 제한 없음 | 1시간 이하 권고 | 15분 이하 권고 |
AAL1은 가입자가 계정에 연결된 인증기를 통제한다는 기본적인 신뢰 수준을 제공한다.
단일 요소 인증과 다중 인증을 모두 허용한다.
대표적인 인증 수단은 다음과 같다.
- 비밀번호.
- 조회형 비밀(Look-up Secret).
- 대역 외 인증기.
- 단일 요소 OTP.
- 단일 요소 암호 인증기.
- AAL2 또는 AAL3의 요구사항을 충족하는 인증기.
AAL1에서는 다중 인증이 필수는 아니지만, 검증자는 다중 인증 선택지를 제공하고 이용을 권장하는 것이 바람직하다.
인증 요청자와 검증자 사이의 통신은 인증된 보호 채널을 사용해야 한다.
미국 연방기관을 위해 운영되는 검증자의 암호 구현에는 FIPS 140 보안 수준 1 이상의 검증 요구사항이 적용된다.
AAL2는 인증 요청자가 계정에 연결된 인증기를 통제한다는 높은 수준의 신뢰를 제공한다.
AAL2에서는 서로 다른 두 인증 요소를 사용해야 한다.
이를 충족하는 방법은 다음과 같다.
- 두 인증 요소를 하나의 인증기에서 사용하는 다중 요소 인증기.
- 서로 다른 두 단일 요소 인증기의 조합.
대표적인 구성은 다음과 같다.
- 비밀번호와 OTP.
- 비밀번호와 하드웨어 보안 키.
- PIN으로 활성화하는 암호 인증기.
- 생체정보로 활성화하는 암호 인증기.
- 적절하게 구성된 다중 요소 패스키.
AAL2에서는 최소 하나의 인증기가 재전송 공격에 저항해야 한다.
또한 검증자는 피싱 내성 인증 수단을 최소 하나 제공해야 한다.
미국 연방기관은 직원, 계약자 및 협력사가 연방 정보시스템에 접근할 때 피싱 내성 인증을 사용하도록 요구해야 한다.
다만 AAL2에서 허용되는 모든 인증 방식이 피싱 내성을 갖추어야 하는 것은 아니다.
예를 들어 비밀번호와 OTP를 조합한 인증은 AAL2의 요구사항을 충족할 수 있지만, OTP를 가짜 사이트에 입력하도록 유도하는 피싱 공격에는 취약할 수 있다.
AAL3는 가장 높은 인증 보증 수준이다.
AAL3에서는 공개키 암호 기반 인증을 사용하고, 인증에 필요한 개인키가 인증기 외부로 추출되지 않도록 보호해야 한다.
주요 요구사항은 다음과 같다.
- 서로 다른 두 인증 요소 사용.
- 공개키 암호 기반 인증.
- 피싱 내성 필수.
- 재전송 공격 저항성 필수.
- 인증 의도 확인 필수.
- 내보낼 수 없는 개인키 사용.
- 하드웨어로 보호되는 격리 환경에서 인증 키 관리.
- 인증기에 대한 FIPS 140 보안 수준 1 이상의 검증 요구사항 적용.
대표적인 구현은 다음과 같다.
- PIN으로 활성화하는 적절한 하드웨어 암호 인증기.
- 생체정보로 활성화하는 비추출형 암호 인증기.
- 적절한 요건을 충족하는 PIV 스마트카드.
AAL3에서는 개인키를 다른 장치로 복사할 수 있는 동기화형 인증기를 사용할 수 없다.
따라서 일반적인 클라우드 동기화 패스키는 AAL2에 사용할 수 있지만 AAL3의 비추출형 개인키 요구사항을 충족하지 못한다.
NIST SP 800-63B는 인증기를 기술적 특성에 따라 구분한다.[6]
| 유형 | 영문 | 주요 특징 |
|---|---|---|
| 비밀번호 | Password | 사용자가 기억하거나 기록하는 비밀 |
| 조회형 비밀 | Look-up Secret | 사전에 발급된 비밀 목록에서 특정 값을 조회 |
| 대역 외 인증기 | Out-of-Band Authenticator | 별도 통신 채널을 이용한 인증 |
| 단일 요소 OTP | Single-Factor OTP | 추가 활성화 요소 없이 일회용 인증값 생성 |
| 다중 요소 OTP | Multi-Factor OTP | PIN이나 생체정보 등의 활성화 요소를 사용하여 OTP 생성 |
| 단일 요소 암호 인증기 | Single-Factor Cryptographic Authenticator | 암호 키의 소유를 증명 |
| 다중 요소 암호 인증기 | Multi-Factor Cryptographic Authenticator | 암호 키의 소유와 별도 활성화 요소를 함께 사용 |
비밀번호(Password)는 사용자가 선택하거나 CSP가 무작위로 부여하는 비밀값이다.
NIST SP 800-63B-4는 비밀번호의 길이와 안전한 저장을 강조하며, 복잡한 구성 규칙이나 주기적 변경을 강제하는 방식을 금지한다.
비밀번호의 최소 길이는 인증 방식에 따라 달라진다.
| 사용 방식 | 최소 길이 | 요구 수준 |
|---|---|---|
| 단일 요소 인증에 사용하는 비밀번호 | 15자 | 필수 |
| 다중 인증의 일부로만 사용하는 비밀번호 | 8자 | 필수 |
| 허용해야 하는 최대 길이 | 최소 64자 이상을 허용하도록 권고 | 권고 |
비밀번호 길이를 계산할 때 유니코드 문자를 허용한다면 각 유니코드 코드 포인트를 하나의 문자로 계산해야 한다.
검증자는 비밀번호 전체를 검증해야 하며 임의로 일부를 잘라서 비교해서는 안 된다.
검증자와 CSP는 다음과 같은 구성 규칙을 강제해서는 안 된다.
- 대문자와 소문자의 혼합.
- 숫자 포함.
- 특수문자 포함.
- 특정 문자 유형의 조합.
이러한 규칙은 사용자가 예측 가능한 형태로 비밀번호를 변형하도록 유도할 수 있다.
예를 들어 단순한 비밀번호에 숫자나 특수문자를 덧붙이는 방식은 공격자가 추측하기 쉬울 수 있다.
검증자는 비밀번호의 주기적 변경을 강제해서는 안 된다.
다만 인증기가 침해되었다는 증거가 있는 경우에는 비밀번호 변경을 강제해야 한다.
따라서 단순히 60일 또는 90일이 지났다는 이유만으로 비밀번호 변경을 요구하는 정책은 SP 800-63B-4의 요구사항과 일치하지 않는다.
이 규정은 일반적인 가입자 인증용 비밀번호에 관한 것으로, 기계 간 인증에 사용하는 비밀이나 API 키의 관리 정책 전체를 규정하는 것은 아니다.
검증자는 비밀번호를 생성하거나 변경할 때 다음과 같은 값이 포함된 차단 목록(Blocklist)과 비교해야 한다.
- 과거 침해사고에서 유출된 비밀번호.
- 흔히 사용되는 비밀번호.
- 공격자가 쉽게 예상할 수 있는 비밀번호.
- 사전 단어.
- 서비스 이름.
- 사용자 이름과 그 변형.
차단 목록과 비교할 때는 비밀번호 전체를 대상으로 해야 한다.
차단 목록에 포함된 비밀번호를 사용자가 선택하면 이를 거부하고 거부 사유를 알려야 한다.
검증자는 비밀번호 관리자(Password Manager)와 자동 채우기(Autofill)를 허용해야 한다.
비밀번호 입력란에서 붙여넣기를 허용하는 것도 권고된다.
비밀번호 관리자는 서비스별로 서로 다른 긴 비밀번호를 생성하고 저장하는 데 도움이 된다.
또한 비밀번호를 입력할 때 내용을 확인할 수 있도록 표시하는 선택지를 제공하는 것이 권고된다.
검증자와 CSP는 인증되지 않은 사용자가 접근할 수 있는 비밀번호 힌트를 저장하도록 허용해서는 안 된다.
또한 비밀번호 설정 과정에서 지식 기반 인증(Knowledge-Based Authentication, KBA)이나 보안 질문을 사용하도록 요구해서는 안 된다.
예를 들어 다음과 같은 질문은 적절한 비밀번호 관리 방식이 아니다.
- 첫 번째 반려동물의 이름.
- 출생한 도시.
- 졸업한 초등학교.
- 어머니의 결혼 전 성.
이러한 정보는 공개 자료나 사회공학 공격을 통해 알아낼 수 있기 때문이다.
검증자는 비밀번호를 오프라인 추측 공격에 저항할 수 있는 형태로 저장해야 한다.
주요 요구사항은 다음과 같다.
- 비밀번호에 솔트(Salt)를 적용.
- 적절한 비밀번호 해싱 방식 사용.
- 계산 비용 인자(Cost Factor) 적용.
- 솔트 길이는 최소 32비트.
- 해싱 알고리즘과 비용 인자 정보를 함께 관리하도록 권고.
- 계산 성능 향상에 따라 비용 인자 증가 권고.
- 검증자만 알고 있는 별도의 비밀키를 이용한 추가 해싱 또는 암호화 연산 권고.
솔트는 동일한 비밀번호가 서로 다른 계정에서 동일한 해시값으로 저장되는 문제를 완화한다.
계산 비용 인자는 공격자가 유출된 비밀번호 해시를 대량으로 추측하는 데 필요한 계산 비용을 높인다.
비밀번호는 인증된 보호 채널을 통해 전송해야 한다.[6]
OTP(One-Time Password)는 인증 과정에서 한 번만 사용하도록 생성하는 인증값이다.
NIST SP 800-63B는 OTP 인증기를 단일 요소 OTP와 다중 요소 OTP로 구분한다.
단일 요소 OTP 인증기는 사용자가 소유한 기기나 애플리케이션에서 일회용 인증값을 생성한다.
대표적인 구현은 다음과 같다.
- 시간 기반 OTP(TOTP).
- 이벤트 기반 OTP(HOTP).
- OTP 전용 하드웨어 장치.
- 스마트폰의 OTP 생성 애플리케이션.
OTP 인증기는 비밀키와 논스(Nonce)를 이용하여 인증값을 생성한다.
시간 기반 OTP에서는 시간값이 논스 생성에 활용된다.
NIST SP 800-63B-4는 시간 기반 논스가 최소 2분마다 변경되도록 요구한다.
OTP 출력값은 6자리 십진수 또는 이에 상응하는 표현까지 단축할 수 있다.
다중 요소 OTP 인증기는 OTP를 생성하기 전에 별도의 인증 요소를 요구한다.
예를 들어 다음과 같은 방식이 있다.
- PIN을 입력해야 OTP가 생성되는 장치.
- 생체정보 확인 후 OTP를 생성하는 장치.
이 경우 소유 요소와 지식 또는 존재 요소를 함께 사용한다.
다만 단순히 스마트폰의 화면 잠금을 해제했다는 사실만으로 모든 OTP 애플리케이션이 다중 요소 인증기로 인정되는 것은 아니다.
인증기 활성화 요소가 실제 인증 과정에 적용되고 관련 요구사항을 충족해야 한다.
OTP는 일반적인 비밀번호 재사용 공격을 완화할 수 있지만 피싱 내성을 제공하지 않는다.
공격자가 가짜 로그인 페이지를 통해 OTP를 수집하고 이를 즉시 정상 서비스에 전달하면 인증이 성공할 수 있다.
따라서 OTP의 일회성 사용과 피싱 내성은 구분해야 한다.
대역 외 인증(Out-of-Band Authentication)은 주 인증 채널과 별도의 통신 채널을 이용하여 인증을 수행하는 방식이다.
대표적인 예시는 다음과 같다.
- 스마트폰 애플리케이션을 통한 인증 요청 승인.
- 별도 장치에서 수신한 인증값 입력.
- SMS 또는 음성 통화를 통한 인증값 수신.
대역 외 인증에서는 두 통신 채널의 분리와 인증 요청의 연관성이 중요하다.
NIST SP 800-63B-4는 공중 전화망(Public Switched Telephone Network, PSTN)을 이용한 대역 외 인증을 제한된 인증 수단(Restricted Authenticator)으로 분류한다.
주요 위험은 다음과 같다.
- SIM 스와핑.
- 전화번호 이동 또는 재할당.
- 통신망 공격.
- SMS 및 음성 메시지 가로채기.
- 인증번호의 실시간 피싱 중계.
제한된 인증 수단을 허용하려는 조직은 해당 위험을 평가하고 수용해야 한다.
또한 가입자에게 제한되지 않은 대체 인증 수단을 최소 하나 제공하고 관련 위험을 알려야 한다.[7]
암호 인증기(Cryptographic Authenticator)는 암호 키를 사용하여 인증 요청자가 해당 키를 통제하고 있음을 증명하는 인증기이다.
대표적인 구현은 다음과 같다.
- 공개키 기반 하드웨어 보안 키.
- 스마트카드.
- 플랫폼 내장 암호 인증기.
- FIDO2 인증기.
- 패스키.
암호 인증에서는 검증자가 생성한 챌린지에 인증기가 암호학적 연산을 수행하고, 검증자가 그 결과를 확인할 수 있다.
공개키 기반 인증에서는 일반적으로 개인키를 인증기에 보관하고 공개키를 검증자가 관리한다.
개인키 자체를 검증자에게 전달하지 않고도 해당 개인키의 소유를 증명할 수 있다.
단일 요소 암호 인증기는 추가 활성화 요소 없이 암호 키의 소유를 증명한다.
예를 들어 사용자가 보안 키의 버튼을 누르는 행위는 인증 의도를 나타낼 수 있지만, 그 자체로 별도의 지식 또는 존재 요소가 되는 것은 아니다.
따라서 인증기의 버튼을 누른다는 이유만으로 다중 요소 인증이 성립하지는 않는다.
다중 요소 암호 인증기는 암호 키를 사용하기 전에 별도의 활성화 요소를 요구한다.
대표적인 활성화 요소는 다음과 같다.
- PIN.
- 로컬 비밀번호.
- 지문.
- 얼굴.
- 홍채.
예를 들어 인증기에 저장된 개인키를 사용하기 전에 PIN을 요구하면 소유 요소와 지식 요소를 함께 사용하게 된다.
피싱 내성(Phishing Resistance)은 사용자의 주의력에 의존하지 않고 가짜 검증자에게 인증 비밀이나 유효한 인증 결과가 전달되는 것을 방지하는 인증 프로토콜의 성질이다.
NIST SP 800-63B는 피싱 내성을 구현하는 방법으로 두 가지를 인정한다.[8]
채널 바인딩(Channel Binding)은 인증 결과를 현재의 보호된 통신 채널과 암호학적으로 결합하는 방식이다.
인증기가 특정 TLS 연결에 대한 정보를 함께 서명하면 공격자가 인증 결과를 다른 연결에 재사용하기 어려워진다.
대표적인 예시는 클라이언트 인증 TLS를 사용하는 PIV 스마트카드이다.
검증자 이름 바인딩(Verifier Name Binding)은 인증 결과를 검증자의 도메인 이름과 암호학적으로 결합하는 방식이다.
대표적인 구현은 WebAuthn을 사용하는 FIDO2 인증이다.
인증기는 인증을 요청한 도메인과 연결된 키를 사용하므로, 공격자가 만든 가짜 도메인에서 정상 서비스용 인증 결과를 생성하기 어렵다.
| 인증 방식 | 피싱 내성 | 설명 |
|---|---|---|
| 비밀번호 | 없음 | 가짜 사이트에서 수집 가능 |
| SMS 인증번호 | 없음 | 인증번호를 실시간으로 중계할 수 있음 |
| TOTP | 없음 | 인증값을 가짜 사이트에 입력하도록 유도할 수 있음 |
| 일반적인 푸시 승인 | 보장되지 않음 | 승인 유도 및 인증 피로 공격 가능 |
| FIDO2/WebAuthn | 있음 | 검증자 도메인과 인증 결과 결합 |
| 적절하게 구성된 PIV 스마트카드 인증 | 있음 | TLS 채널 바인딩 |
피싱 내성 인증이라고 해서 단말기 악성코드나 인증 후 세션 탈취 등 모든 공격에 안전한 것은 아니다.
피싱 내성은 인증 프로토콜의 특정 보안 속성을 의미한다.
재전송 공격 저항성(Replay Resistance)은 과거에 사용된 인증 메시지를 다시 제출하더라도 인증에 성공하지 못하도록 하는 성질이다.
대표적인 방법은 다음과 같다.
- 일회용 인증값 사용.
- 챌린지-응답 인증.
- 논스 사용.
- 인증 결과의 유효 기간 제한.
- 사용한 인증값의 재사용 방지.
비밀번호는 인증할 때마다 동일한 비밀값을 제출하므로 재전송 공격 저항성을 제공하는 인증기로 간주되지 않는다.
반면 적절하게 구현된 OTP와 챌린지-응답 암호 인증은 재전송 공격 저항성을 제공할 수 있다.
NIST SP 800-63B-4는 생체정보를 다중 인증의 일부로 사용하는 것을 허용하지만, 단독 인증기로 인정하지 않는다.
또한 생체정보를 이용한 인증에는 정확도와 위조 공격 대응 요구사항이 적용된다.[9]
주요 요구사항은 다음과 같다.
| 항목 | 요구사항 |
|---|---|
| 오인식률(False Match Rate, FMR) | 10,000분의 1 이하 |
| 본인 불일치율(False Non-Match Rate, FNMR) | 5% 미만 권고 |
| 얼굴 인식의 위조 생체 탐지(PAD) | 필수 |
| 지문 및 홍채의 PAD | 권고 |
| 음성 기반 생체 비교 | 사용 금지 |
| 비생체 대체 인증 수단 | 제공 필수 |
생체인증의 성능은 인구통계학적 집단에 따라 달라질 수 있으므로 관련 집단별 성능을 평가해야 한다.
PAD(Presentation Attack Detection)는 공격자가 사진, 영상, 복제 지문 등으로 생체인증 시스템을 속이려는 시도를 탐지하는 기술이다.
얼굴 인식에서는 PAD 적용이 필수이다.
지문과 홍채에서는 PAD 적용이 권고된다.
생체정보의 중앙집중식 비교보다 이용자 기기에서 수행하는 로컬 비교가 권고된다.
생체정보는 민감한 개인정보로 취급하고 적절한 보호조치를 적용해야 한다.
활성화 비밀(Activation Secret)은 다중 요소 인증기에 저장된 인증 키를 사용할 수 있도록 로컬에서 입력하는 비밀값이다.
대표적인 예시는 스마트폰이나 보안 키의 PIN이다.
활성화 비밀은 서버에서 직접 검증하는 일반 비밀번호와 구분된다.
주요 요구사항은 다음과 같다.
- 최소 4자 이상.
- 최소 6자 이상 사용 권고.
- 숫자로만 구성된 PIN 허용.
- 연속된 활성화 실패 횟수는 최대 10회로 제한.
- AAL3에서 사용하는 활성화 비밀은 하드웨어 보호 환경에서 검증.
- 활성화 비밀은 인증기와 관련 단말기 외부로 전달하지 않음.
AAL2에서 하드웨어 보호 환경을 사용하지 않는 경우에는 활성화 비밀을 이용하여 인증 키를 복호화하는 키를 유도해야 한다.
동기화 가능한 인증기(Syncable Authenticator)는 인증에 사용하는 비밀키를 여러 장치에 복제하거나 동기화할 수 있는 인증기이다.
대표적인 예시는 클라우드 계정이나 비밀번호 관리자를 통해 여러 기기에서 사용할 수 있는 패스키이다.
NIST SP 800-63B-4는 부록 B에서 동기화 가능한 인증기의 별도 요구사항을 정의한다.[10]
- 하나의 인증 자격 증명을 여러 장치에서 사용 가능.
- 새로운 장치에서 인증기를 다시 등록해야 하는 부담 감소.
- 기기 분실 시 인증 수단 복구에 유리.
- 동기화 서비스의 보안성에 의존.
- 인증 키의 복제가 가능하므로 비추출형 개인키 요구사항을 충족하지 못함.
동기화 가능한 인증기는 적절하게 구성하면 AAL2에 사용할 수 있다.
그러나 AAL3에서는 인증 개인키를 내보낼 수 없어야 하므로 사용할 수 없다.
동기화형 패스키가 피싱 내성을 제공한다는 사실과 AAL3의 모든 요구사항을 충족한다는 것은 서로 다른 문제이다.
WebAuthn 기반 인증기는 인증 과정에서 여러 플래그를 제공할 수 있다.
| 플래그 | 영문 | 의미 |
|---|---|---|
| UP | User Present | 사용자가 인증기와 상호작용했는지 표시 |
| UV | User Verified | PIN 또는 생체정보 등으로 로컬 사용자 확인을 수행했는지 표시 |
| BE | Backup Eligible | 인증 자격 증명의 백업 또는 동기화 가능 여부 |
| BS | Backup State | 인증 자격 증명이 백업된 상태인지 표시 |
검증자는 UV 플래그를 확인하여 인증기를 단일 요소 또는 다중 요소 암호 인증기로 취급할 수 있다.
BE와 BS는 인증 자격 증명의 동기화 가능 여부와 실제 백업 상태를 구분하는 데 사용된다.
인증 시도 횟수 제한(Rate Limiting 또는 Throttling)은 공격자가 비밀번호나 OTP를 반복적으로 추측하는 행위를 제한하는 보안 통제이다.
NIST SP 800-63B-4는 인증기 유형별로 별도 규정이 없는 경우, 하나의 가입자 계정에서 특정 인증기를 이용한 연속 인증 실패 횟수를 최대 100회로 제한하도록 요구한다.
100회는 허용해야 하는 횟수가 아니라 상한이다.
조직은 위험에 따라 더 낮은 제한을 적용할 수 있다.
추가적인 보호 방법은 다음과 같다.
- 인증 실패 횟수에 따른 대기 시간 증가.
- 자동화된 인증 시도 탐지.
- 비정상적인 IP 주소와 위치 분석.
- 봇 탐지 절차.
- 위험 기반 인증.
- 인증기 비활성화.
인증기가 제한 횟수에 도달하여 비활성화되면 다시 사용하기 위해 계정에 재연결하는 절차가 필요하다.
NIST SP 800-63B는 인증기의 등록부터 폐기까지 발생하는 주요 사건을 관리하도록 요구한다.
주요 사건은 다음과 같다.
- 인증기 연결(Binding).
- 추가 인증기 등록.
- 인증기 교체.
- 인증기 갱신.
- 인증기 분실.
- 인증기 도난.
- 인증기 침해.
- 인증기 복제.
- 인증기 만료.
- 인증기 폐기 및 무효화.
인증기 연결(Authenticator Binding)은 특정 인증기를 가입자 계정과 연관시키는 과정이다.
CSP는 계정에 연결된 인증기의 목록을 유지해야 한다.
또한 인증기가 다음 중 어떤 특성을 가지는지 확인할 수 있어야 한다.
- 단일 요소 또는 다중 요소 인증기.
- 피싱 내성 제공 여부.
- 암호 키의 내보내기 가능 여부.
- 인증 보증 수준별 사용 가능 여부.
인증기의 특성은 인증기 증명(Attestation), 발급 정보 또는 인증 프로토콜의 관련 정보를 이용하여 확인할 수 있다.
가입자가 새로운 인증기를 추가하려는 경우에는 해당 요청이 정당한 가입자에 의해 수행되었는지 확인해야 한다.
새 인증기 등록 절차는 계정 탈취에 악용될 수 있으므로 인증기 연결에 필요한 보안 수준을 유지해야 한다.
가입자가 인증기의 분실·도난·침해 가능성을 신고하면 CSP는 해당 인증기를 즉시 무효화할 수 있는 수단을 제공해야 한다.
대표적인 조치는 다음과 같다.
- 인증기와 가입자 계정의 연결 해제.
- 관련 인증 자격 증명 폐기.
- 대체 인증기 등록.
- 계정 복구 절차 수행.
- 관련 계정 사건에 대한 가입자 통지.
계정 복구(Account Recovery)는 가입자가 필요한 인증기를 더 이상 통제하지 못하는 경우 계정에 대한 접근을 회복하는 절차이다.
NIST SP 800-63B-4는 다음 네 가지 계정 복구 방법을 정의한다.[11]
| 복구 방법 | 영문 | 설명 |
|---|---|---|
| 저장된 복구 코드 | Saved Recovery Code | 가입자가 미리 안전하게 보관한 복구 코드를 사용 |
| 발급형 복구 코드 | Issued Recovery Code | 등록된 복구 주소로 전송된 코드를 사용 |
| 복구 연락처 | Recovery Contact | 사전에 지정된 연락처를 통한 복구 |
| 신원 증명 재수행 | Repeated Identity Proofing | 기존 신원 증명 절차의 일부를 다시 수행 |
CSP는 하나 이상의 복구 방법을 지원해야 한다.
별도의 복구 방법을 제공할 수도 있지만 위험 평가에 근거하여 문서화해야 한다.
저장된 복구 코드는 가입자가 미리 발급받아 보관하는 비밀값이다.
주요 요구사항은 다음과 같다.
- 승인된 난수 생성기를 이용하여 최소 64비트의 무작위 값 생성.
- 해시 형태로 저장.
- 사용 횟수 제한 적용.
- 사용 후 해당 코드 무효화.
- 사용 후 새로운 복구 코드 발급.
발급형 복구 코드는 복구 요청 시 등록된 주소로 전달되는 인증값이다.
최소 6자리 십진수 또는 이에 상응하는 무작위 값을 사용해야 한다.
전달 수단별 최대 유효 기간은 다음과 같다.
| 전달 수단 | 최대 유효 기간 |
|---|---|
| SMS 또는 음성 | 10분 |
| 전자우편 | 24시간 |
| 미국 본토 내 우편 | 21일 |
| 미국 본토 외 우편 | 30일 |
계정 복구가 수행되면 가입자 또는 지정된 수신자에게 관련 사실을 통지해야 한다.
세션 관리(Session Management)는 인증에 성공한 사용자가 일정 기간 서비스를 계속 이용할 수 있도록 인증 상태를 유지하고 종료하는 절차이다.
NIST SP 800-63B는 세션 관리에 관한 별도의 규범적 요구사항을 제시한다.[12]
세션은 일반적으로 세션 비밀(Session Secret)을 통해 유지된다.
대표적인 예시는 다음과 같다.
- 웹 브라우저의 세션 쿠키.
- 모바일 애플리케이션의 세션 토큰.
- 암호학적 소유 증명 기반 세션 자격 증명.
세션 비밀은 인증된 사용자와 서비스 사이의 세션을 연결한다.
단순히 브라우저 쿠키가 존재한다는 사실을 새로운 인증 절차의 대체 수단으로 취급해서는 안 된다.
재인증(Reauthentication)은 이미 인증된 세션에서 사용자의 지속적인 존재를 확인하기 위해 인증 절차를 다시 수행하는 것이다.
재인증에는 두 가지 시간 제한이 사용된다.
| 구분 | 영문 | 설명 |
|---|---|---|
| 전체 제한 시간 | Overall Timeout | 마지막 인증 또는 재인증 이후 허용되는 최대 세션 지속 시간 |
| 비활동 제한 시간 | Inactivity Timeout | 사용자의 활동이 없는 상태에서 허용되는 최대 시간 |
보증 수준별 권고 또는 필수 제한은 다음과 같다.
| 수준 | 전체 제한 시간 | 비활동 제한 시간 |
|---|---|---|
| AAL1 | 30일 이하 권고 | 필수 제한 없음 |
| AAL2 | 24시간 이하 권고 | 1시간 이하 권고 |
| AAL3 | 12시간 이하 필수 | 15분 이하 권고 |
전체 제한 시간과 비활동 제한 시간은 별도로 관리한다.
사용자의 활동은 비활동 제한 시간을 초기화할 수 있지만 전체 제한 시간을 자동으로 연장하지는 않는다.
성공적인 재인증은 두 제한 시간을 모두 초기화한다.
세션 감시(Session Monitoring)는 인증된 세션에서 부정 사용의 징후를 탐지하기 위해 세션 특성을 지속적으로 평가하는 활동이다.
주요 평가 대상은 다음과 같다.
- 사용 패턴.
- 접속 시간과 빈도.
- 장치 및 브라우저 특성.
- IP 주소.
- 접속 위치.
- 행동 생체정보.
세션 감시는 위험 완화를 위한 추가 수단으로 사용할 수 있다.
다만 이러한 정보의 수집과 분석은 개인정보 보호 위험을 발생시킬 수 있으므로 개인정보 위험 평가에 포함해야 한다.
NIST SP 800-63B는 인증기와 인증 과정에 대한 여러 공격 유형을 설명한다.
| 위협 | 영문 | 설명 |
|---|---|---|
| 인증기 도난 | Theft | 물리적 인증기나 장치를 탈취 |
| 인증기 복제 | Duplication | 인증 비밀이나 인증기를 복사 |
| 도청 | Eavesdropping | 인증정보 또는 인증 결과를 가로챔 |
| 오프라인 추측 | Offline Cracking | 유출된 비밀번호 해시 등을 분석 |
| 부채널 공격 | Side-Channel Attack | 시간·전력 소비 등 부수 정보를 이용하여 비밀 추출 |
| 피싱 | Phishing | 가짜 검증자를 통해 인증정보 획득 |
| 재전송 공격 | Replay Attack | 과거 인증 메시지를 재사용 |
| 온라인 추측 | Online Guessing | 반복적인 인증 시도로 비밀 추측 |
| 세션 탈취 | Session Hijacking | 인증 후 세션 비밀을 탈취하여 사용자로 위장 |
인증기 유형에 따라 효과적인 대응 방법이 달라진다.
예를 들어 비밀번호 추측 공격에는 비밀번호 길이와 해싱, 인증 시도 제한이 중요하다.
피싱 공격에는 검증자 이름 바인딩이나 채널 바인딩을 제공하는 암호 인증이 효과적이다.
세션 탈취 공격에는 인증기 자체의 보안성뿐 아니라 세션 비밀의 보호와 세션 관리가 중요하다.
NIST SP 800-63B-4는 본문 8개 장과 5개 부록으로 구성된다.[1]
| 구분 | 영문 제목 | 주요 내용 |
|---|---|---|
| 제1장 | Introduction | 문서의 목적, 적용 범위 및 인증 모델 |
| 제2장 | Authentication Assurance Levels | AAL1·AAL2·AAL3의 기술적 요구사항 |
| 제3장 | Authenticator and Verifier Requirements | 인증기 유형별 요구사항과 공통 보안 통제 |
| 제4장 | Authenticator Event Management | 인증기 연결, 교체, 복구 및 폐기 |
| 제5장 | Session Management | 세션 비밀, 재인증, 세션 감시 |
| 제6장 | Threats and Security Considerations | 인증 관련 위협과 보안 고려사항 |
| 제7장 | Privacy Considerations | 인증 과정의 개인정보 보호 |
| 제8장 | Customer Experience Considerations | 이용자 경험과 접근성 |
| 부록 A | Strength of Passwords | 비밀번호 강도와 구성 규칙에 관한 설명 |
| 부록 B | Syncable Authenticators | 동기화 가능한 인증기의 요구사항 |
| 부록 C | Abbreviations | 약어 목록 |
| 부록 D | Glossary | 용어 정의 |
| 부록 E | Change Log | 개정 이력 |
제2장부터 제5장까지는 규범적 요구사항을 포함한다.
제6장부터 제8장까지는 설명적 자료에 해당한다.
부록 B는 규범적 요구사항을 포함하며, 나머지 부록은 설명적 자료이다.
문서에서 사용하는 SHALL, SHALL NOT은 필수 요구사항을 의미하고 SHOULD, SHOULD NOT은 권고사항을 의미한다.
MAY는 허용되는 선택사항을 의미한다.
NIST SP 800-63B는 인증 및 인증기 관리에 특화된 지침이다.
관련 문서와의 관계는 다음과 같다.
| 문서 | 주요 내용 | SP 800-63B와의 차이 |
|---|---|---|
| SP 800-63-4 | 디지털 신원 지침의 상위 문서 | 위험 관리와 IAL·AAL·FAL 선정 절차 정의 |
| SP 800-63A-4 | 신원 증명 및 등록 | 계정 등록 시 신청자의 신원을 확인하는 절차 |
| SP 800-63B-4 | 인증 및 인증기 관리 | 인증기와 인증 프로토콜의 기술적 요구사항 |
| SP 800-63C-4 | 연합 신원 관리 및 인증 주장 | IdP와 RP 사이의 인증 결과 전달과 신뢰관계 |
| SP 800-53 | 보안 및 개인정보 보호 통제 | 정보시스템과 조직 전반에 적용하는 통제 카탈로그 |
| SP 800-57 | 암호 키 관리 | 암호 키의 생성·사용·보관·폐기 등 수명 주기 관리 |
| FIPS 140-3 | 암호 모듈 보안 요구사항 | 암호 모듈의 보안성 검증 |
SP 800-63A는 신원 증명과 등록을 다룬다.
즉, 계정을 생성하는 사람이 주장한 현실 세계의 신원과 실제로 연결되는지를 확인하는 데 중점을 둔다.
반면 SP 800-63B는 이미 등록된 계정에 접근하는 사람이 해당 계정의 인증기를 정당하게 통제하고 있는지를 확인한다.
따라서 강력한 인증 수단을 사용하더라도 최초 등록 단계에서 신원 증명이 잘못되었다면 현실 세계의 신원에 대한 신뢰성까지 보장할 수는 없다.
SP 800-63C는 연합 신원 관리와 인증 주장을 다룬다.
SP 800-63B가 인증기와 검증자 사이의 인증 절차를 정의한다면, SP 800-63C는 인증 결과를 다른 서비스에 전달하고 검증하는 절차를 정의한다.
예를 들어 외부 IdP를 통해 로그인하는 서비스에서는 SP 800-63B의 인증 요구사항과 SP 800-63C의 연합 신원 요구사항을 함께 고려해야 한다.
NIST SP 800-63B는 네트워크를 통해 온라인 서비스에 접근하는 자연인의 인증에 적용한다.
대표적인 활용 분야는 다음과 같다.
- 공공기관 온라인 서비스.
- 금융 및 전자거래 서비스.
- 기업 임직원 인증.
- 클라우드 서비스 로그인.
- 관리자 계정 인증.
- 원격 접속 시스템.
- 통합 인증 및 연합 로그인.
- 패스키 기반 인증.
- 모바일 애플리케이션 인증.
- 고객 계정 복구 및 인증기 관리.
다만 다음 사항을 고려해야 한다.
- 기계 간 인증(Machine-to-Machine Authentication)을 직접적인 적용 대상으로 삼지 않는다.
- 사물인터넷 기기 자체의 인증 요구사항을 포괄적으로 정의하지 않는다.
- 물리적 출입통제 절차 자체를 규정하지 않는다.
- 신원 증명과 연합 신원 관리의 세부 요구사항은 별도 문서에서 정의한다.
- AAL은 인증 강도를 나타내며 접근 권한의 범위를 나타내지 않는다.
- 피싱 내성 인증이 모든 종류의 계정 탈취와 단말기 침해를 방지하는 것은 아니다.
- NIST 지침의 민간 적용 여부는 관련 법률, 계약 및 조직 정책에 따라 달라질 수 있다.
NIST SP 800-63B의 핵심은 단순히 인증 요소의 개수를 늘리는 것이 아니라 인증기의 보안 특성, 인증 프로토콜의 피싱 내성, 인증기 수명 주기 및 계정 복구 절차를 함께 고려하여 인증체계의 신뢰성을 확보하는 것이다.
- ↑ 1.0 1.1 David Temoshok 외, Digital Identity Guidelines: Authentication and Authenticator Management, NIST SP 800-63B-4, National Institute of Standards and Technology, 2025-07-31.
- ↑ SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management, NIST Computer Security Resource Center, 확인: 2026-10-23.
- ↑ Implementation Resources for SP 800-63 Revision 4, NIST, 확인: 2026-10-23.
- ↑ NIST SP 800-63B-4, Authentication and Authenticator Management, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Authentication Assurance Levels, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ 6.0 6.1 Authenticator and Verifier Requirements, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Restricted Authenticators, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Phishing Resistance, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Use of Biometrics, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Syncable Authenticators, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Account Recovery and Authenticator Event Management, NIST Digital Identity Guidelines, 확인: 2026-10-23.
- ↑ Session Management, NIST Digital Identity Guidelines, 확인: 2026-10-23.