012. FIDO 2.0 Signature Format - Authenticator Data

FIDO 2.0 Signature Format

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

참고 FIDO alliance : FIDO 2.0 Signature Format 문서

Authenticator Data

Authenticator Data 는 Authenticator가 스스로 만들어낸 contextual binding을 인코딩한다.

Authenticator data는 작지만 확장 가능한 인코딩을 가지며, Authenticator들은 Client Platform의 구성요소보다 훨씬 간단한 스택 구조로 되어 있기때문에 제한된 기능과 저전력의 요구사항을 가진 장치도 지원하기 바람직하다.

Authenticator Data의 인코딩은 아래와 같은 5byte 이상의 길이를 가진 byte 배열로 authenticatorData 로 표현한다.

fido-signature-formats-figure1

Byte index Description
0 Flags
Bit 0 : User Prsence 테스트 결과 (TUP)
Bit 1-6 : 추후 사용을 위해 예약된 Bit (RFU)
Bit 7: Authenticator의 추가 확장 여부 Bit (ED)
1-4 Signature Counter(sigCount)
32-bit의 부호없는 big-endian 정수로 표현한다.
5- 보다 확장되어 정의된 Authenticator Data
CBOR Map 형식으로 extension Identifier가 key, extension authenticator data가 value이다

TUP flag는 Authenticator가 특정한 인증 방식의 제스쳐를 취하여 사용자를 탐지한 경우에만 설정된다.

Authenticator가 확장된 데이터를 포함하지 않는 경우 ED 영역의 bit 값을 0으로 포함되어 있는 경우 1로 설정한다.