Firefox IndexedDB 취약점, 토르 브라우저(Tor Browser) 익명성 위협!
Firefox 기반 브라우저의 IndexedDB API에서 브라우저 프로세스 수명 동안 고유 식별자를 생성하는 취약점이 발견됨
IndexedDB 데이터베이스 이름의 순서가 고유 식별자로 사용되어, 서로 관련 없는 웹사이트 간의 사용자 추적이 가능해짐
토르 브라우저(Tor Browser)의 '새로운 신원' 기능에도 불구하고, 이 취약점으로 인해 세션 간의 격리가 무력화됨
Mozilla는 Firefox 150 및 ESR 140.10.0에서 패치를 릴리스했으며, 커뮤니티는 근본적인 해결책과 새로운 접근 방식에 대한 논의를 시작함
IndexedDB를 이용한 브라우저 지문 인식
본문은 Firefox 기반 브라우저의 IndexedDB(Indexed Database) API가 브라우저 프로세스 수명 동안 고유한 식별자를 생성하는 취약점을 지적한다. 특히, `indexedDB.databases()` API가 반환하는 데이터베이스 이름의 순서가 지문 인식(Fingerprinting)에 사용될 수 있음을 밝힌다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)를 우회하여, 서로 관련 없는 웹사이트가 동일한 브라우저 인스턴스를 식별할 수 있게 한다.
토르 브라우저(Tor Browser)에서의 심각성
이 취약점은 토르 브라우저(Tor Browser)의 익명성 보장을 심각하게 훼손한다. 토르 브라우저(Tor Browser)는 '새로운 신원' 기능을 통해 세션 간의 격리를 제공하지만, IndexedDB의 취약점으로 인해 이 기능이 무력화된다. 즉, 사용자가 '새로운 신원'을 선택하더라도, 웹사이트는 동일한 브라우저 프로세스 내에서 사용자의 활동을 추적할 수 있다. 이는 데이터 미저장 정책(Zero-Retention Policy)을 위협하는 심각한 문제이다.
취약점의 기술적 원인
취약점은 Firefox의 IndexedDB 구현에서 기인한다. 특히, Private Browsing 모드에서 데이터베이스 이름이 UUID로 매핑되고, 해시 테이블의 내부 구조와 삽입 순서에 따라 데이터베이스가 정렬되는 방식이 문제다. 이러한 정렬 순서는 브라우저 프로세스 수명 동안 유지되며, 해시 테이블(Hash Table)의 내부 구조에 따라 결정되므로, 고유한 식별자로 사용될 수 있다.
해결 방안 및 커뮤니티 반응
해결책은 IndexedDB API의 출력 순서를 표준화(Canonicalization)하는 것이다. Mozilla는 Firefox 150 및 ESR 140.10.0에서 패치를 릴리스했다. 커뮤니티에서는 근본적인 해결책으로 새로운 브라우저 엔진 개발, WebAssembly를 활용한 IndexedDB 구현, JavaScript 실행 차단 등 다양한 방안이 제시되었다. 일부에서는 웹 표준의 확장이 지문 인식에 악용될 수 있다는 우려를 표명했다.