최근, 금융 기관 등을 목표로하는 피싱 공격이 고도화되고 있으며, 특히실시간 피싱(real-time phishing)라고 불리는 수법이 심각한 위협이 되고 있습니다.이 타입의 공격은, 종래 피싱 공격 대책으로서 유효하게 되어 온 원타임 패스워드(OTP)조차 무효화하는 것이 알려져 있어, 금융기관의 본인 확인 기반에 발본적인 재설계를 다가오고 있습니다.
본고에서는 실시간 피싱의 기술적 구조와 이에 대항 가능한 '패스키(passkey)'의 본질적인 우위성을 해설하고 향후 정책적 검토 과제를 제시한다.
실시간 피싱이란 무엇인가?
실시간 피싱은 공격자가 "사용자와 진짜 서비스 사이에 나누어 넣는(man-in-the-middle)" 형태로 통신을 중계하고 사용자가 입력한 자격 증명(사용자 이름, 비밀번호, 4-6자리 원타임 비밀번호(OTP) 등)을 즉시 사용하여 본인이 되는 공격 방법입니다.특히, OTP가 SMS나 앱으로 전달되어도, 유저가 그것을 피싱 사이트에 입력한 순간에, 공격자는 그것을 진짜 서비스의 Web 사이트에 전송해 스푸핑해서 로그인할 수 있습니다.
이런 종류의 공격은man-in-the-middle(MitM)以外에도 adversary-in-the-middle (AitM) や verifier impersonation 라고도 불리며, '보기에 진짜로 보이는' 피싱 사이트와 정품 인증 서버를 기술적으로 중계하는 점에 특징이 있습니다.
릴레이 서버로 완벽한 가장
최신 실시간 피싱 공격은 릴레이 서버를 사용하여 다음과 같은 성공적인 방법으로 사용자를 속입니다.
- 완전한 사이트 복제: 진짜 웹사이트(예: 금융기관 웹사이트)의 소스 코드를 실시간으로 로드하고 시각적으로 구별 불가능한 가짜 사이트를 생성(덧붙여 검사 프로그램 등이 왔을 때는 전혀 다른 것을 반환하도록 위장하여 검사를 빠져나가는 예도 있습니다)
- 그런 SSL 인증서 얻기: 정식으로 보이는 HTTPS 연결 제공
- 동적 콘텐츠 대응: 로그인 후 개인정보 표시 등도 완전히 재현
Adversary-in-the-Middle (AitM) 공격 메커니즘
AitM 공격은 다음 기술 프로세스에서 수행됩니다.
- 중계 서버 설치: 공격자가 실제 사이트와 사용자 사이에 릴레이 서버 배치
- 동적 응답 생성: 실제 사이트의 서버에서 응답을 변경하여 사용자에게 전송
- 자격 증명 수집: ID, 비밀번호, OTP, 추가 개인정보를 실시간으로 수집
- 정규 액세스 실행: 수집한 정보로 즉시 진짜 웹사이트 방문
이 공격에서 공격자는 다음 두 가지 역할을 동시에 수행합니다.
- 사용자의 경우: 진짜 은행 서버처럼 행동(검증자 위장)
- 은행에 대해서는: 진짜 사용자처럼 행동
이 이중 위장은 기존 웹 사이트(인증 서버) 측과 사용자 간의 "공유 비밀" 기반 인증 방법(암호, OTP)을 완전히 무효화합니다.
(도표 1) AitM의 모식도

예 :
- 사용자가 ID, 비밀번호, OTP를 입력
- 가짜 사이트가 정보를 실제 인증 서버로 전송
- 인증 성공, 세션 탈취
왜 OTP가 비활성화되는지
OTP(원타임 비밀번호)는재사용이 어려운 코드그렇기 때문에, 종래는 「안전한 제2요소」로 간주되어 왔습니다.한번이라도 공격자가 진짜 유저 대신 사용할 수 있으면 공격이 성립한다따라서 "일회용"인 것이 무효화되어 버립니다.
또한 기존의 OTP 기반 다중 요소 인증(MFA)은챌린지·응답의 무결성 검증(후술)또는 웹사이트 주소(도메인)와 같은 유효성 검사하지 않기 때문에,사용자가 입력한 정보가 누구에게 보내려고 하는지 식별할 수 없습니다.이것이 OTP가 본질적으로 중계 공격에 약한 이유입니다.
패스키(passkey)란 무엇인가
패스키는 FIDO2/WebAuthn 규격에 근거한 인증 기술이며,액세스할 웹사이트의 주소(도메인)를 확인하여 사용자 인증에 필요한 정보를 전송합니다.1라고 하는 특성을 가집니다.주된 특징은 도표 2와 같습니다.
(도표 2) 패스키의 특징
| 특징 | 관광안내 |
|---|---|
| 비대칭 키 암호화 기반 | 인증은 공개키에 의한 서명 검증으로 행해진다. |
| 오리진 바인딩 | 인증 요구는 특정 도메인과 연결되어 있어 중계나 위장이 곤란하다. |
| 생체 인증 및 PIN으로 로컬 인증 | 사용자 인증은 디바이스내에서 완결한다. 생체 정보나 PIN 등, 복제의 우려가 있는 요소를 이용한 인증 정보의 외부 송신 없음. |
| 피싱 내성 | 가짜 사이트의 요청에는 서명하지 않습니다. |
つ ま り,사용자가 실수로 가짜 사이트에 액세스해도 인증기는 해당 사이트에 실제 웹 사이트에 대한 서명을 반환하지 않으므로 공격자는 인증에 사용할 정보를 얻지 못합니다.이것은 OTP와 결정적으로 다른 점입니다.
왜 패스키가 피싱에 강한가?
패스 키 (FIDO2 / WebAuthn)중계형 피싱(AitM) 및 도메인 위장반대구조적인 내성을 가진그 이유는 다음 세 가지 점검이 이루어졌기 때문입니다.
(1) 오리진 체크(Origin Validation)
- 클라이언트(브라우저)가 인증 요청을 발행합니다.웹사이트 오리진(사이트 도메인/주소)자동으로 감지
- 이 오리진은https:// + ドメイン名 + ポート番号 로 구성
- 웹 사이트에서 브라우저로의 패스 키 인증 요청에는 사이트 도메인 (RPID (후술))이 포함되지만이 도메인이 오리진과 다른 경우 (예 : 피싱 사이트),브라우저가 인증 요청을 거부함하고, 인증 처리가 행해지지 않는다(서브 도메인 등 예외도 있다)
- 게다가 오리진은 패스키 인증 결과에 포함되어 웹 서버에도 보내지기 때문에, 웹 서버측에서도 패스키에 의한 인증이 올바른 웹 사이트상에서 실시된 것이 검증됩니다.
(2) Relying Party ID(RPID) 체크
- RPID는공개 키 등록시 서버가 지정하는 도메인 식별자
- 인증기(패스키를 보관 유지하는 디바이스측)가,받은 RPID에 연결하는 키가 자신에 저장되어 있는지 검색
- RPID가 다르면 개인 키를 찾을 수 없으며 서명이 반환되지 않습니다.
(3) 챌린지 응답
- 비밀번호로 인증할 때 웹 서버에서 '챌린지'라는 무작위 데이터 전송
- 인증자가 챌린지를 포함하는 데이터에 개인 키로 서명하고 브라우저를 통해 암호를 인증 응답으로 웹 서버에 반환합니다.
- 웹 서버는 응답에 포함된 챌린지가 웹 서버에서 해당 세션에 대해 발행되었는지 확인합니다.
- 공격자가 임의로 작성한 챌린지나 과거에 이용된 적이 있는 챌린지의 경우에는 웹 서버는 인증을 거부한다.
왜 이 세 가지가 필요합니까?
그림 3은 이 관계를 정리한 것이다.
(그림 3) 피싱 내성에 필요한 3요소
| 항목 | 역할 |
|---|---|
| 오리진 체크 | 브라우저가 실행되는 웹 사이트의정당성을 담보. 가짜 사이트 거부. |
| RPID 점검 | 인증기가어떤 도메인에 등록된 키확인하고,오용 방지 |
| 챌린지 응답 | 패스키에 의한 인증이 현재의 세션에서 실시된 것을 담보. 인증 결과의 재이용을 방지 |
어느 하나만으로는 충분하지 않으며, 모든 것이 갖추어져 처음으로 「완전한 피싱 내성」이 성립
그러나 패스키는 은의 총알이 아니다
~등록 플로우를 악용한 피싱 공격의 리스크~
한편, 패스키도 실버 총알이 아닙니다. FIDO2/WebAuthn 기반패스키(passkey)는 기존의 OTP나 패스워드에 비해 상당히 높은 피싱 내성를 가지고 사용자의 인증 안전성을 대폭 향상시키는 수단으로 평가되고 있습니다.
그러나,「등록 플로우(credential registration)」에 대한 공격 내성는, 사용자측의 판단이나 UX 설계에 의존하는 면이 있어,공격자가 스스로의 패스키를 “등록”하게 한다라는 새로운 위험이 존재합니다.
예상되는 공격 시나리오: 공격자에 의한 패스키 "스푸핑 등록"
공격 흐름 예
- 공격자가 피싱 사이트 구축(https://bank-login.example.org)
- 사용자에게 "인증이 해지되었습니다. 다시 등록하십시오."
- 유저가 피싱 사이트에서 종래의 인증 수단(패스워드나 OTP)으로 인증해, 패스키 등록 플로우를 개시
- 실제로는 공격자의 인증기(장치)가 등록
- 진짜 웹사이트에 "공격자의 패스키"가 등록된 상태로
- 공격자는 해당 암호를 통해 실제 웹 사이트에 로그인할 수 있습니다.
기술적으로는 「정당한 등록」
- 중계 공격에 있어서는, WebAuthn의 등록(navigator.credentials.create())은, 공격자의 환경상에서 실시할 수 있기 때문에, 그 내용은 공격자가 자유롭게 변경 가능합니다. 그 때문에, Web 서버 시선에서는, 등록 자체가 정당한 것과 구별이 붙지 않습니다.
- 중계 공격에 있어서는, 만일 피해자의 브라우저가 오리진으로서 피싱 사이트의 도메인을 포함한 형태로 패스키의 작성을 실시했다고 해도, 공격자는 그 결과를 파기해, 공격자의 환경하에서 정규의 도메인을 포함한 패스키를 생성하지 않으면 좋기 때문에, 피해자의 브라우저에 있어서의 오리진의 체크는 효과가 없습니다.
대책
도표 4는 가능한 대표적인 대책을 정리한 것입니다.
도표 4 가능한 스푸핑 대책
| 대책 | 내용 |
|---|---|
| 등록 전 본인 확인 단계 강화 | 공적 개인 인증이나 리모트 바이오메트릭스(가능하다면)에 의한 본인 확인이나, 과거에 설정이 끝난 패스 키로의 재인증 등을 요구하는 것으로 방지 |
| 이상 등록의 검출·통지 | 새로운 패스키가 추가되었을 때에 즉시 통지·확인(예: 로그인 이력 통지) |
예상되는 공격 시나리오: 패스키 인증 후 세션 탈취
또한 최근의 사례에 있어서는 인포스티러 등으로 총칭되는 것과 같은 악성코드 등의 도둑질이 보고되고 있습니다.이것들은 마찬가지로 세션 쿠키의 취득도 가능합니다.
대책
세션 탈취에 대한 대책으로서는 단말의 보안 영역 등에서 생성한 비대칭 키를 활용한다.Device Bound Session Credentials (DBSC) 등이 제안되고 있습니다.Continuous Access Evaluation (계속적 액세스 평가)도 주목을 받게 되어 왔습니다.
Continuous Access Evaluation은 기존의 한 번만 인증을 넘어 사용자의 액세스 권한을 실시간으로 지속적으로 모니터링하고 평가하는 보안 기법입니다.
예를 들면, 평소와 다른 나라로부터의 액세스나, 이상한 데이터 다운로드 행위가 있었을 경우에 즉시 대응할 수 있습니다.
예상되는 공격 시나리오: 남아 있는 비밀번호 인증 입을 노리기
패스키의 특징인 피싱 내성의 혜택을 얻기 위해서는 피싱 내성이 없는 인증 방법을 폐지하고, 패스키와 같은 피싱 내성이 있는 인증 수단만을 이용받는 것이 필요합니다. 비록 패스키가 도입되어도 기존의 피싱 내성이 없는 사용자 인증이 남아 있으면,
대책
대응하는 대책은, 이러한 구형의 유저 인증 수단을 폐지해 패스키만으로 전환한다고 하는 것이 됩니다.
다만, 다양한 요인으로부터 패스키를 사용하기 어려운 유저가 남아 있는 것은 유의해야 합니다. 멈추는 등의 대안을 취하는 것도 생각할 수 있습니다.패스키를 이용할 수 없는 환경에서의 로그인을 위해서 일정 시간(15분이나)만 패스워드에 의한 로그인을 허가하는 옵션의 제공이나, 인증 강도에 따라 거래 한도액이나 권한(읽어내 전용등)을 설정하는 것도 선택사항입니다. Access Evaluation은 중요한 기술로 주목 받고 있습니다.
결론 : 패스키도 "설계"하지 않으면 깨진다
패스키는인증 흐름에서 매우 높은 안전성하지만,등록 흐름을 악용한 경우에는 반대로 공격자에게 견고한 열쇠가 등록되어 버린다라고 하는 본말 전도한 리스크가 존재합니다.
따라서 금융기관이나 정부기관이 패스키를 도입할 때는 :
- 인증뿐만 아니라 등록 흐름의 보안 설계
- 이상 검지·복구 흐름(복구) 설계
- 피싱을 전제로 한 UX 디자인 및 경고 설계
따라서 필수적입니다. 따라서 채용 할 때는 이러한 것까지 생각하고 설계해야합니다.
정책적 의미: 왜 지금 패스키가 필요한가?
1. OTP에 의존하는 규제·가이드라인의 한계
많은 국가와 지역에서는 여전히 OTP를 제2요소로 하여 다중요소 인증 MFA를 SCA(Secure Customer Authentication: 보안 고객 인증) 요건에 명시하고 있는 경우가 있습니다.OTP를 사용한 다중 요소 인증은 피싱 내성을 보장하지 않습니다.이를 전제로 한 보안 규제는 이미 공격자의 기술을 따라잡지 못할 가능성이 있습니다.2부터 그렇게 되었습니다.
2. 등록 단계의 위협에도 대응할 필요
한편, 패스키는 인증 수단의 이용 단계를 강화하는 것에 유의해야 합니다. 인증 수단의 등록 단계의 위협에도 대응해야 합니다.
3. 다층 방어의 일환
패스키는 매우 유효한 사용자 인증 수단이지만, 사용자 인증이 성공한 후의 세션 탈취에는 무효입니다.그러므로, 세션의 디바이스에의 바인딩(연결)이나, 이상 거래의 검출등과 조합해 사용하는 것이 필요합니다.
4. 소비자 보호 관점에서 보급 촉진
패스키는 유저에게 「보안의 지식」이나 「주의 깊이」를 요구하지 않고, 단말측에서 투명하게 안전성을 확보할 수 있습니다.보안 교육에 의존하지 않는 지속 가능한 조치이며, 소비자 보호 정책과 친화성이 높은 것입니다.
금융정책의 관점에서는 단순히 기술 도입 여부를 논의할 뿐만 아니라무엇을 '안전한 사용자 인증'으로 간주합니까?라는 기준 그 자체를 갱신해 나가는 것이 필요합니다.패스키와 같은 피싱 내성을 가지는 수단을 「기준」으로서 정한다이것이 금융 소비자의 안전과 신뢰성 확보의 열쇠가 될 것입니다.3
【사사】
이 글을 작성할 때 기술 평론사 출판「모든 패스키」공동 저자이며 미국 OpenID Foundation의 이사이기도합니다.코이와이 코스케 씨(X: @kocko), 노무라 종합 연구소 소속에서 정보 처리 학회 정보 규격 조사회 SC27/WG5 소위원회 간사로 FIDO Alliance 로부터 ISO/IEC JTC 1/SC 27/WG 5 로의 리에존 오피서이기도 하다후루카와 히데아키,Software Design 2025년 1월호」의 「제1 특집 인증 기술의 최전선 패스워드리스 인증 「패스키」의 구조와 실장」의 전반 등 적극적으로 패스키에 관해서 발신하고 있는,이토 료우(X: @ritou)에 힘든 협력을 받았습니다.

하나의 코멘트