Chromium은 브라우저 전체에 프록시 하나를 받습니다. 계정 두 개를 동시에 열어야 하는 날이 오기 전까지는 그것으로 충분합니다.
인증이 걸린 프록시에서 까다로운 것은 주소가 아닙니다. 그 뒤의 두 칸, 그리고 그것을 어디에 입력해야 하는지입니다.
Chromium을 프록시로 향하게 하는 명령줄 플래그가 실어 가는 것은 주소뿐입니다. 거기에 계정을 넣을 칸은 없고, 문서에 적힌 방법은 프록시가 되돌려 보내는 인증 요청을 받아 내는 확장 프로그램입니다.
확장 프로그램은 chrome.runtime을 통해 페이지에서 닿을 수 있고, 그러면 그 우회책이 이 브라우저가 평범하지 않다고 사이트에 알리는 또 하나의 단서가 됩니다. SigoLogin은 대신 브라우저 밖에서 인증합니다. 작은 SOCKS5 서버가 127.0.0.1에서 돌면서 자기 비밀번호는 요구하지 않고, 진짜 프록시와 대화를 주고받습니다. Chromium은 루프백의 그 주소를 향하게 되므로, 인증 정보는 페이지가 들여다볼 수 있는 어디에도 놓이지 않습니다.
열리는 프로필마다 제 릴레이를 하나씩 받고, 포트는 그 순간 운영체제가 내주는 것을 씁니다. 설정할 것은 없습니다. 설정 화면에 수신 포트가 없고, PC의 모든 것이 나눠 쓰는 하나짜리 로컬 프록시도 없습니다.
프로필 둘이 릴레이 하나를 쓰면 프로필 둘이 출구 주소 하나를 쓰는 셈이고, 프로필이 있는 이유가 바로 그것을 피하기 위해서입니다. 브라우저가 닫히면 그 릴레이는 브라우저보다 먼저가 아니라 나중에 멈춥니다. 돌아가는 중에 프록시를 잃은 브라우저는 곧바로 직접 나가는 쪽으로 되돌아갈 수 있기 때문입니다.
SOCKS5, HTTP, HTTPS이고, 계정이 있어도 되고 없어도 됩니다. HTTP 프록시와 HTTPS 프록시는 둘 다 CONNECT 메서드로 닿으므로, 드롭다운의 두 이름은 아래에서 한 길입니다. 프록시 항목이 담는 것은 다음이 전부이고, 그 뒤에 두 번째 탭은 없습니다.
| 칸 | 무엇을 넣는지 |
|---|---|
| 라벨 | 선택. 항목에 붙이는 내 이름이고, 스무 개가 호스트 하나를 나눠 쓸 때 목록을 읽을 수 있게 만드는 것이 이것입니다 |
| 프로토콜 | SOCKS5, HTTP, HTTPS |
| 호스트와 포트 | 호스트 이름이나 주소, 그리고 업체가 준 포트 |
| 아이디 | 선택. 이것을 지우면 비밀번호도 지워집니다. 계정이 없는 프록시에는 비밀번호가 쓰이지 않기 때문입니다 |
| 비밀번호 | 한 번 저장하면 다시 보여 주지 않습니다. 항목을 고칠 때 칸은 비어 있고, 빈 칸은 갖고 있는 비밀번호를 그대로 둔다는 뜻입니다 |
비밀번호는 디스크로 가기 전에 Windows 데이터 보호 서비스로 감싸이고, 그 키는 내 Windows 계정에 묶입니다. 데이터 폴더를 다른 PC로 복사하면 비밀번호는 따라오지 않습니다. 앱은 비밀번호 없이 브라우저를 열어 네트워크 오류를 해석하도록 남겨 두지 않고, 그 사실을 말하고 멈춥니다.
업체는 저마다 편한 모양으로 프록시를 내보내므로, 네 가지 모양은 그대로 들어갑니다. 호스트와 포트, 사용자, 비밀번호를 콜론으로 나눈 것. 계정을 호스트 앞에 at 기호와 함께 쓴 것. 같은 네 가지를 쉼표로 나눈 것. 그리고 그중 무엇이든 socks5:// 접두사가 붙은 것입니다. 줄에 붙은 접두사가 대화 상자에서 고른 프로토콜을 이깁니다. 자기가 무엇인지 말하는 줄이 더 잘 알기 때문입니다. 빈 줄과 우물 정 기호로 시작하는 줄은 실패로 세지 않고 건너뜁니다. 콜론이나 at 기호가 든 비밀번호도 살아남습니다. 나누는 자리를 마지막 at 기호와 첫 콜론에서 잡기 때문입니다.
읽히지 않는 줄 하나가 나머지 묶음을 함께 끌어내리지 않습니다. 나머지는 들어가고, 실패한 줄은 글자 그대로 돌아옵니다. 백 줄 가운데 잘못된 한 줄을 찾는 실질적인 방법은 그것뿐입니다.
업체는 호스트 하나에 세션을 아이디 안에 적어 파는 방식도 씁니다. 항목을 복제하면 비밀번호까지 함께 복사되므로, 세션 다섯 개는 비밀 다섯 개를 다시 치는 일이 아니라 글자 하나를 다섯 번 고치는 일이 됩니다. 복사본이 물려받지 않는 것은 점검 결과입니다. 아직 아무것도 증명하지 않았고, 얻지도 않은 체크 표시와 시간대를 달고 시작한 복사본 위에는 핑거프린트가 그대로 얹히게 됩니다.
페이지 요청을 프록시로 보내는 일은 쉬운 절반입니다. 아래의 넷은 각각 다른 계층에 있는 별개의 출구이고, 그중 하나만 열려 있어도 나머지 셋이 뜻을 잃습니다.
내 PC가 호스트 이름을 먼저 해석하고 그다음에 프록시에 주소를 요청하면, 그 조회는 이미 내 회선으로 나간 것입니다. 개인정보만의 문제가 아닙니다. 어떤 업체는 이름을 건네받을 때만 내가 고른 나라를 적용하므로, 주소로 도착한 요청은 다른 곳으로 나갑니다. 같은 순간에 한 프록시가 호스트 이름에는 태국에서, 주소에는 싱가포르에서 나가는 것을 쟀습니다.
릴레이는 브라우저가 준 그대로 이름을 넘기고, 해석은 프록시가 하게 둡니다. 프록시 점검도 같은 릴레이를 거쳐 같은 방식으로 하게 되어 있습니다. 이름을 내 PC에서 해석하는 점검은 브라우저가 결코 쓰지 않을 나라를 보고하기 때문입니다. 빌드에 들어 있는 시험은 대역 프록시를 거쳐 호스트 이름으로 연결을 열고, 도착한 것이 주소라면 실패합니다.
WebRTC는 브라우저의 프록시를 거치지 않습니다. 지금의 Chrome은 로컬 주소를 mDNS 이름 뒤에 감추지만, STUN 서버에서 돌아오는 후보에는 여전히 내 회선의 진짜 주소가 실려 있습니다. 막기 전에 저희 빌드에서 잰 값입니다. 같은 프로필에서 같은 시각에, 한 탐지 페이지가 HTTP로는 미국 주소를, WebRTC로는 베트남 주소를 읽었습니다.
이제 프록시가 붙은 프로필은 프록시 밖의 UDP를 끈 상태로 시작하므로, 알릴 두 번째 주소가 남지 않습니다. 이 결정은 앞서 만들어 둔 핑거프린트가 아니라 그 순간의 프로필 상태에서 나옵니다. 프록시를 붙이기 전에 핑거프린트를 만든 프로필은 예전에는 그 스위치 없이 시작했고, 화면에는 그렇다는 말이 어디에도 없었습니다.
브라우저는 루프백으로 가는 것은 기본적으로, 그리고 저마다의 이유로 프록시를 거치지 않고 곧바로 보냅니다. 그러면 로컬 주소의 무언가를 요청하는 페이지는 이 목록의 나머지 전부를 지나쳐 내 PC에서 답을 받습니다. 프록시가 붙은 프로필은 그 예외를 없앤 상태로 실행됩니다.
릴레이를 먼저 멈추면 프록시 설정의 반대쪽에 아무것도 없는 채로 브라우저가 돌아가게 되고, 그 상태의 브라우저는 직접 연결로 되돌아갈 수 있습니다. 그래서 순서를 반대로 못박아 두었습니다. 브라우저를 닫고, 그것이 쓰던 릴레이는 그다음에 멈춥니다.
오하이오의 주소에서 자카르타 시간대를 알리는 브라우저는 이미 자기모순에 빠졌고, 캔버스나 폰트를 얼마나 손봐도 그것을 덮지 못합니다. 그래서 시간대는 내 것이 아니고 설정도 아닙니다. 프록시 점검에서 나옵니다. 점검이 위치 조회 서비스에 그 주소에 어떤 시간대가 속하는지 물어봅니다.
국가 코드에서 가져오지 않습니다. 그것이 어긋나는 지름길입니다. 국가에서 시간대로 가는 표는 미국에 America/New_York을 주고, 그러면 캘리포니아에서 나가는 프록시는 세 시간이 틀립니다. 여기서 실제 프록시로 그 일이 있었고, 그래서 서비스가 그 주소에 대해 돌려주는 시간대를 쓰고 국가 표는 그것이 다루는 스무 개 나라에 대한 대비책으로만 남겨 두었습니다.
수락 언어는 국가를 따르고, 그 뒤에 영어가 붙습니다. 베트남 주소는 베트남어를 먼저, 영어를 그다음으로 요청하는 프로필을 만듭니다. 베트남에 있는 브라우저가 보내는 것이 그것입니다.
서비스가 주소는 주고 국가는 주지 않으면, 앱은 하나를 골라 넣지 않고 국가 없음으로 기록합니다. 틀린 국가는 틀린 시간대를 함께 끌고 오고, 프로필이 기본 시간대로 돌아가는 편이 더 작은 문제입니다. 둘 중 어느 쪽이었는지는 점검이 알려 줍니다.
프로필을 여는 순간이 프록시가 표의 한 줄이기를 그치는 지점입니다. 상태는 넷이고, 각각 Chromium이 시작한 뒤가 아니라 시작하기 전에 결판납니다.
| 프록시의 상태 | 프로필을 열면 어떻게 되는지 |
|---|---|
| 마지막 점검이 10분보다 전 | 핑거프린트를 만들기 전에 다시 점검하고 답을 기록합니다 |
| 답합니다 | 답한 주소의 시간대와 언어로 브라우저가 시작합니다 |
| 답하지 않습니다 | 프로필이 열리지 않고 이유를 알려 줍니다. 계정이 거절됐거나, 주소나 포트가 틀렸거나, 10초 동안 아무 응답이 없었던 것입니다 |
| 그 뒤로 호스트나 포트, 계정을 고쳤습니다 | 고친 것을 저장할 때 옛 답이 지워졌으므로 점검하지 않은 것으로 보고 지금 점검합니다 |
10분은 편해서 고른 어림수가 아닙니다. 회전 프록시는 한 세션 동안 주소를 유지하고 그다음에 바꾸는데, 한 프록시가 싱가포르에서 답하고 같은 세션 안에서 나중에 인도에서 답한 것을 기록했습니다. 오래된 답으로 열린 프로필은 인도에서 나가면서 싱가포르 시계를 알리게 되고, 이 페이지 전체가 말하는 자기모순이 그것입니다.
프로필을 열 때 저희 서버에 닿는 것은 두 가지입니다. 그 프로필에 프록시가 있었는지, 그리고 어느 나라로 나갔는지입니다. 어느 프록시였는지, 어느 주소였는지는 그 기록에 들어 있지 않고, 이 웹사이트가 보여 주는 프로필 목록에는 어떤 프록시도 들어 있지 않습니다.
출구 주소는 한 번 올라갑니다. 저희 브라우저는 저희 서버가 서명한 핑거프린트로만 돌고, 그 주소는 서명되는 것의 일부입니다. 그래서 핑거프린트의 나머지와 함께 올라갔다가 서명된 채로 곧바로 돌아옵니다. 서버는 그것을 보관하지 않습니다.
프록시 비밀번호, 그리고 저장된 계정의 비밀번호와 2FA 키는 앱이 디스크에 둘 수밖에 없는 비밀입니다. 이 값들은 Windows 데이터 보호 서비스로 감싸고 키는 Windows 계정에 묶이므로, 데이터 폴더를 다른 PC나 다른 사용자에게 복사해도 따라가지 않습니다.
오류 메시지는 PC를 떠나기 전에 정리됩니다. scheme://user:password@host 형태의 주소는 로그인 부분이 별표 세 개로 바뀌고, 500자를 넘는 부분은 잘립니다. 호스트와 포트는 남기므로, 프록시 연결 오류에는 그 프록시의 주소와 포트가 담길 수 있습니다.
위의 일들은 보이지 않는 곳에서 몇 초 안에 한 번 일어납니다. 여기부터가 내가 만지는 부분입니다.
이 페이지의 어떤 것도 유료 요금제로 미뤄 두지 않았습니다. 요금제가 바꾸는 것은 프로필을 몇 개까지 둘 수 있는지, PC를 몇 대까지 활성화할 수 있는지입니다.
| 기능 | 무료 | 퍼스널 | 프로페셔널 | 비즈니스 |
|---|---|---|---|---|
| 인증 프록시, DNS 누출 없음 | ||||
| 시간대와 언어가 프록시 국가를 따름 | ||||
| 프로필 수 | 3 | 50 | 300 | 무제한 |
여기서 프록시는 세지도 팔지도 않습니다. 앱은 항목을 몇 개까지 둘 수 있는지 제한하지 않고, 대신 주소를 사 주는 기능도 없습니다.
일괄 추가는 업체가 내보낸 모양 그대로 덩어리를 받습니다. 프로토콜은 한 번만 고르면 되고, 자기 것을 밝히지 않은 줄에 적용됩니다.
전체 점검은 모든 항목을 동시에 돌리고, 각 항목이 돌려준 주소와 국가, 시간대를 적어 둡니다. 죽은 항목은 그 계정이 필요한 순간보다 지금 찾아내는 편이 낫습니다.
프록시는 프로필의 제 줄에서 고릅니다. 핑거프린트는 시간대와 언어를 그 주소에서 가져오고, 릴레이 하나가 그 프로필만을 위해 시작합니다.
아니요. 앱 안에서 주소를 사거나 되팔거나 나눠 주는 것은 없고, 연결할 업체 계정도 없습니다. 이미 돈을 내고 쓰는 프록시를 가져오시면 되고, 업체가 흔히 내보내는 네 가지 모양 중 어느 것이든 됩니다.
SOCKS5와 HTTP, HTTPS이고, 아이디와 비밀번호가 있어도 되고 없어도 됩니다. HTTP와 HTTPS는 둘 다 CONNECT 메서드로 닿으므로, 연결이 서고 나면 똑같이 움직입니다.
필요하지 않고, 앱이 지금처럼 만들어진 이유가 그것입니다. Chromium의 프록시 플래그에는 계정을 넣을 자리가 없어서 흔한 답은 그것을 넣어 주는 확장 프로그램이고, 확장 프로그램은 방문하는 어느 페이지에서나 물어볼 수 있습니다. SigoLogin은 루프백에서 작은 SOCKS5 서버를 돌려 브라우저 밖의 그곳에서 인증합니다.
됩니다. 프록시는 그 자체로 항목이고 몇 개의 프로필이든 그것을 가리킬 수 있습니다. 비밀번호가 바뀌었을 때 한 곳만 고치면 되는 것도 그래서입니다. 다만 그러면 출구 주소 하나를 나눠 쓰게 되므로, 서로 관련돼 보여도 되는 프로필에만 쓰세요.
프로필이 열리지 않습니다. 최근 답이 없는 프록시는 브라우저가 시작하기 전에 시험하고, 계속 조용하면 창 대신 이유를 받습니다. 그래도 열면 연결이 없는 브라우저이거나, 내 주소로 나가는 브라우저가 됩니다.
한 동작으로는 안 됩니다. 프록시는 프로필의 제 줄에서 지정합니다. 규모가 늘어나는 쪽은 반대 방향입니다. 항목 하나가 원하는 만큼의 프로필을 맡으므로, 프록시 하나 뒤의 프로필 백 개는 항목 백 개와 비밀번호 백 개가 아니라 항목 하나와 비밀번호 하나입니다.
아니요. 호스트 이름은 해석되지 않은 채로 프록시에 넘어가고, 경로의 어느 부분이든 그것을 로컬에서 해석하면 빌드에 들어 있는 시험이 실패합니다. 프록시가 붙은 프로필은 PC 자체의 주소에 대해 브라우저가 흔히 두는 예외까지 없앤 상태로 실행되므로, 프록시를 돌아 나가는 것은 남지 않습니다.
프록시나 VPN은 요청이 나가는 주소만 바꿉니다. 브라우저는 여전히 같은 컴퓨터를 묘사합니다. 둘은 서로를 대신하기보다 함께 씁니다. SigoLogin은 프로필마다 프록시 하나를 전제로 하고, 시간대와 언어를 그 프록시가 있는 나라에서 가져와 주소와 어긋나지 않게 합니다.