FIDO1 와 FIDO2 차이점 알아보기
FIDO(Fast Identity Online) 프로토콜은 패스워드 없는 인증을 목표로 하는 최신 인증 표준이다. 사용자가 로그인할 때 ID와 비밀번호를 입력하는 대신, 생체 인증이나 보안 장치 인증을 통해 본인임을 증명하는 방식이다. 기존의 비밀번호 기반 인증의 보안 취약점을 해결하기 위해 만들어졌으며, 현재 많은 기업과 서비스가 이 표준을 채택하고 있다.
이번 포스팅에서는 FIDO와 FIDO 2.0이 무엇인지, 어떤 원리로 작동하는지, 그리고 보안적으로 어떤 장점을 제공하는지 깊이 있게 알아보겠다.
FIDO란?
FIDO는 패스워드 없이도 생체 정보나 보안 장치와 같은 사용자의 고유 인증 정보를 이용해 본인임을 확인하는 방식이다. 2013년 FIDO Alliance에 의해 표준화되기 시작했으며, 현재 Google, Microsoft, Amazon 등 세계적인 기술 기업을 포함해 약 250개 이상의 기업이 FIDO 표준을 채택하고 있다. FIDO의 목표는 비밀번호가 필요 없는 인증 환경을 만들어 보안성과 사용자 경험을 동시에 개선하는 것이다.
FIDO의 3가지 핵심 요소:
- 단말 인증: 사용자가 소유한 등록된 기기(예: 스마트폰, 보안 키)를 통해 사용자를 인증한다.
- 안전한 인증정보 관리: 지문, 얼굴 인식 등 민감한 생체 인증 정보는 기기 내에만 저장되고, 서버에 전달되지 않아 정보 유출을 방지한다.
- 공개키 암호화 방식: 비대칭키 암호화 방식(공개키와 개인키)을 통해 서버와의 통신을 안전하게 보호하며 인증을 수행한다.
FIDO의 인증 절차: 작동 원리
FIDO는 기본적으로 비대칭키 암호화를 사용해 사용자 인증을 수행한다. 이 방식은 공개키와 개인키 두 개의 키를 생성해 서로 다른 역할을 수행하는데, 공개키는 서버에 저장되고 개인키는 기기에만 저장된다. 이를 통해 인증 과정에서 보안성과 개인 정보 보호를 강화할 수 있다.
- 대칭키와 비대칭키 암호화
- 대칭키 암호화: 하나의 키로 암호화와 복호화를 모두 수행하는 방식이다. 사용자는 서버와 같은 키를 공유하기 때문에 보안 측면에서 취약할 수 있다.
- 비대칭키 암호화: 공개키와 개인키 두 개의 키를 사용해, 공개키로 암호화한 데이터를 개인키로만 복호화할 수 있는 방식이다. FIDO 인증에서는 이 비대칭키 암호화를 사용해 기기와 서버 간의 보안을 강화한다.
- 사용자 등록 절차
- 사용자가 웹 서버에 등록을 요청한다.
- 사용자가 소유한 기기에서 공개키와 개인키를 생성한다.
- 기기는 개인키를 자체적으로 저장하고, 공개키만 서버와 공유해 사용자 계정에 연동한다. 이 과정을 통해 서버는 사용자의 인증에 필요한 정보를 보유하면서도 실제 개인 정보는 사용자 기기 내에 안전하게 보관된다.
- 인증 과정 (로그인)
- 사용자가 로그인 요청을 보내면 서버는 사용자의 공개키로 암호화된 Challenge 메시지를 보낸다. 이 Challenge는 사용자와 서버 간의 고유한 인증을 위해 생성된 임시 메시지이다.
- 사용자는 자신의 기기에서 개인키로 Challenge 메시지를 복호화하고, 이에 대한 응답을 생성해 서버에 다시 전송한다.
- 서버는 공개키를 사용해 사용자의 응답을 검증하며, Challenge와 응답이 일치하면 인증을 승인한다. 이 과정은 사용자가 비밀번호를 입력하지 않고도 안전하게 인증을 받을 수 있게 한다.
FIDO의 보안 이점
FIDO는 비밀번호를 대체하는 인증 방식이므로 기존 비밀번호 기반 인증의 여러 취약점을 해결한다. 특히 다음과 같은 보안적인 장점이 두드러진다.
- 피싱 방지: FIDO는 비밀번호 입력을 요구하지 않기 때문에 피싱 사이트에서 비밀번호가 유출되는 위험이 없다.
- 리플레이 공격 방지: 네트워크에서 동일한 인증 요청을 반복 전송하는 리플레이 공격을 방지한다. Challenge 기반 인증을 사용해 매번 새로운 인증 요청을 서버가 생성하기 때문이다.
- 편리한 사용자 경험: 패스워드 대신 생체 인증이나 보유한 기기 인증만으로 로그인할 수 있어, 사용자 입장에서는 더 편리하게 서비스를 이용할 수 있다.
FIDO vs FIDO2 차이
FIDO와 FIDO2는 비밀번호 없는 인증을 위한 프로토콜이지만, 몇 가지 주요 차이가 있다.
- 지원하는 인증 방식: FIDO는 기본적으로 생체 인증과 보안 장치를 사용하지만, FIDO2는 웹 애플리케이션을 지원하고 더 다양한 인증 방식을 추가로 지원한다.
- 웹 브라우저 호환성: FIDO2는 WebAuthn API를 통해 다양한 웹 브라우저와 호환되어 더 넓은 범위의 기기에서 사용할 수 있다.
- 확장성: FIDO2는 기존의 FIDO UAF 및 FIDO U2F와 호환성을 유지하면서도 새로운 환경과 기기를 더 유연하게 지원한다.
Leave a comment