광고주들이 사용자를 추적하는 새로운 방법이 등장했고, 이를 완전히 막을 방법은 사실상 없습니다.
이 기술의 이름은 캔버스 핑거프린팅(Canvas Fingerprinting)입니다. 백악관 공식 홈페이지(Whitehouse.gov)부터 데이팅 사이트 Plenty Of Fish에 이르기까지, 전 세계 상위 10만 개 웹사이트 중 약 5%에서 이 추적 기술이 사용되고 있는 것으로 알려졌습니다.
캔버스 핑거프린팅은 웹사이트가 방문자의 브라우저에 고유한 '지문'을 남기는 방식으로 작동합니다. 덕분에 브라우저 쿠키 없이도 사용자를 식별하고 추적할 수 있게 됩니다(다만 오차 범위가 존재하는데, 이 부분은 뒤에서 자세히 다루겠습니다).
이 기술이 가져오는 프라이버시 문제는 매우 심각합니다. 특히 가장 큰 우려점은 최신 브라우저에 기본 탑재된 '추적 금지(Do Not Track)' 기능을 아주 쉽게 무력화할 수 있다는 점입니다.
그렇다면 캔버스 핑거프린팅은 정확히 어떻게 작동하고, 왜 걱정해야 할까요? 지금부터 하나씩 살펴보겠습니다.
캔버스 핑거프린팅은 어떻게 작동할까?
작동 원리는 의외로 간단합니다. 이 기술은 HTML5 캔버스(Canvas) 요소를 활용합니다. 캔버스 핑거프린팅 트래커가 설치된 사이트에 사용자가 접속하면, 화면에는 보이지 않는 선 하나를 그립니다.

여기서 중요한 것은 이 선이 그려지는 과정입니다. 사용자 컴퓨터의 구성 요소, 즉 그래픽 카드, 그래픽 드라이버, 브라우저, 운영체제의 조합에 따라 선이 미세하게 다르게 렌더링됩니다. 이 미세한 차이들을 모아 '지문'을 생성하고, 그 결과는 광고 관련 업체들 사이에서 공유됩니다.
그 결과, 서로 전혀 관련 없는 여러 웹사이트에서 동일한 사용자를 식별하는 것이 가능해집니다.
'그게 그렇게 고유한 정보일까?'
타당한 지적입니다. 식별 기준을 생각해보면 상당수 사용자의 설정이 서로 겹칠 수밖에 없습니다.
예를 들어 이 글을 작성하는 데 사용한 노트북을 생각해봅시다. 2012년형 13인치 맥북 프로에 최신 버전의 OS X 매버릭스와 내장 인텔 HD4000 그래픽용 최신 드라이버를 사용하고 있다고 가정해 보겠습니다.

이런 구성의 컴퓨터를 사용하는 사람은 분명 세계적으로 수백만 명에 달합니다. 해당 모델은 전 세계로 수백만 대가 출하되었고, 대부분 최신 소프트웨어로 업데이트해 사용하고 있을 테니까요.
그렇다면 HTML5 캔버스 API로 선 하나를 렌더링하는 방식만으로 특정 개인을 의미 있게 식별하는 것이 가능할까요? 업계에서는 가능하다고 보고 있습니다. 특히 다른 식별 가능한 정보 소스들까지 결합하면 더욱 그렇습니다.
인터넷을 사용하는 동안 우리 컴퓨터에 대한 수많은 정보가 외부로 새어 나갑니다. 앞서 예로 든 노트북의 경우를 보면, 사용자가 영국에 산다고 가정해 봅시다. 시간대(timezone) 정보만으로도 잠재적인 하드웨어 일치 후보가 크게 줄어듭니다.
여기에 시스템 언어가 영어(미국)로 설정되어 있다면 어떨까요? 해당 시간대에서 같은 하드웨어 구성과 같은 언어 설정을 사용하는 사람은 훨씬 더 적어질 것입니다.
우리는 인터넷을 탐색하는 동안 스스로도 인식하지 못한 채 수많은 정보를 흘리고 있습니다. 바로 이 정보들이 캔버스 핑거프린팅을 강력한 추적 도구로 만드는 핵심 요소입니다.
'그래서 나에게 무슨 의미가 있는데?'
사실 이 질문에 대한 답은 경우에 따라 다릅니다. '추적 금지' 설정을 무력화하는 코드를 실제로 심어둔 사이트는 아직 소수에 불과합니다. 대부분의 사이트는 기존의 전통적인 추적 방식을 사용하거나, 아예 추적을 하지 않습니다.

하지만 수백만 명이 사용하는 광고 차단 프로그램을 설치하고 있다면 이야기가 달라집니다. 캔버스 핑거프린팅은 광고 차단기를 우회해 사용자를 추적하고, 브라우징 기록에 기반한 준개인화 광고를 제공하는 새로운 수단이 될 수 있습니다. 그리고 이를 막을 방법은 많지 않습니다.
'그럼 막을 방법은 없는 건가?'
있습니다. 다만 완벽하지는 않습니다.
광고로 수익을 창출하는 웹사이트의 소스 코드를 살펴보면, 광고가 현재 접속 중인 도메인이 아닌 별도의 도메인에서 제공되는 것을 확인할 수 있습니다.

이는 광고가 전문 광고 회사들이 운영하는 강력한 콘텐츠 배포 네트워크(CDN)를 통해 빠르게 전달되기 때문입니다. 사용자의 브라우징 속도를 늦추지 않으면서 광고를 삽입하기 위해서죠.
광고 차단 프로그램은 바로 이 원리를 역이용합니다. 콘텐츠 배포 네트워크를 차단해 페이지에 광고가 삽입되지 않도록 하는 것입니다. CDN이 없으면 삽입도 없고, 광고도 없습니다.
이것이 바로 캔버스 핑거프린팅의 첫 번째 약점입니다. 선을 그리는 코드는 어딘가에서 반드시 로드되어야 하고, 핑거프린팅 결과 역시 어딘가로 전송되어야 합니다.
따라서 가장 악질적인 형태의 캔버스 핑거프린팅, 즉 인터넷 전역에서 사용자를 추적하는 형태는 충분히 차단 가능하며, 이를 막기 위한 진지한 기술적 움직임도 이미 시작되었습니다.
캔버스 핑거프린팅에는 또 다른 치명적인 약점이 있습니다. 캔버스 요소를 렌더링할 수 있는 최신 브라우저에 의존한다는 점입니다. 캔버스 요소는 JavaScript가 작동해야만 구동되므로, 브라우저에서 JavaScript를 비활성화하면 쉽게 무력화할 수 있습니다. 물론 요즘 대부분의 웹사이트는 JavaScript 없이는 제대로 작동하지 않기 때문에, JavaScript를 끄는 순간 브라우징 경험은 1994년으로 되돌아가는 셈입니다.
결국, 걱정해야 할까?
답은 '예스이자 노'입니다.
캔버스 핑거프린팅은 유연하고 혁신적인 기술로, 차단이 어렵긴 하지만 불가능한 것은 아닙니다.
동시에 아직은 드물게 사용되고 있습니다. 앞서 언급했듯이 상위 10만 개 웹사이트 중 실제로 이 기술을 사용하는 곳은 5%에 불과합니다. 여전히 전통적인 추적 방식이 타겟 광고의 주류를 이루고 있습니다.
여러분은 이 기술이 걱정되시나요? 혹시 사이트 운영자라면 캔버스 핑거프린팅 도입에 관심이 있으신가요? 아래 댓글로 의견을 나눠주세요.
사진 출처: Children Slook by Henrick Oprea (Map Of The Urban Linguistic Landscape), HTML Code (Marjan Krabei), 8OO years (David J Morgan)