Skip to Content
Suffering builds character

5.패스키 동작방식

패스키의 동작 방식은 다음과 같음

1. 패스키 등록 과정

패스키 등록

모바일 디바이스로 패스키를 등록한다고 가정할 때,

초기 회원가입과도 같은 패스키를 등록하는 단계에서는

모바일 디바이스의 비밀번호 관리자(프로그램)는 사용자가 패스키를 등록하려고 하는 온라인 서비스의 특정 계정에 대한 고유한 암호화 키쌍(Key pair)을 생성함

키 보관

개인 키는 모바일 디바이스 내부에 보관하며 절대 외부에 노출되지 않음,

공개 키는 온라인 서비스에 등록되며, 서버는 각 사용자별로 공개 키를 저장해두고 관리함

2. 패스키 기반 로그인 과정

사용자의 로그인 시도

사용자가 온라인 서비스에 로그인을 시도할 경우,

서버는 사용자의 기기로 무작위 난수와 같은 임의의 챌린지(Challenge)를 생성하여 사용자의 기기(모바일 디바이스)로 전송함

사용자의 승인

먼저 모바일 디바이스는 사용자가 실제 본인이 맞는지 확인하기 위해 생체 인식이나 기기의 잠금 해제 등을 요구함

이후 모바일 디바이스의 비밀번호 관리자는 사용자가 기기의 잠금을 해제하고,

PIN 번호나 지문 등의 생체 인증 등을 통해 로그인을 승인했는지 확인함
→ 여기서의 생체 인증은 Passkey를 통한 인증 맥락에서 로그인 승인 여부를 위한 확인 절차

만약 로그인을 승인했다고 확인될 경우, 비밀번호 관리자는 해당 계정과 매핑된 개인 키를 사용하여 챌린지에 서명하고 서명을 서버로 전송함
→ 개인 키는 외부로 유출되지 않고, 서명할 때만 사용되며 디바이스 내 OS 및 보안 모듈이 수행하고 관리함

서버의 검증

기기가 서버에 서명 결과를 돌려주면, 서버는 미리 등록된 공개 키를 가지고 전달받은 서명의 유효성을 검증함

서명이 해당 사용자의 서명임이 확인되어 유효한 서명이라고 검증될 경우,

서버는 해당 사용자가 맞다는 것을 확인하며 인증이 성공적으로 처리됨

정리하면, 패스키는 공개키-개인키 암호화(비대칭)를 기반으로 비밀번호 없이도 내가 나임을 증명하는 기술

사용자는 기기 잠금 해제, 간단한 PIN 번호나 생체 인증만 수행하면 되며, 복잡한 인증 처리는 사용자가 소유한 디바이스 내 보안 모듈이 처리함

💡
Tip

챌린지(Challenge)

매번 다른 일회성 문제, 여기서는 이번 로그인에만 유효한 문제 번호(난수)를 하나 생성함

Last updated on