WebAuthn 및 패스키 101
WebAuthn에 대한 포괄적인 이해를 얻고, 개념, 워크플로우, 인기 있는 이유 및 관련된 도전 과제를 포함합니다.
WebAuthn은 NIST AAL 표준에서 가장 안전한 인증기 중 하나입니다. 2013년에 도입되어 지금은 인증을 위한 사업체의 선호 선택지가 되고 있습니다. 그러나 아직 그 채택이 광범위하지 않아서 많은 사람들이 WebAuthn과 패스키에 대해 궁금해합니다. 알아야 할 사항을 살펴보겠습니다.
개념: WebAuthn, 패스키 및 FIDO의 관계는 무엇인가요?
FIDO Alliance | FIDO Alliance는 UAF, U2F 및 FIDO2를 포함한 비밀번호 없는 인증 표준을 제공하는 오픈 소스 및 안전한 조직입니다. |
FIDO2 | FIDO2는 FIDO Alliance가 개발한 안전한 온라인 인증을 위한 표준의 집합입니다. FIDO2는 비밀번호 없는 로그인을 위한 WebAuthn과 안전한 장치 간 통신을 위한 CTAP의 두 가지 주요 구성 요소로 이루어져 있습니다. |
패스키 | 패스키는 비밀번호를 대체하기 위해 FIDO 기반, 피싱 방지 자격 증명입니다.
|
WebAuthn | WebAuthn은 W3C 및 FIDO Alliance가 개발한 자바스크립트 API로, FIDO2 표준을 사용하여 웹 애플리케이션 인증을 가능하게 합니다. 패스키는 WebAuthn이 지원하는 인증 방법 중 하나입니다. |
흐름: WebAuthn은 어떻게 작동하나요?
WebAuthn의 4가지 주요 요소
기본적으로, WebAuthn 흐름에 관련된 4가지 주요 요소를 알 수 있습니다.
-
사용자: WebAuthn을 사용하여 웹 애플리케이션에 등록하거나 인증하는 사람.
-
사용자 에이전트: WebAuthn API 호출을 처리하고, 다양한 신뢰 당사자와 인증자 간 인증 프로세스를 관리하는 웹 브라우저.
-
신뢰 당사자: 사용자가 접근하려는 웹 서비스나 애플리케이션. 사용자는 사용자 에이전트를 통해 신뢰 당사자와 상호작용합니다.
-
인증자: 사용자의 신원을 확인하기 위해 사용자가 소지한 하드웨어 구성 요소. 보안 키(예: Yubikeys), 전화기 또는 태블릿(NFC, 블루투스, USB로 연결됨), 장치 기반 생체 인증이나 핀 등 플랫폼 또는 브라우저에 따라 다양한 형태를 가질 수 있습니다.
WebAuthn의 워크플로우
비대칭 공개 키 암호화가 핵심 프로세스입니다.
- 키 쌍 생성: 사용자 에이전트는 공개-비공개 키 쌍을 생성합니다. 공개 키는 신뢰 당사자와 공유되며, 비공개 키는 사용자의 인증자에 안전하게 저장됩니다.
- 인증 도전: 사용자가 로그인을 시도하면, 신뢰 당사자는 사용자 에이전트에 인증 도전을 보냅니다.
- 사용자 검증: 사용자 에이전트는 인증자에게 도전을 보내고, 인증자는 사용자의 검증과 상호작용합니다(예: 생체 인증 또는 버튼 클릭).
- 암호화 서명: 인증자는 비공개 키를 사용하여 도전에 서명하여 암호화 서명을 만듭니다.
- 검증 및 접근: 사용자 에이전트는 공개 키를 사용하여 서명을 검증하고, 신뢰 당사자에게 인증 성공을 알립니다. 접근이 허용됩니다.
보다 자세히 설명하자면 등록 및 인증 단계로 나눌 수 있습니다.
WebAuthn 등록 흐름:
WebAuthn 인증 흐름:
장점: WebAuthn이 트렌드가 되는 이유는 무엇인가요?
다양한 인증자
추가 유연성을 위해 다양한 인증자 중에서 선택할 수 있습니다. 이 인증자는 로컬 및 클라우드 사용에 대한 두 가지 유형이 있으며, 서비스에 대해 하나 또는 둘 다 활성화할 수 있습니다.
플랫폼 인증자 (내부 인증자)
플랫폼 인증자는 사용자가 로그인하는 컴퓨터, 노트북, 전화기 또는 태블릿과 같은 단일 및 특정 장치 OS에 연결됩니다. 장치에서만 작동하며 생체 인증이나 장치 암호와 같은 방법을 사용하여 권한을 부여합니다. 특히 생체 인식을 통해 빠르게 인증할 수 있으며, 수동 비밀번호 입력의 필요성을 대체할 수 있습니다. 그러나 사용자가 장치를 분실하면 접근하는 데 장벽이 될 수 있습니다. 예를 들어:
- MacOS 및 iOS: iCloud 키체인, Touch ID, Face ID 또는 장치 암호로 검증됨.
- Windows: facial recognition, fingerprint 또는 친근한 PIN으로 검증된 Windows Hello.
- Android: Google Password Manager도 얼굴 인식 또는 지문을 사용하여 기기의 비밀번호를 자동 입력하도록 지원.
로밍 인증자 (외부 인증자, 크로스 플랫폼 인증자)
로밍 인증자는 하드웨어 보안 키나 스마트폰과 같은 별도의 휴대용 장치 또는 소프트웨어 애플리케이션입니다. 장치를 USB로 연결하거나 NFC 또는 Bluetooth를 켜두어야 합니다. 로밍 인증자는 단일 장치나 브라우저에 제한되지 않으며, 더 큰 유연성을 제공합니다. 예를 들어:
- 보안 키: 하드웨어 토큰이라고도 하며, Yubikey 같은 것.
- 모바일 스마트폰: 안드로이드의 클라우드 기반 Google 계정 이용하거나 아이폰의 iCloud 계정 사용. 특히 장치 간 인증은 Bluetooth, NFC 또는 USB로 사용자의 인증자가 가까이에 있는지를 보장해야 합니다. 모바일 인증자는 종종 QR 코드 스캔이 필요합니다. (안드로이드 폰의 경우 Chrome 브라우저와 원클릭 인증을 위한 지속적인 연결을 사용할 수 있어 QR 코드 스캔이 필요 없습니다.)
높은 보안 보증
비즈니스 자원을 보호하기 위해 높은 보안 보증이 필수적입니다. 다음 조치를 통해 이를 달성할 수 있습니다:
- 프라이버시 키 보호: 프라이버시 키는 절대 제3자 웹사이트(신뢰 당사자)와 공유되지 않으며, 이를 통해 비밀번호 유출 및 피싱 시도로부터 보호합니다.
- 장치 근접 요구사항: 장치들은 "단일 장치에 대한 플랫폼 인증" 또는 "USB, Bluetooth, NFC로 제한된 로밍 인증자"가 사용자의 가까이에 있어야 하며, 이러한 방식으로 원격 공격을 방지합니다.
- 도메인 바인딩: WebAuthn은 사용자 등록 웹사이트의 특정 도메인에 엄격히 결합되어 있으며, 이를 통해 불법 웹사이트의 피싱 공격으로부터 보호합니다.
MFA 및 1FA를 위한 무마찰 사용자 경험
WebAuthn은 보안을 강화하면서 사용자의 비밀번호 없는 인증 경험을 향상시킵니다:
- 본격적 경험 및 생체 인식 효율성: WebAuthn은 여러 플랫폼과 장치에 맞춰 특정 인증 방법을 채택하여 사용자 습관과 일치합니다. 생체 인식 인증은 수동 입력의 필요성을 없애고, 인증 프로세스를 크게 가속화합니다.
- 직접 MFA로 1FA 건너뛰기: WebAuthn은 일반적으로 MFA(다중 요소 인증)로 사용됩니다. 보안이 높기 때문에, 신뢰 당사자가 이전에 브라우저에서 WebAuthn 사용을 기록했다면, 사용자는 1FA(단일 요소 인증)를 건너뛰고 패스키 인증으로 직접 로그인할 수 있습니다.
- 비밀번호를 대체하는 패스키: 패스키는 1FA의 기존 비밀번호를 대체할 수도 있습니다. 사용자는 계정을 입력하기 전이나 후에 패스키를 제공할 수 있으며, 패스키 인증이 불가능한 경우에만 비밀번호 검증이 필요합니다.