Abstract
우리는 인기 있는 비밀번호 관리자의 보안과 웹 비밀번호 자동 입력에 대한 정책을 연구합니다. 브라우저 내장 암호 관리자, 모바일 암호 관리자 및 타사 관리자를 검토합니다. 우리는 암호 관리자들 사이에서 자동 채우기 정책에서 상당한 차이를 관찰합니다. 원격 네트워크 공격자가 사용자와의 상호 작용 없이 사용자의 암호 관리자에서 여러 개의 암호를 추출할 수 있는 여러 자동 채우기 정책은 심각한 결과를 초래할 수 있습니다. 우리는 이러한 공격과 암호 관리자의 보안을 강화하는 기술을 실험합니다. 우리는 우리의 향상된 기능이 기존 관리자들에 의해 채택될 수 있음을 보여줍니다.
Introduction
웹 서비스의 확산으로 일반 사용자들은 많은 수의 사이트로 인증 자격 증명을 설정하고 있습니다. 따라서 서로 다른 사이트에서 서로 다른 암호를 설정하려는 사용자는 암호 관리자를 사용해야 합니다. 많은 암호 관리자를 사용할 수 있습니다. 일부는 브라우저 공급업체에서 브라우저의 일부로 제공하고 일부는 타사에서 제공하며, 대부분은 암호가 클라우드에 백업되어 사용자의 기기(예: Apple의 iCloud Keychain)에서 동기화되는 네트워크 기반입니다. 그들이 관리하는 데이터의 민감성을 고려할 때, 그들의 보안을 연구하는 것은 당연합니다.
검사한 모든 PM(Password Manager)은 사용자가 로그인 페이지에 관리되는 암호를 수동으로 입력할 것으로 예상하지 않습니다. 대신 사용자가 로그인 페이지를 방문할 때 사용자 이름 및 암호 필드를 자동으로 입력합니다. 타사 암호 관리자는 브라우저 확장을 사용하여 자동 채우기를 지원합니다.
본 논문에서는 네 개의 플랫폼에서 인기 있는 암호 관리자 10가지의 자동 채우기 정책을 연구하고 모든 관리자의 자동 채우기 정책이 너무 느슨하다는 것을 보여줍니다. 즉, 잠재적인 공격자에게 사용자 암호를 노출하면 안 되는 상황에서 사용자 암호를 자동으로 채웁니다. 그 결과는 재앙적일 수 있습니다. 공격자는 사용자가 커피숍의 악성 라우터와 같은 악성 WiFi 네트워크에 연결하는 즉시 사용자 몰래 또는 동의 없이 사용자의 암호 관리자에서 많은 암호를 추출할 수 있습니다. 클라우드 기반 암호 동기화는 공격 대상 장치에서 사용되지 않은 사용자 암호를 잠재적으로 추출할 수 있기 때문에 문제를 더욱 악화시킵니다.
- 먼저 인기 있는 10가지의 암호 관리자가 암호를 자동으로 채울 시기를 결정하는 방법에 대한 설문 조사를 시작합니다. 서로 다른 암호 관리자는 매우 다른 자동 채우기 정책을 사용하여 사용자를 서로 다른 위험에 노출시킵니다.
- 다음으로, 우리는 자동 채우기 정책의 많은 코너 사례가 사용자가 커피숍에서 악성 라우터에 연결하도록 하는 것만으로 사용자 모르게 원격 암호 추출을 가능하게 하는 중요한 공격으로 이어질 수 있음을 보여줍니다.
- 우리는 비밀번호 관리자가 자격 증명 보안을 해치는 것이 아니라 강화하는 데 도움이 될 수 있다고 생각합니다. 5절에서는 비밀번호 관리자를 사용하는 사용자가 비밀번호를 수동으로 입력하는 사용자보다 더 안전하도록 강화하는 방법을 제안합니다. 우리는 크롬 브라우저에서 수정 사항을 구현하고 그 효과에 대해 보고했습니다.
Password Managers
먼저 널리 배포된 암호 관리자에서 구현된 자동 채우기 정책에 대한 자세한 설문 조사를 시작합니다. 설문 조사에 참여한 암호 관리자에는
- 데스크톱 브라우저 PM: Google Chrome 34, Microsoft Internet Explorer 11, Mozilla Firefox 29 및 Apple Safari 7.
- 3rd Party PM: 1Password [1], LastPass [5], Keeper [7], Norton IdentitySafe [6] 및 KeePass [4]가 포함됩니다. KeePass를 제외한 모든 기능은 암호 필드 자동 채우기를 지원하는 브라우저 확장 기능을 제공합니다.
- iOS PM: Mobile Safari의 암호 관리자는 Apple의 iCloud Keychain 동기화 서비스를 통해 Safari의 데스크톱 버전과 동기화합니다. 모바일 Safari는 확장 기능을 지원하지 않으므로 타사 PM은 자체 웹 브라우저가 내장된 별도의 애플리케이션입니다. Mobile Safari 외에도 Google Chrome, 1Password 및 LastPass 탭의 암호 관리자를 조사합니다.
- Android PM: 기본 Android 브라우저 및 Chrome입니다. 이러한 모든 암호 관리자는 사용자의 웹 브라우저 내에서 암호 관리자가 사용자 이름 및 암호 필드를 자동으로 채우는 "자동 채우기" 기능을 제공합니다. 우리는 자동 채우기 전략을 두 가지 광범위한 범주로 나눕니다.
- 자동 채우기: 사용자 상호 작용 없이 로그인 페이지가 로드되는 즉시 사용자 이름 및 암호 필드를 채웁니다. 자동 채우기를 지원하는 암호 관리자에는 Chrome(모든 플랫폼), Firefox, Safari, LastPass, Norton IdentitySafe 및 LastPass 탭이 있습니다.
- 수동 자동 채우기: 자동 채우기 전에 몇 가지 사용자 작업이 필요합니다. 상호 작용 유형에는 사용자 이름 필드를 클릭하거나 입력하거나, 바로 가기 키를 누르거나, 브라우저에서 단추를 누르는 것이 포함됩니다. 항상 수동 작업이 필요한 암호 관리자에는 1Password, Keeper 및 KeePass가 있습니다.
Internet Explorer 11은 HTTPS를 통해 로드된 페이지의 암호를 자동으로 채우지만 HTTP를 통해 로드된 페이지에서는 사용자 상호 작용이 필요합니다. 우리는 섹션 4에서 이러한 보수적인 행동조차도 여전히 일부 공격을 가능하게 한다는 것을 보여줍니다.
일부 암호 관리자는 특정 상황에서 자동 채우기를 위해 수동 상호 작용이 필요합니다.
- Chrome은 암호 필드가 iFrame에 있는 경우 수동 상호 작용이 필요합니다.
- Chrome은 Mac OS X의 시스템 전체 키 체인에 저장된 암호를 읽을 수 있지만 사용자가 한 번 이상 수동으로 선택할 때까지 암호를 자동으로 채우지 않습니다.
- Mac OS X에서 Safari 또는 Chrome이 시스템 키 체인의 암호에 처음 액세스하면 시스템 대화 상자가 사용자에게 사용 권한을 요청합니다. 사용자가 "Always Allow(항상 허용)"를 선택한 경우, 이 대화상자는 다시 표시되지 않고 이후에 비밀번호가 자동으로 채워집니다. 암호가 iCloud Keychain을 사용하여 다른 장치에서 동기화된 경우에는 이 대화 상자가 나타나지 않습니다.
- LastPass 및 Norton IdentitySafe는 자동 채우기를 비활성화할 수 있는 기본이 아닌 구성 옵션을 제공합니다. 이 문서에서는 이러한 암호 관리자의 기본 구성에 대해서만 설명합니다.
Autofill policies
다음으로, PM에 암호를 저장한 시점의 로그인 페이지와 약간 다른 로그인 페이지가 표시되면 어떻게 되는지 묻습니다. PM이 자동 채우기를 적용해야 합니까, 말아야 하나요? PM마다 행동이 다르며 우리는 발견한 정책을 조사합니다. 표 1은 일부 결과를 요약한 것입니다.
Additional PM Features
일부 암호 관리자는 다음과 같은 보안 기능을 갖추고 있습니다:
Threat Model
다음 섹션에서는 검사한 모든 관리자로부터 암호를 추출하는 암호 관리자에 대한 여러 가지 공격에 대해 설명합니다. 첫째, 공격자의 능력과 목표를 정의합니다. 우리는 능동적인 중간 네트워크 공격자만 고려합니다. 즉, 공격자가 사용자의 컴퓨터에서 발생하거나 사용자의 컴퓨터로 향하는 임의의 네트워크 트래픽을 간섭하고 수정할 수 있다고 가정합니다. 그러나 표준 중간자 공격과 달리 공격자가 있는 경우 사용자가 대상 웹 사이트에 로그인할 필요가 없습니다. 대신 설정은 두 단계로 구성됩니다:
Conclusions
이 논문에서 우리는 다양한 암호 관리자를 조사했고, 그들이 매우 다르고 일관성이 없는 자동 채우기 정책을 따르는 것을 발견했습니다. 우리는 악의적인 커피숍 공격자가 이러한 정책을 활용하여 사용자 상호 작용 없이 사용자의 저장된 암호를 훔칠 수 있는 방법을 보여주었습니다. 또한 암호 관리자는 HTTPS 인증서 유효성 검사 오류가 있는 경우와 같은 특정 조건에서 자동 입력하지 않고 신뢰할 수 없는 JavaScript가 영향을 미치지 않는 신뢰할 수 있는 브라우저 UI를 통해 사용자 상호 작용을 요구하는 두 가지 단계만 수행하면 이러한 공격을 방지할 수 있음을 입증했습니다. 마지막으로, 우리는 특정 상황에서 암호를 수동으로 입력하는 것(예: HTTP를 통해 가져왔지만 HTTPS를 통해 제출된 로그인 페이지)보다 암호 관리자를 자동으로 입력하는 것을 더 안전하게 만드는 방어인 보안 채우기를 제시했습니다. 우리는 이 작업이 비밀번호 관리자의 보안을 향상시키고 개발자들이 우리의 향상된 기능을 채택하도록 장려하기를 바랍니다.
우리는 결과를 비밀번호 관리자 공급업체에 공개하여 정책에 대한 몇 가지 변경 사항을 자동으로 적용했습니다. 결과에 따라 LastPass는 더 이상 iFrames의 암호 필드를 자동으로 채우지 않으며, 1Password는 더 이상 HTTP 페이지의 HTTPS 페이지에서 암호를 채우지 않습니다