블로그로 돌아가기

Canvas 핑거프린트란? 원리, 확인 방법과 보호 대책

Canvas 핑거프린트는 가장 흔한 브라우저 핑거프린팅 기술 중 하나입니다. 웹사이트는 이를 이용해 기기를 식별하고 사용자를 추적할 수 있습니다. 이 글에서는 작동 원리, 다른 핑거프린트와의 차이, 확인 방법, 일반 사용자를 위한 개인정보 보호 방법을 설명합니다.

웹을 탐색할 때 발생하는 클릭, 마우스 움직임, 기기 모델, 운영체제 버전은 웹사이트에서 조합되어 고유한 식별자가 될 수 있습니다. 이것이 브라우저 핑거프린트입니다. 여러 핑거프린팅 기술 중 Canvas 핑거프린트는 가장 흔하고 안정적인 방식 중 하나입니다. 눈에 보이지 않지만 웹사이트는 방문자를 식별하기 위해 오랫동안 이를 사용해 왔습니다.

Canvas란 무엇인가요?

Canvas는 HTML5가 제공하는 그리기 요소로, 웹페이지 안의 빈 캔버스와 같습니다. 개발자는 JavaScript를 이용해 그래픽, 텍스트, 이미지를 그릴 수 있으며 차트, 게임, 이미지 처리 등 다양한 시각 효과를 구현할 수 있습니다. 현대 웹사이트의 많은 인터랙티브 효과에 Canvas가 사용됩니다.

Canvas 핑거프린트는 어떻게 생성되나요?

서로 다른 기기에 “같은 그림을 그리라”고 해도 결과가 완전히 같지는 않습니다. 렌더링 과정이 하드웨어와 소프트웨어에 모두 의존하기 때문입니다.

  • 그래픽 카드와 드라이버: 그래픽 렌더링은 GPU가 담당하며, 그래픽 카드와 드라이버에 따라 안티앨리어싱, 그라데이션, 색상 처리에 미세한 차이가 생깁니다;
  • 운영체제: Windows, macOS, Linux는 글꼴 렌더링과 그래픽 인터페이스 구현 방식이 다릅니다;
  • 브라우저와 엔진: 브라우저마다 Canvas API 구현에 차이가 있습니다;
  • 디스플레이와 색상 설정: 색역, 감마 값 등도 최종 출력에 영향을 줄 수 있습니다.

웹사이트는 보통 스크립트를 이용해 방문자의 브라우저가 Canvas에 동일한 내용, 주로 그래픽과 텍스트의 조합을 그리도록 합니다. 그런 다음 Canvas 내용을 이미지 데이터로 변환하고 hash를 계산합니다. 기기마다 렌더링 결과가 달라질 수 있기 때문에 이 hash는 비교적 안정적인 “기기 핑거프린트”가 됩니다.

Canvas 렌더링의 픽셀 차이가 기기 hash 신호로 변환되는 전체 과정

차이는 매우 미세할 수 있습니다. 같은 그래픽이 두 기기에서 안티앨리어싱된 가장자리의 몇 픽셀만 다르게 보일 수도 있지만, 계산된 hash는 완전히 달라질 수 있으며 이것만으로도 기기를 구분하기에 충분할 수 있습니다.

Canvas 핑거프린트는 어디에 사용되나요?

  • 식별 및 추적: 로그인하지 않은 상태에서도 웹사이트가 Canvas 핑거프린트를 통해 기기를 기억하고 페이지 간, 경우에 따라 사이트 간 활동을 연결할 수 있습니다;
  • 부정행위 방지와 리스크 관리: 전자상거래, 결제, 소셜 플랫폼은 대량 가입이나 계정 공유 같은 비정상 행동을 식별하는 데 Canvas 핑거프린트를 여러 리스크 신호 중 하나로 사용할 수 있습니다;
  • 광고 타게팅: 일부 광고 네트워크는 사이트 간 행동 프로필을 만드는 데 활용합니다.

Canvas 핑거프린트 하나만으로 일반적으로 “당신이 누구인지”를 확정할 수는 없습니다. 이는 여러 신호 중 하나입니다. IP, User-Agent, 시간대, 글꼴 등과 결합되면 식별 능력이 크게 높아집니다.

Canvas, WebGL, 글꼴 핑거프린트의 차이

세 가지 모두 기기 렌더링 차이에 기반한 핑거프린트이지만 출처가 다릅니다.

  • Canvas 핑거프린트: 2D Canvas 렌더링 결과의 차이에서 생성됩니다;
  • WebGL 핑거프린트: 3D 그래픽 렌더링에서 생성됩니다. 웹사이트는 WebGL vendor, renderer string 같은 그래픽 렌더링 파라미터를 읽어 기기를 식별할 수 있습니다;
  • 글꼴 핑거프린트: 시스템에 설치된 글꼴 목록을 감지해 운영체제와 기기를 추정합니다.

이들은 웹사이트의 리스크 관리 시스템에서 “기기 환경 특성”을 구성하기 위해 함께 사용되는 경우가 많습니다.

내 Canvas 핑거프린트는 어떻게 확인하나요?

BrowserScan, PixelScan 같은 공개 핑거프린트 테스트 사이트를 이용할 수 있습니다. “browser fingerprint test”를 검색해 비슷한 도구를 찾을 수도 있습니다. 이런 사이트는 보통 Canvas, WebGL, 글꼴, 시간대 등 여러 핑거프린트 정보를 보여줍니다. 결과에 Canvas 핑거프린트가 존재한다고 나오거나 안정적인 hash가 표시되면 해당 기기가 이런 방식으로 표시될 수 있다는 뜻입니다. 다만 제3자 테스트 사이트의 결과는 참고용일 뿐이며 어떤 플랫폼의 공식 판정을 의미하지는 않습니다.

일반 사용자는 어떻게 보호할 수 있나요?

Canvas는 브라우저의 정상 기능이기 때문에 Canvas 핑거프린트를 완전히 없애기는 어렵습니다. 하지만 추적 정도를 줄일 수는 있습니다.

  • 개인정보 보호에 초점을 둔 브라우저를 사용하거나 브라우저의 개인정보 보호/엄격한 추적 방지 모드를 켭니다;
  • 핑거프린트 차단 확장 프로그램을 설치하여 Canvas 읽기를 차단하거나 noise를 주입합니다;
  • Cookie와 사이트 데이터를 정기적으로 삭제하여 핑거프린트와 계정 활동 사이의 장기적인 연결을 줄입니다;
  • 운영체제와 브라우저를 최신 상태로 유지합니다. 최신 브라우저에는 핑거프린트 추적을 제한하는 기능이 더 많이 내장되어 있습니다.

여러 비즈니스 환경을 관리해야 한다면?

크로스보더 운영이나 다계정 관리에서는 관점이 다릅니다. 팀의 목표는 “자신을 숨기는 것”이 아니라 각 비즈니스 계정을 안정적이고 제어 가능한 환경에서 운영하고 기기 특성이 서로 간섭해 생길 수 있는 오판을 줄이는 것입니다.

PurpleMark는 브라우저 환경을 만들 때 Canvas, WebGL, 글꼴 등 핑거프린트 파라미터를 설정할 수 있게 합니다. 서로 다른 환경은 다른 기기 특성을 나타내면서도 각 환경 내부에서는 파라미터를 일관되게 유지할 수 있습니다. 이를 통해 각 스토어나 계정은 매번 실행할 때마다 바뀌는 대신 장기간 안정적인 “기기 프로필”을 유지할 수 있습니다. 핑거프린트 파라미터는 환경 구성 기능이라는 점을 강조할 필요가 있습니다. 실제 비즈니스 규정 준수 여부는 사용하는 플랫폼의 정책을 따르는지에 달려 있습니다. 환경 관리 도구는 신원을 사칭하거나 플랫폼 규칙을 우회하는 용도로 사용할 수 없으며 그렇게 사용해서도 안 됩니다.

자주 묻는 질문

Canvas 핑거프린트가 한 사람을 고유하게 식별할 수 있나요? 단독으로는 드뭅니다. 보통 여러 결합 신호 중 하나이며 IP, 시스템 정보, 행동 데이터와 함께 사용될 때 식별력이 높아집니다.

JavaScript를 비활성화하면 Canvas 핑거프린트를 막을 수 있나요? 대부분의 사이트에서 수집을 막을 수 있지만 많은 웹사이트가 정상적으로 동작하지 않을 수 있습니다. 개인정보 보호 브라우저나 핑거프린트 차단 확장 프로그램이 더 균형 잡힌 방법입니다.

Canvas 핑거프린트는 바이러스인가요? 아닙니다. 웹사이트의 정상적인 스크립트 동작이며 악성 프로그램이 아닙니다. 다만 개인정보 추적과 관련이 있어 논란이 되는 기술입니다.

핑거프린트 테스트 사이트에서 비정상 결과가 나오면 기기에 문제가 있다는 뜻인가요? 반드시 그렇지는 않습니다. 테스트 도구마다 알고리즘과 참조 데이터베이스가 다르므로 결과는 참고용입니다. 실제로 중요한 것은 사용 중인 플랫폼에서의 계정 상태입니다.