쿠키, 스토리지, 그리고 서드파티 쿠키 이후의 추적

쿠키는 재방문한 브라우저를 알아보는 원조 방식이었고, 20년 동안은 그것으로 충분했습니다. 브라우저가 쿠키에 가한 변화는 핑거프린팅이 왜 다시 흥미로워졌는지를 설명해 줍니다.
퍼스트파티와 서드파티
퍼스트파티 쿠키는 주소창에 표시된 사이트가 설정합니다. 로그인 상태를 유지해 주는 것이 바로 이것입니다. 서드파티 쿠키는 페이지가 임베드한 콘텐츠의 다른 도메인, 예를 들어 광고 스크립트가 설정하며, 그것을 임베드한 모든 사이트에서 해당 도메인이 읽을 수 있습니다. 이 두 번째 속성이 사이트 간 추적을 쉽게 만들었습니다. 광고주 하나, 쿠키 하나, 모든 사이트입니다.
무엇이 바뀌었나
Safari는 2017년 Intelligent Tracking Prevention을 통해 서드파티 쿠키를 기본으로 차단하기 시작했고, 이후 여러 차례 강화했습니다. Firefox는 2019년 Enhanced Tracking Protection으로 뒤따랐고, 이어서 Total Cookie Protection을 도입했습니다. 이는 사이트마다 별도의 쿠키 보관함을 주어, 한 사이트에서의 서드파티 쿠키가 다른 사이트에서는 보이지 않게 합니다. Chromium은 임베드된 콘텐츠가 최상위 사이트별로 상태를 유지할 수 있도록 파티션된 쿠키(Partitioned 속성, “CHIPS”)를 도입했고, 서드파티 쿠키의 전면 제거를 발표하고, 미루고, 결국 한 발 물러나기까지 몇 년을 보낸 끝에 사용자 선택 방식으로 정리했습니다.
실질적인 결과는, 쿠키를 이용한 사이트 간 추적이 Safari와 Firefox에서는 신뢰할 수 없고 Chromium에서도 점점 파티션되고 있다는 것입니다. 프라이버시에는 좋은 일이며, 추적 업체들은 스토리지가 전혀 필요 없는 신호 쪽으로 옮겨 가게 되었습니다.
그 밖의 스토리지
localStorage, IndexedDB, Cache API는 본질적으로 퍼스트파티입니다. 기록한 오리진에 속하며, 이제 모든 주요 브라우저에서 최상위 사이트별로 파티션되므로 예전 서드파티 쿠키처럼 사이트 간 식별자로 쓸 수 없습니다. ETag와 캐시 기반 추적 기법도 존재하지만 취약하고 널리 완화되어 있습니다.
핑거프린팅이 공백을 메우는 이유
핑거프린트에는 스토리지가 필요 없습니다. 방문할 때마다 브라우저 자체의 속성에서 다시 계산되므로, 쿠키를 지워도 초기화되지 않고 파티셔닝으로도 격리되지 않습니다. 이것이 추적 업체들에게는 매력이고, “사이트 데이터 삭제”가 깨끗한 백지라고 생각한 사람에게는 위험입니다. 대응책도 다릅니다. 스토리지를 차단하는 것이 아니라 페이지가 읽을 수 있는 정보의 다양성을 줄이는 것이며, 사용자 에이전트 축소, canvas 노이즈, 렌더러 마스킹이 그 용도입니다.
진단이 보여 줄 수 있는 것
페이지는 쿠키가 활성화되어 있는지, Do Not Track 헤더가 설정되어 있는지를 보고할 수 있습니다(거의 어떤 사이트도 존중하지 않는 신호이기 때문에 브라우저들은 이를 없애고 Global Privacy Control로 대체하고 있습니다). 다른 사이트의 쿠키는 읽을 수 없으며, 신뢰할 만한 진단은 자체 쿠키를 설정하지 않습니다. PowerScan은 쿠키도 스토리지도 식별자도 없이 실행되며, 이는 브라우저의 개발자 도구에서 확인할 수 있습니다. 스캔 후 해당 사이트의 스토리지 패널은 비어 있습니다.
지금 격리가 의미하는 것
계정을 분리해 두려는 사람에게 쿠키는 쉬운 부분입니다. 프로필이 다르면 쿠키 보관함도 다릅니다. 어려운 부분은 핑거프린트입니다. 같은 기기에서 같은 브라우저를 쓰는 두 프로필은, 브라우저가 바꿔 주지 않는 한 모든 하드웨어와 렌더링 신호를 공유하기 때문입니다. 그것이 다음 글의 주제입니다.


