Web Authentication
Web Authentication(약칭 WebAuthn)은 웹 애플리케이션이 공개 키 암호 방식의 자격 증명을 이용하여 사용자를 인증할 수 있도록 하는 웹 API 표준이다. 웹 브라우저는 사용자와 인증 장치, 서버 사이의 보안 작업을 중개하고 등록된 출처와 신뢰 당사자(Relying P...
| 분류 | WebAuthn |
|---|---|
| 주요 기능 | 공개 키 기반의 웹 사용자 인증 |
| 관련 기술 | World Wide Web, 웹 브라우저, HTTP, JavaScript |
| 관련 표준 | W3C Web Authentication Level 3 |
Web Authentication(약칭 WebAuthn)은 웹 애플리케이션이 공개 키 암호 방식의 자격 증명을 이용하여 사용자를 인증할 수 있도록 하는 웹 API 표준이다. 웹 브라우저는 사용자와 인증 장치, 서버 사이의 보안 작업을 중개하고 등록된 출처와 신뢰 당사자(Relying Party)에 적합한 자격 증명을 사용하도록 제한한다. 패스키와 하드웨어 보안 키를 활용하는 인증 방식의 중요한 기반 기술이다.
자격 증명을 등록하는 과정에서 인증 장치는 공개 키와 개인 키의 쌍을 생성하고 서버는 공개 키와 자격 증명 식별자를 저장한다. 개인 키는 일반적으로 인증 장치 또는 플랫폼의 보호 환경에서 관리되며 서버에 직접 전송되지 않는다. 로그인할 때 서버가 새로운 챌린지를 보내면 인증 장치는 개인 키로 서명된 결과를 생성하여 서버가 이를 검증할 수 있게 한다.
WebAuthn은 사용자를 확인하는 인증과 애플리케이션에 접근할 권리를 결정하는 인가를 구분한다. 플랫폼 인증 장치는 기기 내 생체인식이나 잠금 해제 기능을 이용할 수 있고, 외부 보안 키를 사용하는 방식도 존재한다. 사용자 확인과 사용자 존재 여부 검사, 인증 장치의 증명 정보는 서로 다른 개념이며 서비스의 위험 모델에 따라 요구 조건이 달라진다.
WebAuthn 자격 증명은 신뢰 당사자의 식별자와 출처 규칙에 묶이므로 사용자가 비슷하게 생긴 다른 도메인으로 이동하면 기존 자격 증명을 그대로 사용하기 어렵다. 이는 비밀번호 입력을 가짜 로그인 페이지로 유도하는 공격의 일부 유형을 줄이는 데 도움이 된다. 그럼에도 서버의 계정 복구 절차와 세션 쿠키, 장치 탈취에 대한 정책은 별도로 설계해야 한다.
W3C의 Web Authentication Level 3는 공개 키 자격 증명의 생성과 사용을 위한 브라우저 API와 보안 모델을 규정한다. 사용자 인증 경험은 플랫폼과 인증 장치의 지원 범위, 자격 증명 동기화 정책과 브라우저 구현에 따라 달라질 수 있다. WebAuthn은 사용자가 기억해야 하는 비밀번호에 대한 의존도를 줄이는 인증 방식으로 활용된다.[1]