018. Web API for accessing FIDO 2.0 credentials - Use cases

FIDO 2.0 Web API for accessing FIDO 2.0 credentials

FIDO의 3가지 스펙 문서 중 두 번째인 Signature Format에 대해서 정리한다.

참고 FIDO alliance : FIDO 2.0 Web API 문서

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가 있다.

  1. Embedded authenticators
    Embedded authenticator 는 사용자 에이전트가 실행되는 컴퓨팅 장치와 동일한 장치에서 관리되는 작업을 처리한다.

    참고 스마트폰, 태블릿, 데스크톱 등

    예를 들어 authenticator는 컴퓨팅 장치에 통합된 TPM 또는 SE와 해당 장치의 기능에 대한 접근을 제어하는 특정 플랫폼 소프트웨어로 구성될 수 있다.

    참고
    TPM : Trusted Platform Module
    SE : Secure Element

  2. External 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)

  • 모바일
    1. 사용자는 example.com에 브라우저로 접속하여 사용중인 모든 방법을 사용하여 로그인 한다.
    2. “이 장치를 example.com에 등록하시겠습니가?” 와 같은 메시지를 표시한다.
    3. 사용자가 이에 동의한다.
    4. 사용자는 기존에 가지고 있던 PIN이나 생체 인식등의 인증방법중 어떤 방법을 선택할 것인지 묻는 메시지를 표시한다.
    5. 사용자는 PIN을 입력하거나 생체 인식을 통해 정보를 제공한다.
    6. example.com에 “등록이 완료되었습니다.”와 같은 메시지가 표시된다.

Authentication (external authenticator mode)

  • 노트북
    1. 사용자가 example.com에 브라우저로 접속하면 “휴대전화로 로그인” 옵션이 표시된다.
    2. 사용자가 “휴대전화로 로그인” 옵션을 선택한다.
    3. 브라우저에서 “휴대폰에서 로그인 작업을 완료하세요.” 라는 메시지를 표시한다.
  • 노트북 -> 모바일
    1. 유저는 “example.com에 로그인” 이라는 알림을 받는다.
    2. 사용자가 해당 알림을 선택한다.
    3. example.com에 등록된 ID 목록을 사용자에게 표시해준다.
    4. 사용자가 신원을 선택하거나 생체 인식 등을 통해 인증을 수행한다.
  • 노트북 -> 모바일 -> 노트북
    1. 웹 페이지에서 로그인이 완료된다.

Other configurations

아래와 같이 다양한 추가 사용 사례 및 구성도 가능하다.

  • 사용자가 노트북에서 example.com으로 이동하여 Registration을 하는 과정을 모바일에서 수행한다.
  • 사용자가 노트북에서 수행중인 결제나 금융거래 등을 위해 신원을 확인할 때 모바일에서 인증을 수행하여 거래를 승인한다.