유비키 사용을 권장하지 않아요

집에서 아무 생각 없이 유튜브 앱을 새로고침 하다 보니 알고리즘이 점지 해 주신 유비키 사용방법을 설명하는 영상이 자주 나타났습니다. 지난번에 패스키가 어떻게 동작하는 건지 궁금해서 유튜브에서 튜토리얼 영상을 찾아본 적이 있는데 그 때문인지도 모르겠습니다.

이 글은 유비키에 대한 이야기이지만 말이 나온 김에 패스키에 대해 아주 짧게 설명하고 넘어가면 비대칭키 암호화 기술에 기반해 내 폰에 비밀키를, 인증을 요구하는 서비스가 공개키를 들고 서로 패스워드 없이 인증하는 방법입니다. 대강 내 폰에 여러 서비스에 걸쳐 안전하게 사용할 수 있는 마스터 패스워드가 들어있어 로그인 할 때마다 이 마스터 패스워드를 사용한다고 생각하면 완전히 틀리지는 않습니다. 다만 내 폰에 처음 마스터 패스워드를 저장하려고 할 때 내가 정말 나인지, 이 폰이 정말 내 폰인지 인증하는 절차가 기술적으로 정의되어 있지 않고 또 만약 내가 여러 이유로 폰을 바꾸면 그 대 다시 마스터 패스워드를 내 폰에 넣을 방법이 모호합니다. 실상 패스키 표준은 기술적인 배경을 제공할 뿐 실제 인증 인프라를 지탱하는 것은 실제 사람과 실제 그 사람의 폰을 확인하는 실행 주체가 별도로 필요한데 이런 실행 주체는 은행, 카드사, 통신회사 같은 전통적인 인증 업무 수행 주체들에게 떠미는 느낌이 강합니다.

자. 원래 주제로 돌아가서 유튜브를 통해 본 유비키는 이제 2FA에 주로 사용하는 인증 애플리케이션도 잠재적인 보안사고로부터 안전하지 않으니 2FA 인증에 애플리케이션 대신 아예 독립된 하드웨어를 사용해야 하는데 이 하드웨어가 바로 유비키입니다. 뭐 복잡해 보이지만 은행에서 발급 받은 OTP 기계를 사용해본 적이 있다면 유비키와 거의 같은 체계를 이미 사용해본 경험이 있는 겁니다.

유비키는 좀 더 작고 가볍고 견고하게 만들어진 OTP 기계인데 은행 OTP처럼 내가 직접 디스플레이에 나타난 숫자를 보고 이를 직접 입력하는 대신 기계의 포트에 직접 꽂거나 NFRC를 통해 인증 문자열을 전달하기 때문에 편리합니다. 또 NFC 또는 포트에 직접 꽂아 사용하기 때문에 배터리 없이 동작하며 아주 작고 견고하게 만들어져 있어 은행 OTP를 사용할 때 종종 겪는 고장이나 시간이 틀어져 오랜만에 사용하려 할 때 실패할 일도 거의 없어 보입니다.

기존 인증 애플리케이션을 통해 사용하는 OTP는 없는 것 보다는 훨씬 안전하지만 OTP 정보가 노출되면 공격자가 OTP 동작을 똑같이 흉내낼 수 있는 문제가 있습니다. 가령 내가 어떤 회사의 인증 애플리케이션을 사용하고 있다고 합시다. 사이트에 로그인 할 때 아이디와 패스워드를 입력한 다음 OTP 입력을 요구 받으면 인증 애플리케이션을 실행해 거기 나타난 번호를 입력해 로그인 하게 됩니다. 인증 애플리케이션 서버는 이 과정에 전혀 개입하지 않지만 만약 내가 폰을 바꿔 인증 애플리케이션을 다시 다운로드 할 때 서버로부터 인증 애플리케이션 키를 다시 받아야 합니다. 공격자가 인증 애플리케이션 서버로부터 내 인증키를 얻으면 내가 폰을 통해 사용하는 것과 똑같은 OTP를 발급 받을 수 있습니다.

유비키는 이 과정에 인증 애플리케이션 회사의 개입을 완전히 없애버립니다. 유비키는 한번 생산되면 이 정보가 아무 곳에도 남아 있지 않습니다. 로그인 할 때 아이디와 패스워드를 입력한 다음 유비키를 기계에 연결하고 유비키 하드웨어에 있는 버튼을 직접 누르면 OTP가 전송됩니다. 공격자는 유비키를 물리적으로 훔치지 않는 이상 2FA 과정에 개입할 여지가 없습니다. 심지어 2FA를 통해 로그인 하는 기계의 권한을 훔쳐도 유비키 버튼을 직접 누를 수는 없어 원격에서 2FA를 실행할 방법이 없습니다.

유비키는 2FA 과정에 공격자가 개입할 가능성을 없애버리지만 개인적으로는 사용을 권하지 않습니다. 이유는 유비키를 통한 인증 과정에 그 누구도 개입하지 않는 대신 인증이 필요할 때를 대비해 유비키를 폰과 별도로 항상 가지고 다녀야 하고 만약 유비키를 잃어버리면 전통적인 인증 체계에 의존하지 않고서는 복구할 방법이 없기 때문입니다. 먼저 유비키를 직접 들고 다니기 쉽지 않습니다. 세계는 점차 스마트폰에 더 많은 역할을 부여하고 있습니다. 스마트폰은 이미 이전 시대에는 별도 기계를 통하던 이메일, 팩스, 전화, 카메라, 스캐너, 책, 신용카드를 통합했고 또 출입카드, 열쇠, 신분증, OTP 장치를 통합해 가고 있고요.

이런 상황에서 스마트폰을 통해 2FA를 요구 받을 때 사용할 기계를 폰과 별도로 들고 다닐 것을 강제하기는 쉽지 않습니다. 종종 유비키가 작고 가벼워 열쇠고리에 걸고 다니는 사진을 본 적이 있는데 개인적으로는 지난 10년 동안 열쇠고리를 사용한 적이 없습니다. 최근에 필요한 거의 유일한 열쇠는 자동차 지붕에 있는 자전거 캐리어 열쇠 정도인데 그나마 이 열쇠는 자동차 안에 있어 가지고 다니지 않습니다. 또한 유비키를 들고 다니려면 폰과 동시에 잃어버리거나 폰과 동시에 도난 당하지 않도록 폰과 별도로 들고 다녀야 하는데 이를 강제하기는 어렵습니다.

유비키를 잃어버리면 그때는 문제가 심각해집니다. 인증 애플리케이션을 통한 2FA는 애플리케이션을 설치한 폰을 분실하더라도 인증 회사에서 제안하는 복구방법을 통해 다른 폰에 인증 애플리케이션을 복구할 수 있습니다. 이 때 이메일, 전화번호, 복구코드 같은 방법을 요구하며 잠깐 아찔할 수도 있지만 인증 애플리케이션을 복구하면 다시 일상으로 돌아갈 수 있습니다. 하지만 유비키는 이를 잃어버리면 아무에게도 도움을 청할 수 없습니다. 인증을 요구하는 서비스 제공자는 보안 상 기존의 인증 수단 - 유비키 - 을 제시하지 못하는 개인의 권한 복구 요청에 응할 이유가 없고 또 함부로 응해서도 안됩니다.

2023년 봄 기준 애플 계정에 유비키를 연동할 수 있는데 이 때 반드시 둘 이상의 유비키를 함께 등록할 것을 요구하는 이유입니다. 유비키를 분실하면 계정을 복구할 방법이 없기 때문에 둘 이상의 유비키를 등록하고 각각을 서로 완전히 다른 장소에 보관하기를 요구하는 것입니다. 하지만 집에서 사는 사람들 입장에서 ‘절대로 잃어버려서는 안되는 물건’을 물리적으로 집 안에 안전하게 보관하는 것은 사실상 불가능합니다.

유비키는 분명 2FA 과정을 안전하게 만들어 주지만 그 안전함에 너무 큰 댓가가 따르기 때문에 개인적으로는 사용을 권하지 않습니다. 보안에 신경 쓰는 개인이라면 1Password 정도의 복구 가능한 소프트웨어 OTP를 사용하는 정도면 적당한 보안 수준을 유지하는 거라고 생각합니다. 물론 이보다 높은 보안 수준이 필요한 사람들이 분명히 있고 이런 분들께는 유비키가 좋은 수단이 될 수 있습니다. 이 분들은 위에 설명한 댓가를 감당할 수 있을 겁니다.

하지만 유비키 같은 수단의 등장으로 공격자들의 초점이 인증 과정을 공격하는데서 인증된 결과를 훔치는 쪽으로 옮겨 가고 있다고 알려져 있어 유비키는 당분간은 안전하겠지만 시간이 지나면 불편함만 남을 가능성이 있습니다. 때문에 개인적으로는 안전한 온라인 인증을 위해 2FA 사용은 권장하지만 이 과정을 더 안전하게 만들기 위한 유비키 사용은 썩 추천하지 않습니다.