계정의 로그인 정보는 그것을 쓰는 프로필에 2FA 키까지 함께 놓이고, 여섯 자리는 앱이 직접 만들어 냅니다. 지금까지 설정해 둔 전부가 암호화 파일 하나로 들어가고, 그 파일의 비밀번호는 내가 쥡니다. 그리고 그중 무엇이 내 PC를 떠나는지 알려 주는 화면이 앱 안에 있습니다.
무료로 시작여기서 말하는 것은 탐지가 아닙니다. 일하는 동안 손으로 맞춰 가고 있는 나머지 네 가지입니다.
핑거프린트, 프로필 목록, 팀 작업, 프록시는 각각 제 페이지가 있습니다. 이 네 가지는 없고, 사람들이 둘째 주에 찾아내는 것들입니다.
프로필 하나에 계정이 하나만 걸리는 경우보다 서넛이 걸리는 경우가 더 많고, 각각 제 줄을 갖습니다. 이런 계정이 실제로 놓이는 사이트 목록에서 고른 이름, 아이디, 비밀번호, 그리고 2FA 키입니다. 비밀번호와 키는 디스크에 닿기 전에 Windows가 봉인하고, 그 키는 Windows가 보관하며 지금 로그인해 있는 Windows 계정에 묶습니다. 데이터베이스를 다른 PC로 복사하면 둘 다 열리지 않습니다. 일부러 그렇게 한 것이고, 내보내기 파일이 있는 이유가 그것입니다.
2FA 키는 나중에 읽을 코드로 보관하지 않습니다. 2단계 인증을 켤 때 사이트가 보여 준 문자열을 붙여 넣으면, 그다음부터 앱이 숫자를 직접 계산합니다. 시계 위에 HMAC-SHA1, 여섯 자리, 30초마다 새로 하나이고, RFC 6238과 함께 공개된 테스트 벡터로 맞춰 봤습니다. 남은 초와 함께 코드를 보여 주고, 복사 버튼이 옆에 있습니다. 이 고리에 휴대폰은 없고, 브라우저 확장 프로그램도 없습니다.
파일 하나, 확장자는 .sigobak입니다. 앞 36바이트는 표식과 무작위 솔트, 무작위 논스이고, 그 뒤는 gzip으로 압축한 JSON을 AES-256-GCM으로 감싼 것입니다. 키는 입력한 비밀번호를 PBKDF2-HMAC-SHA256 210,000회로 늘려 만듭니다. 최소 여덟 자, 두 번 입력해야 하며, 파일을 암호화하지 않고 쓰는 버튼은 어디에도 없습니다. 같은 비밀번호로 두 번 내보내도 키는 전혀 겹치지 않습니다. 솔트와 논스를 그때마다 새로 뽑기 때문입니다.
되돌리기는 덮어쓰지 않고 합칩니다. 이미 이 PC에 있는 프로필은 손대지 않고 보고에 이름을 적어 두므로, 오래된 파일이 지금 쓰고 있는 세션을 덮어쓸 수 없고, 돌아온 비밀은 내려앉은 PC에 맞춰 다시 봉인됩니다. 거절은 일부러 따로 만들었습니다. 비밀번호가 틀린 경우, 저희 파일이 아닌 경우, 바이트 하나가 뒤집힌 경우, 더 새 버전이 쓴 파일인 경우가 각각 제 메시지를 받습니다. 아무것도 알려 주지 않는 실패 하나로 뭉치지 않습니다.
앱이 아는 전부가 SigologinData라는 디렉터리 하나에 있습니다. 계정용 SQLite 데이터베이스, 내려받아 둔 브라우저 커널 캐시, 그리고 프로필마다 하나씩인 Chromium 디렉터리입니다. 그래서 한 프로필이 쓴 것은 다른 프로필에 닿지 못합니다. 데이터베이스는 평범한 파일입니다. 빌려 쓰는 서비스가 아니고, 그것을 읽는 데 저희 쪽에서 돌아가야 하는 것은 없습니다.
그 디렉터리를 어디에 둘지는 내가 내리는 결정입니다. 앱은 먼저 SIGOLOGIN_DATA_DIR 변수를 보고, 다음으로 실행 파일 옆에 있는 SigologinData 폴더를 찾고, 그다음에야 Windows 응용 프로그램 데이터 폴더로 돌아갑니다. 그래서 심볼릭 링크도, 재설치도 없이 프로필을 두 번째 드라이브에 둘 수 있습니다. 폴더와 함께 옮겨지지 않는 것은 저장된 비밀번호 하나입니다. Windows가 걸어 둔 봉인이 Windows 계정 하나에 속하기 때문이고, 그것을 옮기는 일은 내보내기 파일이 맡습니다.
사이드바에서 열면 세 가지를 그려 줍니다. 내 디스크의 폴더에 남는 것, 저희 서버로 올라가는 것, 그리고 프로필을 공유할 때만 움직이는 것입니다. 팀으로 일할 때를 위한 두 번째 보기도 있습니다. 쿠키와 저장된 로그인 정보가 이동해야 하는 순간이 바로 공유이기 때문이고, 팀원 각각이 어느 도시에서 열고 있는지도 함께 보여 줍니다.
그 목록은 네트워크 호출을 하나하나 보고 쓴 것이고, 그래서 정책 문서에만 있지 않고 앱 화면에 있습니다. 목적지는 셋이고 넷째는 없습니다. 쿠키와 저장된 비밀번호, 메모는 내 디스크에. 프로필의 이름과 그룹, 태그, 색은 저희 서버에. 이 사이트가 그 목록을 보여 줄 수 있는 것도 그래서입니다. 그리고 묶음 전체는 공유한 프로필이나 팀원에게 넘긴 프로필에서만 움직입니다. 저장된 묶음을 여는 키는 저희 것이므로, 이것은 저희가 파일을 들고 있는 동안의 암호화이고 종단 간 암호화가 아닙니다. 그 화면은 암호화라는 낱말에 그 일을 맡기지 않고 둘 중 어느 쪽인지 적어 둡니다.
이 중 제품을 파는 것은 하나도 없습니다. 하나하나가 제품에 짜증 내지 않을 이유입니다.
앱은 돌아가는 동안 10분마다 새 버전이 있는지 물어봅니다. 선택 업데이트는 하던 일 위에 뜨는 대화 상자가 아니라 위쪽 띠로 옵니다. 프로필 200개를 절반쯤 처리하던 사람 앞에 던져진 대화 상자는 읽히지 않고 닫히기 때문입니다. 필수로 표시된 릴리스는 대화 상자를 띄우고, 그 대화 상자는 업데이트 아니면 종료를 내놓습니다.
내려받은 설치 파일은 시작을 허락받기 전에 SHA-256으로 해시해 공개된 매니페스트와 맞춰 봅니다. 시작하기 전에 열려 있는 브라우저에는 종료를 요청해 쿠키가 디스크에 닿게 하고, 공유받은 프로필은 쥐고 있던 잠금을 돌려줍니다. 설치 파일에는 아직 코드 서명이 없어서 이 해시가 확인의 전부입니다. 인증서가 생기면 같은 파일에 붙는 Windows 서명이 여기에 더해집니다.
요청하는 화면이 앱에 있습니다. 제목, 최대 4,000자의 내용, 그리고 내가 보낸 것 중 가장 최근 세 개가 양식 아래에 남아 있어서 지난번 것이 갔는지 볼 수 있습니다. 계정당 하루 열 개입니다.
전체 목록은 이 사이트에 있고, 요청마다 저희가 매긴 상태와 저희 답이 아래에 적혀 있습니다. 3월에 그 채팅 스레드를 다시 찾아내야 답을 아는 것이 아니라는 뜻입니다.
프로필은 하나하나가 닫아도 남는 진짜 Chromium 사용자 데이터 디렉터리이고, 앱은 확장 프로그램을 끄는 플래그를 넘기지 않습니다. 프로필 안에 설치한 확장 프로그램은 그 프로필의 것이고 그 안에 머뭅니다.
앱이 더하는 것은 없습니다. Chromium에 프록시 아이디와 비밀번호를 넘기는 흔한 방법은 인증 요청에 답하는 작은 확장 프로그램이고, 들여다보는 페이지는 어느 것이나 그 확장 프로그램을 볼 수 있어서 그것이 또 하나의 식별 단서가 됩니다. 그래서 대신 로컬 릴레이를 씁니다. 여러 프로필의 확장 프로그램을 한 번에 설치하고 바꾸는 화면은 만들지 않았습니다.
팀과 프로필을 공유하면 쿠키와 로그인 상태가 함께 따라가고, 서버에는 암호화된 상태로 저장됩니다.
저희 서버는 그 묶음을 들고 있는 동안 저희 키로 암호화합니다. 즉 저희가 읽을 수 있습니다. 묶음에 무엇이 담기는지, 누가 열 수 있는지, 공유를 끊으면 어떻게 되는지는 모두 팀 페이지에 있습니다.
이름과 시간대, 국가, 화면 언어는 계정에 보관되므로 두 번째로 연결한 PC는 첫 번째를 두고 나온 그대로 뜹니다. 거기서 바꿀 수 없는 칸은 이메일 하나입니다. 그것이 곧 계정이기 때문입니다.
언어를 바꾸면 네트워크 호출이 나가기 전에 글자가 먼저 바뀝니다. 서버가 이름을 다시 붙여 주기를 기다리는 버튼은 고장 난 버튼으로 읽히고, 필요한 순간에 앱이 오프라인이면 그 설정은 아무 값도 없습니다.
들어오는 길 가운데 어느 것이 맨 위에 놓이는지는 지금 이 글을 읽는 언어에 따라 달라집니다.
메시지에 답하는 사람은 이것을 만들고 이것으로 계정을 운영하는 사람입니다. 그래서 브라우저 커널에 대한 질문이 문서 링크로 돌아오지 않습니다. 베트남 고객에게는 Zalo가, 나머지 모두에게는 Telegram이 주 채널이고, 둘 다 같은 사람이 읽습니다.
이 사이트는 열 개 언어로 쓰였습니다. 앱 자체는 베트남어와 영어뿐이고, 아닌 척할 이유가 없습니다. 한국어 페이지를 읽은 사람이 설치하는 화면은 영어입니다.
| 채널 | 어디에 쓰는지 |
|---|---|
| Telegram | 가장 빠르게 닿는 방법 |
| Messenger | 이미 Facebook으로 연락한 적이 있다면 |
| 첨부 파일, 증빙, 결제 관련 문의 |
구석에 떠 있는 버튼은 지금 보고 있는 페이지의 언어에 맞는 채널을 내놓습니다. 문의 페이지에는 모든 채널이 주소와 함께 적혀 있습니다.
아래 항목은 아직 앱에 없고, 오늘 결제하시는 금액에 포함되지 않습니다. 하나씩 나올 때마다 업데이트 내역에 적습니다.
AdsPower와 호환되는 문법을 그대로 유지해, 이미 돌리고 있는 Selenium, Puppeteer, Playwright 스크립트를 거의 고치지 않고 옮길 수 있습니다.
프로필 그룹별로 확장 프로그램을 설치하고 한꺼번에 켜고 끄세요. 소프트웨어가 몰래 심는 것이 아니라 직접 고른 확장 프로그램입니다.
TikTok, Shopee, Facebook에서 반복되는 작업용 스크립트가 준비돼 있습니다. 예약 실행하거나 한꺼번에 돌리세요.
프로필별 실행 기록: 언제 실행했는지, 어느 커널 버전인지, 프록시를 썼는지. 프록시 주소와 비밀번호는 기기를 벗어나지 않습니다.
가장 자주 로그인하는 계정을 고르세요. 아이디와 비밀번호, 2FA 문자열을 그 프로필에 넣고, 스프레드시트를 닫고 하루를 그렇게 일해 본 다음 나머지 200개를 하세요.
1년 뒤에도 갖고 있을 비밀번호를 고르고, 백업하는 그 PC가 아닌 곳에 적어 두세요. 잃으면 파일도 함께 잃습니다. 저희에게는 사본도 없고 들어갈 방법도 없습니다.
2분이면 되고, 내 데이터 중 어느 것이 내 디스크에 있고 어느 것이 저희 쪽에 있는지 말해 주는 곳은 거기뿐입니다. 첫 프로필이 올라간 뒤보다 그 전에 아는 편이 낫습니다.
만듭니다. 2단계 인증을 켤 때 사이트가 준 문자열을 붙여 넣으면 앱이 그것으로 여섯 자리를 만들어 냅니다. 시계 위에 HMAC-SHA1, 30초마다 새 코드입니다. 키 자체는 화면으로 돌아오지 않고, 코드만 돌아옵니다.
아니요. 이 빌드에는 자동 입력이 없습니다. 비밀번호와 코드에 각각 복사 버튼이 있고, 붙여 넣는 것은 내가 합니다. 그보다 더 하려면 앱이 브라우저가 띄운 페이지 안으로 손을 넣어야 하고, 앱은 그렇게 하지 않습니다.
없습니다. 키는 Windows가 보관하며 지금 로그인해 있는 Windows 계정에 묶습니다. 그래서 그 파일은 다른 PC에서도, 다른 사용자 아래에서도 소용이 없습니다. 반대로 내 Windows 계정에 이미 로그인해 있는 사람은 한 번 눌러 비밀번호를 볼 수 있습니다. 자리를 비울 때는 Windows를 잠그세요.
계정에 있는 프로필 전부입니다. 고르는 창이 없고, 내보내기는 전부를 가져갑니다. 빠지는 것은 두 가지입니다. 남이 나에게 공유해 준 프로필, 그리고 내보내는 그 순간 열려 있는 프로필입니다. 둘 다 보고에 이름이 적히므로 닫고 다시 돌리면 됩니다. Chromium 디렉터리도 파일에 들어가지 않고, 그래서 보낼 수 있는 크기로 남습니다. 세션을 local storage에 두는 사이트는 되돌린 뒤에 다시 로그인하라고 합니다. 프로필이 이 파일에 무엇을 실어 가는지는 프로필 관리 페이지에 전부 적혀 있습니다.
이 빌드에서는 안 됩니다. 지금 내 PC 사이에서 프로필이 옮겨 다니는 방법은 암호화 파일이고, 옮기는 사람은 나입니다. 내 PC끼리 동기화는 위 목록에 있습니다.
됩니다. 프로필은 진짜 Chromium 사용자 데이터 디렉터리이고 앱이 확장 프로그램을 끄지 않으므로, 한 프로필 안에 설치한 것은 그 프로필 안에 머뭅니다. 아직 없는 것은 여러 프로필의 확장 프로그램을 한 번에 설치하고 바꾸는 화면입니다.
베트남어와 영어입니다. 이 사이트는 열 개 언어이고 앱은 두 개입니다. 이 차이는 번역이 아직 불러오는 중인 것이 아니라 실제로 그렇습니다.