블로그로 돌아가기

브라우저 환경 분리는 대체 무엇을 분리할까? 지문부터 검증까지 완전 정리

브라우저 환경 분리는 대체 무엇을 분리할까? 지문부터 검증까지 완전 정리

많은 분이 '환경 분리'를 쿠키 삭제 수준으로 이해하고 있습니다. 계정을 바꾸기 전에 방문 기록을 지우면 이제 서로 상관없다고 생각하는 식이죠. 하지만 결과적으로 계정은 여전히 무리 지어 연동됩니다. 쿠키는 플랫폼이 사용자를 식별하는 수많은 신호 중 가장 피상적인 하나일 뿐이기 때문입니다. 로컬 스토리지, 기기 지문, 시간대와 언어, 네트워크 출구 — 이런 신호들은 쿠키 삭제로는 전혀 건드릴 수 없습니다.

브라우저 환경 분리가 분리하는 것은 바로 이런 신호들의 발생원 전부입니다. 이 글에서는 진짜 분리된 환경이 어떤 계층으로 구성되는지, 처음부터 어떻게 만드는지, 그리고 가장 많이 건너뛰는 단계 — 분리가 실제로 작동하는지 어떻게 검증하는지 — 를 하나하나 풀어 설명합니다.

환경 분리의 4개 계층: 하나만 빠져도 구멍이 생깁니다

제대로 된 분리 환경은 네 가지 계층이 동시에 독립되어야 합니다.

첫 번째 계층: 기기 지문. 브라우저는 웹사이트에 OS 버전, 화면 해상도, 폰트 목록, Canvas/WebGL/Audio 렌더링 결과, 하드웨어 동시 실행 스레드 수 등 수십 가지 파라미터를 '수동적으로 노출'합니다. 두 환경의 IP가 다르더라도 이 파라미터 세트가 일치하면 플랫폼은 같은 기기라고 판정합니다. 환경 분리의 첫걸음은 각 환경이 고유한 지문 파라미터 세트를 생성하도록 하는 것입니다. 여기서 주목할 세부 사항이 있습니다. 지문은 무작위할수록 좋은 게 아니라 파라미터끼리 서로 조화를 이루어야 합니다. Windows 시스템에 Mac 전용 폰트가 얹힌 모순적인 조합 자체가 의심스러운 신호입니다. 그래서 성숙한 도구는 순수 무작위 조합이 아니라 '흔한 시스템과 기기의 그럴듯한 조합'을 기준으로 지문을 생성합니다.

두 번째 계층: 시간대와 언어. 이 계층의 분리 논리가 가장 오해받기 쉽습니다. 시간대와 언어는 손으로 고르는 것이 아니라 IP를 자동으로 따라가야 합니다. 프록시 출구가 어느 나라에 있으면 환경은 자동으로 그 나라의 시간대와 언어를 씁니다. 미국 IP에 UTC+8 시간과 중국어 인터페이스를 얹으면 플랫폼은 한눈에 환경이 조작됐음을 알아챕니다.

세 번째 계층: 네트워크 출구. 각 환경은 자신만의 프록시에 묶입니다. 이 계층이 '어디서 인터넷에 접속하는지'를 결정합니다. 프로토콜은 HTTP와 SOCKS5가 주류인데, 후자는 실제 IP를 누출할 수 있는 WebRTC 같은 트래픽까지 커버합니다. 환경을 만들 때 WebRTC를 처리해 두는 것은 표준 동작입니다. 그렇지 않으면 앞의 두 계층을 아무리 잘해도 실제 IP가 한 번만 누출되면 전부 들통납니다.

네 번째 계층: 로컬 데이터. 쿠키, 로그인 상태, LocalStorage, IndexedDB — 이것들은 계정의 활동 흔적입니다. 분리 환경의 로컬 스토리지는 물리적으로 파티션이 나뉩니다. A 환경은 B 환경의 어떤 데이터도 볼 수도, 건드릴 수도 없고, 닫았다 다시 열어도 각자의 로그인 상태가 그대로 유지됩니다.

이 네 계층이 맞춰져야 비로소 '완전히 다른 두 사람이 서로 다른 두 대의 컴퓨터를 쓰고 있다'는 완전한 이야기가 됩니다. 시중의 여러 솔루션은 이 중 한두 계층만 구현한 경우가 많고, 그 빈 구멍이 바로 연동의 출입구입니다.

브라우저 환경 분리 개념도: 독립된 두 개의 분리 격실이 각자 지문·시계·언어·쿠키 네 요소를 갖고, 회선이 각자의 서버로 따로 향해 서로 접촉하지 않음

처음부터 분리 환경 만들기: 5단계

위의 원리를 실제 조작으로 옮기면 환경 구축 절차는 사실 꽤 표준적입니다. 주류 지문 브라우저의 공통 단계를 예로 들겠습니다.

  1. 환경을 새로 만들고 시스템 프로필을 고릅니다: 환경에 이름을 붙이고(업무나 플랫폼 단위로 지으면 나중에 관리가 편합니다) OS 프로필 — Windows, Mac, Android 중 하나 — 을 선택합니다. 이것이 지문의 기본 틀을 결정합니다.
  2. 지문을 생성합니다: 한 번의 클릭으로 전체 파라미터 세트를 생성합니다. Canvas, WebGL, Audio 같은 렌더링 계층은 기본값으로 두면 됩니다. 기본값이 바로 그럴듯한 조합으로 설계된 것이므로, 분명한 이유가 없다면 손으로 마구 바꾸지 않는 것을 권합니다.
  3. 프록시를 설정합니다: 프록시 주소를 입력하고 프로토콜(HTTP/SOCKS5)을 고르면, 도구가 먼저 연결을 테스트하고 통과했을 때만 저장을 허용합니다. 테스트 결과에 표시되는 출구 국가를 확인해 계정 프로필과 맞는지 꼭 점검하세요.
  4. 시간대·언어는 자동 따르기: '시간대 IP 따르기'와 '언어 IP 따르기'를 켜서 이 두 항목이 항상 출구와 정렬되게 하고, 수동으로 설정하지 마세요.
  5. 필요에 따라 쿠키를 가져옵니다: 기존 계정을 이전할 때는 로그인 상태를 가져와 환경이 이력을 갖고 출근하도록 하고, 새 계정은 깨끗한 상태에서 시작합니다.

전체 절차는 보통 2분을 넘지 않습니다. 실제로 시간이 드는 것은 환경 만들기가 아니라 뒤따르는 두 가지입니다. 수십에서 수백 개 환경을 업무별로 묶는 일, 그리고 프록시 풀을 통합 관리하는 일 — 규모가 커지면 이 둘이 일상 업무가 됩니다. 팀에서 여러 사람이 동시에 환경을 다룬다면 권한 관리 계층도 하나 더 필요합니다. 이전 글 '팀 협업 관리에서 역할 설정을 꽤 자세히 다뤘습니다.

분리에 성공했는지는 검증이 결정합니다

환경을 다 만들었다고 분리가 작동하는 것은 아닙니다. 검증은 전체 절차에서 가장 많이 건너뛰는, 그래서 가장 건너뛰면 안 되는 단계입니다. 방법은 아주 간단합니다.

두 환경을 열고 각각 같은 IP 확인 페이지에 접속한 뒤 네 가지를 대조합니다. 두 환경이 표시하는 IP가 다른지; 각 시간대가 자기 IP 위치와 일치하는지; 언어와 지역이 맞는지; 그리고 확인 페이지가 내놓는 종합 평가가 깨끗한지. 한 항목이라도 어긋나면 어느 계층이 분리를 못 한 것이니 돌아가 원인을 찾으세요.

이 단계의 가치는 '분리된 것 같다'를 '분리를 확인했다'로 바꾸는 데 있습니다. 새 환경을 투입하기 전 한 번 검증하고, 대량 작업 전 표본 점검을 한 번 하고, 프록시를 바꾼 뒤에는 반드시 한 번 검증하세요 — 이 세 번의 검증 습관이 초보적 사고의 대부분을 막아 줍니다. 이 계층에서 MakoBrowser는 이런 점검을 환경 시작 절차에 넣어 둡니다. 모든 Profile은 시작할 때 시간대와 언어를 자동으로 맞추고, 프록시 연결 테스트는 저장 동작 이전에 내장되어 있습니다. 검증은 '기억하고 해야 하는 일'에서 '생각할 필요조차 없는 일'로 바뀝니다.

남성 운영자가 MakoBrowser에서 두 환경 창을 나란히 열고, 각 창의 지도 위치 확인 페이지가 서로 다른 지역의 핀을 표시하며, 가운데 초록색 체크 표시가 분리 검증 통과를 나타냄

분리 검증을 통과한 것은 '입장 자격'을 얻었을 뿐입니다. 계정을 굴리려면 일상 운영도 있습니다. 반복되는 대량 작업은 싱크로나이저와 자동화 스크립트에 맡기고, 사람은 기계적 노동에서 물러나세요. 다만 자동화의 전제는 언제나 환경 자체가 버틴다는 것입니다. 절차가 아무리 매끄러워도 환경에 구멍이 있으면 소용없습니다. 환경 분리와 프록시 선택의 관계는 이전 글 '정적 프록시와 로테이팅 프록시에서 업무 시나리오별로 다뤘으니, 환경에 프록시를 붙일 때 참고하시기 바랍니다.

자주 묻는 질문

일반 브라우저의 시크릿 모드도 환경 분리로 칩니까? 아닙니다. 시크릿 모드는 로컬 기록만 남기지 않을 뿐입니다. 기기 지문, 실제 IP, 시간대와 언어는 그대로 노출되고, 시크릿 창끼리는 이런 신호를 공유합니다. 시크릿 모드가 푸는 문제는 '내 컴퓨터에 흔적을 남기지 마라'이지 '플랫폼이 같은 기기임을 알아차리지 못하게 해라'가 아닙니다.

환경을 만든 뒤에도 지문을 주기적으로 바꿔야 합니까? 자주 바꿀 필요는 없습니다. 지문의 가치는 안정성에 있습니다. 한 계정이 그럴듯한 파라미터 세트를 오래 쓰는 것은 사람이 매일 얼굴을 바꾸지 않는 것과 같습니다. 플랫폼이 지문 규칙을 업그레이드하거나, 오래 쓴 환경에서 이상 신호가 나올 때만 파라미터를 미세 조정하면 되고, 전부 허물고 다시 지을 필요는 없습니다.

한 컴퓨터에서 분리 환경 여러 개를 열면 성능을 견딥니까? 최신 지문 브라우저는 필요에 따라 자원을 배분합니다. 대기 중인 환경은 거의 자원을 쓰지 않고, 동시 활성 10개 이하라면 일반 사무용 PC에서도 부담이 없습니다. 환경 수가 많고 동시 활성을 더 늘려야 한다면, 잘 쓰지 않는 환경을 필요 시 시작 방식으로 설정하는 것을 고려하세요.

검증 중 IP 누출이 발견되면 어떻게 합니까? 먼저 WebRTC를 확인하세요. 가장 흔한 누출원입니다. 환경 안에서 WebRTC가 꺼져 있거나 프록시 모드로 작동하는지 점검합니다. 다음으로 프록시 자체가 해당 프로토콜을 지원하는지, 환경 설정에 시스템 수준 프록시 설정 잔재가 남아 있는지 확인합니다. 계층별로 하나씩 점검하고 깨끗해질 때까지 다시 테스트하세요.


결국 브라우저 환경 분리는 '완전성'의 기술입니다. 지문, 시간대와 언어, 프록시, 로컬 데이터 — 네 계층이 각자 독립적일 때에만 분리라고 부를 수 있습니다. 하나만 빠져도 플랫폼에는 여러분의 계정을 줄로 엮을 방법이 남습니다. 그리고 검증은 '분리된 것처럼 보인다'를 '분리가 확인됐다'로 바꾸는 유일한 방법입니다.

계정의 신분 교체가 아직도 쿠키 삭제에 의존한다면, 오늘부터 제대로 된 분리 환경으로 갈아타시길 권합니다. 환경 두 개를 만들고, 프록시 두 개를 묶고, 두 창 검증을 한 번 돌려 보세요 — 10분이면 분리가 무엇인지 직접 손으로 확인할 수 있습니다. MakoBrowser를 다운로드해서 모든 계정을 진짜 독립된 방에 들여보내세요.