패스키 (Passkeys, WebAuthn)
패스키 (Passkey)는 기존 비밀번호보다 더 안전하고 사용자 친화적인 대안을 제공합니다. 공개키 암호화 방식을 사용하여, 패스키는 사용자의 디바이스, 서비스 도메인, 사용자 ID를 연결함으로써 피싱 및 비밀번호 공격을 효과적으로 방지하고 보안을 강화합니다. 다양한 디바이스 또는 브라우저와 호환되며, 사용자는 생체 인증 및 하드웨어 보안 기능을 활용하여 편리하게 인증 (Authentication)할 수 있습니다. WebAuthn은 웹사이트가 패스키를 구현할 수 있도록 API를 제공합니다.
Logto는 이제 다단계 인증 (MFA)을 위한 패스키(WebAuthn)를 지원합니다. 패스키 로그인 기능은 곧 제공될 예정입니다. 업데이트를 기대해 주세요.
개념 (Concepts)
고객들은 일반적으로 WebAuthn보다는 패스키(Passkeys)를 더 잘 알고 있습니다. 그렇다면 이 둘의 관계는 무엇이며, 어떻게 사용해야 할까요? 다음 개념을 살펴보세요:
- 패스키 (Passkeys): 패스키는 비밀번호를 대체하는 FIDO 기반의 피싱 저항 인증 정보입니다. 비대칭 공개키 암호화를 활용하여 보안을 강화합니다. USB 또는 Bluetooth 장치와 같은 하드웨어 토큰이나 보안 키가 될 수 있습니다. "패스키"는 사용자에게 표시되는 인증 (Authentication) 방식이므로, 제품 클라이언트 내에서 사용해야 합니다.
- WebAuthn: W3C와 FIDO Alliance가 개발한 JavaScript API로, 웹 애플리케이션 인증 (Authentication)에 FIDO2 표준을 적용할 수 있게 해줍니다. 패스키는 WebAuthn이 지원하는 인증 (Authentication) 방식 중 하나입니다. Logto 콘솔에서는 이 통합을 전문적으로 "WebAuthn"이라고 부릅니다.
WebAuthn은 사용자가 선택할 수 있는 다양한 인증기(Authenticator)를 제공합니다. 로컬 및 클라우드 용도로 두 가지 유형이 있습니다:
- 플랫폼 인증기 (Platform authenticator, 내부 인증기): 단일 및 특정 디바이스 OS(컴퓨터, 노트북, 휴대폰, 태블릿 등)에 연결되어 있습니다. 사용자는 해당 디바이스에서 생체 인증 또는 디바이스 암호 등으로 인가 (Authorization)를 진행할 수 있어 빠른 인증 (Authentication)이 가능합니다. 예: macOS 또는 iOS에서 Touch ID, Face ID, 디바이스 암호로 검증되는 iCloud Keychain; Windows Hello의 얼굴 인식, 지문, PIN 등.
- 로밍 인증기 (Roaming authenticator, 외부 인증기, 크로스 플랫폼 인증기): 별도의 휴대용 디바이스 또는 소프트웨어 애플리케이션(예: 하드웨어 보안 키, 스마트폰 등)입니다. USB 연결 또는 NFC, Bluetooth를 활성화하여 디바이스를 연결해야 합니다. 로밍 인증기는 단일 디바이스나 브라우저에 국한되지 않아 더 큰 유연성을 제공합니다.
WebAuthn의 원리와 프로세스에 대해 더 깊이 알고 싶다면, 우리의 블로그 글 WebAuthn과 패스키 101 및 WebAuthn 통합 전 알아야 할 것들을 참고하세요.
MFA를 위한 패스키 인증 (Authentication) 설정
- 콘솔 > 다단계 인증 (MFA)로 이동하세요.
- "패스키 (WebAuthn)" 요소를 활성화하세요. 단일 요소 의존도를 줄이기 위해 패스키를 다른 MFA 요소(TOTP, SMS, 백업 코드)와 함께 사용하는 것을 권장합니다.
- 원하는 MFA 정책(필수 vs. 선택)을 설정하세요.
- 설정 변경 사항을 저장하세요.
WebAuthn을 구현할 때 몇 가지 제한 사항을 반드시 인지해야 합니다:
- 플랫폼 및 브라우저 제한: Logto는 현재 네이티브 애플리케이션에 대한 WebAuthn 지원을 제공하지 않습니다. 또한, WebAuthn 인증기의 사용 가능 여부는 브라우저 및 디바이스의 기능에 따라 다릅니다 (지원 목록 확인). 따라서 WebAuthn은 항상 다단계 인증 (MFA)을 구현하는 유일한 옵션이 아니며, 그렇지 않으면 제품에 접근할 수 있는 브라우저와 디바이스를 직접 제어해야 합니다.
- 도메인 제한: 도메인이 변경되면 기존 WebAuthn 계정을 통한 사용자 인증 (Authentication)이 어려워질 수 있습니다. 패스키는 현재 웹 페이지의 특정 도메인에 바인딩되며, 서로 다른 도메인 간에는 사용할 수 없습니다.
- 디바이스 제한: 디바이스를 분실하면, 특히 "이 디바이스" 플랫폼 인증기를 사용하는 경우 계정 접근 권한을 잃을 수 있습니다. 인증 (Authentication) 접근성을 높이기 위해 사용자에게 두 개 이상의 인증 (Authentication) 요소를 제공하는 것이 좋습니다.
패스키 관리 설정
Account API를 사용하여 사용자가 자신의 패스키를 추가, 조회, 이름 변경, 삭제할 수 있는 맞춤형 계정 관리 인터페이스를 구축할 수 있습니다. 이는 개인화된 계정 센터를 만들거나 크로스 디바이스 백업 시나리오를 구현할 때 유용합니다.
구현 단계 및 API 엔드포인트에 대한 자세한 내용은 Account API로 계정 설정을 참고하세요.
패스키 등록 플로우
패스키 사양에 따라 사용자는 현재 페이지에서 버튼을 직접 클릭하여 인증 (Authentication) 컴포넌트를 시작해야 합니다. 즉, 등록 및 인증 (Authentication) 플로우 모두에서 사용자는 WebAuthn을 시작하기 위해 랜딩 페이지로 리디렉션되어야 합니다.

패스키 인증 (Authentication) 플로우
사용자가 패스키를 포함한 여러 MFA 방식을 설정한 경우, 패스키는 보안성과 편의성 때문에 첫 화면에서 추천 MFA 인증 (Authentication) 방식으로 표시됩니다. 사용자는 아래의 "다른 방법으로 인증 (Authentication) 시도"를 클릭하여 다른 인증 (Authentication) 방식으로 전환할 수 있습니다. 자세한 내용은 MFA 구성을 참고하세요.
