014. FIDO 2.0 Signature Format - Client encoding of assertions

FIDO 2.0 Signature Format

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

참고 FIDO alliance : FIDO 2.0 Signature Format 문서

Client encoding of assertions

Client Platform 은 Authenticator Assertion을 사용하여 아래와 같은 형태의 FIDOASSertion 객체를 생성하여 Relying Party에 반환해야 한다.

1
2
3
4
5
6
interface FIDOASSertion {
attribute Credential credential;
attribute DOMString clientData;
attribute DOMString authenticatorData;
attribute DOMString signature;
}
  • Credential credential
    Assertion을 생성하는 데 사용된 자격 증명을 나타내는 객체
  • DOMString clientData
    clientDataJSON을 base64url 기반으로 인코딩한 값
  • DOMString authenticatorData
    authenticatorData base64url 기반으로 인코딩한 값
  • DOMString signature
    Authenticator가 반환한 Raw Signature를 base64url 기반으로 인코딩한 값

FIDOASSertion은 FIDO Web API에 따라 플랫폼 특정 방식을 따르지만 Web 애플리케이션의 경우 Relying Party로 전달된다.

이 FIDOASSertion에는 Relying Party의 FIDO 서버가 Signature를 기반으로 한 문자열을 재구성하고 클라이언트 및 Authenticator Data를 디코딩하거나 유효성을 검증하는 데 필요한 정보가 모두 들어있다.