IT··7 min read

패스키가 비밀번호를 대체할 수 있을까

패스키를 실제로 써보면서 느낀 장점과 아직 부족한 점들

비밀번호가 87개라고 한다

비밀번호 관리자 앱에 저장된 계정을 세어봤다. 87개. 이 중에서 같은 비밀번호를 쓰는 사이트가 23개. (보안적으로 끔찍한 건 안다.) 다 다르게 하면 기억이 안 되고, 같게 하면 하나 뚫리면 다 뚫린다.

그래서 패스키(Passkey)라는 게 나왔다. 비밀번호 없이 생체인식이나 기기 인증으로 로그인하는 방식. 구글, 애플, 마이크로소프트가 다 밀고 있다. 2024년부터 급격히 도입이 늘었다.

패스키가 뭔지 간단하게

기술적으로는 FIDO2/WebAuthn 표준이다. 공개키 암호화를 쓴다. 서버에 비밀번호가 저장되는 게 아니라 공개키만 저장되고, 개인키는 내 기기에 있다.

사용자 경험은 단순하다. 로그인 버튼을 누르면 지문 인식이나 Face ID, 또는 기기 PIN을 입력한다. 그러면 로그인 완료. 비밀번호를 입력하는 과정이 없다.

피싱에 강하다. 가짜 사이트에서 비밀번호를 입력하는 일이 없으니까. 패스키는 도메인에 묶여 있어서 가짜 사이트에서는 아예 작동하지 않는다.

직접 써봤다

3개월 전부터 패스키를 지원하는 사이트에서 전부 패스키로 전환했다. 현재 패스키를 쓰는 곳: 구글, GitHub, 1Password, Vercel. 총 11개 사이트.

좋은 점: 빠르다. 비밀번호 입력 + 2FA 코드 입력이 지문 한 번으로 끝난다. 구글 로그인이 3초면 된다. 이전에는 비밀번호 복사 + 인증 앱 열기 + 코드 입력으로 15~20초 걸렸다.

이상한 점: "진짜 로그인이 된 거 맞아?" 하는 불안감. 너무 쉬워서 뭔가 잘못된 것 같은 느낌이 든다. 보안이 강화된 건데 체감은 약해진 것 같다.

근데 문제가 좀 있다

기기 의존성. 패스키가 내 맥북에 저장되어 있으면 회사 윈도우에서는 못 쓴다. 물론 iCloud Keychain이나 1Password 같은 곳에 동기화하면 되는데, 이 동기화 설정 자체가 복잡하다. 처음에 이걸 몰라서 회사 PC에서 GitHub에 로그인을 못 한 적이 있다. 30분 동안.

지원 사이트가 아직 적다. 내가 쓰는 87개 사이트 중 패스키를 지원하는 건 11개. 12.6%. 나머지 76개는 여전히 비밀번호다. 국내 사이트는 더 심하다. 네이버, 카카오 정도? 은행은 아직 먼 이야기다.

공유 계정. 팀에서 공유하는 계정이 있다. 비밀번호는 비밀번호 관리자로 공유할 수 있는데, 패스키는 개인 기기에 묶여 있어서 공유가 안 된다. 이건 해결이 필요한 부분이다.

개발자 관점에서

우리 프로젝트에 패스키를 도입하려고 검토한 적 있다. WebAuthn API를 직접 구현하는 건 꽤 복잡하다. 챌린지 생성, 응답 검증, 공개키 저장, 크로스 플랫폼 호환. 직접 하면 2~3주는 걸릴 것 같았다.

근데 Clerk, Auth.js(NextAuth), Hanko 같은 라이브러리를 쓰면 상대적으로 쉽다. Auth.js에서 패스키 지원을 추가하는 건 설정 몇 줄이면 된다. 물론 "설정 몇 줄"이 실제로는 이틀이 걸렸지만. (문서에 없는 엣지 케이스가 항상 있다.)

결국 우리 프로젝트에는 아직 도입 안 했다. 이유는 사용자 중에 패스키를 아는 사람이 거의 없어서다. "패스키로 로그인하세요" 하면 "그게 뭔데요?" 하는 고객 문의가 쏟아질 게 뻔하다.

비밀번호는 언제 사라지나

솔직히 모르겠다. 5년? 10년? 개인적으로는 비밀번호가 완전히 사라지지는 않을 것 같다. 레거시 시스템, 공유 계정, 패스키를 지원하지 않는 기기. 이런 것들이 계속 있을 거다.

근데 패스키가 "기본 옵션"이 되는 건 빠를 것 같다. 이미 구글은 새 계정 만들 때 패스키를 먼저 권장한다. 2~3년 안에 대부분의 주요 서비스가 패스키를 기본으로 제공하지 않을까.

나는 일단 지원하는 곳에서는 다 패스키를 쓰고 있다. 87개 비밀번호를 관리하는 것보다는 확실히 편하다. 근데 나머지 76개 사이트가 패스키를 지원할 때까지는 비밀번호 관리자를 못 끊겠다.

관련 글