게으른 개발자의 끄적거림

FIDO 인증이란? (FIDO 완벽 정리)

끄적잉 2025. 7. 28. 17:25

## FIDO 인증에 대한 심층 분석: 비밀번호 없는 강력하고 편리한 인증의 미래

 


### 1. 서론: FIDO의 등장 배경과 미션

오늘날 디지털 세상에서 우리는 수많은 온라인 서비스에 접근하기 위해 비밀번호를 사용하고 있습니다. 그러나 비밀번호는 **피싱(Phishing), 자격 증명 스터핑(Credential Stuffing), 무작위 대입 공격(Brute-force Attacks), 재사용(Reuse) 및 대규모 데이터 유출(Data Breaches)** 등 다양한 보안 위협에 끊임없이 노출되어 있습니다. 사용자들은 너무 많은 비밀번호를 기억해야 하는 부담과 함께, 복잡한 비밀번호를 만들어야 하는 스트레스, 그리고 주기적인 비밀번호 변경 요구에 시달리고 있습니다.

이러한 문제들을 해결하기 위해 **FIDO (Fast IDentity Online) Alliance**라는 글로벌 산업 협회가 등장했습니다. FIDO의 핵심 미션은 **비밀번호 없는(passwordless)**, 더 **강력하고(stronger)**, 더 **간단한(simpler)** 인증 방식을 제공하여 온라인 보안과 사용자 경험을 혁신하는 것입니다. FIDO 인증은 전통적인 비밀번호 기반의 인증 모델을 공개키 암호 방식(Public-key Cryptography) 기반의 혁신적인 프로토콜로 대체합니다.

 

 


### 2. FIDO Alliance와 그 목표

FIDO Alliance는 2013년에 설립된 비영리 산업 협회로, 전 세계 수백 개의 기술, 금융, 보안, 통신 기업들이 참여하고 있습니다. 이들은 공통의 오픈 표준을 개발하고 전파하여 강력한 인증을 위한 상호 운용 가능한 기술 스택을 구축하는 것을 목표로 합니다.

FIDO Alliance의 주요 목표는 다음과 같습니다:
* **강력한 인증:** 피싱, 중간자 공격(Man-in-the-Middle), 재전송 공격에 매우 강한 인증 방식을 제공합니다.
* **간단한 사용자 경험:** 비밀번호 없이 빠르고 직관적인 인증 절차를 제공합니다.
* **프라이버시 보호:** 사용자 생체 정보가 기기 외부로 유출되거나 서버에 저장되지 않도록 보장합니다.
* **상호 운용성:** 다양한 기기, 플랫폼, 서비스 간에 인증 기술이 호환되도록 표준화합니다.

### 3. FIDO 인증의 핵심 원리 및 철학

FIDO 인증은 기존 비밀번호 인증과 근본적으로 다른 원리를 가집니다.

* **비밀번호 없는 인증 (Passwordless):** FIDO는 사용자가 비밀번호를 입력하는 대신, 기기 내에서 사용자의 신원을 로컬로 확인(예: 지문, 얼굴 인식, PIN 입력)하고, 이를 바탕으로 암호화된 인증 정보를 생성하여 서버에 보냅니다. 서버는 비밀번호를 저장하거나 검증할 필요가 없습니다.
* **공개키 암호 방식 (Public-key Cryptography):** FIDO 인증의 핵심은 공개키 암호 방식입니다. 각 사용자 계정마다 고유한 암호화 키 쌍(개인키/공개키)이 생성됩니다. 개인키는 사용자 기기에 안전하게 보관되고, 공개키만 서버에 등록됩니다.
* **로컬 인증 (Local Authentication):** 사용자는 자신의 기기(스마트폰, PC)에 내장된 생체 인식 센서(지문 인식기, 얼굴 인식 카메라)나 PIN/패턴 입력과 같은 익숙한 방식으로 본인임을 인증합니다. 이 인증은 기기 내부에서만 이루어지며, 사용자의 생체 정보는 절대 기기 외부로 전송되거나 서버에 저장되지 않습니다.
* **피싱 저항성 (Phishing Resistance):** FIDO는 인증 정보를 특정 웹사이트의 도메인(Origin)에 묶어둡니다. 즉, A 사이트용으로 생성된 인증 정보는 B 사이트에서는 사용할 수 없습니다. 이로 인해 사용자가 피싱 사이트에 속아 인증 정보를 입력하더라도, 해커는 그 정보를 진짜 사이트에서 사용할 수 없어 피싱 공격이 원천적으로 차단됩니다.
* **개인정보 보호:** 사용자의 생체 정보는 기기 내의 보안 영역(Secure Enclave, TEE/Trusted Execution Environment)에서만 처리되고, 기기를 떠나지 않습니다. 서버는 생체 정보를 알 수 없으며, 단지 사용자가 올바르게 인증했음을 증명하는 암호화된 서명만을 받게 됩니다.

 


### 4. 주요 FIDO 표준 (프로토콜)

FIDO Alliance는 여러 가지 오픈 표준 프로토콜을 개발했습니다.

* **FIDO UAF (Universal Authentication Framework):**
    * 앱 내에서 비밀번호 없이 인증하기 위해 설계된 초기 FIDO 표준입니다. 사용자의 생체 인식이나 PIN 등으로 인증하고, 기기 내에서 생성된 키를 사용해 서버에 인증합니다.
    * 초기 모바일 앱 중심의 무비밀번호 인증에 주로 사용되었습니다.

* **FIDO U2F (Universal 2nd Factor):**
    * 두 번째 인증 요소(2FA)로 사용하기 위해 개발되었습니다. 주로 USB 보안 키와 같은 하드웨어 토큰을 통해 간단하고 강력한 2단계 인증을 제공합니다. (예: Google 계정 로그인 시 YubiKey 사용)
    * 웹 브라우저에서 주로 사용되었으며, WebAuthn의 기반이 되었습니다.

* **FIDO2 (WebAuthn + CTAP):**
    * 현재 가장 중요하고 널리 확산되는 FIDO 표준입니다. 웹 브라우저와 운영체제에서 비밀번호 없는 강력한 인증을 지원하도록 설계되었습니다.
    * **WebAuthn (Web Authentication API):** W3C(World Wide Web Consortium) 표준으로, 웹 브라우저와 운영체제가 FIDO 인증자(Authenticator)와 통신하는 표준 API를 정의합니다. 웹사이트가 사용자 기기의 생체 인식 기능이나 보안 키를 통해 사용자를 인증할 수 있도록 해줍니다.
    * **CTAP (Client to Authenticator Protocol):** 인증자(Authenticator, 예: USB 보안 키, 휴대폰)가 클라이언트(웹 브라우저, OS)와 통신하는 방법을 정의하는 프로토콜입니다.

### 5. FIDO (WebAuthn/CTAP) 인증의 상세 작동 방식

FIDO2 기반의 인증 흐름은 크게 '등록(Registration)'과 '인증(Authentication)' 두 단계로 나뉩니다.

**5.1. 등록 (Registration): 사용자의 키 쌍 생성 및 등록**

1.  **사용자 의도:** 사용자가 서비스(웹사이트/앱)에서 "FIDO 인증 등록"을 선택합니다.
2.  **서비스 요청:** 서비스(서버)는 사용자 기기(클라이언트)에 FIDO 인증자(Authenticator)를 등록하라는 요청(챌린지 포함)을 보냅니다.
3.  **사용자 확인:** 기기(운영체제)는 사용자에게 지문, 얼굴, PIN 등 익숙한 방식으로 본인임을 확인해 달라고 요청합니다.
4.  **키 쌍 생성:** 사용자의 확인이 성공하면, 기기 내부의 보안 영역(예: Secure Enclave)에서 해당 서비스에만 연결된 새로운 **공개키/개인키 쌍**이 생성됩니다.
5.  **공개키 전송:** 기기는 생성된 공개키와 함께 'Attestation'(선택 사항: 기기가 진짜임을 증명하는 서명)을 서비스(서버)로 전송합니다.
6.  **서버 저장:** 서비스(서버)는 받은 공개키를 사용자 계정과 연결하여 안전하게 저장합니다. **개인키는 절대 서버로 전송되지 않습니다.**

**5.2. 인증 (Authentication): 사용자의 신원 확인**

1.  **사용자 의도:** 사용자가 서비스에 로그인하려 합니다 (예: 로그인 화면에서 "FIDO 로그인" 버튼 클릭).
2.  **서비스 요청:** 서비스(서버)는 기기(클라이언트)에 사용자에게 인증을 요청하는 '챌린지(Challenge)'를 보냅니다.
3.  **사용자 확인:** 기기는 사용자에게 지문, 얼굴, PIN 등으로 본인임을 확인해 달라고 요청합니다.
4.  **서명 생성:** 사용자의 확인이 성공하면, 기기는 저장된 **개인키를 사용하여 서버가 보낸 '챌린지'에 암호학적으로 서명(Sign)**합니다.
5.  **서명 전송:** 기기는 생성된 서명된 응답을 서비스(서버)로 전송합니다.
6.  **서버 검증:** 서비스(서버)는 자신이 저장하고 있는 사용자의 **공개키를 사용하여 받은 서명 응답이 유효한지 검증**합니다.
7.  **인증 성공:** 서명 검증이 성공하면, 서비스는 사용자가 올바르게 인증되었음을 확인하고 로그인을 허용합니다.

 

 


### 6. FIDO 에코시스템의 구성 요소

* **Relying Party (RP, 서비스 제공자):** 웹사이트, 웹 애플리케이션, 모바일 앱 등 FIDO 인증을 통해 사용자를 인증하려는 서비스입니다. (예: Google, Apple, 금융 앱 서버)
* **Client (클라이언트):** 사용자 기기(스마트폰, PC)의 운영체제 및 웹 브라우저입니다. FIDO 인증자와 통신하고 사용자 인터페이스를 제공합니다. (예: Chrome, Safari, Windows, Android, iOS)
* **Authenticator (인증자):** 사용자의 개인키를 안전하게 저장하고 생체 인증/PIN을 통해 인증 서명을 생성하는 하드웨어 또는 소프트웨어 모듈입니다.
    * **플랫폼 인증자 (Platform Authenticator):** 기기에 내장된 인증자 (예: 스마트폰의 지문 센서, Face ID 모듈).
    * **로밍 인증자 (Roaming Authenticator):** 기기 외부에 있는 인증자 (예: USB YubiKey, Bluetooth 보안 키).

### 7. FIDO 인증의 주요 이점 (종합)

* **강력한 보안:**
    * **피싱 저항성:** 가장 큰 장점입니다. 인증 정보가 특정 도메인에 묶여 있어 피싱 사이트에서 탈취될 수 없습니다.
    * **자격 증명 유출 방지:** 서버에 비밀번호가 저장되지 않으므로, 서버 해킹으로 인한 비밀번호 유출 위험이 없습니다.
    * **중간자 공격, 재전송 공격 방지:** 강력한 암호학적 프로토콜로 이러한 공격을 차단합니다.
* **탁월한 사용자 경험:**
    * **비밀번호 없는 편리함:** 비밀번호를 기억하거나 입력할 필요 없이 생체 인식이나 PIN으로 빠르게 로그인합니다.
    * **간편하고 직관적:** 기기 잠금 해제와 동일한 방식으로 익숙하게 인증할 수 있습니다.
* **강화된 프라이버시:**
    * 사용자의 생체 정보는 기기를 떠나지 않고 로컬에서만 처리됩니다. 서버는 생체 정보에 대해 알 수 없습니다.
* **광범위한 상호 운용성:**
    * 오픈 표준이므로, 다양한 제조사의 기기, 운영체제, 브라우저, 서비스에서 FIDO 인증이 호환되어 작동합니다.
* **운영 비용 절감:**
    * 사용자의 비밀번호 분실/재설정 관련 헬프데스크 호출 감소.
    * 데이터 유출로 인한 피해 및 복구 비용 감소.

### 8. FIDO와 패스키(Passkeys)의 관계

앞서 언급했듯이, **패스키(Passkeys)**는 FIDO 표준, 특히 WebAuthn의 사용자 친화적인 이름이자 구현체입니다. 패스키의 목표는 여러 기기 간에 FIDO 인증 정보를 동기화하여, 마치 비밀번호처럼 편리하게 사용할 수 있으면서도 훨씬 강력한 보안을 제공하는 것입니다. 사용자는 하나의 패스키를 생성하면 iCloud 키체인이나 Google 비밀번호 관리자와 같은 클라우드 동기화 서비스를 통해 자신의 다른 기기에서도 해당 패스키를 사용할 수 있습니다.

### 9. 도입 및 확산

FIDO 인증은 이미 Google, Apple, Microsoft, Amazon, Meta(Facebook) 등 전 세계 주요 IT 기업에서 자사의 서비스에 활발하게 적용하고 있습니다. 웹 브라우저(Chrome, Firefox, Safari, Edge)와 모바일 운영체제(Android, iOS)에 기본 기능으로 내장되어 있으며, 금융, 통신, 공공 서비스 등 다양한 산업 분야로 확산되고 있습니다.

### 10. 고려사항

* **기존 시스템 통합:** 레거시 시스템에 FIDO 인증을 통합하는 것은 추가적인 개발 및 연동 작업이 필요할 수 있습니다.
* **사용자 교육:** 새로운 인증 방식에 대한 사용자 교육이 필요할 수 있습니다.
* **기기 분실/손상 시 복구:** 인증 수단인 기기를 분실하거나 손상했을 때 안전하고 편리하게 계정을 복구하는 메커니즘이 중요합니다.