방문하는 사이트에서 생성되는 작은 파일인 쿠키는 현대 웹의 근간을 이룹니다. 쿠키는 브라우징 정보를 저장하여 사이트가 사용자의 로그인 상태를 유지하고 사이트 설정을 기억할 수 있도록 함으로써 온라인 경험을 더 편리하게 만들어 줍니다. 이러한 강력한 유용성 때문에 쿠키는 공격자들에게 매우 수익성 높은 표적이 되기도 합니다.
웹상의 많은 사용자가 웹 계정에 대한 공격자의 접근을 허용하는 쿠키 탈취 멀웨어의 피해를 입고 있습니다. 서비스형 멀웨어(MaaS, Malware-as-a-Service) 운영자들은 쿠키 탈취 멀웨어를 퍼뜨리기 위해 주로 사회 공학적 기법을 사용합니다. 이들은 심지어 사용자가 기기에 멀웨어를 설치하도록 여러 번의 경고를 무시하게 설득하기도 합니다. 설치된 멀웨어는 대개 브라우저의 모든 인증 쿠키를 원격 서버로 유출하며, 이를 통해 공격자는 침해된 계정을 선별하고 판매할 수 있게 됩니다. 이와 같은 쿠키 탈취는 로그인 이후에 발생하기 때문에, 2단계 인증(2FA)이나 로그인 시점의 기타 평판 확인 절차를 모두 우회합니다. 또한, 탈취된 쿠키는 멀웨어가 감지되어 제거된 후에도 계속 작동하기 때문에 백신 소프트웨어를 통해 대응하기가 어렵습니다. 그리고 특히 데스크톱 운영체제에서 쿠키와 운영체제가 상호작용하는 방식 때문에, 크롬을 비롯한 브라우저들은 브라우저 자체와 동일한 수준의 접근 권한을 가진 멀웨어로부터 쿠키를 보호할 수 없는 실정입니다.
이 문제를 해결하기 위해, 저희는 사용자를 쿠키 탈취로부터 더욱 안전하게 보호할 수 있는 '디바이스 바인딩 세션 자격 증명(DBSC, Device Bound Session Credentials)'이라는 새로운 웹 기능을 프로토타이핑하고 있습니다. 이 프로젝트는 오픈 웹 표준이 되는 것을 목표로 github.com/WICG/dbsc에서 공개적으로 개발되고 있습니다.
DBSC는 인증 세션을 기기에 바인딩함으로써, 쿠키를 유출하더라도 더 이상 가치가 없게 만들어 쿠키 탈취 산업을 무력화하는 것을 목표로 합니다. 저희는 이것이 쿠키 탈취 멀웨어의 성공률을 실질적으로 낮출 것이라고 생각합니다. 공격자는 기기 내에서 로컬로 활동할 수밖에 없게 되며, 이는 백신 소프트웨어뿐만 아니라 기업용 관리 기기에서도 온디바이스 탐지 및 치료를 더욱 효과적으로 만들어 줄 것입니다.
이전의 경험을 바탕으로, 저희의 목표는 모든 사이트(규모에 상관없이)에 배포하기 실용적인 기술 솔루션을 구축하고, 폭넓은 채택을 보장하기 위해 업계의 지원을 장려하며, 사용자의 개인정보 보호를 유지하는 것입니다.
기술적 솔루션
높은 수준에서 볼 때, DBSC API는 서버가 기기상의 특정 브라우저와 새 세션을 시작할 수 있도록 합니다. 브라우저가 새 세션을 시작하면 기기 로컬에 새로운 공개 키/개인 키 쌍을 생성하고, 운영체제를 사용하여 개인 키를 내보내기 어려운 방식으로 안전하게 저장합니다. 크롬은 윈도우 11의 필수 사항이며 점차 보편화되고 있는 신뢰할 수 있는 플랫폼 모듈(TPM)과 같은 기능을 키 보호에 사용할 것이며, 소프트웨어 격리 솔루션 지원도 검토하고 있습니다.
이 API를 통해 서버는 세션을 이 공개 키와 연결하여 기존 쿠키를 대체하거나 보완할 수 있으며, 세션 수명 동안 개인 키의 소유 증명을 확인합니다. 지연 시간(latency) 측면에서 이를 실용적으로 만들고 기존 쿠키 기반 솔루션의 마이그레이션을 돕기 위해, DBSC는 웹사이트의 전용 DBSC 엔드포인트를 통해 이러한 키를 사용하여 단기 쿠키의 최신성을 유지합니다. 이는 일반적인 웹 트래픽과는 별도의 대역 외(out-of-band)에서 발생하므로 기존 웹사이트 및 앱에 필요한 변경 사항을 줄여줍니다. 이를 통해 세션이 여전히 동일한 기기에 있음을 보장하며, 서버가 설정한 정기적인 간격으로 이를 강제합니다. 현재의 자세한 구현 사항은 공개 설명서(explainer)를 참조해 주세요.
사용자 개인정보 보호
각 세션은 고유한 키로 뒷받침되며, DBSC는 사이트가 동일한 기기 내의 서로 다른 세션 키를 서로 연관시킬 수 없도록 하여 지속적인 사용자 추적이 추가되지 않도록 보장합니다. 사용자는 크롬 설정에서 사이트 데이터를 삭제하여 생성된 키를 언제든지 삭제할 수 있습니다. 단기 쿠키의 대역 외 갱신은 사용자가 세션을 활발하게 사용 중인 경우(예: 웹사이트 탐색 중)에만 수행됩니다.
DBSC는 브라우저가 어떤 유형의 보안 저장소를 제공할 수 있다는 사실 외에 기기에 대한 어떠한 유의미한 정보도 유출하지 않습니다. 서버에 전송되는 유일한 정보는 나중에 키 소유 증명을 인증하는 데 사용되는 세션별 공개 키뿐입니다.
저희는 사용자 기기의 현재 하드웨어 성능을 바탕으로 크롬이 초기에는 데스크톱 사용자의 약 절반 정도에 대해 DBSC를 지원할 것으로 예상합니다. 저희는 이 표준이 클라이언트 하드웨어를 기준으로 사용자를 분류(segment)하는 데 남용되지 않도록 개발하는 데 전념하고 있습니다. 예를 들어, 하드웨어 성능에 관계없이 모든 사용자에 대해 소프트웨어 키 지원을 고려할 수 있습니다. 이를 통해 DBSC가 서버로 하여금 하드웨어 기능이나 기기 상태(즉, 기기가 Play Protect 인증을 받았는지 여부)에 따라 사용자를 차별하지 못하도록 보장할 것입니다.
DBSC는 크롬의 제3자 쿠키 단계적 폐지 방향과 완전히 일치할 것입니다. 제3자 컨텍스트에서 DBSC는 사용자 설정 및 기타 요인에 따라 제3자 쿠키와 동일한 가용성 및/또는 분류 기준을 가질 것입니다. 이는 제3자 쿠키가 폐지된 후 DBSC가 새로운 추적 벡터가 되지 않도록 하는 동시에, 그전까지는 해당 쿠키들이 완전히 보호될 수 있도록 하기 위함입니다. 사용자가 쿠키, 제3자 쿠키 또는 특정 사이트의 쿠키를 완전히 거부하는 경우, 해당 시나리오에서는 DBSC도 비활성화됩니다.
사용자 보호 개선
저희는 현재 크롬 베타를 실행하는 일부 구글 계정 사용자를 보호하기 위해 DBSC 프로토타입을 실험하고 있습니다. 이는 복잡한 사이트에서 프로토콜의 신뢰성, 타당성 및 지연 시간을 측정하는 동시에 사용자에게 유의미한 보호를 제공하기 위한 초기 이니셔티브입니다. 완전히 배포되면 개인 및 기업 사용자는 구글 계정에 대해 강화된 보안을 자동으로 적용받게 됩니다. 또한, 저희는 구글 워크스페이스(Google Workspace) 및 구글 클라우드(Google Cloud) 고객에게 또 다른 계정 보안 계층을 제공하기 위해 이 기술을 활성화하는 작업을 진행 중입니다.
이 프로토타입은 크롬과 구글 계정이 함께 작동하는 방식에 통합되어 있지만, 저희가 구축하고자 하는 공개 API의 모든 측면에 정보를 제공하고 이를 검증하고 있습니다.
구글 외부의 관심
쿠키 탈취로부터 사용자를 보호하고자 하는 Okta와 같은 ID 공급자(IdP), 여러 서버 제공업체, 그리고 마이크로소프트 엣지(Microsoft Edge)와 같은 브라우저들이 DBSC에 관심을 표명했습니다. 저희는 개인정보를 보호하는 방식으로 다양한 종류의 웹사이트에 적용 가능한 표준을 제시할 수 있도록 모든 이해관계자와 협력하고 있습니다.
진행 상황 확인하기
개발은 GitHub에서 이루어지며 예상 타임라인도 게시해 두었습니다. 이곳에 공지사항과 업데이트된 예상 일정을 게시할 예정입니다. 저희의 목표는 2024년 말까지 모든 관심 있는 웹사이트가 오리진 트라이얼(origin trials)을 이용할 수 있도록 하는 것입니다. 참여를 원하시면 연락해 주시기 바랍니다. GitHub에서 새로운 이슈를 생성하거나 토론을 시작하여 모든 소스로부터의 피드백을 환영합니다.