Cloudflare 3분 소요

봇 막겠다더니 내 지문을 채취한다고? Cloudflare Turnstile의 불편한 진실

“로봇이 아닙니다"에 체크하는 그 잠깐, 여러분의 브라우저는 무슨 일을 당하고 있을까요? 신호등이나 횡단보도를 고르라고 시키지도 않으면서 어떻게 사람과 봇을 구분하는 걸까요. 최근 Cloudflare의 Turnstile이 이 문제를 푸는 방식을 두고 보안 연구자들 사이에서 불편한 목소리가 커지고 있습니다.

Turnstile, 무엇이 그렇게 편리해 보였나

Cloudflare Turnstile은 2022년 베타로 등장해 reCAPTCHA의 대안으로 빠르게 자리 잡았습니다. 구글에 사용자 데이터를 넘기지 않아도 되고, 로딩 속도도 빠르고, 무엇보다 사용자가 거의 아무것도 하지 않아도 된다는 점이 강점이었죠. 체크박스를 한 번 누르거나 아예 보이지 않는 모드(Invisible)로 동작하기도 합니다.

겉으로 보면 마법 같습니다. 하지만 마법은 없습니다. 사용자가 아무 행동을 하지 않는데도 봇을 가려낸다는 건, 결국 브라우저 자체에서 무언가를 채취하고 있다는 뜻입니다. 그 무언가가 바로 최근 논란이 된 핑거프린팅(fingerprinting)입니다.

WebGL 지문, 도대체 뭘 가져가는 건가요

Turnstile이 백그라운드에서 수집한다고 지적받는 항목들은 꽤 깁니다. WebGL 렌더러 정보(GPU 모델명까지 노출됩니다), Canvas 렌더링 결과, 폰트 목록, 화면 해상도, 타임존, 브라우저 확장 프로그램의 흔적, 마우스 움직임 패턴까지.

특히 WebGL 핑거프린팅은 사용자의 그래픽카드와 드라이버 조합에서 나오는 미세한 렌더링 차이를 해시화하는 기법인데요. 같은 픽셀을 그려도 GPU가 다르면 결과가 미묘하게 달라지는 점을 이용합니다. 이렇게 만들어진 지문은 쿠키처럼 지울 수도 없고, VPN을 켜도 그대로 따라다닙니다. IP를 바꿔도 “이 사람, 어제 그 사람"이라고 알아본다는 뜻입니다.

“봇을 막으려면 어쩔 수 없잖아"라는 반박

물론 Cloudflare의 입장도 있습니다. 정교한 봇들이 브라우저 자동화 프레임워크로 진짜 사람처럼 위장하는 시대에, 신호 한두 개로는 절대 가려낼 수 없다는 거죠. 수십 가지 신호를 조합해야 머신러닝 모델이 “이건 사람”, “이건 봇"이라고 판정할 수 있습니다.

문제는 비례성입니다. 이 게시판에 댓글 하나 다는 일에, 광고 클릭 한 번에, 동영상 하나 재생하는 일에, 정말 사용자의 GPU 모델과 폰트 목록까지 가져가야 할까요? 그리고 그 데이터는 어디까지 저장되고, 누구와 공유되며, 얼마나 오래 보관될까요. Cloudflare가 “익명화한다"고 말해도, 핑거프린팅의 본질은 결국 식별입니다. 익명화된 식별이라는 말은 형용모순에 가깝습니다.

우회하려는 사람들과 막으려는 사람들의 군비경쟁

흥미로운 점은 이미 Turnstile을 자동으로 푸는 서드파티 솔버 서비스가 활발하게 운영되고 있다는 사실입니다. 헤드리스 브라우저에 정교한 지문을 입혀 통과시키는 서비스들이 시간당 몇 달러에 거래됩니다. 즉, 진짜 봇은 이미 통과하고 있고, 정직한 사용자만 지문을 빼앗기고 있다는 역설이 벌어지는 셈입니다.

여기에 Tor 브라우저, Firefox의 Resist Fingerprinting 모드, Brave의 핑거프린팅 차단 같은 프라이버시 도구를 쓰는 사용자들은 오히려 “이상한 트래픽"으로 분류돼 차단당하는 경우가 늘고 있습니다. 익명성을 지키려는 행동 자체가 의심의 신호가 되어버린 거죠. 이건 단순한 기술 문제가 아니라 웹 접근권의 문제로 번지고 있습니다.

GDPR과 ePrivacy, 법적 회색지대

유럽에서는 이 문제를 두고 법적 논쟁이 진행 중입니다. ePrivacy 지침은 “사용자 단말기에 저장되거나 접근하는 정보"에 대해 사전 동의를 요구하는데, 핑거프린팅은 명백히 단말기 정보에 접근하는 행위입니다. 그런데 Turnstile은 페이지 진입과 동시에 작동하기 시작합니다. 동의 배너를 띄울 시간조차 없습니다.

Cloudflare는 “보안상 필수적인 처리(strictly necessary)“라는 예외 조항에 기대고 있지만, 광고 추적 회사들이 같은 논리로 빠져나가려다 줄줄이 패소한 전례가 있습니다. “봇 방어"라는 명분이 어디까지 통할지는 앞으로 몇 년간 EU 데이터보호당국의 결정에 달려 있습니다.

우리는 무엇을 잃고 있나

여기까지 정리하면 결론은 분명합니다. CAPTCHA가 “신호등 고르기"의 짜증에서 벗어난 대가로, 우리는 보이지 않는 추적이라는 더 큰 비용을 치르고 있습니다. 클릭 한 번이 편해진 만큼 익명성은 한 칸씩 줄어들고 있는 셈입니다.

여러분은 “로봇이 아닙니다” 체크박스를 누르면서 무엇을 동의한 적이 있나요? 그리고 봇 방어와 사용자 프라이버시 중 어느 쪽이 더 우선되어야 한다고 생각하시나요? 다음에 그 작은 체크박스를 만났을 때, 잠깐 멈춰서 한번쯤 생각해볼 만한 질문입니다.

Cloudflare Turnstile 프라이버시 핑거프린팅 CAPTCHA

댓글

    댓글을 불러오는 중...