FIDO 맛보기!

2 minute read

개요

스마트폰이 널리 보급되기 이전, 보안이 중요한 웹페이지에(게임 홈페이지, 뱅킹 등) 로그인 하는 과정에 대해서 생각해봅시다.

먼저 ID, 패스워드를 입력하여 로그인을 합니다. 그 이후에는 2차 인증을 하죠. 공인 인증서를 쓰거나 OTP, 보안카드, 2차 비밀번호 등과 같은 추가 인증을 한 뒤 로그인을 하게 됩니다.

요즘은 인증이 매우 간편해졌습니다. 제가 주로 사용하는 뱅킹 어플리케이션은 실행 후 지문만 입력하여도 로그인이 되어 통장 잔고 확인이 가능합니다.

이와 같이 간편하게 간편하게 사용자를 인증하게 해주는 FIDO 입니다.

FIDO란?

FIDO는 Fast IDentity Online 의 약자압니다. 말 그대로 온라인상에서 빠른 인증을 의미합니다.

개요에서 언급한 바와 같이 과거에는 인증을 위해 ID, 패스워드를 입력하고 상황에 따라 추가적인 2차 인증을 수행합니다.

FIDO는 기존의 ID, 패스워드를 이용한 인증이 아닌 지문, 홍채, 얼굴, 정맥 등과 같은 고유한 생체정보를 이용한 인증방식힙니다

FIDO 방법의 특징은 키를 디바이스에 보관한다는 점입니다. 기존에 사용하던 ID, 패스워드 방식은 모두 서버의 DB에 저장되었습니다. 따라서 서버가 해킹당했을 때 대량의 개인정보가 유출되는 문제가 있었습니다. 하지만 FIDO 방식은 키를 디바이스에 보관하기 때문에 서버의 해킹에도 안전합니다. 또한 생체정보를 이용하기 때문에 단말기를 탈취당하더라도 악용하기 어렵습니다.

등록과 인증

FIDO 방식은 크게 등록과 인증 두가지 방식으로 구분됩니다. 해당 방법에도 역시 PKI 인증 방식입니다.

image

등록 과정은 키쌍 생성 후 자신의 공개키를 서버에 등록하는 과정을 의미합니다.

image

인증 과정은 자신의 생채 정보와 개인키를 이용하여 전자서명을 만들어 인증하는 과정을 의미합니다.

UAF (Universal Authentication Framework)

UAF 는 암호가 없이 인증할 수 있도록 해줍니다. 지문 인식, 얼굴 인식, PIN 입력 등과 같은 디바이스의 인증방법을 이용하여 디바이스를 온라인 서비스에 등록할 수 있습니다. UAF 프로토콜을 사용하면 서비스에서 방법으로 인증을 수행할지 사용자에게 제공됩니다.

image

디바이스가 서비스에 인증해야 할 때 로컬 인증 작업을 한번 수행해주기만 하면 됩니다. 비밀번호를 입력하지 않고, 서버에 등록할 때 사용한 방법으로 인증을 수행하면 됩니다. (지문인식, 얼굴인식, PIN 번호 등) UAF 는 지문 + PIN 과 같은 여러 인증을 수행하도록 하는 방법도 가능합니다.

UAF 는 스마트폰과 같은 휴대용 디바이스에 초점이 맞춰져 있습니다.

U2F (Universal Second Factory)

U2F 는 ID와 패스워드로 1차인증을 수행한 뒤 1회용 보안 키가 저장된 USB 동글을 이용하여 추가적인 인증을 하는 방법입니다. 기존의 로그인 방식을 진행한 뒤 두번째 추가적인 인증을 통해 기존의 보안 방식에 보안을 강화할 수 있습니다.

image

사용자는 ID와 패스워드를 입력한 뒤 USB의 버튼을 누르거나 NFC를 태그하는 등의 행동을 취하여 인증 할 수 있습니다.

FIDO2

FIDO2는 FIDO 의 단점을 보완하기 위해 등장하였습니다.

FIDO1 은 기존의 비밀번호 방식의 문제점을 극복하기 위해 생체인증과 같은 방법을 이용하기 위해 등장했습니다. 하지만 FIDO1은 디바이스에 의존적이라는 특징이 있습니다. 그렇기 때문에 별도의 클라이언트가 필요했습니다.

FIDO2는 별도의 클라이언트가 필요없이 웹브라우저 환경에서 FIDO 인증 장치를 통해 인증할 수 있습니다.

WebAuthn

WebAuthn은 온라인 서비스에서 FIDO 인증을 사용할 수 있도록 브라우저 및 관련 웹 플랫폼 인프라에 내장할 수 있는 표준 웹 API입니다.

CTAP

CTAP는 모바일 단말기나 FIDO 보안 키와 같은 외부 장치가 PC 응용 프로그램 및 웹 서비스에 대한 인증자를 연동할 수 있도록 합니다.

FIDO2 구조

image

위의 그림은 CTAP와 WebAuthn 를 이용하여 웹사이트에 인증하는 구조를 나타내고 있습니다.

장치에서는 CTAP를 이용하여 사용자 인증을 수행합니다. 이때 지문, NFC, BLE 등과 같은 방법으로 인증을 할 수 있습니다.

CTAP로 사용자 정보를 사용자 인증이 되면 WebAuthn 를 통해 인증을 수행하는 구조이다.

참고

  • https://fidoalliance.org/
  • https://blog.naver.com/vps32/222379761238
  • https://www.slideshare.net/FIDOAlliance/fido-kwg-tech-seminar-16-jul-2018-etri
  • https://blog.naver.com/owjs3901/221800281434

Leave a comment