패스키란?
패스키 (Passkey)는 사용자가 ‘아는 것’ 대신 사용자의 ‘소유물’을 사용하는 인증 메커니즘이다.
이는 강력한 비밀번호 대신 암호화 키를 사용하여 보안을 강화하는 방법으로, FIDO2 (Fast Identity Online 2) 인증 체계를 기반으로 한다. 이 키는 FIDO2 호환 장치(스마트폰, 태블릿, 데스크톱 컴퓨터 등)에서 생성되며, 패스키 지원 웹사이트나 앱마다 다르다.
일부 패스키는 2단계 인증(2FA)을 사용하며, 로그인 시 PIN 또는 생체 인증 요소를 필요로 한다. 이러한 경우 최종 사용자는 자신의 디바이스가 패스키를 첫 번째 인증 요소로 사용하고 있다는 사실조차 인지하지 못할 수 있다.
애플, 마이크로소프트, 구글과 같은 일류 기술 업체들은 피싱 및 기타 자격증명 도용을 방지하는 쉽고 효과적인 방법으로 패스키를 홍보하고 있다.
다중 인증(MFA, Multi-Factor Authentication)이 널리 채택된다면, 패스키는 비밀번호 관리자의 필요성을 제거하는 데 기여할 것으로 예상된다.
패스키 작동 방식
패스키는 공개키 암호화(public-key cryptography)를 사용하여, 최종 사용자의 컴퓨팅 디바이스와 호환되는 웹사이트 또는 앱 사이에 안전한 비공개 통신 채널을 생성한다.
공개키 암호화는 공개키(public key)를 사용하여 데이터를 암호화하고, 개인키(private key)를 사용하여 데이터를 해독한다. 이때 공개키는 공유되고, 개인키는 최종 사용자만 알게 된다.
최초로 패스키 인증을 지원하는 웹사이트나 앱에 로그인할 때, 사용자의 장치는 고유한 공개키와 개인키 한 쌍을 생성하고, 공개키를 해당 서버로 전송한다. 개인키는 사용자의 장치에 남아 있다.
다음에 사용자가 로그인할 때 서버는 사용자의 디바이스에 챌린지(challenge)를 보낸다. 챌린지는 사용자의 공개키로 암호화된 임의의 데이터 문자열이다.
사용자의 디바이스는 개인키를 사용하여 챌린지를 해독한 다음, 해독된 문자열을 다시 서버로 보낸다. 이 문자열이 서버에서 보낸 원래 챌린지와 일치하면 사용자의 계정은 자동으로 로그인된다.
백엔드에서 FIDO2 패스키는 비밀번호 없는 인증을 지원하는 애플리케이션 프로그래밍 인터페이스(API) 집합인 웹 인증(WebAuthn) 표준을 사용한다.
패스키의 장점
패스키는 사용자가 암호를 생성하거나 업데이트하거나 기억할 필요가 없으므로 비밀번호보다 훨씬 편리하다.
또한 패스키는 비밀번호보다 더 안전하다. 개인키가 사용자 디바이스의 프로세서만 접근할 수 있는 부분에 격리된 채 저장되어 있어 외부에서는 접근할 수 없기 때문이다.
호환되는 웹사이트 또는 앱 서버가 손상되더라도, 패스키의 공개키만 노출된다.
기존 컴퓨터는 합리적인 시간 내에 공개키를 사용하여 개인키를 리버스 엔지니어링할 수 없으므로, 공개키를 저장하는 서버에 중대한 데이터 유출이 발생하더라도 사용자 인증은 안전하게 유지된다.
패스키는 비밀번호와 달리 제3자와 공유할 수 없기 때문에 스피어 피싱(spear phishing) 및 웨일링 공격(whaling attacks)을 방지하는 데 도움이 된다. 하지만 일부 패스키는 최종 사용자가 모든 디바이스에서 개인키를 동기화할 수 있는 옵션을 제공하기도 한다.
예를 들어 새 기기에서 처음으로 로그인하거나 다른 사람의 기기를 일시적으로 사용하여 Google 계정에 로그인하려는 경우, ‘다른 기기의 비밀번호 사용‘ 옵션을 선택하고 안내에 따라 일회성 로그인을 승인하거나 새 기기에 비밀번호를 로컬로 저장할 수 있다.
패스키의 단점
패스키는 아직 비교적 새로운 기술이며 모든 웹사이트나 앱이 패스키를 지원하거나 동일한 방식으로 구현하는 것은 아니다.
가장 큰 문제는 사용자가 기기를 분실하거나 도난당한 경우, 디바이스의 잠금을 해제할 수 있는 사람이 추가적인 인증 요소 없이 패스키를 사용할 수 있다는 점이다.
위와 같은 상황에서 사용자는 어떤 키를 수동으로 해지해야 하는지 알아내거나, 사용 중인 모든 호환 웹사이트 및 앱에 대해 새로운 패스키를 다시 생성하고 등록해야 할 수 있다.