2025-11-14T09:58:11.521609

Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers

Gautam, Yadav, Smith et al.
Password managers provide significant security benefits to users. However, malicious client-side scripts and browser extensions can steal passwords after the manager has autofilled them into the web page. In this paper, we extend prior work by Stock and Johns, showing how password autofill can be hardened to prevent these local attacks. We implement our design in the Firefox browser and conduct experiments demonstrating that our defense successfully protects passwords from XSS attacks and malicious extensions. We also show that our implementation is compatible with 97% of the Alexa top 1000 websites. Next, we generalize our design, creating a second defense that prevents recently discovered local attacks against the FIDO2 protocols. We implement this second defense into Firefox, demonstrating that it protects the FIDO2 protocol against XSS attacks and malicious extensions. This defense is compatible with all websites, though it does require a small change (2-3 lines) to web servers implementing FIDO2.
academic

비밀번호와 FIDO2는 비밀로 유지되어야 함: 웹 브라우저를 위한 실용적인 보안 인증 채널

기본 정보

  • 논문 ID: 2509.02289
  • 제목: Passwords and FIDO2 Are Meant To Be Secret: A Practical Secure Authentication Channel for Web Browsers
  • 저자: Anuj Gautam (University of Tennessee), Tarun Yadav (Brigham Young University), Garrett Smith (Brigham Young University), Kent Seamons (Brigham Young University), Scott Ruoti (University of Tennessee)
  • 분류: cs.CR (암호화 및 보안)
  • 발표 학회: CCS '25 (ACM SIGSAC Conference on Computer and Communications Security)
  • 논문 링크: https://arxiv.org/abs/2509.02289

초록

비밀번호 관리자는 사용자에게 상당한 보안 이점을 제공하지만, 악의적인 클라이언트 스크립트와 브라우저 확장 프로그램은 비밀번호 관리자가 웹페이지에 비밀번호를 자동 입력한 후 비밀번호를 탈취할 수 있습니다. 본 논문은 Stock과 Johns의 선행 연구를 확장하여 이러한 로컬 공격으로부터 비밀번호 자동 입력을 강화하는 방법을 제시합니다. 저자들은 Firefox 브라우저에서 자신들의 설계를 구현했으며, XSS 공격 및 악의적인 확장 프로그램의 위협으로부터 비밀번호를 성공적으로 보호하는 방어 메커니즘을 실험으로 입증했습니다. 연구는 또한 이 구현이 Alexa 상위 1000개 웹사이트의 97%와 호환됨을 보여줍니다. 추가로, 저자들은 설계를 일반화하여 최근 발견된 FIDO2 프로토콜에 대한 로컬 공격을 방지하는 두 번째 방어 메커니즘을 만들었습니다.

연구 배경 및 동기

핵심 문제

비밀번호 관리자는 명백한 보안 취약점을 가지고 있습니다: 비밀번호가 브라우저에 자동 입력된 후 웹사이트로 전송되기 전 이 기간 동안 탈취되기 쉽습니다. 여기에는 다음 위협으로부터의 탈취가 포함됩니다:

  1. 웹 추적기: 의도하지 않게 비밀번호 정보를 수집할 수 있음
  2. 주입 공격(예: XSS): 악의적인 스크립트가 DOM에서 직접 비밀번호를 읽을 수 있음
  3. 악의적인 브라우저 확장 프로그램: 적절한 권한을 가진 확장 프로그램이 웹페이지 콘텐츠 및 네트워크 요청에 접근 가능
  4. 손상된 JavaScript 라이브러리: 공급망 공격으로 인한 악의적인 코드 주입

문제의 중요성

  • 이러한 공격은 상대적으로 흔하며, 연구에 따르면 인기 있는 웹사이트의 최소 2-3%가 비밀번호를 유출하는 웹 추적기를 포함하고 있습니다
  • XSS 공격은 OWASP 상위 10대 웹 애플리케이션 보안 위험으로 계속 나열되고 있습니다
  • 악의적인 브라우저 확장 프로그램 문제는 점점 심각해지고 있으며, Chrome 웹 스토어에는 이러한 공격을 수행할 수 있는 충분한 권한을 가진 수천 개의 확장 프로그램이 존재합니다

기존 방법의 한계

Stock과 Johns는 10년 전 난수 대체 기반 비밀번호 보호 프로토콜을 제안했지만, 이 프로토콜은 현대 브라우저 설계와 호환되지 않습니다. 당시 작동했던 Firefox 브라우저도 관련 기능을 빠르게 제거했으며, 이는 프로토콜의 채택과 후속 연구 발전을 방해했습니다.

핵심 기여

  1. 실용적인 난수 기반 비밀번호 대체 API 구현: 현대 브라우저를 수정하여 Stock과 Johns 프로토콜의 작동 구현 지원
  2. 위협 모델 확장: 원래 프로토콜이 고려하지 않은 악의적인 브라우저 확장 프로그램 위협 식별 및 해결
  3. FIDO2 보안 채널: 최근 발견된 로컬 공격을 방어하기 위해 FIDO2 프로토콜로 설계 일반화
  4. 실제 배포 검증: Firefox에서 구현 및 평가하여 주류 웹사이트의 97%와 호환성 입증

방법론 상세 설명

작업 정의

비밀번호 관리자가 DOM 스크립트 또는 브라우저 확장 프로그램이 실제 비밀번호에 접근하지 못하도록 하면서 웹사이트에 비밀번호를 안전하게 전송할 수 있는 보안 브라우저 채널을 설계합니다.

비밀번호 보호 아키텍처 설계

핵심 API 설계

기존 WebRequest API를 확장하여 새로운 onRequestCredentials 단계 추가:

onRequestCredentials → onBeforeRequest → onBeforeSendHeaders → onSendHeaders → ...

작업 흐름

  1. 난수 주입: 비밀번호 관리자가 실제 비밀번호 대신 난수 비밀번호를 웹페이지에 입력
  2. 콜백 등록: 동시에 onRequestCredentials 콜백 핸들러 등록
  3. 보안 검사: 페이지 제출 시 다음 보안 검증 실행:
    • 웹페이지가 iFrame에 표시되지 않았는지 확인
    • 제출 채널이 보안 HTTPS 연결을 사용하는지 검증
    • origin이 비밀번호 관리자 항목과 일치하는지 확인
    • 난수가 GET 매개변수에 없는지 검증
    • 필드 이름 유효성 확인
  4. 보안 대체: 검증이 통과하면 브라우저가 FormSubmission 객체에서 난수를 실제 비밀번호로 대체

악의적인 확장 프로그램 방어 설계

악의적인 확장 프로그램 위협에 대응하기 위해 두 가지 주요 수정 사항 적용:

  1. onRequestCredentials를 requestBody에 접근 가능한 모든 단계 이후로 이동
  2. 이 단계에서 확장 프로그램에 대체 전 requestBody를 표시하여 실제 비밀번호 숨김

FIDO2 보안 채널 설계

위협 모델

FIDO2 프로토콜은 두 가지 유형의 로컬 공격에 직면:

  1. DOM 값 수정: 악의적인 JavaScript를 통해 webAuthn API 호출 재작성
  2. 요청 응답 가로채기: 확장 프로그램을 통해 HTTP 요청 및 응답 가로채기

방어 메커니즘

  1. 요청 처리: 서버가 실제 FIDO2 페이로드를 webauthn_request 헤더에 배치하고, 페이지 응답에는 허위 값 포함
  2. 헤더 가로채기: 브라우저가 확장 프로그램이 접근하기 전에 민감한 헤더 제거
  3. API 대체: webAuthn API 내부에서 허위 값을 실제 값으로 대체
  4. 응답 보호: API 반환 값이 허위 값으로 대체되고, 실제 값은 안전하게 저장됨
  5. 최종 전송: 지정된 엔드포인트로 요청을 보낼 때 허위 값을 실제 FIDO2 응답으로 대체

실험 설정

테스트 환경

  • 브라우저: Mozilla Firefox 107.0 (비밀번호 보호) 및 104.0a1 (FIDO2 보호)
  • 비밀번호 관리자: 수정된 Bitwarden
  • 테스트 웹사이트: Alexa 상위 1000개 웹사이트 중 로그인 페이지가 있는 573개 웹사이트

평가 지표

  1. 호환성: 정상 작동하는 웹사이트의 백분율
  2. 보안성: DOM 및 확장 프로그램 공격 방어의 효과성
  3. 성능 오버헤드: 요청 처리 시간 증가량

비교 방법

  • 수정되지 않은 Firefox 브라우저를 기준선으로 사용
  • 프록시 서버를 사용하여 모든 아웃바운드 네트워크 요청 기록 및 비교

실험 결과

주요 결과

비밀번호 보호 호환성

  • 97% 호환성: 554/573개 웹사이트 완전 호환
  • 2% 부분 호환: 11/573개 웹사이트가 DOM에서 비밀번호 해시 계산으로 인해 실패
  • 1% 비호환: 8/573개 웹사이트가 제출 전 비밀번호 형식 수정

보안성 검증

  • 테스트된 모든 DOM 공격(XSS, 악의적인 JavaScript 주입) 성공적으로 방어
  • 악의적인 확장 프로그램의 webRequest API를 통한 비밀번호 탈취 효과적으로 차단
  • 반사 공격 위협 식별 및 방어

성능 오버헤드

  • 대체 필요 시 평균 요청 시간: 4.5222초
  • 대체 작업 소요 시간: 0.443초 (총 시간의 10.6%)
  • 대체 불필요 시: 측정 가능한 성능 영향 없음

FIDO2 방어 결과

  • 100% 웹사이트 호환성 (서버 측 2-3줄 코드 수정 필요)
  • 테스트된 모든 DOM 및 확장 프로그램 공격 성공적으로 방어
  • 완전한 세션 책임성 구현

관련 연구

비밀번호 관리자 보안 연구

기존 연구는 주로 비밀번호 관리자의 전반적인 보안성에 초점을 맞추고 있습니다:

  • 비밀번호 생성, 저장 및 입력의 보안성 분석
  • 자동 입력 프로세스의 취약점 식별
  • 모바일 장치의 비밀번호 관리자 보안 문제

브라우저 보안 메커니즘

관련 브라우저 보안 연구는 다음을 포함합니다:

  • 동일 출처 정책 및 콘텐츠 보안 정책
  • 브라우저 확장 프로그램 권한 모델
  • WebAuthn 및 FIDO2 프로토콜 보안성

본 논문의 기여 위치

본 논문은 Stock과 Johns 프로토콜의 최초 작동 구현을 제공하여 10년간의 연구 공백을 메우고, FIDO2 프로토콜 보호로 확장합니다.

결론 및 논의

주요 결론

  1. 실용성 입증: 현대 브라우저에서 보안 비밀번호 전송 채널의 성공적인 구현
  2. 광범위한 호환성: 대부분의 주류 웹사이트와 호환되어 실제 배포 가능성 높음
  3. 보안성 향상: 다양한 로컬 공격 위협으로부터 효과적인 방어
  4. 확장성: 설계를 다른 브라우저-서버 상호작용의 보안 보호로 일반화 가능

한계

  1. 3% 웹사이트 비호환: 주로 클라이언트 측 비밀번호 처리로 인함
  2. 성능 오버헤드: 대체 작업에 일정한 시간 비용
  3. 브라우저 수정 요구: 브라우저 제조업체의 API 수정 채택 필요
  4. FIDO2 서버 수정: 미미하지만 여전히 서버 측 협력 필요

향후 방향

  1. 호환성 향상: 프로그램 분석을 통해 관련 JavaScript 자동 식별 및 처리
  2. 수동 입력 확장: 사용자가 수동으로 입력한 비밀번호 보호
  3. 공격 탐지: 난수 메커니즘을 활용한 공격 탐지 및 보고
  4. 기타 API 보호: 설계를 클립보드, 파일 시스템 등 다른 브라우저 API로 확장

심층 평가

장점

  1. 높은 실용적 가치: 수천만 비밀번호 관리자 사용자에게 영향을 미치는 실제 보안 문제 해결
  2. 완전한 엔지니어링 구현: 완전한 Firefox 구현 및 상세한 이식 가이드 제공
  3. 포괄적인 평가: 보안성, 호환성 및 성능의 종합 평가 포함
  4. 이론적 확장: FIDO2 프로토콜로의 개념 성공적 일반화
  5. 산업 피드백: 브라우저 제조업체 및 비밀번호 관리자 팀으로부터 긍정적 피드백 획득

부족한 점

  1. 배포 과제: 브라우저 제조업체의 협력 필요, 확산의 불확실성
  2. 호환성 문제: 여전히 3% 웹사이트의 호환성 문제 존재
  3. 위협 모델 제한: 운영 체제 수준 공격 또는 TLS 중간자 공격 보호 불가
  4. 사용자 혼동 위험: 사용자가 표시된 난수 비밀번호에 대해 혼동할 수 있음

영향력

  1. 학술적 기여: 10년 전 정체된 연구 방향 재활성화
  2. 실용적 가치: 수천만 사용자에게 즉각적인 보안 개선 제공
  3. 표준화 잠재력: W3C 표준화를 통한 광범위한 채택 추진 가능성
  4. 연구 영감: 다른 브라우저 API의 보안 보호를 위한 설계 패러다임 제공

적용 시나리오

  1. 엔터프라이즈 환경: 높은 보안 요구사항의 기업 배포
  2. 고가치 계정: 은행, 정부 등 중요 서비스의 신원 인증
  3. 보안 인식 사용자: 개인정보 보호 및 보안에 높은 요구사항을 가진 사용자 그룹
  4. 연구 원형: 추가 브라우저 보안 연구를 위한 기초 플랫폼

참고 문헌

본 논문은 47개의 관련 문헌을 인용하며, 주요 내용은 다음을 포함합니다:

  • Stock과 Johns의 원래 난수 대체 프로토콜 논문
  • 비밀번호 관리자 보안성 분석 관련 연구
  • 브라우저 확장 프로그램 보안 위협의 실증 연구
  • FIDO2 프로토콜 보안성 분석 문헌
  • 웹 추적기 및 XSS 공격의 현황 연구

전체 평가: 이는 이론적 설계를 작동하는 원형 시스템으로 성공적으로 전환하고 포괄적인 실험을 통해 효과성을 검증한 중요한 실용적 가치를 가진 시스템 보안 논문입니다. 본 논문은 현실의 중요한 보안 문제를 해결할 뿐만 아니라 향후 연구의 새로운 방향을 개척합니다. 배포 및 호환성 측면에서 여전히 과제가 있지만, 기술적 기여와 실용적 가치는 이를 브라우저 보안 분야의 중요한 진전으로 만듭니다.