블로그로 돌아가기

안티디텍트 브라우저는 계정 연계를 어떻게 줄일까? 3가지 지문 방식 정리

UA를 바꿨는데도 계정이 계속 연결된다면 왜 그런 걸까요? 이 글은 브라우저 지문을 변경하는 세 가지 기술적 접근과, 개별적으로 바꾼 값들이 서로 일치하지 않을 때 더 쉽게 탐지되는 이유를 설명합니다.

안티디텍트 브라우저를 사용하는 많은 사람이 같은 질문을 합니다. 이 도구는 실제로 어떻게 “지문을 바꾸는” 걸까? 변경 수준은 충분히 깊은가, 플랫폼의 리스크 관리 시스템은 여전히 이를 알아볼 수 있는가? UA를 바꾸고 캐시도 지웠는데 계정이 계속 연결된 경험이 있다면 이 글을 끝까지 읽어볼 만합니다. 단순히 특정 파라미터를 어떻게 입력하는지가 아니라, 안티디텍트 브라우저가 계정 간 연계를 줄이기 위해 사용하는 서로 다른 기술적 접근을 다룹니다.

먼저 이해할 점: 브라우저 지문은 서로 교차 검증할 수 있는 신호의 집합이다

브라우저 지문은 하나의 값이 아닙니다. 브라우저가 노출하는 정보를 조합한 프로필입니다. 운영체제와 커널, User-Agent, 화면 해상도, 언어, 시간대, 폰트, Canvas 결과, WebGL 및 GPU 파라미터, 오디오 컨텍스트, CPU와 메모리, 마이크와 카메라 같은 미디어 장치 등이 포함됩니다. 플랫폼은 이런 신호를 함께 보고 동일한 장치나 동일한 사람의 활동인지 판단합니다.

핵심은 이 신호들이 서로 연관되어 있다는 점입니다. 예를 들어 베이징 시간대와 영어 시스템 언어를 사용하는 브라우저가 1366×768 해상도, 특정 그래픽카드에 해당하는 WebGL renderer와 조합되어 있다면 전문적인 교차 검증에서는 부자연스럽게 보일 수 있습니다. 그래서 한두 개 파라미터만 바꿨을 때 문제는 “충분히 많이 바꾸지 않았다”가 아니라, 변경된 값이 나머지 환경과 맞지 않는 데 있을 수 있습니다.

지문 변경을 구현하는 세 가지 방식은 깊이가 크게 다르다

시중의 안티디텍트 브라우저는 대체로 세 가지 기술적 접근으로 나눌 수 있습니다. 차이를 이해하면 환경의 “깊이”가 어디에서 생기는지 알기 쉽습니다.

첫 번째 방식은 설정 파라미터만 변경하는 것입니다. UA, 해상도, 언어, 시간대처럼 브라우저가 직접 노출하는 기본 항목을 수정합니다. 구현 난이도가 낮고 초기에는 실제로 효과가 있었습니다. 하지만 이런 항목들은 서로 연결되어 있습니다. UA만 iPhone으로 바꾸고 나머지 신호가 데스크톱 Windows처럼 보이면 교차 검증에서 모순이 드러날 수 있습니다.

두 번째 방식은 스크립트 계층에서 반환값을 가로채는 것입니다. Canvas, WebGL, AudioContext 같은 인터페이스가 웹페이지에 반환하는 데이터를 스크립트 주입으로 다시 작성해 플랫폼이 처리된 지문을 읽도록 합니다. 단순 설정 변경보다 한 단계 깊고 더 많은 수집 지점을 다룰 수 있습니다. 대신 주입 자체가 감지 가능한 흔적을 남길 수 있고, 일부 리스크 시스템은 비정상적인 스크립트 실행 여부도 확인합니다.

세 번째 방식은 더 낮은 계층에서 지문 데이터의 출처를 일관되게 바꾸는 것입니다. 지문 관련 데이터를 브라우저 엔진에 더 가까운 수준에서 처리해, 실행 중 추가 스크립트로 덮어쓰는 대신 반환 정보의 출처가 실제 브라우저에 더 가까워지도록 합니다. 데이터가 더 native하게 동작하므로 일반 브라우저와의 행동 일관성이 높아지고, 일반적인 검사에서는 구분하기가 더 어려워집니다.

다만 기술적 깊이는 전체 요소 중 하나일 뿐입니다. 아무리 깊게 지문을 변경해도 다계정 환경 관리의 일부에 불과합니다. IP 지역, 시간대와 언어의 일치, WebRTC를 통한 실제 IP 유출 여부, Cookie와 계정 데이터의 실제 분리, 운영 행동의 일관성이 함께 환경의 신뢰도를 결정합니다.

설정 계층, 스크립트 가로채기 계층, 브라우저 엔진 계층과 신호 간 일관성의 관계

환경이 “충분히 깊은지” 판단하려면 다음 항목을 확인하자

홍보 문구만 믿기보다 사용하는 환경 도구가 다음 신호를 연동해 설정할 수 있는지 확인해 보세요.

  • 기본 정보를 하나의 프로필처럼 연동할 수 있는가. 운영체제, 커널 버전, UA, 언어, 시간대, 위치 정보를 한 환경에서 함께 설정할 수 있는지, UA만 따로 바꾸는 방식은 아닌지 확인합니다. 위치 정보는 보통 “IP 따라가기”, “실제 값 사용”, “사용자 지정” 같은 옵션이 필요합니다.
  • 구분력이 높은 지문을 다룰 수 있는가. Canvas, WebGL 렌더링 정보, WebGPU, WebRTC, 오디오 컨텍스트, 폰트 목록처럼 플랫폼이 자주 쓰는 식별 신호를 각각 설정할 수 있는지 확인합니다.
  • 하드웨어 신호를 관리할 수 있는가. CPU 코어 수, 메모리 크기, 장치 이름, MAC 주소 등을 환경별로 설정해 모바일 환경에서 데스크톱 CPU 특성이 나오는 식의 모순을 피할 수 있는지 확인합니다.
  • 세션과 데이터가 실제로 분리되는가. 각 환경이 별도의 Cookie와 로컬 데이터를 유지하고 서로 섞이지 않아, 계정 A의 로그인 상태가 계정 B로 넘어가지 않는지 확인합니다.

이런 항목을 모두 설정할 수 있고 한곳에서 관리할 수 있다면, 서로 무관한 파라미터를 모으는 방식보다 내부적으로 일관된 환경을 만들 여지가 더 큽니다.

PurpleMark에서 일관된 지문 환경 구성하기

PurpleMark는 파라미터 간 관계를 일반 설정 흐름에 포함합니다. 브라우저 환경을 만들 때 대부분의 지문 관련 신호가 하나의 설정 페이지에 모여 있습니다. 운영체제, Chromium 엔진 버전, User-Agent, 해상도, 브라우저 언어와 인터페이스 언어, 시간대와 위치 정보(IP 따라가기, 실제 값 사용, 사용자 지정), 폰트 목록, WebGL metadata, WebGPU, WebRTC, CPU, 메모리, 장치 이름, MAC 주소, 그리고 Canvas, WebGLImage, AudioContext, 미디어 장치, ClientRects, 음성 같은 더 세부적인 항목이 포함됩니다.

이 설정들을 한곳에 모아두는 장점은 PurpleMark에서 특정 비즈니스 지역용 환경을 만들 때 시스템, 엔진, 언어, 시간대, 위치 정보, 렌더링 관련 신호를 같은 위치에서 목표 지역에 맞게 설정할 수 있다는 점입니다. 서로 다른 페이지에서 값을 가져와 조합한 뒤 서로 충돌하는 상황을 줄일 수 있습니다.

여러 계정이나 시장을 동시에 운영한다면 플랫폼, 스토어, 고객, 지역별로 환경을 나눌 수 있습니다. 각 환경은 독립된 파라미터 조합, Cookie, 로컬 데이터를 사용할 수 있고, 그룹과 계정 연결 기능으로 올바른 환경을 빠르게 찾을 수 있습니다. 새 환경에서 검증된 설정을 다시 사용해야 한다면 PurpleMark의 글로벌 설정에 자주 쓰는 값을 워크스페이스 기본값으로 저장해 반복 작업을 줄일 수도 있습니다.

처음 사용하는 경우 PurpleMark 웹 버전에서 환경을 하나 만들어 보세요. 일관성에 큰 영향을 주는 지역과 언어부터 설정하면 연동된 파라미터와 무작위 조합의 차이를 쉽게 확인할 수 있습니다. 로컬 브라우저 기능이 필요하면 다운로드 페이지에서 클라이언트를 설치한 뒤 워크스페이스로 돌아오면 됩니다.

자주 묻는 질문

User-Agent만 바꾸면 계정 연계를 막을 수 있나요? 효과는 제한적입니다. UA는 플랫폼이 수집할 수 있는 여러 신호 중 하나일 뿐입니다. 운영체제, 해상도, 언어, 시간대, 렌더링 결과 등 다른 신호를 함께 조정하지 않으면 교차 검증에서 불일치가 오히려 더 눈에 띌 수 있습니다. 신뢰할 수 있는 환경을 만들려면 관련 파라미터를 함께 설정하고 일관성을 유지해야 합니다.

지문을 더 “낮은 계층”에서 변경할수록 항상 더 안전한가요? 구현 깊이에 따라 차이는 있지만 안전성은 한 계층만으로 결정되지 않습니다. IP와 지역의 일치, WebRTC 유출, Cookie 분리, 운영 행동의 일관성이 모두 환경 신뢰도에 영향을 줍니다. 도구를 선택할 때는 지문을 얼마나 “깊게” 바꾸는지만 비교하지 말고, 환경 파라미터, 네트워크, 세션, 일상 운영을 함께 관리할 수 있는지 확인하는 것이 중요합니다.