크리덴셜 스터핑은 유출된 비밀번호 조합을 봇으로 대입하는 공격이라, 비밀번호를 재사용하면 한 곳의 유출이 금융 계정 탈취로 번진다. 패스키는 개인키를 기기에만 두고 서버에는 공개키만 남겨 빼낼 수 있는 비밀 자체를 없애고, 2단계 인증은 비밀번호 로그인을 한 단계 더 보강한다. 설정 뒤에는 계정 복구 경로와 동기화 패스키 유형, 기기 분실 대비까지 점검해야 비로소 완성된다.
금융앱 보안에서 가장 먼저 손봐야 할 것은 비밀번호 재사용 습관이다. 공격자는 어느 쇼핑몰이나 커뮤니티에서 유출된 아이디·비밀번호 목록을 확보한 뒤, 같은 조합을 은행 앱에 자동으로 대입한다. 이 방식을 크리덴셜 스터핑이라고 부른다.
핵심은 '사람이 하나씩 찍어보는' 게 아니라는 점이다. 봇이 초당 수천 건씩 대입하기 때문에, 여러 서비스에서 같은 비밀번호를 쓰고 있다면 한 곳의 유출이 금융 계정 탈취로 번질 수 있다. 비밀번호를 길고 서비스마다 다르게 쓰는 것이 1차 방어이고, 그다음이 패스키와 2단계 인증이다.
Photo by George Prentzas on Unsplash
패스키는 FIDO라는 공개키 암호 방식을 쓴다. 지문이나 얼굴로 패스키를 만들면 개인키와 공개키가 한 쌍으로 생기는데, 개인키는 내 기기 안에서만 보관되고 서버에는 공개키만 저장된다. 로그인할 때는 서버가 보낸 값에 기기가 서명해 응답하는 구조다.
여기서 크리덴셜 스터핑이 막히는 이유가 나온다. 서버에 '재사용할 수 있는 비밀번호'가 저장돼 있지 않으니, 설령 금융사 서버가 뚫려도 공격자가 가져갈 로그인 열쇠가 없다. FIDO얼라이언스는 이 구조가 피싱과 재사용 공격에 근본적으로 저항한다고 설명한다. 국내에서도 FIDO 인증은 이미 넓게 쓰이고 있어, 삼성카드는 2024년 초 도입 뒤 2025년 앱 통합 과정에서 누적 수백억 건의 인증을 처리했다고 밝혔다.
이미 뱅킹 앱에서 지문으로 로그인하고 있다면 "그게 패스키 아니냐"는 의문이 들 수 있다. 상당수 금융앱의 생체인증은 기기에 저장된 인증 수단을 여는 잠금해제 역할이고, 그 기반이 FIDO라면 사실상 패스키와 같은 원리로 동작한다. 다만 메뉴에 붙은 이름은 앱마다 '간편인증', '생체인증', '패스키'로 제각각이다.
2단계 인증은 층위가 다르다. 비밀번호 로그인 자체를 대체하는 게 패스키라면, 2단계 인증은 비밀번호 뒤에 한 단계를 더 붙여 보강하는 장치다. 둘은 양자택일이 아니라 함께 쓰면 좋다. 비밀번호를 쓰는 서비스에는 2단계 인증을, 지원하는 곳에는 패스키를 켜는 식이다.
은행마다 메뉴 이름이 달라 한 가지 경로로 단정하긴 어렵지만, 흐름은 대체로 비슷하다.
메뉴를 못 찾겠다면 해당 금융사 고객센터나 보안센터 안내에서 '패스키' 또는 'FIDO'를 검색하는 편이 빠르다.
패스키를 켰다고 끝이 아니다. 오히려 뒷문이 열려 있는 경우가 많다.
정리하면 순서는 분명하다. 비밀번호를 재사용하지 않고, 2단계 인증을 켜고, 패스키를 등록한 뒤, 복구 경로까지 점검한다. 네 가지를 모두 끝냈을 때 비로소 크리덴셜 스터핑 같은 자동화 공격 앞에서 계정이 버틴다.