ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FIDO 1.0과 FIDO 2.0에 대해서 알아보자.
    FIDO 2020. 2. 17. 00:00

    FIDO 

    Fast IDentity Online의 약자이며 한국어로는 "파이도"라고 읽습니다.

    FIDO는 온라인 환경에서 ID, 비밀번호 없이 생체 인식 기술을 활용하여 보다 편리하고 안전하게 개인 인증을 수행하는 기술입니다. 즉 비밀번호의 문제점을 해결하기 위한 목적으로 Fido Alliance가 제안한 인증 프레임워크입니다. 또한 인증 프로토콜과 인증 수단을 분리합니다. 이로써 생체정보 전송의 위험과 저장된 생체정보에 대한 해킹 가능성을 원천 차단합니다.

     

    FIDO는 현재 1.0과 2.0가 있습니다. 각자의 개념과 특징을 설명하고 차이점에 대해서 정리해보았습니다.

     

    FIDO 1.0 

     FIDO 1.0은 다양한 생체인증 수단(지문, 홍채 등)을 활용한 인증정보를 서버가 아닌 개인 소유 디바이스에 저장합니다. 개인 소유 디바이스에서 인증을 진행하고 매칭 되는 식별 값을 서버에서 확인해 인증을 진행하는 기술입니다. 

     

    FIDO 1.0 특징

    FIDO 얼라이언스는 FIDO 표준을 통해 UAF와 U2F로 2가지 프로토콜을 제안했습니다. 

     

    1. UAF(Universal Authentication Framework) 프로토콜

        사용자 기기에서 제공하는 인증방법을 온라인 서비스와 연동해 권한을 인증하는 기술입니다.

     

    2. U2F(Universal 2nd Factor) 프로토콜

        기존 아이디와 비밀번호 기반 온라인 서비스에서 추가로 인증을 받고자 할 때, 추가할 수 있는 프로토콜입니다. 특징으로는 보안을 약화하지 않으며 암호를 단순화하는 서비스 제공하는 것입니다.

     

    FIDO는 크게 클라이언트와 서버, 두 개체간 주고받는 프로토콜로 구성되어 있습니다. 아래쪽 그림에 간단하게 FIDO 1.0 구조를 볼 수 있습니다. 

    인증자가 생체 인증 등으로 사용자를 사용자 단말에서 로컬 인증하고 서버에서 원격 인증을 위한 공개키/개인키 쌍을 생성하고 개인키를 이용하여 전자서명 수행을 합니다.

    FIDO 클라이언트는 FIDO 인증토큰과 인증 토큰 API라는 인증 토큰 추상화 단계에서 연동하는 역할을 수행합니다. API만 준용한다면 어떤 종류의 인증 토큰이라도 FIDO클라이언트에서 사용할 수 있다는 것입니다. 또한 FIDO 클라이언트는 FIDO 서버와 프로토콜을 송·수신하며 등록/인증/조회 서비스를 제공하는 역할을 합니다. 즉, FIDO 서버의 정책에 따라 인증자를 필터링 하고 ASM과 클라이언트 간의 중계역할을 합니다.

    ASM(Authenticator Specific Module)은 FIDO 클라이언트의 요청을 인증자로 전달하고 인증자에서 생성된 응답 값을 FIDO 클라이언트로 전달하는 중계역할을 수행합니다.

     

    <FIDO 1.0의 구조 (출처 : ETRI)>

     

    FIDO 서버는 클라이언트와 UAF 프로토콜을 주고받아 서비스를 제공합니다. 서버는 사용자가 선택한 인증 토큰과 공개키를 등록해, 향후 인증 또는 전자서명 검증에 활용합니다. 즉, 인증 장치에 대한 정책을 설정하고 사용자의 공개키를 등록 관리 및 검증합니다.

    FIDO 프로토콜은 3가지 메시지를 통해 사용자 검증을 진행합니다. 등록 메시지를 통해 사용자 기기에 있는 인증토큰을 조회·검증·등록하고, 인증 메시지로 사용자를 인증한 후 마지막으로 안전거래 확인 메시지를 통해, 특정 거래에 대해 서버가 클라이언트에게 전자서명으로 거래내용을 확인하는 기능을 수행합니다. 

     

    FIDO 2.0

    위와 같이 모바일 환경에서 생체인증을 사용할 수 있는 표준이 FIDO 1.0이라면, FIDO 2.0은 모바일뿐만 아니라 PC를 포함한 모든 온라인 환경에서 생체인증을 사용할 수 있도록 하는 기술입니다. 단말기에 종속 되지 않고 공통으로 사용할 수 있는 인증 표준과 플랫폼을 구현한 것입니다.

    FIDO 2.0에서는 기존의 UAF, U2F 이외에 WebAuthn(Web Authentication)과 CTAP(Client-to-Authenticator Protocol)이라는 기술을 개발하였습니다.

     

    FIDO 2.0 특징

    FIDO 2.0의 인증 프로토콜은 UAF, U2F, CTAP(Cilent to Authenticator Protocol)로 나뉩니다.

     

    UAF는 FIDO 1.0에서 고안된 기술로 2.0버전에서도 동일하게 사용합니다.

    U2F도 또한 FIDO 1.0에서 고안된 기술로 2.0버전에서 동일하게 사용되었습니다. 

    CTAP는 외부장치를 이용한 인증방식에 사용하는 프로토콜입니다. 모바일 단말기, USB, NFC, BT와 같은 외부 장치를 이용하여 운영체제나 웹 브라우저 등과 인증자 연동을 구성합니다. 해당 프로토콜이 표준 연동 방식으로 자리 잡은 후 단말기 자체에서만 생체 인증이 가능했던 UAF와 간편한 2차 인증을 제공하는 U2F가 하나의 플랫폼으로 구성되어 모든 온라인 서비스에 적용 가능하게 되었습니다.

     

    FIDO 2.0은 FIDO모듈을 플랫폼화합니다. 플랫폼에 포함되어 있는 내부 인증자 또는 외부 인증 장치의 외부 인증자를 이용하여 인증 가능하며, RP 서버와 RP 클라이언트 간 통신에 자체 프로토콜을 적용합니다. 또한 웹에서까지 FIDO 인증하기 위해 웹 인증 API가 추가되었습니다. 이로써 FIDO 2.0은 외부 인증 장치를 사용할 수 있으며, 자체 프로토콜을 적용한다는 특징을 가질 수 있습니다.

     

    1. 외부 인증 장치 사용 가능 

     

    외부 장치를 통하여 FIDO 인증자를 이용할 경우, 사용자 장치와 통신을 위하여 USB, NFC, BLE 등의 CTAP 표준 연동 방식을 적용합니다.

    <CTAP을 이용한 FIDO 등록/인증>

    2. 자체 프로토콜 적용

     

    클라이언트와 서버 간의 메시지 전송 시 UAF 프로토콜을 이용하는 FIDO 1.0과 달리 FIDO 2.0은 서버에서 정의하는 자체 프로토콜을 이용합니다. FIDO 2.0에서는 사용자 장치와 FIDO 서버 간에 데이터 교환을 위해 정의된 프로토콜은 없으며, 전자 서명 값을 안전하게 전달할 수 있도록 자체 프로토콜을 설계하여 적용하도록 권고합니다. 

     

    3.  웹 인증 API 추가

     

     웹 브라우저 상에서 인증을 구현하기 위해 웹 인증 API가 추가되었습니다. 웹 인증 API는 웹 앱에서 웹브라우저의 FIDO 기능을 호출하기 위해 사용되는 자바스크립트 API로, 인증 장치를 FIDO 서버에 등록 및 인증하기 위한 기능을 제공합니다. 즉 인증 장치가 등록 및 인증에서 사용하는 메시지 포맷의 정의라고 할 수 있습니다. 웹 인증 API의 특징은 다양한 사용 시나리오를 위한 확장 기능을 제공한다는 점이 있습니다.

     

    FIDO 1.0과 FIDO 2.0의 비교

    FIDO 1.0과 비슷한 점은 FIDO 서버를 활용하고 프로토콜을 통해 통신한다는 점입니다. 차이점은 클라이언트 부분에서 나타납니다. FIDO 1.0은 FIDO 클라이언트가 있고 FIDO 인증장치인증 장치 연동을 통해 인증절차를 진행했다면, FIDO2는 별도의 클라이언트 없이 웹 브라우저에서 FIDO 인증 장치를 연동해 인증절차를 진행할 수 있습니다.

     

    또한 FIDO 2.0은 모바일 환경에서만 가능하던 생체인증을 모든 온라인 서비스에서 사용할 수 있도록 함으로써 FIDO 1.0의 단점이었던 ‘인증을 수행하려는 단말기의 애플리케이션에서만 생체인증이 가능하다는 점’, ‘단말기 제조사별로 FIDO 인증 클라이언트를 제공해야 한다는 점’ 등을 개선하고 전 세계에서 공통으로 사용할 수 있는 생체인증 표준과 플랫폼을 개발하였습니다.

     

    < FIDO 1.0과 FIDO 2.0 비교표 (출처: 금융보안원 ‘FIDO2.0 구조적 특징 소개’)>

    FIDO 2.0과 EZ의 연계

    저희의 어플리케이션 EZ는 FIDO UAF 프로토콜을 사용하여 구현하였습니다. 하지만 마지막 발표 시 FIDO 2.0으로 개발해도 좋을 것 같다는 의견을 받아 저희 아이디어에 FIDO 2.0을 사용하는 것에 대해서 생각해보았습니다. FIDO 2.0을 사용해 구현하기 위해서는 FIDO 2.0 CTAP 프로토콜을 사용해 접근하는 방식을 이용할 것입니다.

     

    아이디어 측면에서는 EZ를 CTAP1과 연계시켜 개발한다면 무인 택배 보관함에서 지원물품을 수령할 때 인증번호가 아닌 NFC 태그를 이용해 지문 인증을 하여 2단계 인증을 실행시킬 수 있을 것입니다. 그리고 웹으로 확장이 가능해졌기 때문에 PC에서도 인증 서류 제출 및 지문 등록, 지원 물품 신청 등을 활용할 수 있습니다.

     

     

     

    출처 

    <웹 브라우저 안전저장소 기반의 FIDO 2.0 사용자 인증 개발 : 박재연>

    <FIDO2.0 구조적 특징 소개 : 금융 보안원>

    <FIDOALLIANCE>

     

    'FIDO' 카테고리의 다른 글

    "집콕하면서 시간 때우기 좋은 보안 지식 쌓기! -FIDO-"  (0) 2020.07.13
    2019 FIDO 해커톤의 'EZ'  (0) 2020.02.03
Designed by Tistory.