Facebook, TikTok, Amazon, Shopee, Gmail, PayPal. 계정마다 프로필 하나이고, 프로필마다 제 핑거프린트와 제 프록시, 제 쿠키 저장소를 갖습니다. 아이디와 비밀번호, 2FA 키는 그 옆에 놓입니다.
무료로 시작같은 오후의 일을 두 번 적었습니다. 광고 계정 넷, 스토어 여섯, 그리고 그 뒤에 딸린 메일함들.
그래서 이 페이지는 로고를 벽처럼 늘어놓지 않습니다.
화면 크기와 픽셀 비율. CPU 코어 수와 기계가 인정하는 메모리 용량. 그래픽 카드의 이름과 지원한다고 내세우는 기능들. 설치된 폰트, 그리고 거기서 짐작할 수 있는 오피스 프로그램의 존재. 시간대, 언어 목록, 마이크와 카메라, 그리고 도형을 그리라고 했을 때 브라우저가 내놓는 정확한 픽셀. 페이지는 아무것도 클릭되기 전, 처음 몇 초 안에 이 전부를 읽습니다.
이 중 쿠키는 하나도 없습니다. 쿠키를 지우고 시크릿 창을 열고 주소를 바꿔도 그 목록의 모든 항목은 있던 자리에 그대로 있습니다. 프록시만으로는 계정 둘이 갈라지지 않는 이유, 그리고 Chrome 프로필 두 개에서 연 계정 둘이 여전히 컴퓨터 한 대를 묘사하는 이유가 그것입니다.
이 시장의 도구들은 플랫폼마다 페이지를 하나씩 팔고, 그 페이지는 그 플랫폼에 맞춰 둔 설정이 있다는 뜻을 풍깁니다. 저희는 그런 것을 내놓지 않습니다. 사이트 밖의 누구도 그 사이트의 현재 규칙을 모르고, 그 규칙은 아무에게도 알리지 않고 바뀌며, 짐작으로 만든 사전 설정은 몇 주마다 다시 짐작해야 합니다. 그동안 고객은 그것이 아직 맞춰져 있다고 믿습니다.
앱이 하는 일은 어디를 향하게 해도 같습니다. 프로필마다 앞뒤가 맞는 기기 하나를 짓고, 부분들이 서로 어긋나는 핑거프린트는 거절합니다. 트래픽은 지정한 프록시로 보내고, 시계와 언어는 그 프록시가 있는 나라에서 가져옵니다. 프로필의 쿠키는 각각 제 폴더에 둡니다. 목록을 읽는 사이트는 프로필마다 답 하나를 얻고, 다음 주에도 같은 답을 얻습니다.
아래의 플랫폼 이름은 고객이 실제로 운영하는 것들의 예시이고, 연동이 아닙니다. 앱 안에서 그중 어느 것에도 연결된 것은 없습니다.
Facebook과 Meta Business, TikTok Ads, Google Ads. 광고 계정마다 프로필 하나이고, 그 계정을 만들 때 쓴 메일함과 뒤에 붙은 결제 계정을 같은 프로필에 저장합니다. 광고 계정 하나에 필요한 로그인 정보 세 가지가 한자리에 있습니다.
끝낼 때 열려 있던 탭이 돌아올 때 열리는 탭입니다. 광고 관리자, 메일함, 보고 도구가 각각 주소 하나씩.
Shopee, Lazada, Amazon, eBay, Etsy, AliExpress. 스토어를 여러 개 운영하는 셀러는 보통 스토어마다 메일함과 결제 계정도 따로 갖고 있고, 계정 목록은 바로 그 경우를 위해 만들었습니다.
그룹은 프로필을 스토어별이나 마켓별로 갈라 두고, 나머지는 태그가 맡으며, 고른 프로필 여럿에 그룹을 한 동작으로 지정할 수 있습니다.
Instagram, Threads, TikTok, YouTube, X, Reddit, Pinterest, 그리고 그것들을 거쳐 닿는 네트워크들. 여러 개를 한 번에 다루는 일이 가장 많은 계정이고, 그중 열 개가 주소 하나를 나눠 쓰는 것이 그들을 하나로 묶어 버립니다.
프록시는 PC가 아니라 프로필에 딸린 설정이라, 나란히 띄운 두 프로필은 서로 다른 주소로 나갑니다.
직원에게 필요한 것은 스토어 계정이고, 그 비밀번호는 아닙니다. 프로필을 공유하면 상대는 이미 로그인된 상태로 열고, 그룹에서 빼면 묶음은 저희 서버에서 삭제됩니다.
프로필은 한 번에 한 사람이 쥐고, 누가 쥐고 있는지 앱이 보여 줍니다. 공유해 주는 일은 프로페셔널 요금제부터이고, 남이 공유해 준 프로필을 받는 일은 모든 요금제에서 됩니다.
세 곳이고, 이 셋이 모여 프로필 하나를 특정 계정의 프로필로 만듭니다.
프로필 옆에 저장하는 계정은 그것이 속한 플랫폼에서 시작합니다. 고르는 목록에는 이름 45개가 있습니다. Facebook과 Gmail부터 Shopee, Amazon, PayPal, Binance까지 각각 제 표시를 달고 있고, 줄이 마흔 개를 넘으니 걸러 내는 칸이 있으며, 목록에 없는 이름을 위한 기타 줄이 있습니다. 그 아래는 자유 입력 칸이라서 목록이 완전하지 않아도 잃는 것은 없습니다.
그다음이 아이디와 비밀번호, 그리고 2단계 인증을 켤 때 사이트가 보여 준 비밀입니다. base32 문자열로 붙여 넣어도 되고 otpauth:// 링크를 통째로 붙여 넣어도 됩니다. 앱이 그것을 여섯 자리로 바꿔 남은 초와 함께 보여 주므로 휴대폰은 주머니에 있어도 됩니다. 페이지에 대신 입력해 주는 것은 없습니다. 앱은 저장된 값을 보여 주거나 요청할 때 복사해 주고, 그 버튼 한 번이 디스크에서 화면으로 가는 유일한 길입니다.
프록시 비밀번호, 그리고 저장된 계정의 비밀번호와 2FA 키는 앱이 디스크에 둘 수밖에 없는 비밀입니다. 이 값들은 Windows 데이터 보호 서비스로 감싸고 키는 Windows 계정에 묶이므로, 데이터 폴더를 다른 PC나 다른 사용자에게 복사해도 따라가지 않습니다.
프로필은 지난번에 갖고 있던 주소를 다시 엽니다. 호스트마다 하나씩이고, 가장 나중에 연 탭의 주소가 남습니다. 어제의 Facebook 탭 열 개는 게시물 열 개가 아니라 마지막에 보던 광고 관리자로 돌아옵니다. mail.google.com과 drive.google.com은 둘로 셉니다. 일하는 자리가 둘이기 때문입니다. www.shopee.vn과 shopee.vn은 하나로 셉니다.
목록은 한 줄에 주소 하나씩 직접 적어도 되고, 세션이 끝날 때마다 알아서 최신으로 유지됩니다. 브라우저가 막 닫혔거나 바빠서 앱이 브라우저의 탭 목록을 읽지 못할 때는, 빈 목록으로 덮어쓰지 않고 내 목록을 그대로 둡니다.
앱에서 프록시를 점검하면 출구 주소와 국가, 그 주소의 IANA 시간대를 기록합니다. 그 프록시로 프로필을 열면 브라우저의 시간대는 그 주소가 있는 곳에서, 언어 목록은 그 나라에서 나오고, 프록시를 거치지 않는 UDP는 꺼진 채로 시작하므로 WebRTC에는 알릴 두 번째 주소가 없습니다. 일본 프록시를 붙였는데 시계가 여전히 GMT+7이라고 하는 프로필은 어떤 페이지든 두 줄만 읽어도 알아내는 자기모순입니다.
10분보다 오래된 결과는 프로필을 열 때 다시 점검합니다. 회전 프록시는 주소를 한 세션 동안만 유지하고 그다음에 바꾸기 때문입니다. 같은 프록시가 싱가포르로 나가고 몇 분 뒤 인도로 나간 것을 기록한 적이 있습니다. 프록시가 아예 답하지 않으면 프로필은 열리지 않습니다. 진짜 주소로 나가는 것이 아예 나가지 않는 것보다 나쁩니다.
낱말 하나 밑에 묶여 버리는 두 가지입니다. 앱이 설치되는 운영체제, 그리고 프로필마다 자기가 돌고 있다고 알리는 운영체제.
프로필을 만들 때 하나를 고르면 그 프로필에 붙어 다닙니다. 프로필이 다른 사람의 컴퓨터로 옮겨 가도 그대로이므로, 계정이 보는 기기는 어느 쪽에서든 같습니다. 현재 빌드에는 Windows와 macOS가 있습니다. Linux와 Android, iOS는 없습니다. 어려운 것은 iOS이고, 노력이 부족해서가 아닙니다. Apple이 요구하기 때문에 iOS의 모든 브라우저는 WebKit이고, 저희 커널은 Chromium입니다. iOS라고 주장하는 프로필은 iOS의 어떤 브라우저도 갖지 않은 동작으로 답하게 됩니다.
| 프로필이 알리는 값 | navigator.platform | WebGL renderer | 폰트 목록 |
|---|---|---|---|
| Windows | Win32 | ANGLE (NVIDIA … Direct3D11) | Segoe UI, Tahoma, Cascadia Mono… |
| macOS | MacIntel | ANGLE (Apple … Metal Renderer) | Helvetica Neue, Geneva… |
운영체제를 바꾸는 일은 User-Agent를 바꾸는 일이 아닙니다. Client Hints와 navigator.platform, 그래픽 카드 문자열, 폰트 목록 전체가 함께 움직이고, 이들이 어긋나는 핑거프린트는 앱이 거절합니다. macOS라고 하면서 그래픽 카드가 Direct3D라고 답하는 프로필은 존재하지 않는 기계를 묘사하고, 그런 자기모순은 아무것도 위장하지 않는 것보다 눈에 띄기 쉽습니다.
계정이 살아남는지는 플랫폼이 내리는 결정이고, 그 결정에는 어떤 브라우저도 바꿀 수 없는 것들이 함께 들어갑니다. 계정이 어떻게 행동하는지, 어떻게 결제하는지, 누구와 이야기하는지, 만든 지 얼마나 됐는지.
핑거프린트는 여러 신호 가운데 하나이고, 나머지에 대해 분명히 말해 두는 편이 지키지 못할 약속보다 낫습니다.
계정 목록, 탭 목록, 프록시에 맞춘 시계는 무료를 포함해 모든 요금제에 있습니다. 요금제가 갈라지는 지점은 프로필을 몇 개 받는지, 그리고 그중 하나를 다른 사람에게 넘길 수 있는지입니다.
| 기능 | 무료 | 퍼스널 | 프로페셔널 | 비즈니스 |
|---|---|---|---|---|
| 프로필 수 | 3 | 50 | 300 | 무제한 |
| 2FA 코드가 있는 계정 보관함 | ||||
| 지난번 탭 그대로 다시 열기 | ||||
| 시간대와 언어가 프록시 국가를 따름 | ||||
| 쿠키까지 함께 프로필 이관 |
어떤 플랫폼을 위한 것이든 프로필은 프로필입니다. 플랫폼별 가격도, 추가 상품도, 돈이 더 드는 플랫폼도 없습니다.
Windows 아니면 macOS입니다. 선택은 프로필의 것이므로 프로필이 다른 PC로 옮겨 가도 바뀌지 않습니다.
점검은 출구 주소와 그 국가, 시간대를 기록하고, 시계와 언어 목록은 거기서 따라옵니다. 프록시가 답하지 않으면 프로필은 열리지 않습니다.
플랫폼, 아이디, 비밀번호, 그리고 계정에 2FA가 있다면 그 비밀입니다. 한 번은 손으로 로그인하세요. 그다음부터는 쿠키가 프로필 제 폴더에 남고, 끝낼 때 열려 있던 탭이 돌아옵니다.
브라우저로 여는 것은 무엇이든 됩니다. 어떤 사이트와도 연동이 없고, 사이트로 들어가는 API도 없고, 플랫폼별 설정도 없습니다. 앱은 프로필에 기기와 네트워크 경로, 쿠키 저장소를 주고, 사이트는 주소창에 무엇을 치느냐입니다. 계정 목록에 있는 이름 45개는 내 기록을 위한 라벨이고, 다른 이름은 무엇이든 직접 적을 수 있습니다.
아니요. 그리고 저희는 다르게 말하지 않겠습니다. 핑거프린트는 플랫폼이 재는 여러 신호 가운데 하나입니다. 행동, 결제 정보, 계정이 누구와 이야기하는지, 만든 지 얼마나 됐는지가 모두 계산에 들어가고, 어떤 브라우저도 그중 어느 것에도 손대지 못합니다. 나머지까지 약속하는 사람은 내놓을 수 없는 것을 팔고 있습니다.
프로필이 있는 이유가 그것입니다. 계정마다 프로필 하나이고, 각각 제 핑거프린트와 프록시, 쿠키를 갖습니다. 프로필 하나가 목록에 계정 여러 개를 담을 수도 있습니다. 스토어와 그것을 만들 때 쓴 메일함, 뒤에 붙은 결제 계정처럼 그 로그인 정보들이 하나의 일에 속할 때입니다.
아니요. 아이디와 비밀번호, 2FA 비밀을 보관하고, 요청하면 보여 주고 클립보드로 복사해 주며, 남은 초와 함께 여섯 자리 코드를 만들어 줍니다. 페이지에 입력하는 일은 내가 합니다. 자동으로 채워지는 것은 없고, 저희 스크립트가 어떤 사이트에서도 돌지 않습니다.
Windows 아니면 macOS이고, 프로필마다 고르며 그 프로필에 붙어 있습니다. Linux와 Android, iOS는 현재 빌드에 없고, 요금제 페이지가 만드는 중인 것들 안에 적어 두었습니다.
없습니다. 사전 설정은 공개되지 않고 예고 없이 바뀌는 규칙을 짐작한 것이 되고, 낡아 버린 짐작은 사전 설정이 없는 것보다 나쁩니다. 고객이 그것을 아직 맞다고 믿기 때문입니다. 앱은 어느 사이트에서나 같은 일을 합니다. 프로필마다 앞뒤가 맞는 기기, 지정한 프록시, 그리고 따로 보관하는 쿠키입니다.
내 PC에 저장됩니다. 프로필을 공유하거나 그 그룹을 팀원에게 주면 그때는 다릅니다. 쿠키가 담긴 묶음이 서버로 올라가고, 서버는 우리가 보관하는 키로 AES-256-GCM 암호화해 저장합니다.
이 소프트웨어는 브라우저이고, 자기 컴퓨터에서 브라우저 프로필을 여러 개 돌리는 것 자체는 위법이 아닙니다. 규칙이 붙는 것은 그것으로 무엇을 하는가입니다. 사는 곳의 법, 그리고 이용하는 사이트의 약관. 우리는 사기나 사칭을 돕지 않고, 약관에도 그렇게 적혀 있습니다.