브라우저 핑거프린트란? 개별 항목은 평범해도, 합치면 당신을 알아본다
사이트가 당신을 알아보는 데 로그인은 필요 없습니다. 당신의 기기에 무언가를 심을 필요도 없습니다. 브라우저는 페이지를 열 때마다 스스로 일련의 정보를 내놓습니다.
이 정보는 모아 놓으면 충분히 안정적이라, 방문 기록을 지워도 살아남습니다. 낯선 사이트도 같은 기기라는 걸 알아봅니다. 이것이 브라우저 핑거프린트입니다.
MostMate는 다계정 운영을 위한 핑거프린트 브라우저입니다. 이 도구가 다루는 것은 바로 이 이야기의 반대편입니다. 한 대의 컴퓨터에서 각 계정에 독립적이고, 서로 모순되지 않는 브라우저 정체성을 부여하는 것입니다.
아래에서는 네 가지 질문을 따라갑니다. 핑거프린트는 무엇으로 이루어지는지, 사이트는 어느 경로에서 그것을 얻는지, 스크립트를 끄면 피할 수 있는지, 그리고 직접 한 번 시험해 보는 방법입니다.
하나하나는 흔하지 않다, 합쳐야 사람을 알아본다
하나씩 따로 보면 어느 것도 사람을 알아보는 데 쓸 수 없을 만큼 평범합니다. 1366×768 화면은 어디에나 있고, Chrome 식별 문자열도 널려 있습니다. 동8구 시간대에는 수억 명이 살고 있습니다.
실제로 작동하는 것은 교집합입니다. 화면 크기가 한 겹의 체이고, 운영체제가 한 겹, 그래픽카드 모델이 한 겹, 글꼴 목록과 시간대, 언어 설정이 각각 한 겹입니다. 겹칠 때마다 남는 사람이 줄어들고, 일곱여덟 겹쯤 쌓이면 대개 한 명만 남습니다.
EFF는 2010년에 공개 실험을 진행해 약 47만 건의 브라우저 정보를 모았습니다. 그중 83.6%는 이 체 조합 아래에서 이미 유일했습니다.
연구자들은 결과를 정보량으로 환산해, 브라우저 한 대가 평균적으로 최소 18.1비트의 식별력을 지닌다고 계산했습니다. 무작위로 한 대를 골라도 약 28만 대에 한 대만 부딪힙니다. 실험의 전체 결론은 EFF의 공개 보고서에 적혀 있습니다. 이 숫자는 이후 거듭 인용되었고, 거듭 오독되었습니다.
이 숫자는 "모두가 벌거벗은 채 뛰어다닌다"로 읽히기 쉽습니다. 하지만 오히려 이렇게 받아들이는 편이 낫습니다. 핑거프린트의 강도는 어떤 항목이 얼마나 희귀한지에서 오는 게 아니라, 얼마나 많은 항목이 동시에 맞아떨어지는지에서 옵니다. 특별히 드문 값 하나는 오히려 그 기기를 통계적으로 튀어 보이게 만듭니다.
항목 수보다 더 중요한 것이 하나 있습니다. 바로 안정성입니다. 핑거프린트가 쓸모 있는 이유는 내일도, 다음 달에도 같은 자리에 있기 때문입니다. 켤 때마다 다른 파라미터 한 세트를 내놓는 브라우저는 매일 새로운 식별 단서를 스스로 제공하는 것과 같습니다.
세 연구가 세 숫자를 내놓는다, 차이는 샘플링 방식에 숨어 있다
숫자 하나만 기억하면 잘못된 결론에 이르기 쉽습니다. 같은 종류의 연구는 한 번만 이루어진 게 아니며, 조건이 다르면 결과도 크게 달라집니다.
| 연구 | 표본 규모 | 고유 핑거프린트 비율 | 표본 출처 |
|---|---|---|---|
| EFF, 2010 | 약 47만 건 | 83.6% | 자발적으로 검사를 받은 방문자 |
| INRIA, 2016 | 약 11.9만 건 | 89.4% | 자발적으로 검사를 받은 방문자 |
| 프랑스 사이트, 2018 | 약 207만 건 | 33.6% | 일반 뉴스 사이트의 자연 방문자 |
앞의 두 줄은 검사 전문 사이트에서 나온 데이터입니다. 자발적으로 검사를 받으러 오는 사람은 원래 프라이버시에 더 관심이 많고, 기기와 설정도 일반 인터넷 사용자보다 정돈되어 있습니다.
세 번째 줄은 상황이 다릅니다. 수집 스크립트는 트래픽 상위 15위 안에 드는 프랑스 뉴스 사이트에 걸려 있었고, 두 페이지의 자연 방문자로부터 데이터를 모았습니다. 날씨 예보와 정치 뉴스입니다. 사용된 속성은 여전히 같은 십몇 개 항목이었습니다.
같은 속성 세트라도 측정 대상이 바뀌면 고유 비율은 90%에 가까운 값에서 3분의 1로 떨어집니다.
그래서 고유성은 기기에 내재한 고정 속성이 아닙니다. 그것은 세 가지가 동시에 성립하는지에 달려 있습니다. 몇 개 항목을 수집했는지, 누구를 대상으로 수집했는지, 어떤 방식으로 수집했는지. 2021년이 되자 연구자들은 속성을 십몇 개에서 200여 개로 늘려 다시 측정했습니다. 고유 비율은 다시 81%로 돌아갔습니다. 항목 수가 늘면 사람은 갈라집니다.
그 프랑스 사이트 연구에는 더 실용적인 발견도 있었습니다. 고유하지 않은 핑거프린트는 "취약하다"고 표현되었습니다.
원래 수만 명과 겹치던 기기도 설정을 조금만 건드리면 유일한 층으로 떨어질 수 있습니다. 브라우저 업데이트, 확장 프로그램 하나 추가, 해상도 한 번 변경, 모두 해당합니다. "나는 남과 부딪혔다"는 안전의 증거가 아니라, 아직 분리되지 않았을 뿐입니다.
핑거프린트에는 세 개의 입구가 있고, 스크립트에 의존하는 것은 하나뿐이다
"사이트가 도대체 무엇을 보는가"를 물으려면 세 층으로 나눠 봐야 합니다. 세 층 가운데 스크립트에 의존하는 것은 맨 아래 층뿐이고, 나머지 두 층은 스크립트가 실행되기 전에 이미 완료됩니다. 공식 사이트에서 환경 격리를 설명할 때도 기기, 브라우저, 네트워크 세 층으로 나눕니다.
연결 계층: 요청이 나가기도 전에 주소가 기록된다
페이지를 열기 전에 브라우저는 먼저 서버와 한 번 핸드셰이크하고 나서 요청을 보냅니다. 이 과정에서 서버는 이미 당신의 출구 주소와 협상 파라미터 한 세트를 확보합니다.
협상 파라미터에는 양측이 지원하는 암호화 방식, 확장 항목, 선호 순서가 포함됩니다. 무엇을 어떤 순서로 보고하는지는 브라우저 버전과 실행 환경이 결정합니다. 이 값들은 페이지 내용과 무관하고 동의를 구할 필요도 없으며, 통신 자체의 부산물입니다.
주소에 이 파라미터 세트가 더해지면 이미 한 차례의 거친 선별이 가능합니다. 회선이 어느 통신사에 속하는지, 상대가 어떤 버전, 어떤 브라우저인지 대략 짐작할 수 있습니다.
요청 헤더 계층: 브라우저가 매번 몇 가지를 먼저 알린다
요청 헤더는 브라우저가 요청에 덧붙이는 설명입니다. 거의 매번 등장하는 항목도 몇 가지 있습니다. 어떤 언어를 받아들이는지, 어떤 압축 방식을 지원하는지, 자신의 식별 문자열, 어느 페이지에서 넘어왔는지 같은 것들입니다.
언어 항목은 시스템과 브라우저 설정이 정하며, 대부분이 생각하는 것보다 더 세밀하게 적혀 있습니다. 중국어 아래에도 간체와 번체, 지역이 나뉩니다. 이들의 특징은 조용하고, 안정적이며, 매번 주어진다는 점입니다. 어느 사이트를 방문해도 달라지지 않고, 기록을 지워도 달라지지 않습니다.
페이지 계층: 스크립트가 읽을 수 있는 범위는 생각보다 넓다
페이지가 로드된 뒤 스크립트는 계속 더 물을 수 있습니다. 화면과 창 크기, 시간대 오프셋, CPU 코어 수, 메모리 등급이 모두 읽기 가능한 범위에 있습니다. 이 인터페이스들은 브라우저에서 공개되어 있으며, 브라우저 인터페이스 문서에 명확히 나열되어 있습니다. 어떤 사이트든 바로 호출할 수 있습니다.
"브라우저 핑거프린트란 무엇인가"라고 물으면 대부분이 가장 먼저 캔버스와 글꼴을 떠올립니다. 이 두 가지가 실제로 가장 자주 지목되는데, 이유는 그것들이 특별해서가 아니라 가장 바꾸기 어렵기 때문입니다.
캔버스와 글꼴: 가장 자주 지목되는 두 항목
캔버스(Canvas)의 방식은 아주 노골적입니다. 페이지는 당신이 보지 못하는 위치에 도형이나 글자 한 줄을 그리고, 그려진 그림을 픽셀 단위로 다시 읽어옵니다.
같은 명령이라도 그래픽카드와 드라이버, 운영체제가 다르면 그려지는 픽셀이 완전히 같지 않습니다. 차이는 육안으로 구분할 수 없을 만큼 작지만 충분히 안정적입니다. 배경 화면을 바꾸든 확대 비율을 한 번 조정하든, 그것은 여전히 같은 자리에 있습니다.
글꼴 목록은 다른 길을 갑니다. 페이지는 당신이 어떤 글꼴을 설치했는지 묻지 않고, 흔한 글꼴 이름을 하나씩 시험합니다. 어떤 크기로 글자 한 줄을 렌더링했을 때 측정된 너비가 예상과 어긋나면, 그 글꼴은 당신의 기기에 없다는 뜻입니다. 시험하는 이름이 많을수록 얻는 기록은 길어집니다.
디자인 소프트웨어를 설치할 때 함께 딸려 온 글꼴도 여기서는 모두 셈에 들어갑니다. 그래서 글꼴 핑거프린트는 화면 크기보다 더 많은 것을 말해 주는 경우가 많습니다. 당신이 어떤 소프트웨어를 설치했고, 평소 이 기기로 무엇을 하는지를 기록하기 때문입니다.
렌더링 차이: 픽셀 속에 숨은 부류
캔버스는 렌더링 차이의 출구 중 하나일 뿐입니다. 오디오 처리 경로, 그래픽 인터페이스, 영상 코덱은 각각 하드웨어에 묶인 미세한 차이를 남기며, 같은 기기에서는 서로 맞물려 있고 다른 기기에서는 재현하기 어렵습니다.
이 부류의 값에는 공통점이 있습니다. 하드웨어와 드라이버가 정하며 바꿀 수 없다는 점입니다. 브라우저 설정을 조정하고, 캐시를 지우고, 회선을 바꿔도 이들에게는 닿지 않습니다.
항목 수보다 주목할 것은 안정성입니다. 이 부류의 값은 기기 식별자로 장기간 사용할 수 있을 만큼 안정적이며, 바로 그 안정성 때문에 한두 항목의 파라미터를 더 희귀하게 바꾸는 것으로는 대개 문제가 해결되지 않습니다.

JavaScript를 끄면 문제가 해결될까
스크립트를 끄면 세 번째 입구는 확실히 막힙니다. 페이지는 글꼴 목록을 읽지 못하고 렌더링 결과도 얻지 못합니다.
하지만 앞의 두 층은 그대로입니다. 요청 헤더는 하나도 빠지지 않고, 출구 주소도 그대로 기록되며, 연결 계층의 협상 파라미터도 여전히 남아 있습니다. 스크립트를 끄면 줄어드는 것은 그중 한 층이지, 전부가 아닙니다.
2010년 그 실험에서 스크립트를 비활성화한 브라우저는 "상대적으로 핑거프린팅하기 어려운" 표본으로 따로 분류되었습니다. 당시에는 이 조치가 실제로 효과가 있었습니다.
다만 "상대적으로 어렵다"와 "숨을 수 있다"는 다른 이야기입니다. 주변이 모두 스크립트를 켜 둔 가운데 당신만 끈 소수에 속한다는 사실 자체가 특징이 됩니다. 드문 상태는 사람을 사라지게 하지 않고, 오히려 더 쉽게 골라내게 만듭니다.
정말로 다뤄야 할 것은 여기가 아닙니다. 핑거프린트가 만드는 곤란은 주로 같은 정체성들 사이가 연결되는 것이지, 특정 파라미터가 충분히 은밀한지의 문제가 아닙니다. 이것은 파라미터를 더 화려하고 더 희귀하게 바꿔도 대개 도움이 되지 않는 이유이기도 합니다.
같은 컴퓨터에서 브라우저를 바꾸면 어떤 항목이 따라 바뀔까
브라우저를 여러 개 설치하면 정체성도 여러 개가 된다고 생각하는 사람이 적지 않습니다. 실제 변화는 생각보다 적습니다. 브라우저를 바꾼 뒤의 동작을 기준으로 이 항목들은 두 그룹으로 나뉩니다.
- 따라 바뀌는 것: 브라우저 식별 문자열, 그래픽 및 캔버스 인터페이스의 렌더링 결과, 확장 프로그램 목록, 로컬 스토리지와 로그인 상태.
- 따라 바뀌지 않는 것: 그래픽카드와 드라이버 모델, 화면 물리 파라미터, CPU 코어 수, 메모리 등급, 시스템 시간대, 시스템 수준 글꼴.
첫 번째 그룹은 브라우저가 스스로 가져오는 것으로, 재설치와 업그레이드, 확장 프로그램 설치에 따라 다시 배열됩니다. 두 번째 그룹은 하드웨어와 시스템에서 나오며, 브라우저를 몇 개로 바꾸든 같은 값입니다. 바로 이 값들이 "달라 보이는" 여러 기기를 연결하는 실입니다.
한 대의 컴퓨터에서 브라우저 세 개를 열어도 사이트가 보기에는 같은 기기의 세 가지 쓰임에 가깝습니다. 세 대의 기기가 아닙니다.
3단계 자가 진단: 다계정 관리에서 이 판단을 어떻게 쓸까
공개된 검사 사이트는 가입 없이 돌릴 수 있습니다. 결론을 듣기보다 자기 기기가 실제로 무엇을 보고하는지 한 번 보는 편이 낫습니다. 다계정 상황에 적용한다면 검사 결과를 읽는 것보다 먼저 정해야 할 것은 순서입니다. 0에서 첫 환경까지의 순서라는 글에서 프록시, 양식, 점검 목록을 차례대로 정리해 두었습니다.
검사 순서는 이렇게 정할 수 있습니다.
- 먼저 고유성이 어느 항목에서 오는지 본다. 실행을 마쳐도 총점은 보지 말고, 그것이 표시하는 "가장 독특한 항목"을 본다. 그것이 대개 당신에게서 가장 바꾸기 어려운 부분이다.
- 다음으로 같은 기기 위의 두 브라우저를 각각 측정하고, 둘 다 동일했던 항목을 표시한다. 겹치는 것들은 하드웨어와 시스템 층에 속하며, 브라우저를 바꿔도 떨쳐낼 수 없다.
- 마지막으로 스크립트를 끄고 다시 측정해 어떤 값이 여전히 읽히는지 본다. 남은 것이 스크립트 없이도 얻을 수 있는 부분이다.
세 단계를 마치면 보통 같은 결론에 도착합니다. 정말로 바꾸기 어려운 항목은 몇 개 되지 않지만, 바로 그것들이 당신의 정체성을 붙잡아 주고 있습니다.

이 결론을 따라가면 다계정 상황의 방법은 어렵지 않습니다. 해야 할 일은 각 계정의 환경을 자기 한 세트 안에서 일관되게 유지하는 것이지, 파라미터를 더 기이하게 만들 필요는 없습니다.
MostMate는 이 일을 환경 생성 단계에 두었습니다. 언어, 인터페이스 언어, 시간대, 지리적 위치는 기본적으로 출구를 따릅니다. 화면, 코어 수, 메모리 같은 하드웨어 항목은 실제값과 랜덤 두 단계만 제공하며, 기본값에서 벗어나려면 직접 한 번 선택해야 합니다. 이 값 선택 방식과 수동으로 항목별 설정하는 방식의 대조는 공식 사이트에서 나란히 볼 수 있습니다.

왜 이런 선택을 하는지는 네 가지 설계 원칙이 각각 무엇을 막는지라는 글에서 더 자세히 다룹니다. 어느 원칙이 어떤 종류의 실패에 대응하는지, 네 가지가 서로 부딪힐 때 무엇을 먼저 지켜야 하는지가 모두 적혀 있습니다.
바로 시작하고 싶다면 MostMate 다운로드를 통해 설치한 뒤 위의 세 단계로 자기 환경을 다시 측정해 보세요.
MostMate가 이 값들을 어떻게 하나의 환경 관리로 묶는지 먼저 보고 싶다면 제품 설명부터 시작하면 됩니다.
자주 묻는 질문
쿠키를 지우거나 시크릿 모드를 쓰면 핑거프린트가 바뀔까?
바뀌지 않습니다. 쿠키와 로컬 스토리지는 브라우저가 사이트를 위해 남겨 두는 메모 같은 것으로, 지우면 사라집니다. 핑거프린트는 다릅니다. 이것은 기기와 브라우저에서 그 자리에서 읽어낸 값이며, 당신의 기기에 저장되어 있는 게 아닙니다. 시크릿 모드가 제한하는 것은 로컬에 무엇을 남기는지이고, 브라우저가 외부에 무엇을 보고하는지는 바꾸지 않습니다.
IP를 바꾸면 정체성도 바뀌나?
네트워크 층만 바뀝니다. 언어 설정, 글꼴, 그래픽카드, 시스템 시간대 같은 항목은 IP를 바꿔도 변하지 않습니다. 새 회선의 지역이 당신의 시간대, 언어와 어긋난다면 오히려 말이 되지 않는 조합이 만들어집니다.
안티 핑거프린트 확장 프로그램을 설치하면 도움이 될까?
흔한 방법은 일부 항목에 노이즈를 넣거나 대중적인 값 한 세트로 통일하는 것입니다. 통일은 확실히 당신을 인파 속에 묻히게 하지만, 대가는 같은 집단이 같은 특징을 공유한다는 점입니다. 노이즈를 넣으면 같은 환경이 두 번 보고하는 값이 어긋날 수 있고, 그것 자체가 이상 신호입니다. 두 방법 모두 하드웨어와 시스템 층에는 닿지 않습니다.
사이트는 정말 핑거프린트를 대조할까?
부정행위 방지와 리스크 관리에서는 일반적인 수단이며, 로그인과 가입, 결제 같은 단계에서 특히 흔합니다. 다만 대부분의 사이트는 그것을 하나의 신호로 취급하고, 계정 행동과 기기 이력과 함께 봅니다. 특정 항목 하나만으로 판단하는 경우는 드뭅니다.
완전히 같은 모델의 컴퓨터 두 대면 핑거프린트도 같을까?
완전히 같지는 않습니다. 같은 모델의 기기도 운영체제 버전, 글꼴, 드라이버, 시간대, 언어, 설치한 확장 프로그램에서 곧 갈라지고, 이런 차이는 모두 핑거프린트에 남습니다. 일괄 설치한 복제 기기가 가장 가깝지만, 그것은 아주 일부 상황에 불과합니다.
핑거프린트 브라우저를 쓰면 찾을 수 없게 되나?
아닙니다. 핑거프린트 브라우저가 다루는 것은 환경 사이의 경계이며, 각 계정이 독립적이고 모순되지 않는 브라우저 정체성을 갖게 하는 것입니다. 플랫폼이 계정의 귀속을 어떻게 판정하는지는 바꾸지 않고, 어떤 결과도 약속하지 않습니다. 또 한 가지 구분해야 할 것이 있습니다. 핑거프린트 일관성은 자체 점검 방식이며, 플랫폼의 탐지 규칙이 아닙니다. 이 둘을 같은 것으로 보면 도구에 비현실적인 기대를 품기 쉽습니다.
MOSTMATE
안전한 다중 계정 관리, 더 간편하게
첫 계정부터 MostMate와 함께 더 안전하고 스마트하며 효율적인 다중 계정 운영을 시작하세요.
- 독립적인 프로필. 일관된 식별 정보.
- AI 자동화 · 계정 건전성 · 팀 운영



