Offcanvas

CSO / 보안 / 애플리케이션

비밀번호 사용을 줄인다··· 'FIDO'의 의미와 인증 프로세스

2021.02.04 Josh Fruhlinger  |  CSO
FIDO(Fast Identity Online)의 의미와 FIDO 얼라이언스가 하는 일, 그리고 인증 프로세스에 대해 알아본다. 
 
ⓒ Getty Images Bank

FIDO 얼라이언스는 보안 목적의 비밀번호 사용을 줄이는 데 목표를 둔 업계 협회다. FIDO는 퍼블릭 키 암호화에 기반한 강력한 인증 체계로 비밀번호를 보완하거나 대체하려 시도한다. 

FIDO는 이런 목표를 달성하기 위해, 웹사이트와 기타 서비스 공급업체가 비밀번호 기반 보안을 탈피하기 위해 이용할 수 있는 여러 기술 규격을 개발했다. FIDO 규격은 서비스 공급업체가 전용 하드웨어 보안 기기나 대부분의 새 스마트폰과 일부 PC에 탑재된 생체 인증 기능 등 생체 인증이나 기타 하드웨어 기반 보안 체계를 활용할 수 있도록 해준다. 

2013년, 페이팔과 레노버 등에서 일하던 보안 전문가들이 여러 비밀번호 보안 취약점을 비판하면서 FIDO 얼라이언스를 결성했다. FIDO 얼라이언스는 그 동안 비밀번호르 없애는 목표를 추진했다. FIDO 얼라이언스는 본지와의 인터뷰에서 ‘비밀번호를 잊어라!’고 선언했다. 그러다 생체 인증 판독기가 더 많이 보급되고, 자바스크립트 API를 통해 표준 웹사이트에 쉽게 통합할 수 있는 새로운 규격들이 보급되면서 ‘비밀번호 없는 미래’가 가시권에 들어오기 시작했다. 현재 FIDO 얼라이언스에는 IT와 미디어 산업의 대형 업체들 가운데 일부가 회원으로 참여하고 있다.  


FIDO 얼라이언스, 비밀번호를 없애려는 이유 

개별적인 FIDO 규격을 이야기하기 전, 기반이 되는 원칙인 퍼블릭 키 암호화에 대해 알아야 한다. 퍼블릭 키 암호화는 통신을 하는 각 당사자가 (아주 숫자가 큰) 키 2개를 이용해, 암호화 알고리즘을 통해 메시지를 암호화하는 암호화 형태다. 각 당사자는 메시지 인코딩에 사용되는 퍼블릭 키를 공유한다. 이 키는 비밀로 유지되는 프라이빗 키를 이용해서만 디코딩할 수 있다. 두 키는 ‘리버스(reverse)’가 어렵거나 불가능한 수학적 연산으로 연결되어 있다. 예를 들어, 프라이빗 키는 2개의 아주 긴 소수이고, 퍼블릭 키는 이 2개의 소수를 곱한 수일 수 있다.

퍼블릭 키 암호화는 이미 대부분의 보안 인터넷 통신의 기반 역할을 하고 있다.  SSL/TLS 표준의 기반이 퍼블릭 키 암호화다. 수십 년 전부터 대부분 웹 브라우저에 기본 탑재된 표준이다. PKI(Public Key Infrastructure)로 부르는 규모가 큰 기술 및 규격 세트는 데이터 암호화에 도움을 주고, 온라인에서 통신하는 당사자의 신원을 확인해준다. 현재 웹 브라우저에 비밀번호를 입력할 때, 이 비밀번호가 암호화된 형태로 네트워크에서 전송되는 경우가 대부분이다. 이는 PKI 덕분이다. 

FIDO 얼라이언스가 비밀번호를 없애고 싶어하는 이유는 무엇일까? 강력한 암호화가 적용된 경우에도 인터넷을 매개체로 두 컴퓨터 간 비밀번호를 교환해 인증을 수행하는 시스템에는 취약점이 있다. 암호화는 완벽하지 않으며 항상 완벽하게 구현되는 것도 아니다. 따라서 전송 중에 비밀번호를 가로챌 수 있는 경우가 종종 있다. 비밀번호 시스템의 경우, 서비스 공급업체가 자신의 서버에 사용자 비밀번호 리스트를 유지한다. 이런 리스트를 항상 암호화해야 하지만, 항상 그렇게 하는 것이 아니다. 이것이 해커들의 표적이 된다. 

여러 FIDO 규격들은 인증을 사용자의 로컬 기기에 전적으로 맡겨 이런 근본적인 취약점을 모두 해결한다. 로컬 기기는 사용자가 인증한 퍼블릭 키 암호화로 보호되는 통신을 통해 서비스 공급업체와 대화하며, 이 과정에 사용자의 민감한 정보가 전송되지 않는다.  그러나 여러 FIDO 규격들은 대상(도착지)까지 서로 조금씩 다른 경로를 이용한다. 먼저 FIDO 얼라이언스가 가장 먼저 출시한 두 규격들인 UAF와 U2F를 설명하고, 이후 더 광범위하게 도입될 방법을 찾고 있는 새로운 규격인 FIDO2에 대해 자세히 설명한다.


사용자 인증에 초점을 맞춘 FIDO UAF 

FIDO UAF(Universal Authentication Framework) 표준은 스마트폰이나 태블릿 같은 디지털 기기 사용자를 위한 인증에 초점이 맞춰져 있다. 보안용 UAF 표준을 사용해 서비스에 접근하려면, 사용자는 자신의 기기를 통해 자신의 계정을 등록해야 한다. 이 기기는 기본 지원하는 보안 프로토콜을 사용해 사용자 스스로가 인증하도록 요청한다. 이런 인증이 발생하면, 기기와 서비스 제공업체가 암호 키를 교환한다. 그러나 비밀번호나 생체 인증 같은 다른 인증 데이터는 교환하지 않는다. 이후 사용자는 자신의 계정에 접근하기 위해 동일한 인증 기법으로 로그인할 수 있다. 

UAF의 중요한 특징 가운데 하나는 서비스 제공업체는 로그인에 사용된 인증 데이터는 볼 수 없지만, 사용된 인증 방법의 유형은 알 수 있다는 것이다. 이를 바탕으로 수락할 인증 유형을 선택할 수 있다. 예를 들어, UAF 규격은 최종 사용자가 자신의 스마트폰 PIN 코드를 이용해 인증하는 것을 허용하지만, 서비스 제공업체는 이것이 충분히 견고한 인증 방법이 아니라고 결정을 내리고, 이에 지문이나 얼굴 스캔을 이용한 인증을 요구할 수 있다.


FIDO U2F, 이중 인증 제공  

FIDO U2F(Universal Second Factor) 표준은 약자에서 예상할 수 있듯, 2FA로 불리는 '이중 인증(Second-factor Authentication)’을 제공하는 데 초점을 맞추고 있다.  이중 인증에 대한 자세한 내용은 해당 주제를 다룬 본지의 기사를 참조할 수 있다. 간략히 설명하면, 이는 비밀번호 기반 보안을 대체하는 것이 아니라 보완하는 기법이다. 비밀번호를 제공한 사용자에게 두 번째 팩터를 이용해 자신을 인증하도록 요구하는 기법이다. 

특히, U2F는 로그인을 좀 더 안전하게 만들기 위해 하드웨어 기기를 사용하는 방법을 규정해 제시하고 있다. 암호화된 통신에 필요한 프라이빗 암호 키가 해당 하드웨어 기기에 저장된다. U2F 표준은 이런 목적에서 여러 기기들을 지원할 수 있지만, 가장 많이 사용되고 있는 기기는 전용 하드웨어 보안 전자 열쇠이다. 구글이 내부의 피싱 문제 해결을 위해 처음 만든 표준이다. 이후 외부 고객들에게 제공했고, FIDO 얼라이언스가 관리하도록 권한을 부여했다. 이 보안 전자 열쇠는 USB나 NFC를 통해 사용자 기기와 연결할 수 있다. PC나 스마트폰에서 이용할 수 있다는 의미다. 

브라우저를 통해 통신을 하는 전자 열쇠는 서비스 제공자와 암호 키를 교환, 이중 인증을 구축한다. 이후 인증 시도 시 사용자는 자신의 전자 열쇠를 제시해야 한다. 전자 열쇠는 암호 키를 사용, 사용자가 연결하려는 사이트가 진짜 사이트인지 확인한다. 이는 중간자 공격과 피싱 공격 방지에 도움을 준다. 

이중 인증의 기반이 되는 U2F는 비밀번호를 없애지 않는다. 그러나 FDIO 얼라이언스는 U2F가 제공하는 추가 보호 체계 덕분에 많은 사람이 기억하고 관리하는 데 어려움을 겪는 길고 복잡한 비밀번호 대신 4자리 PIN 같은 더 단순한 비밀번호를 더 안전하게 사용할 수 있게 될 것이라고 주장한다. 


FIDO와 FIDO2, 웹인증 및 CTAP 

U2F와 UAF가 일부 성공을 거뒀지만, 앞서 설명에서 드러났을 수도 있는 한계 또한 갖고 있다. UAF는 모바일 기기에 특화된 보안 기능을 사용하기 때문에 PC의 경우에는 도움이 되지 않는다. U2F는 모바일 기기는 물론 PC에서도 사용할 수 있지만, 별도의 하드웨어 인증 키가 필요하다. 

보안 분야 종사자들은 초기 RSA 시큐어ID 시절부터 이런 보안 전자 열쇠를 선호했지만, 일반 사용자들은 크기가 아무리 작아도 또 다른 기기를 휴대해야 한다는 것에 계속 거부감을 보여왔다. U2F 규격은 기술적으로 전용 전자 열쇠 대신 스마트폰을 인증 기기로 사용할 수 있다. 그러나 이 규격은 구현에 유용할 수 있도록 스마트폰의 기능과 특징들을 활용하는 방법을 설명하지 않는다. 

이런 단점을 해결하기 위해, FIDO 얼라이언스는 FIDO2로 부르는 첫 번째 표준에 기반을 둔 두 번째 표준을 개발했다. FIDO2의 ‘2’는 서로를 보완, 비밀번호가 없는 인증과 이중 인증을 구현하기 더 쉽고 안전하게 만든다는 의미다. 

FIDO2 규격의 첫 번째가 웹인증(WebAuthn)으로 2019년 W3C가 권장한 규격이다. UAF와 마찬가지로, 웹인증은 퍼블릭 키 암호화를 이용, 최종 사용자 기기가 서버 제공업체와 통신할 때 사용자를 로컬 방식으로 인증하도록 허용한다. 그러나 모바일 기기에 국한되지 않는다는 점이 UAF와의 차이점이다. 웹인증은 오픈 자바스크립트 API를 통해 최종 사용자와 서비스 제공업체 간의 통신을 규정하기 때문에 표준을 지원하는 브라우저를 실행하는 모든 기기나 PC에서 이용할 수 있다. 

과거 스마트폰에 국한되었던 지문 판독기나 얼굴 스캐너 같은 하드웨어 인증 기능들이 PC에도 점차 더 많이 통합되고 있는 추세다. 웹인증을 지원하는 웹사이트는 이를 이용해 사용자를 인증할 수 있다. 그러나 아직 보편화된 상태는 아니다. 때문에 FIDO2의 두 번째 규격인 CTAP(Client to Authenticator Protocols)가 개발됐다. CTAP는 별도의 기기를 인증 플랫폼으로 사용, 웹인증을 지원하는 서비스 제공업체와 사용자의 PC를 연결하는 규격이다. 

두 종류의 CTAP 프로토콜이 있다. CTAP1은 U2F의 이름을 바꿔 업데이트한 것이다. 이중 인증을 구현하기 원하는 웹인증을 지원하는 서비스 제공업체와 U2F 전자 열쇠를 이용할 수 있다는 의미다. CTAP2는 개념을 확대해, 와이파이, 블루투스 또는 USB를 통해 스마트폰이나 웨어러블을 PC에 연결, 인증 서비스를 제공한다. 이는 비밀번호 없는 연결을 구현한 방식이다. 

본질적으로 FIDO 얼라이언스는 온라인 서비스를 안전하게 인증해야 하는 경우, 강력한 인증 방법을 지원하는 기기를 사용하거나, 주머니나 책상에 이런 기기를 갖고 있어야 할 것으로 판단하고 있다. 


FIDO 인증 프로세스 알아보기  

FIDO 인증 프로세스의 ‘핵심’은 코드와 암호화 수준 모두에 있어 더 상세하다. 이와 관련해서는 다른 기사에서 다루기로 하고, 이번 기사에서는 웹인증 지원 서비스 제공업체에 접근할 때 인증 프로세스 흐름이 어떻게 작동하는지 개략적으로 설명한다.  

먼저 등록에 대해 생각해보자. 웹인증을 사용하는 웹사이트나 서비스에 가입하기 원하는 사용자가 있다고 가정하자. 
  
  1. 사용자가 계정 생성을 요청하는 메시지를 보낸다. 
  2. 서비스 제공자는 퍼블릭 키를 요청한다. 
  3. 사용자는 웹인증 규격이 지원하고, 서비스 제공업체가 승인하는 로컬 기법을 사용해 자신을 인증한다. 서비스 제공업체와의 연결에 사용한 기기나 CTAP를 통해 연결되는 다른 기기를 사용해 인증할 수 있다. 
  4. 로컬 장치는 사용자의 인증 데이터와 연결된 한 쌍의 암호 키(퍼블릭 키와 프라이빗 키 1개씩)를 생성한 후, 퍼블릭 키를 서비스 제공업체에게 전송한다. 
  5. 서비스 제공업체는 퍼블릭 키를 저장하고, 이를 사용자의 새 계정과 연결시킨다. 

계정을 생성한 후에는 사용자는 동일한 인증 방법을 사용해 로그인할 수 있다.
   
  1. 사용자가 로컬 기기에서 서비스 제공업체에게 로그인 요청을 보낸다. 
  2. 서비스 제공업체는 디지털 서명(digital signature)을 요청한다. 이는 프라이빗 키로만 생성할 수 있고, 연결된 퍼블릭 키로 읽을 수 있는 사용자의 신원을 증명하는 데이터이다. 
  3. 사용자는 로컬 기기에서 자신을 인증한다. 
  4. 로컬 기기는 인증된 신원과 접근하려는 서비스로 적절한 키 쌍을 사용했는지 판단하고, 프라이빗 키로 서명을 만든다. 그리고 이를 서비스 제공업체에게 전송한다. 
  5. 서비스 제공업체는 사용자의 퍼블릭 키를 사용해 서명을 읽고, 사용자의 신원을 확인한 후 사용자를 로그인시킨다. 

웹인증 API 사용 방법을 보여주는 코드 예제 등 자세한 내용은 ‘종합적인 웹인증 가이드’를 참조한다.  

 

지금까지 FIDO 규격을 구현하는 기기와 소프트웨어에 대한 일반적인 사항을 설명했다. 이 규격은 개방되어 있고, 모든 기기 제조업체나 소프트웨어 개발업체가 이를 도입해 적용할 수 있다. 모든 업체가 동참하고 있는 상태는 아니지만, 꽤 폭넓게 지원되고 있다. 안드로이드는 2019년 2월에 FIDO2 인증을 획득했다. 대부분의 주요 브라우저들도 인증이 된 상태다. 그러나 애플 사파리는 2020년 말까지 동참하지 않았다. 

자사의 소프트웨어나 서비스에 FIDO를 도입하는 데 관심이 있다면 FIDO 얼라이언스의 홈페이지를 참조하면 된다. editor@itworld.co.kr 
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.