핵심 요약
사내 SaaS와 B2C 두 서비스에 Passkeys를 도입한 지 6개월. 결론: 등록률 41%, 로그인 성공률 +12%p, CS 비밀번호 문의 -68%. 하지만 비밀번호 완전 제거는 아직 시기상조.
1. Passkey란 무엇인가 (1줄)
공개키 기반 인증을 OS·브라우저·하드웨어에 통합 + iCloud Keychain·Google Password Manager로 동기화. 비밀번호 없는 로그인.
2. 도입 결정 흐름
- 1단계: 비밀번호와 병행 (선택지 추가)
- 2단계: 신규 가입은 Passkey 우선 노출
- 3단계: 기존 사용자에 등록 유도
- 4단계: 일부 사용자군(예: 관리자)부터 비밀번호 폐기
- 5단계: 전체 폐기 (아직 미도달)
3. 구현 — WebAuthn 표준
// 등록
const cred = await navigator.credentials.create({
publicKey: {
challenge,
rp: { name: 'example.com', id: 'example.com' },
user: { id: userId, name: email, displayName: name },
pubKeyCredParams: [{ type: 'public-key', alg: -7 }], // ES256
authenticatorSelection: {
residentKey: 'required',
userVerification: 'required',
},
},
})
// 인증
const assertion = await navigator.credentials.get({
publicKey: {
challenge,
rpId: 'example.com',
userVerification: 'preferred',
},
})
라이브러리: SimpleWebAuthn (Node·Python·Go) — 추천. 직접 짜기보다 안전.
4. UX 핵심 — Conditional UI
로그인 화면에 비밀번호 입력 필드를 두되, focus 시 OS가 자동으로 Passkey 제시.
// type="email" + autocomplete="username webauthn"
<input type="email" autocomplete="username webauthn" />
// 위에 focus 하면 macOS Safari가 Passkey 제시
// 동시에 비밀번호 fallback도 있음
5. 실측 — 6개월
| 지표 | 전 (비밀번호) | 후 (Passkey 41%) |
|---|---|---|
| 로그인 성공률 | 83% | 95% |
| 로그인 평균 시간 | 22s | 4s |
| 비밀번호 재설정 CS | 월 412건 | 월 132건 |
| 피싱 신고 | 월 18건 | 월 4건 |
| 가입→첫 로그인 전환률 | 74% | 88% |
6. 동기화·디바이스 — 큰 변화
2025년부터 iCloud Keychain·Google Password Manager 둘 다 Passkey 동기화. 한 디바이스에서 만든 Passkey가 같은 계정 다른 디바이스에 자동 등장.
- iPhone에서 만든 Passkey → 같은 iCloud 계정 Mac에서 로그인
- Android에서 만든 것 → 같은 Google 계정 ChromeOS
- 크로스 플랫폼은 부분: Apple↔Google 직접 동기 X, 각각 따로 등록 또는 cross-device(QR) 사용
7. 디바이스 분실 — 가장 큰 우려
"폰 분실하면?" 사용자가 가장 묻는 질문. 정책:
- 등록 시 최소 2개 Passkey 권장 (Apple + Google 또는 + 하드웨어 키)
- 긴급 복구 코드 8자리 출력 (1회용)
- 이메일 + 알려진 디바이스 조합 복구 절차
- 고객지원 ID 인증 (KYC 수준은 서비스에 따라)
8. 기업·B2B 특수성
- 회사 지급 디바이스 → 회사 관리 키체인 (Google Workspace·Apple Business Manager)
- YubiKey 같은 하드웨어 키 의무화 — 관리자 계정
- SAML/OIDC와 결합: IdP가 WebAuthn 지원하면 SSO + Passkey
9. 마이그레이션 함정
- rp.id 변경: 도메인 바꾸면 기존 Passkey 무효. RP ID는 영구.
- 리퍼러·iframe: 일부 환경에서 webauthn 동작 안 함. top-level 페이지 필수
- 로컬 개발: localhost는 HTTPS 없이 동작. IP는 안 됨. 진짜 도메인+로컬 인증서 필요
- 다중 사용자 디바이스: 키오스크처럼 한 기기를 여럿이 쓰는 곳은 Passkey 부적합
10. 통계 — 등록 안 한 59% 이유
| 이유 | 비율 |
|---|---|
| "비밀번호 익숙해서" | 34% |
| "이게 뭔지 몰라서" | 27% |
| "내 디바이스 안 믿어서" | 11% |
| "이미 비번 매니저 잘 쓰는 중" | 9% |
| 기타·미응답 | 19% |
"몰라서"가 27% — 도입 후에도 교육 콘텐츠 중요. 짧은 영상·튜토리얼이 가장 효과.
11. 비밀번호 완전 폐기 — 아직 이른 이유
- 크로스 플랫폼 동기 미완성
- 디바이스 분실 복구가 100% 매끄럽지 않음
- 일부 사용자(고령) 학습 곡선
- 레거시 클라이언트(임베디드·키오스크) 미지원
2027~2028년이 본격 폐기 시작 시점으로 예상.
참고
- passkeys.dev
- w3.org/TR/webauthn-3
- simplewebauthn.dev

댓글 0