FIDO at LINE: 패스워드 없는 세상으로의 첫 발걸음

패스워드 없는 세상

안녕하세요. 오늘은 LINE의 인증서버가 서비스 제공업체로서는 전세계 최초로 FIDO(Fast Identity Online) Universal Server(모든 FIDO 인증 장치와 상호호환성을 보장하는 서버) 인증을 획득한 소식을 전해드리려고 합니다.

LINE 사용자는 FIDO 인증을 통해 얼굴이나 지문 등의 생체정보나, YubikeyGoogle Titan key와 같은 외부 인증 장치로 손쉽고 빠르게 로그인과 인증을 진행할 수 있습니다. FIDO 기술은 인증 장치의 유형과는 무관하게 패스워드나 PIN 등의 공유 방식의 암호화 대신, 공개 키 암호화 방식을 활용하여 매우 강력한 인증을 제공합니다.

 

LINE의 여정

LINE 메신저는 출시 이후 인기가 급상승하면서 다양한 형태의 공격 시도를 받았고, 이에 따라 사용자가 직면하는 위험도 증가하였습니다. 공격자는 사회 공학 공격(social engineering attack)을 사용하거나, 네트워크 방어를 우회하는 등 여러 가지 방법으로 사용자를 공격하려고 했습니다. LINE은 글로벌 IT 회사로서 사용자를 그런 위협으로부터 방어하는 것을 최우선 과제 중 하나로 생각하고 있습니다.

사용자 인증은 LINE 서비스의 시작이며 중요한 사용자 경험(User Experience, UX) 중의 하나입니다. 또한, 사용자 인증은 서버 시스템과 개인 정보, 혹은 기타 중요한 정보에 대한 접근을 통제하는 중요한 보안 계층이기도 합니다. 그러나 보다 안전한 사용자 인증을 제공하려는 노력은 종종 사용성 문제에 부딪혀 사용자에게 제한적으로만 채택되곤 했습니다. 그래서 LINE은 최종 사용자에게 안전하면서도 직관적이고 사용하기 쉬운 솔루션을 찾으려고 오랜 시간 노력해 왔습니다. 그런 노력의 일환으로, LINE은 2017년 5월에 FIDO Alliance1에 이사진(board)으로 가입하였습니다. 가입 이후 LINE은 글로벌 서비스 제공업체로서의 경험과 주요 요구 사항을 공유하고, 일반적인 문제에 대해 실행 가능한 솔루션을 제시함으로써 FIDO 설계 및 표준화에 기여해 왔습니다. 또한, 다양한 인증 기술과 사용자 시나리오 및 관련 업계의 여러 솔루션들을 연구하고 테스트 해왔습니다. LINE은 회사 DNA의 상당 부분을 차지하고 있는 모바일 서비스에서 더 나아가, 다양한 플랫폼으로 서비스를 확장할 준비를 하고 있습니다. 따라서, 다양한 환경의 사용자에게 가능한 한 최대로 안전한 FIDO 인증을 제공하고자 노력하고 있습니다. 이를 위해 LINE은 FIDO Universal Server를 개발하고 현재까지 정의된 모든 FIDO 표준을 지원하기로 결정했습니다.

FIDO Alliance는 FIDO 생태계 내에서 벤더 간의 상호 운용성을 검증하기 위한 인증 프로그램을 운영하고 있습니다. 또한, FIDO Alliance는 모든 제품에 대해 FIDO 오퍼레이션(등록, 인증, 등록 취소)의 상호 운용성을 성공적으로 입증한 제품에 인증서를 발급해 줍니다. FIDO Alliance는 90일마다 상호 운용성 테스트 이벤트를 개최하며, FIDO 사양을 준수하고자 하는 모든 공급 업체는 자사 제품의 상호 운용성을 해당 이벤트에서 입증해야 합니다. LINE은 2018년 11월, 서울에서 열린 상호 운용성 테스트 행사에 참가하였고, LINE 서버가 FIDO의 UAF(Universal Authentication Framework, 아이디와 패스워드 방식 대신에 개인의 고유한 생체 정보를 인증 과정에 사용), U2F(Universal 2nd Factor, 기존 아이디, 패스워드 인증 방식과 함께 별도의 2차 인증 장치를 사용하는 이중 인증) 및 FIDO2(UAF와 U2F를 웹으로 확장) 사양을 준수하고 다른 공급 업체의 FIDO 인증장치(총 16개 인증업체)와 상호 운용될 수 있다는 것을 성공적으로 입증하였습니다. 드디어 LINE 사용자에게 FIDO 인증을 제공하기 위한 첫 걸음을 내딛게 된 것입니다. 현재 LINE은 FIDO Universal Server를 활용하여 LINE 서비스가 제공되는 모든 플랫폼, 브라우저 및 장치에서 모든 FIDO 사양 (UAF, U2F 및 FIDO2)에 대해 FIDO 인증을 제공할 수 있습니다. 또한, 현재 기준의 FIDO 사양을 완벽하게 구현하고, 현재 정의된 모든 서명(Signature) 알고리즘 및 증명(Attestation) 형식을 지원합니다.

 

FIDO 프로토콜 소개

FIDO는 공개 키 암호화 방식을 활용하여 안전하면서도 간편한 인증을 제공하기 위한 인증의 표준이며, 개방적이고, 상호 운용 가능하며, 확장 가능하도록 설계되어 있습니다. 공개 키 및 로컬 사용자 인증(User Verification)을 기반으로 하는 FIDO의 온라인 인증 프로토콜을 활용하면, 서비스에서 보다 강력하고 간편한 인증을 사용자에게 제공할 수 있게 됩니다. 또한, FIDO 인증 정보는 특정 Web origin(일반적으로 서비스의 인터넷 도메인)에 결합되기 때문에 시스템은 중간자 공격(man-in-the-middle)이나 피싱 공격 모두에서 안전할 수 있습니다.

모든 FIDO 프로토콜에는 등록(Registration)과 인증(Authentication)이라는 두 가지 주요 사용자 흐름이 있습니다.

  • 등록 (Registration)

등록은 인증을 위한 사용자 키 쌍을 생성하고, 생성된 키를 사용할 수 있도록 공개 키를 FIDO 서버에 등록하는 절차입니다. 다음은 FIDO의 등록 절차에 대한 간략한 설명입니다.

  1. FIDO 서버는 인증 장치(Authenticator, 사용자의 브라우저나 OS 또는 전용 하드웨어 장치로 구현 됨)에 챌린지(Random number) 및 추가 매개 변수를 보냅니다. 
  2. 인증 장치는 사용자(일반적으로는 생체 인식)를 검증하고, 새로운 키 쌍 및 공개 키 증명(Attestation, 생성된 키 및 인증 장치에 대한 추가 데이터)을 생성합니다. 
  3. 이후 인증 장치는 인증용 공개 키와 증명으로 Assertion을 생성하고 서명한 뒤, 해당 값을 FIDO 서버로 전송합니다. 
  4. 마지막으로 FIDO 서버는 서명을 확인하여 Assertion을 검증하고, 검증에 성공하면 수신된 공개 키를 저장하고 이를 사용자 계정에 매핑합니다.
  • 인증 (Authentication)

인증은 사전에 등록된 공개 키를 활용하여 사용자를 인증하는 절차입니다. 등록 절차가 성공적으로 완료되면 사용자는 등록된 공개 키로 인증을 진행할 수 있습니다. 인증 프로세스는 등록 프로세스와 매우 유사한데요. FIDO의 인증 절차에 대해 간략하게 설명드리겠습니다. 

  1. 먼저, FIDO 서버는 인증자에게 챌린지와 몇 가지 추가 매개 변수를 보냅니다. 
  2. 다음으로, 인증 장치는 등록 과정에서 생성된 개인 키를 잠금 해제하기 전에, 사용자(생체 인증 지원 여부)를 확인하거나 사용자가 실제로 있는지(버튼 등을 터치하는 등의 실제 물리적인 이벤트가 발생한 경우에만 동작) 확인합니다.
  3. 이후, 인증 장치는 Assertion을 생성하고 개인 키로 서명한 다음 서명된 Assertion을 FIDO 서버로 보냅니다.
  4. FIDO 서버는 Assertion의 키 식별자를 기반으로 사용할 키를 식별하고 해당 공개 키를 찾은 다음 이 공개 키를 사용하여 서명을 확인합니다. 
  5. 성공적으로 확인되면 서버는 새 인증 세션을 생성하고 클라이언트에 인증 토큰 또는 쿠키를 발급합니다.

FIDO 프로토콜은 최첨단 표준 및 기술을 많이 활용합니다. 자세한 내용은 다음 링크를 참조해주시기 바랍니다.

 

LINE에서 계획하는 FIDO 활용안

LINE에서 계획하고 있는 FIDO 활용안을 소개하고자 합니다. 아래 제시된 예시 외에도 간단한 로그인부터 IoT 장치에 대한 접근 제어에 이르기까지 다양한 서비스 통합 및 추가 활용을 준비하고 있습니다.

 

LINE Login 통합

FIDO를 LINE Login에 도입하면, LINE Login을 활용하는 LINE의 파트너 및 타사 서비스의 사용자는 비밀번호 없이 자신의 기기에 지문이나 얼굴을 스캔함으로써 인증을 수행할 수 있습니다. 또한 보안 및 개인 정보 보호에 관심이 있는 사용자는 외부 보안 토큰을 등록하여 계정에 대한 보안을 강화할 수도 있습니다.

LINE은 사용자에게 비밀번호 입력을 요구하는 모든 인증 화면을 최소화하고 결국에는 완전히 제거할 계획입니다. 최종적으로 사용자가 암호를 사용할 필요가 없는 서비스를 제공하는 것이 목표입니다. LINE은 FIDO를 LINE Login에 통합하여 사용자와 파트너에게 편리하고 간편한 생체 인증을 제공할 수 있게 되기를 기대합니다. FIDO가 적용된 LINE Login은 내년 봄에 여러분을 찾아뵐 예정입니다. 

 

LINE Pay 및 관련 금융 서비스를 위한 거래 확인

LINE은 지불 및 송금 거래를 안전하고 간단하게 확인할 수 있도록 LINE Pay에 FIDO를 적용할 계획입니다. 사용자 확인(User Verification) 방법으로 지문 인식과 얼굴 인식을 모두 도입할 예정이기 때문에, 적용이 완료되면 사용자는 지불 등의 거래를 단순히 휴대폰 지문인식 센서를 터치하거나 휴대폰 전면의 카메라를 바라보는 것만으로 진행할 수 있게 됩니다.

LINE Pay는 다양한 금융 서비스로 계속 확장하고 있으며, 다른 금융 서비스를 위한 기본적인 금융 플랫폼이 될 것입니다. 따라서, 사용자는 LINE Pay 인증을 기반으로 다른 금융 서비스에서도 간편하게 인증할 수 있게 되고, 이에 따라 긍정적인 사용자 경험이 창출될 것입니다.

 

LINE Things 및 IoT(사물인터넷) 기기 제어

조명에서 인공 지능 스피커에 이르기까지 벌써 다양한 IoT 장치가 우리 생활의 일부가 되었습니다. IoT가 유용하다는 것은 부인할 수 없습니다. 하지만, IoT 장치는 인터넷에 직접 연결되어 있거나, 통제하기 어려운 복잡한 환경에 배치되는 경우가 많아서, IoT 환경에서 서비스를 안전하게 제공하는 것엔 많은 어려움이 따르게 됩니다. 그런 어려움 중 하나가 IoT 장치와 IoT 장치에 접근하여 제어하는 사용자 모두에게 안전한 인증을 제공하는 것입니다. LINE은 FIDO가 안전하면서도 편리한 인증을 제공하기 때문에, 이런 특징을 가진 IoT 생태계에 잘 부합한다고 생각합니다. FIDO를 LINE Things에 통합하게 되면 사용자는 안전하게 장치를 관리하고 제어할 수 있게 될 것입니다.

 

맺으며

정식 서비스가 릴리스되기 전에 FIDO 인증에 대해 더 많은 정보를 얻고, 또 FIDO 인증을 직접 경험해보고 싶다면 FIDO 데모 서버(FIDO2 및 U2F 지원)를 사용해 보시기 바랍니다. FIDO를 지원하는 브라우저에 대한 자세한 내용은 이곳을 참조하시기 바랍니다. LINE 및 FIDO에 대한 의견과 제안은 언제든지 환영합니다. 이곳으로 메일을 보내주시기 바랍니다.