공인인증서 대체할 FIDO, 어떤 기술일까?

FIDO 해킹은 비가역적, 불가능한 수준

2019-09-12     최형주 기자

[CCTV뉴스=최형주 기자] 최근 생체인식 기술 연구와 시장이 활성화되며 업계는 FIDO라는 기술 표준에 맞춘 인증시스템을 개발하기 위해 노력하고 있다. 

하지만 FIDO는 생체인식이 주가 아니다. 개인정보를 서버에 절대 저장하지 않는 강력한 보안성에 생체인증의 빠른 인증 속도를 결합한 강력한 보안인증기술이다.

FIDO의 정체성과 초기 FIDO부터 FIDO2까지, FIDO에 대해 자세히 알아본다.

 

 

플러그인 없는 차세대 인증 시스템, FIDO

인터넷이 생기고, 우리는 무언가를 구매하기 위해 이동하지 않게 됐다. 금융 업무도 마찬가지다. 컴퓨터에 인증서만 설치돼 있다면 어떤 컴퓨터에서도 복잡하고 오랜 시간이 걸리는 은행 업무를 쉽게 처리할 수 있다.

그러나 이 인증을 받는 과정이 어렵고 복잡하다. 은행에 가서 통장을 만들어야 하고, 해당 은행을 통해 공인인증서를 신청해야 하고, PC에 정체모를 많은 플러그인을 설치하고 공인인증서도 다운로드 받는다.

또한 인증서를 이용할 때마다 잘 기억도 나지 않는, 규정에 어긋나지 않는 수준의 긴 비밀번호를 입력한다. 게다가 특정 횟수 이상 비밀번호를 틀릴 경우 인증서를 다시 만들어야 할 수도 있다.

이에 사람들은 고민하기 시작했고, 더 빠르고 안전한 인증 기술 ‘FIDO(Fast IDentity Online)’가 탄생했다. FIDO는 지문, 홍체, 안면인식 등 생체인식을 이용해 보다 빠르고 안전한 인증 시스템으로 인식되고 있으며, 업계는 여기에 발 맞춰 FIDO를 적용한 새로운 보안 시스템을 구축하려는 노력을 아끼지 않고 있다.

액티브X와 같은 ‘인증을 위한 추가 플러그인’이 없는 간편하고 안전한 인증시스템, FIDO 기술에 대해 알아본다.

 

인증의 분리, FIDO의 정체성

FIDO를 조금 정확하게 표현하면 생체 인식ㆍ인증기술이 아니라 이 기술을 활용하는 인증 방식을 분리하는 것을 뜻한다.

예를 들어 특정 사이트에 로그인할 때 우리가 비밀번호를 입력하면 당연히 사이트 서버는 이전에 저장된 비밀번호와 방금 입력된 비밀번호의 일치, 불일치를 판단한다.

그러나 FIDO는 이러한 사용자의 개인정보를 서버에 저장하지 않는다. 즉, FIDO라는 신뢰할 수 있는 잠금장치를 하나 더 추가하는 것이 핵심이다.

작동원리를 살펴보면 다음과 같다. FIDO 방식을 채택한 애플리케이션은 사용자가 계정을 생성할 때 스마트폰과 같은 개인 단말에 인증키A를, 해당 서버에 인증키B를 생성한다. 이후 사용자가 로그인을 요청하면 인증키B가 위치한 서버는 인증에 필요한 정보와 사용 가능한 인증 방법을 인증키A가 있는 개인 디바이스에 보낸다.

인증키A는 이후 사용자가 단말에 입력한 개인정보를 판단하고, 인증키B가 요청해온 정보(Challenge값, 난수)를 해석한다. 해석이 끝나면 이 두 가지 정보를 토대로 전자서명을 생성해 서버(인증키B)로 보낸다.

즉, 인증키A는 사용자가 입력한 개인정보가 일치한다는 정보만을 인증키B가 있는 서버로 전송한 것이고, 인증키B가 있는 서버는 이 개인정보를 확인하고 저장하지 않는다. 서버는 오직 받은 전자서명을 통해 적합한 사용자인지 만을 판단하는 방식의 인증을 진행한다.

이렇게 개인정보는 서버에 저장되지 않아 해킹의 위험이 적고, 개인 디바이스와 서버에서의 분리된 인증을 통해 보안성을 강화시킨 기술이 FIDO다.

 

 

FIDO의 구성요소

FIDO의 인증은 등록ㆍ인증ㆍ거래 확인ㆍ등록 취소의 총 4단계로 구성된다. 등록은 생성된 공개키를 서버에 등록하는 것이다. 인증은 앞서 언급한 챌린지에 전자서명값을 생성하고 검증하는 과정이다. 거래 확인은 인증 과정과 동일하지만 거래 내역이 포함된 전자서명값을 생성하고 검증한다. 마지막 등록 취소는 저장된 개인키를 삭제하고 등록을 해지하는 것을 뜻한다.

FIDO의 구성요소에는 FIDO 서버, FIDO 클라이언트, ASM(Authenticator Specific Module), 인증방식(Authenticator)이 있다. FIDO 서버는 인증 장치에 대한 정책을 설정하고 사용자 공개키를 등록·관리·검증한다. FIDO 클라이언트는 서버의 정책에 따라 인증 방식을 필터링하고 ASM과 RP 클라이언트(응용 클라이언트)의 중계 역할을 한다.

ASM은 FIDO 클라이언트의 요청을 인증방식 모듈에 전달하고, 여기서 생성된 응답 값을 FIDO 클라이언트로 전달한다. 인증 방식은 비밀번호와 생체인증 방식을 뜻하며, 개인 디바이스의 로컬 인증과 서버에서의 원격 인증을 위한 공개키와 개인키 쌍을 생성하고 전자서명도 수행한다.

RP(Relying Party)란 그룹 간의 신뢰를 뜻하며, 다른 말로 오픈 아이디를 지원한다는 뜻이다. 예를 들면, 최근 쇼핑몰 사이트에 포털사이트를 통한 로그인이 가능해진 것을 볼 수 있다. 이렇게 포털사이트 아이디로 다른 사이트에 별도의 조치 없이 로그인 할 수 있는 것을 RP사이트라고 한다. 즉, FIDO는 사용자가 이용하는 서버와 상호 RP관계이기도 하다.

이 외에 FIDO 클라이언트 응용서버는 RP(Relying Party) 서버라고 하고, 응용 서비스 클라이언트는 RP 클라이언트라고 부른다. FIDO서버가 보내는 요청 메시지가 RP 서버에 전달되면, 네트워크를 통해 RP 클라이언트를 거쳐 FIDO 클라이언트에 도달한다.

 

FIDO 프로토콜

초기 FIDO는 모바일과 같은 개인 디바이스에서의 인증을 목표로 개발됐고, 크게 2개 프로토콜로 나눌 수 있다. 스마트폰 등 사용자 디바이스에서 제공하는 인증 방법을 온라인 서비스와 연동해 사용자를 인증하는 ‘범용 인증 프레임워크(Universal Authentication Framework, 이하 UAF) 프로토콜’과 기존 온라인 서비스 패스워드 사용자들이 더욱 강한 인증을 추가할 수 있게 하는 ‘범용 투팩터(Universal 2nd Factor, 이하 U2F) 프로토콜’이 그것이다.

먼저 UAF 기술은 사용자가 지문과 얼굴, 사진, 음성과 같은 다양한 생체 정보를 인증에 사용할 수 있게 하며, 앞서 언급했듯 인증을 위한 이러한 생체 정보는 오직 개인 디바이스에만 저장된다. 스마트폰을 비롯해 노트북 등의 디지털 디바이스에는 카메라·마이크·지문센서 등의 생체 인증 인프라가 내장돼 있어 이를 인증에 활용할 수 있다.

U2F기술은 구글(Google)과 유비코(Yubico)가 처음 개발한 기술로, 특수 USB 또는 NFC 장치를 사용해 2단계 인증을 강화하고 단순화한다. U2F 기술이 담긴 USB를 컴퓨터에 삽입할 경우 브라우저와 연동하며, FIDO얼라이언스의 ‘오픈파이도 통합 이중 인증’을 통해 공유 받은 ‘신뢰성이 떨어지는 사이트’에서 사용자의 보안키 사용을 제한한다. 결론적으로 UAF는 스마트폰에서 활용하고 U2F는 노트북과 패드와 같은 PC를 활용할 때 쓰이는 인증 기술인 셈이다.

FIDO는 스마트폰 인증을 중심에 두고 개발된 기술이지만, 결과적으로 두 기술 모두 ‘인증의 분리’를 통해 보안은 강화하고 패스워드를 입력하는 등의 절차를 없애 인증 편의성도 강화됐다.

 

진화하는 FIDO

2018년 3월엔 FIDO2.0(이하 FIDO2)이 공개됐다. FIDO2는 웹 서비스 환경에서도 생체인증을 적용할 수 있는 국제 표준이며, 앞서 언급한 UAF와 U2F가 결합된 이상적 인증 방식이라고 볼 수 있다.

FIDO2의 인증장치도 사용자 단말기 내부의 내장 인증장치와 외부 인증장치의 두 종류로 각각 구분된다. 특히 내장 인증장치의 경우 플랫폼 제공 기업과 사전 협약을 맺고 개발되는 것이라 표준 규격이 필요하지 않다.

외부 인증장치의 경우엔 기존 FIDO로 웹사이트 이용 시 U2F 방식으로만 가능했던 것을 새로운 프로토콜 기술로 통합시켰다. FIDO인증을 브라우저와 웹 플랫폼에 내장할 수 있게 하는 표준 웹 API ‘WebAuthn’ 기술과 다른 디바이스에서도 생체인증을 가능케 하는 ‘CTAP Protocol’ 기술이 적용된 것이다.

특히 외부 인증을 가능하게 하는 FIDO2의 자체 프로토콜인 CTAP는 FIDO의 핵심 그 자체다. 이 기술은 스마트폰을 인증장치로 이용해 다른 외부 디바이스에서 인증 서비스를 이용할 수 있도록 한다. 이전엔 U2F에서만 지원하던 USB와 NFC 방식을 포함해 블루투스(Bluetooth)까지 지원하게 돼 편의성은 더욱 강화됐다.

아울러 FIDO2에서는 웹브라우저로 운영환경이 확장된 FIDO 인증을 위해, 단말 제조사가 제공하던 기존 FIDO 클라이언트를 플랫폼 형태로 제공한다. 또한 모바일, PC 등에서의 클라이언트 호출 방식도 자바스크립트(JavaScript)를 사용한다.

 

FIDO, 해킹은 가능할까

그렇다면 FIDO에 대한 해킹 가능성은 어떨까? 답은 ‘없진 않다’이다. 다만 언급한 것처럼 FIDO는 서버에 개인정보를 저장하지 않기 때문에 당연히 해커는 개인을 대상으로 공격해야 한다. FIDO 인증 애플리케이션을 해킹하는 방법은 크게 두 가지다.

첫째는 물리적인 해킹이다. 정확하게는 도둑질을 해야 한다. 마치 첩보영화에나 나올 법한 장비들을 사용해 대상의 지문을 본떠야하고, 이 지문을 사용하기 위해 사용자의 개인 디바이스를 훔쳐야 한다. 사실상 해킹이라는 개념과는 거리가 멀다.

두 번째는 우리가 해킹이라고 인지하고 있는 네트워크 연결을 통한 시스템 해킹이다. 이 해킹을 위해서 해커는 먼저 개인 디바이스에 침투한다. 그리고 FIDO 인증 애플리케이션에서 인증 정보를 훔쳐낸다. 이후엔 인증을 위해 지문이 저장된 템플릿 정보를 해킹해서 지문을 만들어야 한다.

그런데 이 과정을 위해선 기업 서버를 해킹해 지문(그림)을 데이터(숫자)로 만드는 알고리즘을 파악해야 한다. 또한 해당 알고리즘을 파악한다고 해도 숫자를 다시 지문으로 만들어야 하는데 업계에선 이를 비가역적 영역으로 본다.

게다가 FIDO는 인증 그 자체의 보안성을 높인 프로세스이고, 업체들이 선택하는 지문인식 방식은 제각각이기 때문에 해킹을 위해선 수십, 수백 개의 알고리즘을 해킹해 풀어내야 한다.

홍동표 한국FIDO산업포럼 부회장(글로벌PD社 CEO)는 파이도의 해킹 가능성에 대해 “이론상 해킹이 불가능한 것은 아니지만, 지문 템플릿을 해킹 당한다고 해도 이를 다시 지문화해 해킹에 이용하는 것은 우리가 사용하는 휴대폰 심카드를 해킹하는 수준”이라며 “사실상 파이도를 해킹하는 것은 비가역적 작업을 해야 하기 때문에 거의 불가능한 일”이라고 말했다.

 

 

FIDO기술의 발전 가능성

지금껏 살펴봤듯 FIDO가 강력한 대체 인증 기술인 이유는 바로 해커가 기업 서버 공격을 통해 빼낼 수 있는 개인 정보가 거의 없다는 점이다.

실제 윈도우10은 파이도 표준을 따르는 적외선 카메라를 사용해 안면인식을 통한 로그인도 가능한데, FIDO의 강력한 보안성으로 인해 일란성 쌍둥이도 로그인이 불가능하다고 알려져 있다.

이러한 강력한 보안성에 FIDO2는 PC 웹상에서 필요한 바이오 인증을 위해 기존 FIDO의 UAF-U2F 통합, 관문인 인증 기술 플랫폼 내 수용, 클라이언트의 배포 주체가 모호한 보급 문제 해소 등의 단점들을 보완해 공개됐다.

FIDO2부턴 개인디바이스에서만 가능하던 생체 인증을 ‘인증 분리’라는 FIDO의 정체성을 훼손하지 않고 다른 장치에서도 가능하게 만든 것이다. 앞으로 FIDO와 연계한 무자각 인증기술, 바이오키 생성 기술, 블록체인 기술 등 다양한 인증 서비스의 등장을 기대해 본다.