봇 보호의 프라이버시 비용: Cloudflare Turnstile 및 WebGL 핑거프린팅

봇 완화와 사용자 프라이버시 사이의 전쟁은 Cloudflare Turnstile과 함께 새로운 발화점에 도달했습니다. 번거로운 CAPTCHA를 대체하기 위해 설계되었지만, Turnstile의 "Verify you're human" 챌린지는 방문자가 실제 사람인지 아니면 자동화된 스크립트인지 판단하기 위해 종종 브라우저 핑거프린팅—특히 WebGL을 통해—에 의존합니다. 프라이버시를 강화한 브라우저나 틈새 WebKit 기반 엔진을 사용하는 사용자들에게 이는 무한한 검증 실패 루프를 초래하며, 사실상 웹의 상당 부분을 이용하지 못하게 만듭니다.

The WebGL 핑거프린팅 메커니즘

최근 보고에 따르면 Cloudflare Turnstile은 인간 검증을 통과하기 위해 핑거프린팅 가능한 WebGL 데이터를 요구하기 시작했습니다. WebGL (Web Graphics Library)은 사용자의 GPU, 드라이버 버전 및 하드웨어 기능에 대한 풍부한 정보를 제공합니다. 이러한 세부 정보는 종종 특정 하드웨어 구성에 대해 고유하거나 매우 구체적이기 때문에, 세션과 사이트를 가로질러 사용자를 추적하는 이상적인 핑거프린트 역할을 합니다.

브라우저가 사용자 프라이버시를 보호하기 위해 이 데이터를 차단하거나 무작위화할 때, Turnstile은 종종 해당 세션을 의심스러운 것으로 표시합니다. 이러한 관행에 대한 Cloudflare의 자체적인 정당화는 직설적입니다:

Turnstile은 당신이 인간임을 확인하기 위해 브라우저 핑거프린팅을 사용합니다. 핑거프린팅을 차단하거나 무작위화하는 프라이버시 도구는 당신의 브라우저를 신원을을 숨기려는 봇처럼 보이게 만듭니다. 이 사이트에 대해 일시적으로 핑거프린팅을 허용하면 문제를 해결할 수 있습니다.

이는 역설적인 상황을 만듭니다: 사용자가 브라우저를 보호하고 공격 표면을 줄이기 위해 더 많은 조치를 취할수록, 봇 탐지 알고리즘에는 더 "의심스러운" 것으로 나타납니다.

Alternative Browsers에 미치는 영향

이러한 추세는 비주류 브라우저를 사용하는 사람들에게 특히 큰 영향을 미칩니다. 예를 들어, WebKitGTK 기반 브라우저 사용자들은 Turnstile 챌린지에서 무한 루프에 빠진다고 보고했습니다. WebKit이 기본적으로 특정 핑거프린팅 벡터를 차단하기 때문에, 이러한 브라우저들은 Turnstile의 엄격한 요구 사항에 의해 사실상 차단됩니다.

흥미롭게도, 상황은 주요 브라우저마다 다릅니다:

  • Safari: Cloudflare가 예외를 허용하거나 Safari의 특정 완화 전략과 협력하기 때문에 일반적으로 통과합니다.
  • Firefox: 기본 설치 버전은 일반적으로 통과하지만, privacy.resistfingerprinting (주로 Tor Browser를 위해 설계된 설정)을 수동으로 활성화한 사용자는 종종 차단되거나 플래그가 지정됩니다.
  • Chromium Forks: Cromite와 같은 프라이버시 중심의 포크 버전들은 Turnstile과 지속적인 갈등을 겪고 있으며, 종종 챌린지를 통과하기 위해 특정 보안 플래그를 비활성화해야 합니다.

The Technical Debate: Security vs. Privacy

커뮤니티 논의는 이 문제를 어떻게 해결해야 하는지에 대해 깊은 분열을 보여줍니다. 일부는 AI 기반 봇의 시대에 핑거프린팅이 불가피한 악(evil)이라고 주장하며, Proof-of-Work (PoW)와 같은 대안이 생태학적으로 비용이 많이 들거나 IP reputation이 더 침해적이라고 제안합니다.

하지만 비판론자들은 이러한 접근 방식이 사용자로 하여금 자신의 인간성을 증명하기 위해 공격 표면을 넓히도록 강요한다는 점을 주장합니다. 한 사용자가 언급했듯이, Cloudflare의 구현 방식은 사용자들이 "모든 곳에서, 심지어 그들이 보호하지 않는 사이트에서도" 보안을 강화할 수 없게 만듭니다.

Proposed Alternatives and Mitigations

모든 프라이버시를 희생하지 않으면서 이러한 제한을 우제할 수 있는 몇 가지 기술적 제안이 등장했습니다:

  • Smarter Randomization: WebGL 액세스를 거부하거나 더미 데이터(dummy data)를 return할 때, 브라우저는 흔히 볼 수 있는 재현 가능한 하드웨어 패턴을 모어서(emulating) 모사할 수 있습니다 (예: 인기 있는 저사양 GPU를 모사함).
  • Canvas Blocking: 일부 사용자는 CanvasBlocker와 같은 확장 프로그램을 통해 성공을 수를 있었습니다. 이는 브라우저의 내장된 resistfingerprinting 모드보다 더 미묘한 무작위화(randomization)를 매우 사용할 수 있습니다.
  • Fallbacks: Cloudflare가 핑거프린트 없이 사이트에 대한 액세스를 단순히 차단하는 대신, PoW 챌린지처럼 더 유연한 폴백(fallback)을 구현해야 한다는 요구가 있습니다.

Conclusion

봇 탐지를 위한 의무적인 방침향으로의 전환은, 주요 서비스 제공업체에 의해 인식되어야만 콘텐츠에 대한 액세스 권한을 얻을 수 있는 "검증된 신원" 웹으로의 이동을 신호를합니다. 프라이버시를 중시하는 사용자에게, 현대 웹의 입장권은 점점 더 기기기의 고유한 하드웨어 핑거프린트의 포기라는 비용을써니다.

Sources