FIDO 2.0 Web API for accessing FIDO 2.0 credentials
FIDO의 3가지 스펙 문서 중 두 번째인 Signature Format에 대해서 정리한다.
Use cases
이번 포스팅에서는 보다 강력한 보안으로 사용자를 인증하게 위해 Javascript를 이용해 FIDO 2.0 Credential에 접근하는 웹 페이지용 API를 지정한다.
FIDO 2.0 Credential은 항상 단일 FIDO Relying Party에게 바인딩되며 API는 이 요구사항을 준수해야 한다.
Relying Party가 생성한 Credential은 항상 Relying Party가 만든 웹의 출처에서만 접근할 수 있으며 Relying Party의 개인 정보는 유지되어야 한다.
스크립트는 다른 Relying Party에 속해있는 Credential의 속성이나 존재 여부를 알면 안된다.
FIDO 2.0의 Credential은 Authenticator에게 있으며, 사용자가 인증에 성공하면 작업을 수행할 수 있다.
일반적으로 두 가지 유형의 Authenticator가 있다.
Embedded authenticators
Embedded authenticator 는 사용자 에이전트가 실행되는 컴퓨팅 장치와 동일한 장치에서 관리되는 작업을 처리한다.참고 스마트폰, 태블릿, 데스크톱 등
예를 들어 authenticator는 컴퓨팅 장치에 통합된 TPM 또는 SE와 해당 장치의 기능에 대한 접근을 제어하는 특정 플랫폼 소프트웨어로 구성될 수 있다.
참고
TPM : Trusted Platform Module
SE : Secure ElementExternal authenticators
External authenticator 는 사용자 에이전트를 실행하는 장치에서 자율적으로 작동하며 USB, BLE, NFC와 같은 프로토콜을 통해 접근한다.참고
BLE : Bluetooth Low Energy
NFC : Near Field Communications
External authenticator 는 그 자체로 Embedded authenticator 를 포함할 수 있다.
예를 들어 FIDO 2.0 Credential이 포함된 스마트폰의 경우 스마트폰 자체에서 실행되는 웹 브라우저를 통해 Credential을 접근할 수 있다. 이 경우 Credential이 포함된 모듈이 Embedded authenticator로 동작할 수 있다. 그러나 Credential은 가까운 노트북의 사용자 에이전트가 BLE 등을 통해 접근할 수도 있다.
다양한 경우에 대한 시나리오는 아래를 참고하자.
Registration (embedded authenticator mode)
- 모바일
- 사용자는 example.com에 브라우저로 접속하여 사용중인 모든 방법을 사용하여 로그인 한다.
- “이 장치를 example.com에 등록하시겠습니가?” 와 같은 메시지를 표시한다.
- 사용자가 이에 동의한다.
- 사용자는 기존에 가지고 있던 PIN이나 생체 인식등의 인증방법중 어떤 방법을 선택할 것인지 묻는 메시지를 표시한다.
- 사용자는 PIN을 입력하거나 생체 인식을 통해 정보를 제공한다.
- example.com에 “등록이 완료되었습니다.”와 같은 메시지가 표시된다.
Authentication (external authenticator mode)
- 노트북
- 사용자가 example.com에 브라우저로 접속하면 “휴대전화로 로그인” 옵션이 표시된다.
- 사용자가 “휴대전화로 로그인” 옵션을 선택한다.
- 브라우저에서 “휴대폰에서 로그인 작업을 완료하세요.” 라는 메시지를 표시한다.
- 노트북 -> 모바일
- 유저는 “example.com에 로그인” 이라는 알림을 받는다.
- 사용자가 해당 알림을 선택한다.
- example.com에 등록된 ID 목록을 사용자에게 표시해준다.
- 사용자가 신원을 선택하거나 생체 인식 등을 통해 인증을 수행한다.
- 노트북 -> 모바일 -> 노트북
- 웹 페이지에서 로그인이 완료된다.
Other configurations
아래와 같이 다양한 추가 사용 사례 및 구성도 가능하다.
- 사용자가 노트북에서 example.com으로 이동하여 Registration을 하는 과정을 모바일에서 수행한다.
- 사용자가 노트북에서 수행중인 결제나 금융거래 등을 위해 신원을 확인할 때 모바일에서 인증을 수행하여 거래를 승인한다.