Tech-Trends

FIDO 1 과 FIDO 2 내부 작동 방식

IT오이시이 2024. 11. 18. 23:30
728x90



FIDO 1 과 FIDO 2 Device 내부 작동 방식

FIDO(Fast IDentity Online)는 비밀번호 없이 생체 정보나 보안 장치를 통해 사용자 인증을 수행하는 표준 프로토콜입니다.
FIDO 1.0과 FIDO 2.0은 각각의 방식과 특징이 다르며, 아래에서 그 내부 작동 방식을 정리합니다.


FIDO1과 FIDO2의 주요 차이점

FIDO 1.0은 주로 모바일 애플리케이션과 특정 장치에 집중되어 있으며, 생체 정보와 2차 인증 장치를 사용합니다.

FIDO 2.0은 웹 브라우저와 다양한 플랫폼을 지원하며, WebAuthn과 CTAP를 통해 더 광범위한 인증 환경을 제공합니다.





FIDO 1.0 내부 동작 구조


 

※ Authenticator : ECDSA key-pair Generate 및 Sign 기능을 수행하는 H/W Module

※ ASM(Authenticator Specific Module) : Mobile Device Vendor 가 제공하는 S/W Library

※ U2F 방식에서 외부 Authenticator 와 I/F 방식에는 USB 외에 Bluetooth 와 NFC도 지원합니다.



FIDO 1.0 내부 작동 방식

FIDO 1.0은 두 가지 주요 프로토콜인 UAF(Universal Authentication Framework)와 U2F(Universal 2nd Factor)로 구성되어 있습니다.



1. UAF(Universal Authentication Framework)

1.1 UAF 등록(Registration)

사용자가 새로운 서비스에 등록할 때, FIDO 인증 장치(예: 스마트폰)가 새로운 키 쌍(Private Key와 Public Key)을 생성합니다.
Public Key는 서비스의 FIDO 서버에 전송되고, Private Key는 장치 내의 안전한 저장소에 저장됩니다.
FIDO 서버는 Public Key를 저장하고, 장치는 사용자 인증을 위해 생체 정보(예: 지문, 얼굴 인식)를 사용합니다.


1.2 UAF 인증(Authentication)

사용자가 로그인할 때, FIDO 서버는 장치에 challenge(무작위 숫자)를 보냅니다.
장치는 사용자의 생체 정보를 확인하고, Private Key로 challenge를 서명하여 FIDO 서버로 보냅니다.
FIDO 서버는 저장된 Public Key로 서명을 검증하여 사용자를 인증합니다.


2. U2F(Universal 2nd Factor)

2.1 U2F 등록(Registration)
사용자가 새로운 서비스에 등록할 때, 기존의 ID와 비밀번호 외에 추가적인 2차 인증 장치(예: 보안 키)를 사용합니다.
보안 키는 새로운 키 쌍을 생성하고, Public Key를 FIDO 서버에 전송합니다.
Public Key는 서버에 저장되고, Private Key는 보안 키 내부에 안전하게 저장됩니다.


2.2 U2F 인증(Authentication)
사용자가 로그인할 때, FIDO 서버는 보안 키에 challenge를 보냅니다.
보안 키는 사용자의 입력(예: 버튼 누름)을 확인하고, Private Key로 challenge를 서명하여 FIDO 서버로 보냅니다.
FIDO 서버는 Public Key로 서명을 검증하여 사용자를 인증합니다.




FIDO 2.0 내부 동작 구조



FIDO 2.0 내부 작동 방식

FIDO 2.0은 기존의 UAF와 U2F를 통합하고 확장한 프로토콜로, WebAuthn과 CTAP(Client to Authenticator Protocol)로 구성되어 있습니다.


3. WebAuthn(Web Authentication)

3.1 WebAuthn 등록(Registration)

사용자가 새로운 서비스에 등록할 때, 웹 브라우저를 통해 새로운 키 쌍을 생성합니다.
Public Key는 서비스의 FIDO 서버에 전송되고, Private Key는 장치 내의 안전한 저장소에 저장됩니다.
FIDO 서버는 Public Key를 저장하고, 장치는 사용자 인증을 위해 생체 정보나 PIN을 사용합니다.


3.2 WebAuthn 인증(Authentication)

사용자가 로그인할 때, FIDO 서버는 웹 브라우저를 통해 장치에 challenge를 보냅니다.
장치는 사용자의 생체 정보나 PIN을 확인하고, Private Key로 challenge를 서명하여 FIDO 서버로 보냅니다.
FIDO 서버는 Public Key로 서명을 검증하여 사용자를 인증합니다.


4. CTAP(Client to Authenticator Protocol)


4.1 CTAP 등록(Registration)

사용자가 새로운 서비스에 등록할 때, 외부 인증 장치(예: USB, NFC, Bluetooth)를 통해 새로운 키 쌍을 생성합니다.
Public Key는 서비스의 FIDO 서버에 전송되고, Private Key는 외부 인증 장치 내의 안전한 저장소에 저장됩니다.
FIDO 서버는 Public Key를 저장하고, 장치는 사용자 인증을 위해 생체 정보나 PIN을 사용합니다.



4 2 CTAP 인증(Authentication)

사용자가 로그인할 때, FIDO 서버는 외부 인증 장치에 challenge를 보냅니다.
외부 인증 장치는 사용자의 입력(예: 버튼 누름, 생체 정보)을 확인하고, Private Key로 challenge를 서명하여 FIDO 서버로 보냅니다.
FIDO 서버는 Public Key로 서명을 검증하여 사용자를 인증합니다.



(참고)


https://www.okta.com/kr/blog/2019/04/the-ultimate-guide-to-fido2-and-webauthn-terminology/

https://couplewith.tistory.com/664


728x90
반응형