언어 선택

브라우저 기반 비밀번호 관리자의 비밀번호 생성, 저장 및 자동 완성 보안 평가

13개 인기 비밀번호 관리자의 포괄적 보안 분석: 비밀번호 생성 무작위성, 저장 보안, 자동 완성 취약점 평가
computationalcoin.com | PDF Size: 1.0 MB
평점: 4.5/5
당신의 평점
이미 이 문서를 평가했습니다
PDF 문서 표지 - 브라우저 기반 비밀번호 관리자의 비밀번호 생성, 저장 및 자동 완성 보안 평가

1. 서론

비밀번호 기반 인증은 잘 알려진 보안 문제점에도 불구하고 웹 인증의 지배적인 방법으로 남아 있습니다. 사용자는 강력하고 고유한 비밀번호를 생성하고 기억하는 데 인지적 부담을 겪으며, 이로 인해 비밀번호 재사용과 취약한 자격 증명 생성이 발생합니다. 비밀번호 관리자는 비밀번호를 생성, 저장 및 자동으로 입력하여 이러한 부담을 완화하겠다고 약속합니다. 그러나 그들의 보안성은 선행 연구에서 의문이 제기된 바 있습니다. 본 논문은 주요 취약점이 마지막으로 보고된 지 5년 후, 13개의 인기 있는 브라우저 기반 비밀번호 관리자에 대한 최신의 포괄적인 보안 평가를 제시합니다. 이 연구는 생성, 저장, 자동 완성이라는 비밀번호 관리자의 전체 생애주기를 다룹니다.

2. 방법론 및 범위

평가는 LastPass, 1Password와 같은 5개의 브라우저 확장 프로그램, Chrome, Firefox와 같은 6개의 내장 브라우저 관리자, 그리고 비교를 위한 2개의 데스크톱 클라이언트를 포함한 총 13개의 비밀번호 관리자를 포괄했습니다. 방법론은 다음을 포함했습니다:

  • 무작위성과 강도를 분석하기 위해 1억 4,700만 개의 비밀번호 코퍼스를 생성 및 분석.
  • 비밀번호 저장 보안에 대한 선행 평가의 재현 및 확장.
  • 클릭재킹 및 XSS와 같은 취약점에 대한 자동 완성 메커니즘 테스트.
  • 기본 보안 설정 및 암호화 관행 평가.

3. 비밀번호 생성 분석

이는 비밀번호 관리자의 비밀번호 생성 알고리즘에 대한 최초의 포괄적인 분석입니다.

3.1. 문자 분포 및 무작위성

1억 4,700만 개의 비밀번호 코퍼스 분석 결과, 생성된 비밀번호에서 여러 차례 비무작위적 문자 분포가 발견되었습니다. 일부 관리자는 균일한 무작위 분포에서 벗어난 문자 선택 편향을 보였습니다. 진정한 무작위 생성기의 경우, 크기 $N$의 집합에서 어떤 문자를 선택할 확률은 $P(문자) = \frac{1}{N}$이어야 합니다. 이로부터의 편차는 알고리즘적 결함을 나타냅니다.

3.2. 추측 공격에 대한 취약성

가장 중요한 발견은 생성된 비밀번호의 일부가 무차별 대입 공격에 취약하다는 것이었습니다:

  • 온라인 추측: 10자 미만의 비밀번호는 속도 제한이 있는 온라인 공격에 취약한 것으로 나타났습니다.
  • 오프라인 추측: 18자 미만의 비밀번호는 데이터베이스 유출 후 공격자가 무제한으로 추측할 수 있는 오프라인 크래킹 시도에 취약했습니다.

이는 비밀번호 관리자가 강력한 비밀번호를 생성하겠다는 핵심 약속과 모순됩니다.

4. 비밀번호 저장 보안

5년 전 평가와 비교하여 개선점은 확인되었지만, 여전히 중요한 문제들이 지속되고 있습니다.

4.1. 암호화 및 메타데이터 처리

여러 비밀번호 관리자가 메타데이터를 암호화되지 않은 형태로 저장하는 것으로 발견되었습니다. 이는 웹사이트 URL, 사용자 이름, 타임스탬프 등을 포함합니다. 비밀번호 자체는 암호화되었을 수 있지만, 이 메타데이터는 공격자에게 사용자의 온라인 계정과 습관을 드러내는 가치 있는 지도를 제공하여, 표적 피싱이나 사회 공학적 공격에 사용될 수 있습니다.

4.2. 안전하지 않은 기본 설정

특정 관리자는 기본적으로 모든 사이트에서 자동 완성을 활성화하거나 더 약한 암호화 프로토콜을 사용하는 등 안전하지 않은 기본 설정을 가지고 있었습니다. 이는 보안 부담을 사용자가 이러한 설정을 발견하고 변경해야 하는 것으로 전가하며, 대부분의 사용자는 이를 수행하지 않습니다.

5. 자동 완성 메커니즘 취약점

편의를 위해 설계된 자동 완성 기능은 상당한 공격 표면을 도입합니다.

5.1. 클릭재킹 및 UI 재구성

여러 비밀번호 관리자가 클릭재킹 공격에 취약했습니다. 공격자는 사용자를 속여 비밀번호 관리자의 자동 완성 대화 상자를 클릭하게 만드는 투명한 레이어가 있는 악성 웹페이지를 생성할 수 있으며, 이를 통해 의도된 합법적인 사이트 대신 공격자의 사이트에 자격 증명을 노출시킬 수 있습니다.

5.2. 교차 사이트 스크립팅(XSS) 위험

엄격한 출처 검사 없이 웹 페이지 양식에 자격 증명을 주입하는 자동 완성 메커니즘은 신뢰할 수 있는 사이트의 XSS 취약점을 통해 악용될 수 있습니다. 선의의 사이트에 XSS 결함이 있는 경우, 주입된 스크립트가 비밀번호 관리자를 트리거하여 공격자가 제어하는 숨겨진 양식 필드에 자격 증명을 채우도록 할 수 있습니다.

6. 결과 및 비교 분석

코퍼스 크기

147M

분석된 비밀번호

테스트된 관리자

13

브라우저 및 데스크톱

심각한 결함

<18 chars

오프라인 크래킹에 취약

핵심 발견: 선행 연구(예: Li et al., 2014; Silver et al., 2013) 이후 상황은 개선되었지만, 여러 공급업체에 걸쳐 근본적인 보안 결함이 남아 있습니다. 평가된 세 단계(생성, 저장, 자동 완성) 모두에서 완벽한 단일 비밀번호 관리자는 없었습니다. 내장 브라우저 관리자와 전용 확장 프로그램 모두 뚜렷한 취약점 패턴을 보였습니다.

7. 권장사항 및 향후 방향

본 논문은 실행 가능한 권장사항으로 결론을 맺습니다:

  • 사용자를 위해: 알려진 생성 결함이나 안전하지 않은 자동 완성 기본 설정이 있는 비밀번호 관리자는 피하십시오. 자동 완성 동작에 대한 세밀한 제어를 허용하는 관리자를 선호하십시오.
  • 개발자를 위해: 비밀번호 생성을 위해 암호학적으로 안전한 난수 생성기(CSPRNG)를 구현하십시오. 모든 메타데이터를 암호화하십시오. 자동 완성을 위해 강력한 출처 검사 및 사용자 동의 메커니즘(예: UI 재구성이 불가능한 요소에 대한 클릭 요구)을 구현하십시오.
  • 연구자를 위해: 자동 완성 로직을 검증하기 위한 형식적 방법의 통합과 공격을 나타내는 비정상적인 자동 완성 요청을 탐지하기 위한 머신러닝 적용을 탐구하십시오.

8. 원본 분석 및 전문가 논평

핵심 통찰: Oesch와 Ruoti의 연구는 우리가 디지털 열쇠를 통합하도록 신뢰하는 보안 도구들 자체가 놀랍도록 불안정한 기초 위에 구축되었다는 냉정한 현실 점검을 제공합니다. 주요 결함이 드러난 지 5년 후, 업계의 진전은 기껏해야 점진적이며, 생성, 저장, 자동 완성이라는 세 가지 핵심 기둥 모두의 체계적 문제를 해결하지 못하고 있습니다. 이는 단순한 버그 리포트가 아닌, 중요한 보안 분야에서의 안이함에 대한 고발입니다.

논리적 흐름: 이 논문의 힘은 전체적인 생애주기 접근 방식에 있습니다. 사슬은 가장 약한 고리만큼만 강하다는 점을 올바르게 지적합니다. 생성에서 비무작위성($P(문자) \neq \frac{1}{N}$)을 발견하는 것은 저장이나 자동 완성을 고려하기도 전에 전체 전제를 근본적으로 훼손합니다. 과거 저장/자동 완성 테스트의 재현은 패턴을 보여줍니다: 표면적인 취약점은 패치될 수 있지만, (암호화되지 않은 메타데이터나 무분별한 자동 완성과 같은) 구조적 결함은 지속됩니다. 결함 있는 생성에서 안전하지 않은 처리, 위험한 배포로의 이 논리적 진행은 완전하고 비난할 만한 그림을 그립니다.

강점과 결함: 이 연구의 주요 강점은 비밀번호 생성에 대한 방대한 데이터 기반 접근 방식으로, 이는 문헌상 최초입니다. 1억 4,700만 개의 비밀번호 코퍼스는 이론적 우려를 넘어 알고리즘적 약점에 대한 반박할 수 없는 통계적 증거를 제공합니다. 그러나 분석에는 맹점이 있습니다: 주로 비밀번호 관리자를 고립된 클라이언트로 취급합니다. 현대의 현실은 클라우드 동기화와 모바일 앱입니다. IEEE Symposium on Security and Privacy의 클라우드 보안 모델에 관한 논문집에서 언급된 바와 같이, 위협 표면은 동기화 프로토콜, 서버 측 API, 모바일 OS 통합으로 확장되며, 이 연구는 이를 평가하지 않습니다. 또한, "안전하지 않은 기본 설정"을 언급하지만, 실제 세계 위험의 중요한 요소인 보안 설정의 사용자 채택률을 정량화하지 않습니다. USENIX SOUPS 컨퍼런스의 사용성 연구가 일관되게 보여주듯이 대부분의 사용자는 기본 설정을 변경하지 않기 때문입니다.

실행 가능한 통찰: 기업 보안 팀을 위해, 이 연구는 "비밀번호 관리자를 사용하라"는 포괄적 권장사항에서 공급업체별, 구성별 지침으로의 전환을 요구합니다. 약한 생성기를 가진 관리자는 블랙리스트에 올려야 합니다. 조달 체크리스트는 이제 CSPRNG 사용 및 메타데이터 암호화 검증을 포함해야 합니다. 개발자를 위해, 앞으로의 길은 명확합니다: 자동 완성에 대해 "제로 트러스트" 원칙을 채택하여, W3C(World Wide Web Consortium)가 강력한 웹 API에 대해 옹호하는 권한 모델과 유사하게, 모든 채우기 작업에 대해 명시적이고 상황 인식적인 사용자 동의를 요구해야 합니다. 미래는 과도하게 허용적인 자동 완성을 완벽하게 보호하려는 시도가 아니라, 최소한으로 허용적이고 사용자가 제어하는 자동 완성을 설계하는 데 있습니다. 5년 동안 업계가 스스로 수정하지 못한 실패는 우리 디지털 정체성의 수호자들에 대한 기준 보안 요구사항을 시행하기 위해 규제 기관이나 표준 기구(예: NIST 또는 FIDO Alliance)의 개입이 필요할 수 있음을 시사합니다.

9. 기술적 세부사항 및 실험 결과

비밀번호 생성 분석: 문자 집합 $C$에서 길이 $L$의 생성된 비밀번호의 엔트로피 $H$는 이상적으로 $H = L \cdot \log_2(|C|)$ 비트입니다. 이 연구는 편향된 문자 선택으로 인해 유효 엔트로피가 더 낮은 사례를 발견했습니다. 예를 들어, 생성기가 94자 집합을 사용하려고 했지만 특정 문자가 확률 $p \ll \frac{1}{94}$로 나타난다면, 실제 엔트로피는 감소합니다: 문자당 $H_{실제} = -\sum_{i=1}^{94} p_i \log_2(p_i)$, 여기서 $\sum p_i = 1$입니다.

실험 차트 설명: 이 연구의 핵심 차트는 서로 다른 길이(예: 8, 12, 16자)의 생성된 비밀번호에 대해 크래킹된 비밀번호의 누적 비율추측 시도 횟수(로그 스케일)에 대해 그릴 것입니다. 10자 미만 비밀번호의 곡선은 급격한 상승을 보여, 온라인 공격 시뮬레이션(예: 1000회 추측) 하에서 빠른 손상을 나타냅니다. 18자 미만 비밀번호의 곡선은 $10^{10}$에서 $10^{12}$회의 오프라인 추측 후 상당한 비율이 크래킹되는 것을 보여, Hashcat 및 레인보우 테이블과 같은 도구로 벤치마킹된 바와 같이 현대 하드웨어를 가진 결심한 공격자의 능력 범위 내에 놓이게 합니다.

10. 분석 프레임워크 및 사례 연구

비밀번호 관리자 보안 평가 프레임워크:

  1. 생성 무결성: 출력의 무작위성에 대한 통계적 테스트(예: NIST STS, Dieharder 테스트) 수행 및 유효 엔트로피 계산. 최소 길이 기본 설정이 현재 NIST 지침(>= 12자)과 일치하는지 확인.
  2. 저장 보안: 암호화된 데이터 대 평문 데이터에 대한 로컬 저장소(예: 브라우저 IndexedDB, SQLite 파일) 및 네트워크 트래픽 검사. 암호화 라이브러리 및 키 유도 함수 감사(예: 충분한 반복 횟수로 PBKDF2를 사용하는가, 아니면 Argon2를 사용하는가?).
  3. 자동 완성 보안 태세: 자동 완성 트리거 메커니즘 매핑. 겹치는 iframe을 생성하여 UI 재구성 테스트. 유사한 도메인 이름(예: `example.com` 대 `example.com.evil.net`)을 가진 사이트 배포를 통해 출처 매칭 로직 테스트. 자동 완성이 예측 불가능한 페이지 요소에 대한 사용자 제스처를 요구하는지 확인.

사례 연구 - 클릭재킹 취약점: 로그인 양식 위에 자동 완성 버튼을 표시하는 관리자 X를 고려하십시오. 공격자는 `bank.com`을 로드하는 투명한 iframe이 있는 악성 페이지를 생성합니다. iframe은 관리자 X의 자동 완성 버튼이 악성 페이지의 숨겨진 "공격자에게 제출" 버튼 위에 나타나도록 배치됩니다. 사용자가 자동 완성을 위해 클릭하지만, 대신 공격자의 버튼을 클릭하여 `bank.com` 자격 증명을 공격자의 서버로 보냅니다. 이는 관리자의 클릭 이벤트 바인딩 및 출처 검증 실패를 보여줍니다.

11. 향후 적용 및 연구 전망

이 발견들은 향후 작업을 위한 여러 가지 길을 엽니다:

  • 하드웨어 지원 생성 및 저장: 신뢰할 수 있는 플랫폼 모듈(TPM) 또는 보안 영역(예: Apple의 Secure Element)과의 통합을 통해 무작위 시드를 생성하고 암호화 키를 저장하여 비밀을 순수 소프트웨어 영역에서 벗어나게 합니다.
  • 상황 인식, 위험 기반 자동 완성: 머신러닝을 활용하여 페이지 컨텍스트(DOM 구조, 인증서 세부사항, 사이트 평판)를 분석하여 자동 완성 위험을 평가합니다. 고위험 컨텍스트는 추가 인증(생체 인식)을 요구하거나 자동 완성을 완전히 차단할 수 있습니다.
  • 표준화된 보안 API: 비밀번호 관리자를 위한 브라우저 표준화, 권한 부여 API(예: `chrome.loginState` API의 후속) 개발로, 명확한 사용자 동의 프롬프트와 함께 자격 증명에 대한 안전한 샌드박스 접근을 제공하여 임의의 DOM 주입으로부터의 공격 표면을 줄입니다.
  • 포스트-퀀텀 암호화 대비: 암호화된 금고는 지금 수집하여 나중에 해독하려는 적들에게 매우 매력적인 장수 자산이므로, 양자 컴퓨터 공격에 저항하는 알고리즘으로 비밀번호 관리자 암호화를 이전하는 연구.
  • 분산형 및 자기 보관 모델: 중앙 금고에 대한 의존도를 줄이고 위험을 분산시키며 사용자에게 더 큰 통제권을 주기 위해 분산형 신원 프로토콜(예: W3C 검증 가능한 자격 증명 기반) 사용 탐구.

12. 참고문헌

  1. Oesch, S., & Ruoti, S. (2020). That Was Then, This Is Now: A Security Evaluation of Password Generation, Storage, and Autofill in Browser-Based Password Managers. USENIX Security Symposium.
  2. Li, Z., He, W., Akhawe, D., & Song, D. (2014). The Emperor's New Password Manager: Security Analysis of Web-based Password Managers. IEEE Symposium on Security and Privacy (SP).
  3. Silver, D., Jana, S., Boneh, D., Chen, E., & Jackson, C. (2013). Password Managers: Attacks and Defenses. USENIX Security Symposium.
  4. National Institute of Standards and Technology (NIST). (2017). Digital Identity Guidelines (SP 800-63B).
  5. Stock, B., & Johns, M. (2013). Protecting the Intranet Against "JavaScript Malware" and Related Attacks. International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA).
  6. Herley, C. (2009). So Long, And No Thanks for the Externalities: The Rational Rejection of Security Advice by Users. Proceedings of the New Security Paradigms Workshop (NSPW).
  7. World Wide Web Consortium (W3C). (2021). Permissions Policy. https://www.w3.org/TR/permissions-policy-1/
  8. FIDO Alliance. (2022). FIDO2: WebAuthn & CTAP. https://fidoalliance.org/fido2/