토르 브라우저 주의사항, 꿀팁, FAQ 정리

본인이 토르를 쓴다는 사실 자체를 숨겨야 하는 사람은 이 글에 달려 있는 각종 링크들을 되도록이면 누르지 말고 이 글을 잘 읽어보기만 하기 바란다.

다운로드 방법

어떤 프로그램이든, 프로그램을 받을 땐 네이버 소프트웨어 같은 제3자 사이트가 아니라 해당 프로그램 공식 사이트 또는 앱스토어 등 OS차원에서 관리되는 곳에서 다운받는 것이 좋다. 토르 브라우저는 토르 프로젝트 공식 사이트에서 다운받을 수 있다. 윈도우, 맥, 리눅스, 안드로이드 버전이 존재하며 iOS 버전은 아직 출시되지 않았다.

다만 리눅스의 경우에는 공식 사이트에서 직접 tar.xz 파일을 다운받아 설치하는 것보다 Micah Lee가 개발한 오픈소스 프로그램인 torbrowser-launcher를 이용하는 것이 더 편하다. 이 프로그램은 토르 프로젝트 공식 사이트에서 본인 시스템에 맞는 최신 버전의 토르 브라우저 다운로드, 전자서명 검증, 설치, 리눅스 런처에 토르 브라우저 아이콘 추가, 토르 브라우저에 AppArmor 프로필 적용 과정을 자동으로 진행해 주는 프로그램이다. apt, dnf 등 해당 리눅스 배포판의 공식 레포지토리에서 설치할 수 있다. 가령 우분투 등 데비안 계열은 터미널에서 sudo apt update, sudo apt install torbrowser-launcher를 입력하면 된다.

iOS는 아직 공식 토르 브라우저는 나오지 않았지만, 토르 프로젝트에서 공식적으로 추천하는 서드파티 브라우저는 있다. 바로 Onion Browser다. 앱스토어에서 다운받을 수 있다.

유용한 단축키

토르 브라우저에만 국한된 것은 아니고 다른 브라우저, 다른 프로그램에서도 쓸 수 있는 단축키다.

  • Ctrl+W: 탭을 닫는다. 탭이 1개 있을 때 누르면 창을 닫으며 토르 브라우저를 완전히 종료한다(window). 리눅스에서는 Alt+W. 맥에서는 Cmd+W.
  • Alt+F4: 현재 활성화된 프로그램을 종료하는 윈도우 단축키다. 토르 브라우저 사용 중 이걸 누르면 탭이 여러 개 열려 있어도 즉시 종료된다. 다만 게시판에서 글을 올리던 중에 누르는 경우에는 즉시 종료되지 않고 ‘지금 끄면 글이 날아가는데 정말 끄시겠습니까?’ 창이 뜰 수 있다.
  • Ctrl+T: 새 탭을 연다(tab).
  • Ctrl+N: 새 창을 연다(new).
  • Ctrl+F: 현재 페이지에서 특정 단어를 찾는다(find).
  • Ctrl+R: 새로고침(reload).
  • Ctrl+P: 인쇄(print). 프린터를 Microsoft Print to PDF로 선택하면 해당 페이지를 PDF파일로 저장할 수 있다.
  • Ctrl+L: 주소창
  • Ctrl+1,2,3,4…: 해당 번째에 있는 탭을 활성화한다. 리눅스에서는 Alt+1,2,3,4로 대체.

이하는 토르 브라우저에 국한된, 자주 쓰이는 단축키들.

  • Ctrl+Shift+U: New Identity 버튼이다. 상세 내용은 아래 설명 참조.
  • Ctrl+Shift+L: Change Circuit for This Site 버튼이다. 상세 내용은 아래 설명 참조.

토르 브라우저를 쓸 땐 주의사항을 지켜야 하는가?

그렇지 않다. 그냥 일반 브라우저를 쓰는 것과 똑같이 쓰면 된다.

간혹 주의사항을 지켜야 하는 경우도 있다. 민감한 주제에 대한 웹서핑을 하면서 매우 높은 수준의 익명성 내지 프라이버시를 유지해야 할 때 그렇다. 하지만 이건 ‘토르 브라우저를 쓰기 때문에’ 주의사항을 지켜야 하는 게 아니라, ‘본인이 민감정보를 숨겨야 하기 때문에’ 주의사항을 지켜야 하는 것이다. 토르 브라우저가 아닌, 예를 들어 크롬 시크릿모드와 VPN을 쓰면 주의사항을 안 지켜도 자동으로 프라이버시가 유지될 것 같은가?

일반 브라우저를 쓸 땐 안 지켜도 되고 토르 브라우저를 쓸 때만 특별히 지켜야 하는 그런 주의사항 같은 것은 없다.

플러그인, 확장기능을 설치해도 되는가?

토르 브라우저는 기본적으로 모든 토르 사용자를 다 똑같아 보이게 만듦으로써 개개인의 익명성을 유지시켜 준다(Laperdrix et al., 2019). 확장기능을 설치하면 그게 일종의 핑거프린트로 작용해 익명성이 다소 낮아질 가능성이 있으므로, 고도의 익명성이 필요한 상황에서는 확장기능을 설치하지 말고 기본 상태로 사용하는 것이 바람직하다.

그러나 그렇게까지 높은 익명성이 필요하지 않은 일상적인 상황에서는 웹서핑의 쾌적성을 위해 uBlock Origin (uBO) 같은 걸 설치해서 써도 상관없다. 다만 웹사이트가 이런 광고, 트래커 차단기에서 정확히 어떤 필터가 활성화돼 있는지를 감지하는 것이 기술적으로 가능하기 때문에,* 이걸 쓰더라도 되도록이면 기본 상태로만 쓰고 Korea 필터를 따로 활성화시키지는 않는 것을 추천한다.

참고로 많은 사람들이 쓰는 보안 OS인 테일즈Tails 리눅스에는 uBO가 설치된 토르 브라우저가 기본 탑재돼 있다. 이 때문에, 테일즈가 아닌 다른 리눅스 사용자가 토르 브라우저에 uBO를 설치하면 테일즈 사용자들과 동일한 핑거프린트를 갖는 게 가능할 수도 있다. 다만 세부적인 필터 활성화 목록이나 필터 버전이 약간씩 다를 가능성도 있는데 그 부분은 아직 확인이 필요하다.

토르 브라우저는 기본적으로 사용자의 OS 종류(윈도우, 맥, 리눅스, 안드로이드)를 노출시키기 때문에, 윈도우 사용자는 uBO를 설치해도 테일즈 사용자와 동일한 핑거프린트를 가질 수 없다.

어떤 경우에는 uBO를 설치해서 쓰는 것이 익명성…이라기보다는 프라이버시를 더 높일 수 있는 방법이 되기도 한다. 예를 들어 나 같은 경우에는 이 블로그에 로그인해서 글을 쓸 때, 이미 로그인이 된 이상 신상은 노출된 것이므로 포기하고 대신 그 신상과 관련된 행태정보가 수집되는 정도를 낮추기 위해 uBO를 켠다.

토르 브라우저로 .onion 사이트가 아닌 일반 사이트에 들어가도 익명성이 유지되는가?

일반 사이트에서도 .onion 사이트에 들어갈 때와 동일한 수준의 익명성이 유지된다. .onion으로 끝나지 않는, www.naver.com이나 심지어 www.police.go.kr, www.spo.go.kr, www.nis.go.kr에 들어가도 토르 브라우저를 쓰는 이상 추적은 불가능하거나 매우 어렵다. 애초에 토르라는 프로그램 자체가 딥웹이 아닌 일반 사이트에 들어갈 때 익명성이 유지되라고 만들어진 것이고, 딥웹 기능은 나중에 추가로 덧붙여진 것에 불과하다.

어니언 사이트 및 이른바 ‘딥웹’에 대한 자세한 내용은 별도의 포스팅을 참조하기 바란다.

토르 브라우저는 민감한 작업을 할 때만 한정적으로 사용하고, 평소에는 토르 브라우저를 안 쓰는 게 좋은가?

일반적인 상황에서는 그렇지 않다. 오히려 익명성을 유지할 필요가 전혀 없는 아주 평범한 작업을 하거나 심지어 본인 실명 계정으로 로그인해서 활동할 때도 토르 브라우저를 쓰는 게 좋다. 왜냐하면 토르 브라우저를 꼭 무슨 일이 있을 때만 사용하면, 정확히 언제, 어떤 일이 있을 때, 얼마나 오래 토르 브라우저를 쓰는지 등의 ‘메타데이터’가 생성, 유출될 수 있기 때문이다.

좀 거칠게 비유하면 이렇다. 우리가 보호하고 싶어하는 정보가 파란색 ‘개인정보’라고 하자.

딱 숨겨야 하는 정보가 있는 부분만 한정적으로 가리는 것은, ‘정확히 어디어디를 가렸는지’에 대한 메타데이터가 노출되기 때문에 큰 도움이 안 된다.

분명 파란색 글씨 자체는 빈틈없이 다 가리긴 했고, 그로 인해 폰트의 색, 두께, 모양은 어느 정도 숨겨졌다. 그럼에도 불구하고 공격자는 정확히 어디어디가 가려졌는지만 보고 꽤 많은 것을 알아 낼 수 있다.

익명성을 요하지 않는 평범한 작업을 할 때도 토르 브라우저를 사용함으로써 가려야 하는 파란색 글씨가 없는 부분까지 추가적, 잉여적으로 가려 버리면 이런 흥미로운 메타데이터가 생성, 유출되는 것을 막을 수 있다.

이 경우 공격자는 글자의 갯수 및 크기만 알 수 있을 뿐 그보다 자세한 내용은 알 수 없다.

이보다 훨씬 더 넓은 범위를 가려 버리면 공격자가 알아낼 수 있는 것은 훨씬 더 적어진다.

그러므로 토르 브라우저는 자주 쓸수록 이득이다. 꼭 토르 브라우저가 아니라 모든 보안, 프라이버시 관련된 게 다 마찬가지다. 가릴 필요가 없는 부분까지 포함해 최대한 넓은 범위를 가리는 게 최선이다.

이런 추상적인 비유가 잘 와닿지 않는다면 구체적인 케이스를 생각해 봐도 된다. 자기가 인상 깊게 읽은 뉴스를 인용하는 글을 익명으로 인터넷에 올린다고 하자. 글을 업로드하는 단계에서 토르로 익명성을 유지하더라도, 글에 특정 기사가 링크돼 있거나 특정 기사에만 등장하는 정보가 언급돼 있다면 공격자는 일응, 글쓴이는 최근에 해당 기사를 읽은 사람일 것이라고 추측할 수 있고, 해당 뉴스 회사나 네이버 등으로부터 그 기사를 클릭한 사람이 누구인지에 대한 정보를 넘겨받을 수 있다. 기사라는 게 처음 나왔을 때는 많은 사람들이 읽지만 시간이 좀 지나고 나면 특정한 옛날 기사를 검색해서 읽는 사람은 극소수기 때문에 이런 식으로 추렸을 때 용의선상에 오르는 사람은 몇 명 되지 않는다. 만약 글에 여러 개의 기사가 링크돼 있다면 그 각 기사를 읽은 사람들 중 겹치는 사람을 찾으면 되므로 일이 더 쉬워진다. 글을 업로드할 때뿐만 아니라 애초에 뉴스를 읽는 것부터 전부 토르로만 하면 이렇게 쉽게 추적당하지는 않을 것이다.

동영상 스트리밍이 느릴 때

해외망 수요가 별로 없는 낮 시간대에는 서킷이 어떻게 잡히느냐에 따라 1080p 60fps도 렉 없이 마우스로 이쪽저쪽 왔다갔다 하며 볼 수 있는 경우가 많다. 해외망 수요가 폭주하는 밤 11시에도 유튜브 720p 정도는 렉 없이 이쪽저쪽 왔다갔다 하면서 재생이 가능하다.

만약 아침 시간대에는 괜찮은데 저녁 시간대에만 720p가 끊긴다면 그건 통신사의 해외망이 문제라서 그럴 가능성이 있다. 보통 KT > LG > SK > 기타 순으로 해외망이 괜찮은 편이라고 알려져 있으나 어디에서나 다 그런 것은 아니고 지역에 따라 조금씩 다를 수 있다.

이 문제의 손쉬운 해결방법 중 하나는 VPN을 쓰는 것이다. VPN 국내서버를 이용하면 본인 통신사의 해외망이 아닌 그 VPN 서버의 해외망을 이용하게 되므로 실질적으로 해외망을 갈아타는 효과가 있다. 그리고 신기하게도, 내 경험상 VPN 해외서버에 접속해도 저녁 시간대의 토르 속도가 드라마틱하게 빨라지는 경우가 많다. 이 경우 본인 통신사의 해외망을 거치는 것은 똑같지만, 만약 통신사에서 VPN 트래픽에는 스로틀링을 걸지 않고 토르 트래픽에만 스로틀링을 걸고 있었다면 VPN을 거쳐 토르를 이용함으로써 스로틀링을 회피할 수 있게 된다.

간혹, 매우 낮은 확률로 해외에 있는 토르 릴레이 문제로 속도가 느릴 때도 있다. 토르는 전 세계에 퍼져 있는 릴레이 서버를 그때그때 랜덤으로 선택해서 인터넷에 접속하는 방식이기 때문에 운 나쁘게 속도 느린 릴레이가 선택되면 전체적인 속도가 느려진다. New Circuit for this Site 버튼(단축키 Ctrl+Shift+L)을 누르면 릴레이를 변경할 수 있다.

New Circuit for this Site 버튼.

상황에 따라서는 동영상을 다운받아서 오프라인으로 보는 것도 좋은 방법일 수 있다. 유튜브 영상은 Invidious라는 사이트를 이용하면 쉽게 다운받을 수 있다. 만약 원래 유튜브 영상 주소가

https://youtube.com/watch?v=WKp4JlQEPMQ

이었다고 한다면, 앞에 도메인 부분만 살짝 invidio.us로 바꿔 준다.

https://invidio.us/watch?v=WKp4JlQEPMQ

또는, Invidious 사이트의 어니언 주소인 http://axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4bzzsg2ii4fv2iid.onion/watch?v=WKp4JlQEPMQ로 바꿔 줘도 된다. 어니언 주소는 맨 앞이 https가 아닌 http라는 점에 유의. https를 붙이면 접속이 안 된다. 어니언 주소는 일반 주소보다 속도가 느린 경우가 많다.

그리고 Download 버튼을 눌러 영상을 다운로드한다.

Invidious 사이트에 있는 다운로드 버튼.

확실하지는 않지만, 유튜브의 경우에는 Invidious 사이트를 이용하면 토르 없이도 어느 정도의 익명성을 유지하면서 동영상을 스트리밍으로 볼 수 있을 가능성이 있다. Invidious는 기본적으로 동영상 자체는 구글 서버googlevideo.com에서 사용자 컴퓨터로 바로 다운로드되게 세팅돼 있기 때문에 토르 없이 Invidious를 이용하면 구글 측에 내 정보가 노출되나, 설정 페이지에 들어가면 구글 서버와 직접 만나지 않고 Invidious 서버를 프록시로 이용해서 동영상을 다운받을 수 있게 체크하는 옵션이 있다.

설정 페이지.

다만 이 옵션이 익명성을 얼마나 잘 보호해 주는지에 대해 심도 있는 검토가 이루어지지는 않았다. 고도의 익명성이 필요한 경우에는 안전하게 토르 브라우저를 쓰는 것을 추천한다.

등 뒤 사람으로부터의 프라이버시

토르 브라우저를 쓰더라도 등 뒤에 서 있는 사람으로부터 프라이버시를 유지할 수는 없다. 발신자와 수신자 사이를 왔다갔다하는 데이터는 토르로 암호화되지만, 일단 데이터가 수신자에게 도달한 다음에는 수신자가 그 내용을 읽을 수 있도록 암호화가 풀려 버리기 때문이다. 이 때문에 토르 등 암호화 도구를 사용하더라도 수신자의 입장endpoint에 서 있는 사람은, 설령 그것이 수신자 본인이 아니라 할지라도, 암호화된 통신내용을 전부 들여다 볼 수 있다. 그 대표적인 예가 바로 등 뒤에 서 있는 사람이다.

다른 예는 수신자 컴퓨터의 OS와 거기에 설치돼 있는 정부, 회사, 학교 등 각종 기관에서 제공한 보안프로그램들이다. 사실 꼭 보안프로그램만 해당되는 것은 아니고 기본적으로 컴퓨터에 설치돼 있는 모든 프로그램은 그것이 관리자 권한으로 동작하든 일반 유저 권한으로 동작하든 관계없이 해당 컴퓨터에서 일반 유저(=여러분)가 볼 수 있는 것은 모두 볼 수 있고 일반 유저가 할 수 있는 것은 모두 할 수 있다. 토르 브라우저로 어떤 사이트에 들어가서 뭘 했는지를 기록으로 남기는 것도 당연히 할 수 있다. 구체적인 예를 몇 가지 들어 보면, 윈도우 설정의 개인 정보→피드백 및 진단에서 진단 데이터를 ‘전체’로 설정해 놓으면 윈도우는 사용자가 어떤 프로그램을 실행시킬 때마다 실행 시각, 프로그램 이름, 종료 시각 등을 마이크로소프트로 전송한다.* 윈도우에 기본 탑재된 보안 기능인 Windows Defender SmartScreen은 사용자가 인터넷에서 다운받은 파일명, 파일 크기, 해쉬값, 다운 URL, 전자서명정보 등을 마이크로소프트로 전송한다.* 거의 모든 은행, 관공서 사이트에서 설치를 요구하는 AhnLab Safe Transaction은 “웹 브라우저 등을 통해 다운로드 된 응용프로그램에 대한 정보. 예: 파일명, URL, IP, 파일 크기, 서명자”를 수집함으로써 마치 SmartScreen과 유사한 기능을 한다.* 세계적으로 유명한 보안 프로그램인 AVG는 사용자가 방문하는 사이트 URL을 수집하며 그렇게 수집한 브라우징 히스토리 정보를 제3자에게 판매함으로써 수익을 창출한다고 개인정보처리방침에 명시했던 적이 있다.* 게임 플랫폼인 스팀 프로그램은 사용자가 핵 사이트에 들어갔는지를 알아보기 위해 OS의 DNS 캐시 데이터를 수집한다.*

보안 프로그램들은 암호화된 통신 내용을 엿볼 수 있도록 루트 인증서를 시스템에 설치한다. ASTx는 AhnLab Safe Transaction을 의미한다.

여기에는 어떻게 대처해야 할까. 우선은 회사, 학교 등 기관에서 제공한 컴퓨터·스마트폰으로는 프라이버시가 필요한 작업을 하지 말아야 한다. 기관에서 제공한 기기는 기관의 것이며, 그 기기상에서 이루어지는 모든 활동들도 전부 기관의 것이라고 인식하는 자세가 필요하다. 나아가, 본인이 자비로 구입한 사적인 컴퓨터·스마트폰이라 하더라도 거기에 기관에서 제공하는 프로그램이 설치돼 있으면 그건 실질적으로 기관의 컴퓨터, 기관의 스마트폰이나 마찬가지라고 생각하는 것이 좋다. 가령 포스코 직원에게 제공되는 MDM인 소프트맨은 설치할 때 화면공유, 사진, 캘린더, 연락처, 북마크, 브라우징 히스토리, 통화기록, 문자메시지, GPS 위치추적 등의 권한을 요구한다.* 꼭 ‘MDM’이라는 무서운 이름을 달고 있는 프로그램이 아니라 해도, 기관에서 제공한 ‘어떠한’ 프로그램이라도 설치돼 있으면 그 기기상에서 이루어지는 작업은 기관에 의해 감시될 수 있다고 생각해야 한다. 일례로 위디스크 양진호 회장은 직원에게 사내 메신저앱 ‘하이톡’을 설치하게 하고 그 하이톡 앱을 통해 해당 기기의 문자, 통화내역, 주소록, 통화녹음, 위치정보, 카메라 등에 접근하며, 이를 통해 “가족 사이의 대화 내용, 직원들이 어디에서 신용카드를 썼는지, 은행에 얼마를 입금하고 잔액은 얼마인지도 실시간으로 들여다 볼 수 있었다”.*

이런 건 프라이버시에 좋지 않다.

이렇게 빡빡하게 따지기 시작하면 본인 수중에 프라이버시 작업을 할 수 있는 기기는 아마 하나도 안 남게 될 것이다. 지금까지 프라이버시에 크게 신경쓰지 않았던 평범한 사람이라면 사실 하나도 안 남는 게 당연하다. 그래도 괜찮다. 지금부터 하나씩 확보해 나가면 되니까.

프라이버시 컴퓨터를 확보하기 위해서는 기본적으로 하드, SSD를 포맷하고 윈도우를 클린 재설치해야 한다. 특정 보안프로그램들만 프로그램 추가/제거로 삭제하는 게 아니라 윈도우 전체를 재설치해야 하는 이유는 프로그램 제거를 하더라도 일부 기능이 잔존하는 경우가 많기 때문이다. 꼭 무슨 악성 회사나 기술력 없는 회사에서 만든 프로그램만 그런 것이 아니고 어도비 같은 대기업 프로그램도 그런다.* 재설치 후에는 윈도우 기본 기능을 최대한 이용함으로써 추가적인 프로그램을 설치하는 것을 피하고, 부득이 프로그램을 설치해야 할 땐 보안성 저해 우려가 없는지 신중하게 검토해야 한다. 또한 은행, 관공서 사이트처럼 필수적으로 보안프로그램을 설치해야 하는 사이트를 이용할 땐 가상머신 또는 듀얼부팅을 이용함으로써, 메인으로 쓰는 윈도우에는 그런 프로그램이 설치되지 않도록 해야 한다.

상황에 따라서는 윈도우 자체도 조금 손을 봐야 할 수 있는데, 링크된 윈도우 재설치 포스팅에 나온 기본 프라이버시 세팅을 완료하더라도 Windows Defender SmartScreen이라는 기능은 여전히 동작한다. 이 기능은 사용자가 브라우저, 토렌트 또는 그 밖의 프로그램을 사용해서 다운받는 모든 파일의 이름, 해쉬값, 다운로드 URL 등을 사용자의 고유 식별자와 함께 마이크로소프트로 전송함으로써 그것이 악성 파일인지 여부를 체크해 주는 보안 기능이다. 악성 파일을 걸러 준다는 점에서는 보안에 도움이 되지만, 본인이 언제 어떤 파일을 다운받았는지가 마이크로소프트로 전송된다는 점에서는 프라이버시를 저해한다. 만약 보안에 자신이 있다면 이 기능을 꺼도 괜찮을 수 있다. Windows 보안 → 앱 및 브라우저 컨트롤에서 맨 위에 있는 ‘앱 및 파일 검사’ SmartScreen을 끄면 된다.

혹시나 해서 덧붙이면, 이 항목의 취지를 오해하지는 말았으면 한다. 컴퓨터에 보안 프로그램이 설치돼 있다고 토르 브라우저가 무소용이 되는 것은 아니다. 등 뒤에 서 있는 사람이 있다고 해도, 토르 브라우저를 쓰면 그 등 뒤에 있는 사람에게는 활동내역이 노출되지만 그 밖의 다른 사람에게는 노출이 되지 않는다. 토르가 아닌 일반 브라우저를 쓰면 등 뒤에 서 있는 사람뿐만 아니라 그 밖의 모든 사람에게 전부 노출된다. 어떤 상황에서든 토르 브라우저를 안 쓸 때보다는 쓸 때가 상대적으로 프라이버시 수준이 높다.

나무위키 열람방법

나무위키는 토르 접속을 차단하고 있다.

나무위키 토르 차단 메시지.

이게 가능한 이유는 토르 프로젝트 측에서 토르의 모든 출구 릴레이 IP주소를 실시간으로 공개하고 있기 때문이다. 웹사이트 운영자는 주기적으로 이 리스트를 파싱해 와서 여기 나와 있는 IP를 차단하는 방법으로 쉽게 그리고 완벽하게 토르 접속을 차단할 수 있다.

토르 공식사이트에 낱낱이 공개돼 있는 토르 출구 릴레이 정보. 출처: https://check.torproject.org/exit-addresses

나무모에 등 미러 사이트를 이용하면 토르 브라우저로도 나무위키 문서의 최신버전을 쉽게 열람할 수 있다. 물론 편집은 불가능하다.

나무위키 편집방법. 토르는 모든 IP가 전부 공개돼 있지만 VPN은 그렇지 않기 때문에, 간혹 나무위키 편집이 안 막혀 있는 VPN 서버가 존재한다. 그 VPN 서버를 이용하면 나무위키를 편집할 수 있다. 다만 VPN만으로는 익명성이 보장되지 않기 때문에, 익명성을 유지하기 위해서는 Tor→VPN의 구조를 만들어야 한다. 그렇게 하는 가장 쉬운 방법은 보안 운영체제인 Qubes OS를 설치한 다음 Whonix 위키 문서의 설명을 따라하는 것이다.

여기서 제일 어려운 부분은 나무위키 편집이 가능하면서도 무료로 이용 가능하거나 익명 암호화폐 결제가 가능한 VPN 서버를 찾는 것이다. 찾아 보면 아주 없지는 않다. VPN만 찾으면 나머지는 쉽다.

기타 토르 차단 사이트 열람방법

나무위키 외에도 토르 접속을 차단하는 사이트가 종종 있다. 만약 토르 전체를 차단하는 것이 아니라 특정 IP만 차단하는 사이트라면 New Circuit for This Site 또는 New Identity 버튼을 이용해 토르 IP를 다른 걸로 바꿔서 다시 들어가면 된다.

토르 전체를 차단하는 사이트라면 ProxySite.com 같은 무료 프록시 사이트를 통하거나, 일종의 프록시 사이트라 할 수 있는 구글 번역을 통하거나, 아니면 archive.today로 들어가 해당 페이지를 아카이브 뜨는 방법으로 읽을 수 있다. ‘토르 브라우저를 이용해’ 프록시, 구글 번역, 아카이브를 하라는 이야기다. 일반 브라우저로는 제아무리 프록시를 거친다 해도 익명성을 얻을 수 없다.

한국 사이트인 경우에는 한국에 위치한 토르 출구 릴레이를 거쳐 들어가면 접속이 되는 경우가 많다. 한국에 있는 토르 릴레이를 출구 릴레이로 설정하려면 Tor Browser 폴더에서, Browser\TorBrowser\Data\Tor 폴더에 있는 torrc 파일을 메모장으로 열고,

ExitNodes {kr}
StrictNodes 1

을 어딘가에 입력한 뒤 저장을 누르고 토르 브라우저를 재시작하면 된다. 2019년 현재 한국에는 1개의 토르 릴레이가 있다. 당연한 말이지만 이렇게 세팅하면 익명성은 다소 낮아지므로, 이 수법은 필요할 때만 잠깐 사용하고 해당 사이트에서 볼일을 다 봤으면 원상복귀시키는 것을 추천한다. 원상복귀를 시키려면 다시 torrc 파일을 열고 위 2줄을 삭제하고 저장한 다음 토르 브라우저를 재시작하면 된다. 그리고 해당 한국 사이트 자체에 대해 고도의 익명성을 유지해야 하는 경우에는 아예 이 수법을 쓰질 않는 게 낫다. 되는 출구가 걸릴 때까지 New Circuit for This Site를 계속 눌러 보거나 아니면 토르 브라우저를 이용해 프록시, 구글 번역, 아카이브 등을 거쳐 열람하는 게 익명성은 더 높다.

참고로 법령정보는 law.go.kr보다 glaw.scourt.go.kr로 들어가서 보는 게 더 빠르다. 전자는 토르를 차단하는 경우가 종종 있고 접속이 되더라도 속도가 느리지만, 후자는 다른 일반적인 사이트와 마찬가지로 토르로 속도 빠르게 접속할 수 있다.

각종 자료 탐색방법

토르 브라우저를 이용해 익명으로 글을 업로드한다고 치자. 이 블로그의 IT 카테고리 포스팅들을 통해 설명한 바와 같이, 인터넷 세계에서는 자기가 적극적으로 글을 써서 자기 자신을 표출하는 행위와 소극적으로 검색을 하거나 남이 쓴 글을 클릭해서 읽기만 하는 행위가 명확하게 구분되지 않으며, 이 점에서 현실 세계와 큰 차이가 있다. 이 때문에, 글을 써서 올리면 자기가 그 시점에 그 글을 써서 올렸다는 기록이 남는 것과 마찬가지로, 검색엔진에 검색을 하거나 남이 쓴 글을 클릭해서 읽으면 자기가 그 시점에 그 단어를 검색했고 그 글을 클릭해서 읽었다는 기록이 남는다. 로그인하지 않고 비회원으로 검색, 클릭하더라도 마찬가지다.

이 때문에 글을 업로드하는 단계에서 토르 등의 방법으로 익명성을 유지하더라도, 그 전에 정보 수집 단계에서 익명성을 유지하지 못하면 신상이 추적당할 수 있다. 가령 글에 특정 기사가 링크돼 있거나 특정 기사에만 등장하는 정보가 언급돼 있다면 공격자는 일응, 글쓴이는 최근에 해당 기사를 읽은 사람일 것이라고 추측할 수 있고, 해당 뉴스 회사나 네이버 등으로부터 그 기사를 클릭한 사람이 누구인지에 대한 정보를 넘겨받을 수 있다. 기사라는 게 처음 나왔을 때는 불특정 다수인이 읽지만 시간이 좀 지나고 나면 특정한 옛날 기사를 검색해서 읽는 사람은 극소수기 때문에 이런 식으로 추렸을 때 용의선상에 오르는 사람은 몇 명 되지 않는다. 만약 글에 여러 개의 기사가 링크돼 있다면 그 각 기사를 읽은 사람들 중 겹치는 사람을 찾으면 되므로 일이 더 쉬워진다.

이런 식으로 추적당하는 것을 방지하기 위해서는 사전 자료조사를 포함해 향후 올릴 글과 관련된 모든 작업을 토르 브라우저로만 해야 한다.

논문은 토르 브라우저로 Google Scholar에서 검색할 수 있으나, 구글은 토르 유저에게는 강도 높은 캡챠를 자주 띄우기 때문에 상당히 불편하다. 구글과 검색결과가 완전히 동일하지는 않지만 Semantic Scholar에서 캡챠 없이 검색이 가능하며, 구글만큼 강력하지는 않지만 해당 논문을 인용한 다른 논문들(citations)을 확인하는 것도 가능하다. 원문은 본인이 대학교 구성원이라 하더라도 대학 도서관과 연계된 학술DB에서 다운받지 말고 Sci-Hub라는 논문 무단복제 공유 사이트를 이용하는 것이 좋다. 익명성을 유지하기 위해서다. 다만 윈도우상에서 파일을 다운받는 경우 Microsoft SmartScreen 등 보안 프로그램에 의해 다운받은 파일의 제목, 해쉬값, 다운 URL 등이 기업으로 전송되므로 이에 유의할 필요가 있다.

단행본은 근처에 큰 도서관이 있다 하더라도 되도록이면 그쪽으로 가지 말고 토르 브라우저로 Library Genesis라는 단행본 무단복제 공유 사이트에서 다운받는 것을 추천한다. 그래야 익명성을 유지할 수 있고, 컴퓨터 파일의 특성상 Ctrl+F로 원하는 내용을 찾을 수 있어 편리하다.

한국어 단행본은 Library Genesis에 잘 없기 때문에 정 필요하면 서점이나 도서관에 가서 볼 수밖에 없다. 서울대 도서관은 장서가 많으면서도 자료실에 일반인 출입을 허용하며, 일반인 출입시 전산으로 뭔가를 인증하는 절차 없이 신분증 받고 임시 출입증을 건네 주는 아날로그 방식으로 출입통제가 이루어지기 때문에 꽤 유용하다. 만약 종이로 된 장부가 있다면 허위 정보를 적어야 한다. 국립중앙도서관, 국회도서관, 사법연수원 내 법원도서관은 출입하려면 회원가입이 필요하기 때문에 출입기록이 전산으로 남으나, 출입자가 정확히 어떤 책을 봤는지는 대출을 하지 않는 한 기록으로 남지 않을 것으로 보이기 때문에 필요에 따라서는 이용할 수 있다. 다만 국립중앙도서관, 국회도서관의 경우 일부 최신 자료를 제외하고는 전부 서고에 들어가 있는데 서고에 있는 책을 신청하면 누가 언제 어떤 책을 신청해서 언제 반납했는지가 전산기록으로 남는다.

도서관까지 이동할 땐 위치추적을 피하기 위해 스마트폰을 집에 두고 카드결제 기록, 교통카드 기록, 자동차 번호판 인식기 기록을 남기지 않기 위해 현금만을 이용해 버스를 타고 가는 것이 좋겠고, 버스 노선을 검색해야 한다면 토르 브라우저를 이용하되 ‘길찾기’ 기능을 이용하면서 시작점을 자기 동네로 찍는 우를 범하지 않도록 유의해야 하겠다. 책을 찾을 땐 도서관 컴퓨터로 제목을 검색하면 누군가가 그 시점에 그 책을 봤다는 기록이 전산에 남고, CCTV와 대조하면 정확히 누가 그걸 검색했는지도 알 수 있으므로 서가에서 수동으로 책을 찾거나, 집에서 토르 브라우저로 미리 검색해서 번호를 알아 가는 것이 나을 수 있다. 대출은 설령 가능하다 하더라도 기록을 안 남기려면 대출해서는 안 되고 현장에서 다 읽고서 필요한 부분은 휴대폰 사진으로 찍어 와야 한다. 본인 휴대폰으로 찍은 사진에는 휴대폰 기종, 찍은 날짜와 GPS 위치 등 메타데이터가 포함돼 있는 것은 물론 해당 카메라 렌즈 특유의 흠결 등 핑거프린트 정보가 많이 들어 있기 때문에 이를 그대로 인터넷에 올려서는 안 된다는 점 유의하기 바란다. 그리고 도서관을 익명으로 이용했더라도 CCTV 기록이 남을 수 있으므로 CCTV 영상이 삭제될 때까지 한 달 이상 기다렸다가 책을 언급하는 것이 안전할 수 있다. 이와 관련해 이 포스팅의 ‘은밀한 이동에 대한 자세한 논의’ 항목도 참조하기 바란다.

국내 판례검색은 토르 브라우저로 케이스노트를 이용하는 것이 가장 편리하다. 대법원 종합법률정보, 법제처 국가법령정보센터에 뜨는 판결은 여기에도 전부 있고 그 외에도 출처를 알 수 없는 몇몇 판결들이 올라와 있다. 참고로 종합법률정보에 공개되는 판결은 하급심까지 포함한 전체 판결의 0.2%에 불과하다. 대법원 판결 중에는 9% 정도가 공개된다.

2019년부터는 법원 사이트에서 ‘판결서 인터넷 열람’ 메뉴로 들어가 극소수의 비공개 판결을 제외한 전국의 모든 확정판결을 검색하는 것도 가능해졌다. 검색으로 찾은 판결문 전문은 1건당 1,000원의 열람수수료를 결제하면 열람 가능하다. 그러나 검색하려면 인터넷 익스플로러를 사용해야 하고, 본인 이름과 주민등록번호를 입력해야 하며, 전문을 보려면 신용카드 등 본인 신상정보와 연계된 결제수단을 사용해야 한다는 단점이 있다.

법령은 법원 종합법률정보 사이트에 나와 있는 것이라면 거기에서 보는 게 제일 편하다. 법제처 사이트와 달리 토르 접속을 차단하지 않는다.

토르 사용자에 대한 핑거프린팅

토르 브라우저는 웹사이트와 트래커 입장에서 봤을 때 모든 토르 브라우저 사용자들이 완전히 똑같아 보이게 하겠다는 목표로 개발되고 있다. 그러나 아직 그 목표가 완벽하게 달성되지는 않았다. 구체적으로 다음과 같은 정보가 노출될 수 있다.

○ 토르 브라우저 버전 8.0부터는 자바스크립트의 navigator.userAgent를 통해 유저의 OS가 윈도우, 맥, 리눅스, 안드로이드의 4종류로 구분돼 노출된다. 그러나 OS의 버전은 노출되지 않아서, 트래커는 유저의 OS가 윈도우 8.1인지 10인지, 리눅스 배포판이 우분투인지 페도라인지는 쉽게 구분할 수 없다. 참고로 토르가 아닌 다른 브라우저를 쓰는 경우에는 OS의 세부 버전까지 모두 노출된다. 가령 iOS 12.1인지 12.2인지도 나온다.

파이어폭스와 토르 프로젝트 팀은 navigator.userAgent를 통한 OS 종류 핑거프린팅을 조만간 다시 차단하려는 목표를 갖고 있다. 토르 브라우저 버전 9.0부터는 윈도우, 안드로이드의 2개로만 구분될 것으로 예상된다.

○ 테일즈Tails용 토르 브라우저에는 광고 및 트래커 차단 플러그인인 uBlock Origin이 설치돼 있다. 테일즈는 리눅스의 일종이므로 원래대로라면 리눅스용 토르 브라우저 핑거프린트를 가져야 하지만, uBlock Origin으로 인해 테일즈용 토르 브라우저는 다른 리눅스용 토르 브라우저와 다른 핑거프린트를 갖는다.

○ 트래커들은 사용자의 현재 창 크기viewport를 쉽게 알아낼 수 있으며 이는 자바스크립트를 완전히 끈 상태의 토르 브라우저에 대해서도 마찬가지다.* 토르 브라우저는 이에 대응하기 위해 모든 사용자들의 창 크기를 똑같이 만들어 놓는 접근방식을 취하고 있으나, 어떤 사람은 27인치 모니터를 쓰고 어떤 사람은 11인치 넷북을 쓰는 등 사용자마다 물리적인 모니터 크기가 많이 다르기 때문에 모든 사용자들의 창 크기를 똑같이 만드는 것은 현실적으로 불가능하다.

이 때문에, 2019년 현재 기준으로, 토르 브라우저 창 크기는 모니터 크기에 맞게 200×100 단위로 조절되고 1000×1000을 최대값으로 하는 것으로 정해졌다. 모니터 해상도가 1680×1050 또는 그 이상인 유저는 모두 1000×1000의 창 크기를 갖지만, 1680×1050보다 작은 모니터를 쓰는 노트북 사용자는 그보다 작은 창 크기를 갖는다. 따라서 데스크탑 및 큰 노트북을 쓰는 토르 사용자와 조그만 노트북을 쓰는 토르 사용자는 서로 구분될 수 있다.

참고로 토르가 아닌 다른 브라우저를 쓰는 경우에는 창 크기가 200×100 단위가 아니라 1×1 단위로 트래커들에게 노출되고 1000×1000이라는 최대값도 적용되지 않기 때문에, 사실상 창 크기만으로도 특정 유저를 unique하게 식별해 내는 것이 가능하다.

○ 자바스크립트를 이용하면 스크롤할 때 스크롤이 한 번에 얼만큼씩 움직이는지를 보고 마우스 유저와 트랙패드 유저를 구분할 수 있다.* 자바스크립트를 끄면 이걸 이용한 핑거프린팅이 조금 어려워질 것으로 예상되나, 아예 불가능해지는 것은 아니다. CSS를 이용한 마우스 움직임 트래킹도 기술적으로 가능하다.

○ getClientRects를 이용하면 토르 사용자에 대해서도 꽤 세밀한 핑거프린팅이 가능하다. https://browserleaks.com/rectshttps://privacycheck.sec.lrz.de/active/fp_gcr/fp_getclientrects.html에서 테스트해 볼 수 있다. 설치돼 있는 폰트, 모니터 해상도, UI 크기(윈도우의 경우 디스플레이 설정에서 ‘텍스트, 앱 및 기타 항목의 크기 변경’) 등이 여기에 영향을 주는 것으로 알려져 있다. 여기에 대한 대책은 아직 나오지 않았다. 자바스크립트를 끄면 이걸 이용한 핑거프린팅이 조금 어려워질 것으로 예상된다.

○ 사이트의 검색창에 한글을 입력하면 해당 사이트와 트래커들은 그 토르 사용자가 한국인이라는 사실을 알게 된다. 엔터를 치지 않더라도 요즘은 자동완성을 위해 입력 즉시 그 입력값이 서버로 전송되는 경우가 많다. 이와 비슷하게, 구글 번역을 사용하면서 번역 결과값을 한글로 지정하면 구글은 해당 사용자가 한국인이라는 사실을 알게 된다. 그 외에도 사용자 스스로의 행동과 관련한 핑거프린팅 벡터는 많다. 업로드하는 사진에 메타데이터로 들어 있는 카메라 기종 및 촬영한 위도와 경도값이라든지..

자바스크립트 꺼야 하는지

그렇지 않다. Security Level을 디폴트 상태인 Standard로 설정함으로써 자바스크립트를 전부 허용한 상태로 두어도 높은 수준의 익명성이 유지된다. 애초에 자바스크립트가 일각에서 말하는 것처럼 그렇게 위험한 것이었으면 토르 브라우저 개발자들이 디폴트로 자바스크립트를 켜 놓았을 리가 없다.

‘그래도 이왕이면 조금이라도 더 안전한 게 좋지!’라고 생각하면서 자바스크립트를 끈다면 말리지는 않겠다. 다만 그 선택이 본인 행동에 미치는 영향이 어떨지에 대해서도 생각을 해 볼 것을 권한다. 사람 마음이란 게 간사해서, 자바스크립트를 끔으로써 토르 브라우저 사용시 각종 웹사이트가 다 깨져서 나오게 만들면 아무래도 심리적으로 토르가 아닌 일반 브라우저를 쓰는 빈도가 늘어날 확률이 높다. 일반 브라우저도 각종 트래킹 차단 플러그인을 설치해 놓고 VPN도 켰으니 어느 정도는 안전할 거라고 여기면서. 그런데 잘 생각해 보면, 트래킹 차단 플러그인을 설치해 놓고 VPN을 켠 일반 브라우저도 자바스크립트가 활성화돼 있는 것은 마찬가지이며, 자바스크립트를 활성화한 토르 브라우저가 트래킹 차단 플러그인을 설치해 놓고 VPN을 켠 일반 브라우저보다 더 안전하고 익명성이 높다는 것은 명백하다.

이런 심리적인 관점에서, 나는 괜히 ‘최대한의 익명성’을 추구한다고 자바스크립트 끄기를 생활화하다가 일반 브라우저로 회귀하기보다는 차라리 테크니컬한 측면에서의 익명성을 약간 낮추더라도 자바스크립트를 켜고 토르 브라우저를 이용함으로써 일반 브라우저의 사용빈도를 최소한도로 낮추고 모든 작업을 토르로 처리하는 습관을 들이는 게 낫다고 생각한다.

자바스크립트를 이용한 핑거프린팅 가능성. 자바스크립트를 껐을 때와 비교해서, 자바스크립트가 켜져 있으면 핑거프린팅 벡터가 늘어나는 것은 사실이다. 마우스 포인터 움직임과 스크롤 움직임은 자바스크립트 없어도 추적 가능하지만 자바스크립트가 있으면 더 편하게 추적할 수 있고, 키보드 타이핑도 자바스크립트가 있어야 편하게 추적할 수 있으며, 사용자의 마우스, 스크롤, 타이핑 패턴을 인공지능으로 분석하면 개인을 고유하게 식별해 내는 것이 가능할 수도 있다. 또한 자바스크립트로 동작하는 Page Visibility API로 특정 창과 탭의 활성과, 비활성화 시점을 비교해 보면 토르 브라우저의 first party isolation 기능에도 불구하고 크로스 사이트 트래킹이 가능해질 수도 있다.

그러나 현실적인 관점에서 봤을 때 이런 걸 두려워할 필요성은 크지 않다. 현재 대부분의 인터넷 트래킹은 정보기관의 감시를 위해서 이루어진다기보다는 광고, 빅데이터 업체들의 돈벌이를 위해서 이루어지는 측면이 강하고, 정보기관은 광고를 위한 트래킹에 ‘묻어 가는’ 형태로 감시를 진행한다. 애초에 자금력에서부터 차이가 나니 그럴 수밖에 없다. 그런데 정보기관과 광고업체는 인센티브 구조가 조금 다르다. 정보기관 입장에서는 보안, 프라이버시에 대해 전혀 관심 없는 일반 컴맹들보다는 토르 사용자에게 더 관심이 많겠지만, 광고업체 입장에서는 인터넷 사용자의 0.01% 미만을 차지하는 토르 사용자보다는 99.99% 이상을 차지하는 일반인들에게 더 관심이 많다. 고도의 기술력을 동원해서 0.01%의 토르 사용자를 완벽하게 타겟팅해 봤자 고작 0.01%만큼의 수익밖에 나오지 않기 때문이다. 그래서 이들은 토르 사용자를 추적하는 데는 약간의 도움이 되지만 일반인들을 타겟팅하는 데는 추가적인 이득을 가져다 주지 않는 기술을 도입하는 데 소극적일 수밖에 없다.

이런 이유로, 나는 자바스크립트를 켜고 다님으로써 핑거프린팅 벡터를 늘려도 일반적인 상황에서는 크게 위험하지는 않을 거라고 생각한다.

자바스크립트 취약점을 이용한 제로데이 공격 가능성. 2015년에 플레이펜PlayPen이라는 굉장히 크고 유명한 아동 포르노 어니언 사이트가 있었다. 플레이펜은 어니언 사이트였기 때문에, 만약 운영자가 OPSEC에 신경을 썼다면 경찰이 해당 사이트의 서버가 어디 있는지 쉽게 알아낼 수 없는 게 정상이었지만, 플레이펜은 아동 포르노라는 매우 민감한 분야를 다루는 사이트답지 않게 어니언 사이트의 세팅을 잘못해서 해당 사이트의 실제 IP주소가 공개돼 있는 상태였고, 운영자는 호스팅 업체에 돈을 지불할 때 본인 실명으로 된 페이팔 계정을 이용하기도 했다.* 미국 FBI는 이를 이용해 손쉽게 운영자를 검거하고 사이트의 통제권을 얻을 수 있었다.

그 후 FBI는 사이트 운영자뿐 아니라 이용자들까지 검거하기 위해, 2주 동안 사이트를 직접 운영하면서 거기에 접속하는 모든 사용자들에게 윈도우용 토르 브라우저의 자바스크립트 0day 취약점을 이용하는 맬웨어(NIT)를 뿌렸다. 이 맬웨어는 사용자의 실제 IP주소 등 신상과 관계된 정보를 FBI에게 전송하는 기능을 가진 것으로 알려져 있다. FBI는 그 중 한국인 유저들의 신상을 대한민국 수사기관에 넘겨 주었고, 대한민국 수사기관은 그들에게 경고조치를 하거나 기소유예처분을 했다.*

그러나 이와 같이 특정 프로그램의 특정 취약점을 이용해 해킹을 하는 특정한 기법 즉 ‘익스플로잇’은, 너무 자주 쓰면 그게 외부로 유출돼 해당 취약점이 패치됨으로써 더 이상 사용할 수 없게 될 위험이 존재한다. 대략 사용 가능한 횟수가 정해져 있다고 생각하면 된다. 실제로 플레이펜 사건에서 사용된 익스플로잇도 그 후 다른 사건에서 쓰다가 분석가들에게 입수당해서 쓸모가 없어졌다.* 익스플로잇들은 제각기 가격이 다른데 이처럼 토르 사용자의 신상이 밝혀지게 만드는 익스플로잇은 가격이 꽤 비싸기 때문에, 이런 건 FBI가 아동 포르노 사이트 이용자를 검거할 때 정도나 가끔씩 사용될 뿐 일반적인 대중 사이트에는 거의 사용되지 않는다.

이런 이유로, 나는 자바스크립트를 켜고 다님으로써 공격면attack surface을 늘려도 아동 포르노 사이트 같은 데 들어가는 것이 아닌 일반적인 상황에서는 크게 위험하지는 않을 거라고 생각한다.

자바스크립트 설정방법

귀찮음을 감수할 자신이 있다면 평소에는 자바스크립트를 끄고 다니다가 특정 사이트에 들어갈 때만 자바스크립트를 켜 주는 식으로 해도 되긴 한다. 매우 귀찮겠지만.

토르 브라우저에서 자바스크립트를 온오프하는 공식적인 방법은 우상단 방패모양을 눌러 Security Level을 설정하는 것이다.†

디폴트 설정은 Standard로, 이 모드에서는 자바스크립트와 각종 기능이 켜져 있어서 일반 브라우저와 거의 같은 느낌으로 인터넷을 할 수 있다. Safer는 HTTPS가 아닌 HTTP 사이트에서 자바스크립트가 꺼지고, 그 외에도 일부 기능이 꺼져서 그 기능을 활용하는 웹사이트에서 렉이 걸릴 수 있다. Safest에서는 모든 사이트에서 자바스크립트가 꺼진다.

이 설정은 수시로 자유롭게 바꿔도 무방하다. 다만 최대한의 익명성을 유지하기 위해서는 설정을 바꾸는 사이사이 New Identity 버튼을 눌러 브라우저를 초기화시켜 주는 것이 좋다. 이론적인 가능성일 뿐이긴 하지만, 여러 개의 탭에 여러 개의 웹사이트가 열려 있는 상태에서 설정을 바꾸면 트래커들은 각 웹사이트에 접속한 토르 사용자의 자바스크립트 설정이 동시에 바뀌었다는 사실을 통해, 그 토르 사용자들이 서로 동일인이었음을 추론해 낼 수 있을 것이기 때문이다.

NoScript 플러그인을 이용한 자바스크립트 설정. 이건 웬만하면 안 하는 게 좋다. NoScript 설정값에 대해서는 토르 브라우저의 중요한 기능 중 하나인 first-party isolation (FPI)이 적용되지 않는다. FPI란 사이트별로 쿠키 등 오프라인 데이터 저장소를 분리함으로써, 가령 wired.com에 접속한 상태로 탭을 추가로 열어 nytimes.com에 들어가는 식으로 동시에 여러 사이트에 들어가더라도, 그 각 사이트에 달려 있는 구글 등 서드파티 트래커가 지금 wired.com에 들어온 사람과 nytimes.com에 들어온 사람이 동일인이라는 사실을 알 수 없게 해 주는 기능을 말한다. 그러나 NoScript는 FPI를 존중하지 않기 때문에, wired.com에 들어가서 NoScript 설정에서 googletagmanager.com 스크립트를 차단해 놓고 그 상태로 nytimes.com에 들어간다면, 서드파티 트래커들은 아까 wired.com에 들어온 토르 유저의 NoScript 설정과 지금 nytimes.com에 들어온 토르 유저의 NoScript 설정이 동일하다는 사실을 토대로 둘이 동일인일 거라고 추론할 수 있게 된다. 이러한 이유로 나는, 본인이 정확히 뭘 하고 있는 건지 확실히 알고서 하는 경우가 아닌 한, NoScript 설정을 직접 건드리는 것은 비추한다.

참고로 NoScript 설정을 Temp. Trusted로 해 놓으면 토르 브라우저의 New Identity 버튼을 누르는 것으로는 해당 설정이 초기화되지 않으며 계속해서 Temp. Trusted로 남아 있지만, 토르 브라우저를 완전히 껐다가 다시 켜면 해당 설정이 초기화된다.

New Identity 버튼

우상단 메뉴 또는 단축키 Ctrl+Shift+U로 실행시킬 수 있는 New Identity 버튼은 토르 브라우저를 마치 껐다가 다시 켠 것 같은 초기상태로 만들어 준다. 쿠키 등 데이터는 삭제되고 IP가 바뀐다. 북마크, Security Level 설정 등은 유지된다. 브라우저를 완전히 껐다 켜는 것보다 속도가 빠르기 때문에 편의성이 높다.

다만 New Identity 버튼을 누르거나 브라우저를 껐다 켜더라도 그게 패턴 분석을 통한 아이덴티티 추론까지 막아 주는 것은 아님에 유의해야 한다. 토르 브라우저로 특정 사이트에서 특정 주제에 대한 글을 보다가 New Identity 버튼을 누르고 곧바로 같은 사이트에서 같은 주제에 대한 글을 보면, 사이트 및 트래커는 아까 토르 사용자와 지금 토르 사용자가 동일인일 거라고 추론해 낼 수 있을 수도 있다.

방문 히스토리가 하드에 기록되는가?

토르 브라우저는 항상 파이어폭스의 사생활 보호 모드Private Window로 작동하도록 세팅돼 있기 때문에, 웹서핑을 마치고 New Identity 버튼을 누르거나 토르 브라우저를 완전히 종료하면 본인 컴퓨터에는 기록이 남지 않는다. 토르 브라우저는 사용자가 수동으로 북마크를 추가했을 때, 그 북마크만 기록으로 남긴다.

다만 의도치 않게 일부 아티팩트가 OS에 남을 수는 있다. 윈도우나 맥에서 토르 브라우저를 쓰는 것만으로 전문적인 디지털 포렌식에 대해 완벽하게 면역일 것이라고 장담하기는 어려우며, 높은 수준의 안티포렌식을 원한다면 테일즈Tails를 사용하는 것이 바람직하다.

본인 실명계정으로 로그인해도 되는가?

본인이 토르를 쓴다는 사실 자체를 철저하게 숨겨야 하는 특수한 경우를 제외하고는, 일반적으로는 토르 브라우저로 본인 실명계정으로 로그인해도 괜찮다. 인터넷에서 ‘토르로는 절대 실명계정으로 로그인하면 안 된다’는 조언을 흔히 볼 수 있으나 이는 잘못된 조언이다.

당연한 말이지만 본인 실명계정에 토르로 로그인한다고 해서 그게 갑자기 마법처럼 익명계정으로 전환되는 것은 아니다. 그럼에도 실명계정에 로그인할 때 토르를 사용하는 이유가 몇 가지 있다.

첫째, IP주소가 노출되면 본인이 현재 있는 위치가 동·읍·면 단위까지 노출되는 셈인데 토르 브라우저를 쓰면 IP주소가 숨겨지므로 본인의 현재 위치가 숨겨진다. 미국 NSA의 내부고발자 에드워드 스노든도 본인의 실명 트위터 계정에 접속할 때 현재 위치를 숨기기 위해 토르를 이용한다고 밝혔다.*

둘째, 토르를 쓰면 학교, ISP 등 네트워크 감시자는 본인이 언제 어떤 사이트에 들어갔는지를 알 수 없게 된다. 물론 실명계정으로 로그인한 이상 그 사이트와 거기에 달려 있는 트래커들은 여러분이 언제 그 사이트에 들어갔다는 사실을 알게 되지만, 그걸 아는 사람의 수를 줄이는 것도 나름대로 의미가 있다.

셋째, 수집되는 정보량을 줄인다. 우리가 인터넷을 할 때 한 번에 한 사이트만 하지는 않는다. 탭으로 여러 사이트를 열어 놓고 하는 경우가 대부분이다. 이런 경우에 일반 브라우저를 쓰면 설령 VPN을 켠다 하더라도 그 각 사이트들에 접속해 있는 사람이 본인이라는 사실이 트래커들에게 그대로 노출되지만, 토르 브라우저를 쓰면 first party isolation 기능 덕택에 자기가 실명계정으로 로그인한 딱 그 사이트에만 신상이 노출되고 그와 동시에 탭으로 띄워 놓은 다른 사이트에 달린 트래커들은 여전히 ‘익명의 토르 사용자’로 여러분을 보게 된다. 따라서 본인의 행동패턴이 수집당하는 정도를 줄일 수 있다.

넷째, 토르 사용을 덜 수상해 보이게 만든다. 가령 스트리머가 방송 중 바탕화면 아이콘, 크롬 툴바, 작업 관리자 같은 곳에 VPN 프로그램이 노출되면 채팅창이 야동 관련된 이야기로 도배되는 경우가 있는데 토르 사용도 마찬가지다. 익명성이 필요한 일을 할 때만 한정적으로 토르를 사용하면, 특정 시점에 토르를 사용했다는 사실 자체가 난 그 시점에 뭔가 익명성이 필요한 일을 했음을 징표하게 된다. 본인 실명계정으로 로그인할 때를 포함해 항상 토르를 사용하면 그 징표성을 없앨 수 있다.

토르로 실명 계정에 로그인하는 것의 단점은, ① 본인이 토르 사용자라는 사실이 사이트 및 트래커에게 노출된다는 점. 일반적인 경우에는 별 상관 없지만 토르 이용사실을 숨겨야만 하는 특별한 사정이 있는 경우에는 상관이 있을 수 있다. ② 보안 조치를 마주하게 될 수 있다는 점. 페이팔 등 해킹 위협에 민감하게 반응하는 사이트에 토르로 로그인하면 사측 전산시스템이 해당 계정에 대해 해킹 시도가 있는 것으로 판단하고 계정을 일시 블락한 뒤 추가 인증을 요구할 수 있다. 추가 인증을 하면 되긴 하지만 귀찮을 수 있다.

실명활동과 익명활동, 동시에 해도 안전한가?

탭 간 분리. 토르 브라우저로 네이버, 페이스북 등 실명 계정에 로그인한 상태로 추가 탭, 추가 창을 열어 익명으로 하고픈 활동을 하면 실명활동과 익명활동이 연계될 수 있을까?

일단 토르 브라우저에는 first-party isolation (FPI)이라는 기능이 있어서 서로 다른 도메인에 접속할 땐 서로 다른 IP를 사용하고 쿠키, 캐쉬 데이터도 공유되지 않는다. 그래서 토르로 유튜브 실명계정에 로그인한 상태로 새 탭을 열어서 구글에 들어가면, 유튜브가 구글 서비스임에도 불구하고, 구글은 유튜브에 접속한 토르 사용자와 지금 구글에 접속한 토르 사용자가 동일인이라는 사실을 간편하게 알아낼 수는 없다. 다만 FPI는 탭 단위가 아니라 도메인 단위로 적용된다는 사실에 유의해야 한다. 유튜브 실명계정에 로그인한 상태로 새 탭을 열어서 유튜브에 들어가면 그 탭 간에는 신원 분리가 이루어지지 않는다. 또한 도메인의 앞쪽에 붙은 것은 영향을 주지 않는다는 점에도 유의해야 한다. mail.google.comdocs.google.comgoogle.com 부분이 같기 때문에 FPI의 관점에서 같은 도메인으로 취급되며, 서로 간에 정보 분리가 되지 않는다.

FPI가 적용되는 서로 다른 도메인이라 하더라도 트래커가 둘을 매치시키는 것이 완벽하게 불가능한 것은 아니다. 사이트A에서 소수만이 관심을 갖고 있는 특정 주제에 대한 글을 열심히 보고, 동시에 사이트B에서도 같은 주제에 대한 글을 열심히 보면 이를 통해 둘이 동일인일 거라고 어느 정도 추론해 내는 것이 가능할 수도 있다. 또한 토르 브라우저 시작과 동시에 본인이 즐겨 찾는 포털, 커뮤니티, 웹툰 사이트 몇 개를 동시에 띄우는 습관을 갖고 있다면, 그 패턴을 인식한 트래커는 각 해당 사이트들에 토르 사용자가 동시에 접속하면 그 각 사이트에 접속한 토르 사용자들이 동일인일 거라고 추론해 낼 수 있을지 모른다. 또한 Page Visibility API라는 게 있어서 웹사이트는 현재 그 사이트가 열린 탭이 활성화 상태인지 여부를 실시간으로 감지할 수 있는데, 여러 탭을 띄워 놓고 왔다갔다 하면서 브라우징하는 경우 기존에 활성화돼 있던 사이트A 탭이 비활성화되는 것과 동시에 사이트B 탭이 활성화되고, 사이트B 탭이 비활성화되는 것과 동시에 사이트A 탭이 활성화되는 패턴이 반복되면 트래커들은 둘이 동일인일 거라고 높은 확률로 추론할 수 있을 것이다.

그러나 앞서 언급한 바와 같이 트래커가 0.01%도 되지 않는 토르 사용자 추적만을 위한 기술을 구현해 놓았을 가능성은 낮기 때문에, 이런 위협들은 인지하고는 있되 일반적인 상황에서는 크게 신경쓸 필요는 없다고 생각한다.

브라우저 간 분리. 크롬으로 유튜브에 로그인한 상태로 토르 브라우저를 실행시켜 익명활동을 해도 괜찮을까?

일단 기본적으로 일반 브라우저와 토르 브라우저 간에는 데이터 공유가 이루어지지도 않고, IP주소가 같은 것도 아니기 때문에 FPI가 적용되는 경우와 마찬가지로 둘 간에는 연계성이 없다. 위에서 설명한 것과 같이 사용패턴 분석 등을 통해 동일인 여부를 추론해 내는 것은 가능하지만 트래커들이 극소수의 토르 사용자를 추적하기 위해 굳이 그걸 할 것으로 보이지는 않는다.

다수의 기기로 사용패턴 분석 무력화하기. 스마트폰으로 활동을 하다가, 잠깐 폰을 내려 놓고 컴퓨터로 활동을 하다가, 다시 폰을 집어들고 그걸로 활동을 하는 식으로 이쪽저쪽 왔다갔다 하는 사람은 많지만 아예 말 그대로 ‘동시에’ 2가지 기기를 같이 쓰는 사람은 없을 것이기 때문에, 그렇게 하면 사용패턴 분석에 혼란을 주어 공격자가 둘을 다른 사람으로 인식하게 할 수 있다. 일반적인 경우에는 굳이 이렇게까지 할 필요는 없겠지만 사용패턴 분석이 우려되는 특수한 상황에서는 필요할 수도 있다.

1대의 컴퓨터로 크롬과 토르 브라우저를 동시에 띄워 놓고 동시 작업을 하는 것은 Page Visibility API나 마우스 포인터 트래킹 등의 문제로 불가능할 것으로 생각된다.

창 크기 유지

트래커들은 자바스크립트가 켜져 있든 꺼져 있든 관계없이 사용자의 현재 창 크기를 1픽셀 단위로 알아낼 수 있다.* 창 크기가 1픽셀 단위로 일치하는 사람은 많지 않기 때문에 트래커들은 창 크기를 통해 사용자를 고유하게 식별할 수 있다. 토르 브라우저는 사용자의 모니터 크기에 따라 200×100 단위로 창 크기를 조절하고 최대 크기를 1000×1000으로 맞춰 놓아 많은 사용자들이 동일한 창 크기를 갖도록 함으로써 창 크기 핑거프린팅에 대응하고 있다. 따라서 토르 브라우저 사용시에는 기본적으로 창 크기를 디폴트 사이즈로 가만히 놔 두는 것이 권장된다.

그러나 디폴트보다 큰 사이즈가 필요한 경우에는 일시적으로 창 크기를 늘려도 괜찮다. 토르 브라우저의 창 크기 설정은 지속성이 없기 때문에, 창 크기를 늘려도 새 창을 열면 언제나 디폴트 사이즈로 열린다. 그래서 트래커들은 어떤 익명의 토르 사용자가 잠깐 창 크기를 늘렸다는 사실만 알 수 있을 뿐 그 토르 사용자가 구체적으로 누구인지는 알 수 없고, 지금 이 사이트에서 창 크기를 늘린 토르 사용자와 아까 전에 같은 사이트에 들어왔던 토르 사용자가 동일인이라는 사실도 알 수 없다.

다만 여기에는 한 가지 예외가 있다. 여러 탭으로 여러 사이트를 열어 놓은 상태에서 그 창의 크기를 조절하는 경우, 그 창에 속한 모든 탭에 관하여 창 크기가 동시에 똑같이 조절된다. 원래는 토르 브라우저의 first-party isolation 기능 덕에 여러 탭으로 여러 사이트를 띄워 놓더라도 트래커들은 이 사이트에 들어온 토르 사용자와 저 사이트에 들어온 토르 사용자가 동일인이라는 사실을 알 수 없는 것이 정상이지만 이렇게 동시에 똑같은 크기로 창 크기 조절이 이루어지면 트래커들은 그 사실을 알게 된다. 따라서 창 크기 조절시에는 여러 탭이 열린 창에서 하지 말고, 크기를 조절하고자 하는 탭을 뚝 떼서 새 창으로 만들어 거기에서 단독으로 조절하는 것이 바람직하다.

구글 검색과 익명성

토르 브라우저의 기본 검색엔진은 덕덕고지만, 덕덕고 검색결과가 마음에 안 들면 구글로 검색해도 상관없다. 토르 브라우저를 쓰는 이상 구글은 정확히 누가 그 검색을 하는지 모른다.

다만 덕덕고를 쓰는 경우에는 검색결과를 타고 여러 사이트에 들어가는 경우 first-party isolation 덕분에 그 각 사이트에 들어온 토르 사용자가 동일인이라는 사실이 쉽게 노출되지는 않지만, 구글을 쓰는 경우에는 그 구글 검색결과를 타고 여러 사이트에 들어가면 구글은 당연히 그 각 사이트에 들어간 토르 사용자가 동일인이라는 사실을 알게 된다.

또한 구글은 사용자들의 행태 데이터 수집을 통해 돈을 버는 회사답게 토르 사용자에게 그리 친절하지 못하여, 토르로 구글 검색을 하려면 지옥 같은 캡챠를 뚫어야 한다는 단점도 있다.

파일 다운로드와 익명성

토르 브라우저는 해당 브라우저 내에서 발생하는 모든 트래픽을 전부 토르 네트워크로 보냄으로써 사용자의 익명성을 보호한다. 그러나 토르 브라우저 바깥에서 발생하는 트래픽은 토르 브라우저가 보호해 줄 수가 없다. 이 때문에, 토르 브라우저로 PDF, 오피스 파일을 다운받아 토르 브라우저가 아닌 다른 프로그램으로 실행시켰는데 그 파일에 인터넷 접속을 하는 요소가 들어 있었던 경우, 해당 파일 제작자에게 본인의 실제 IP주소가 노출될 수 있다. 자동으로 인터넷 접속을 하는 게 아니라 그냥 평범하게 클릭할 수 있는 링크만 들어 있었더라도 실수로 클릭을 할 가능성이 존재한다.

이 경우 VPN을 켜 놓은 상태였다면 실제 IP가 아닌 VPN IP가 노출될 것이므로 상대적으로 좀 낫다. 이전 포스팅에서 설명한 바와 같이 VPN의 IP추적 방어성능은 그리 강력하지 않고, 경우에 따라서는 해당 파일이 VPN을 우회해서 실제 IP를 노출시키거나, 사용자 로그인 이름 등 IP주소 외의 개인정보를 취득 전송하는 것도 가능할 수 있기 때문에 VPN만으로 이 위협이 완벽하게 방어되는 것은 아니나, 그래도 VPN조차 없는 것보다는 낫다고 할 수 있다.

좀 더 높은 수준의 방어가 필요한 경우에는 보안 운영체제인 Tails, Whonix를 이용해야 한다. 이걸 사용하면 OS상에서 발생하는 모든 트래픽이 토르 네트워크로만 가기 때문에 토르 브라우저 외부에서 인터넷에 접속하는 파일로 인해 IP주소가 노출될 위험성이 낮고, 로그인 이름 등 개인정보를 수집하지도 않기 때문에 그런 게 노출될 위험성도 낮다.

토르 사용 중 warning.go.kr을 만난 경우

토르는 본인 컴퓨터에서 나오는 트래픽을 토르 네트워크를 거쳐 토르 출구 릴레이로 내보내는 프로그램이다. DNS 서버는 토르 출구 릴레이의 것이 사용되며, 검열정책도 토르 출구 릴레이 국가의 것이 그대로 적용된다. 한국에도 토르 릴레이가 존재하기 때문에 간혹 한국에 있는 출구 릴레이가 잡히는 경우가 있다. 이 경우 토르를 사용했음에도 불구하고 warning.go.kr을 마주치게 될 수 있다. 이것은 절대로 본인이 국가기관에게 추적당해서 그런 것이 아니며, 미국에 사는 외국인이 토르 브라우저로 그 사이트에 들어가더라도 한국에 있는 출구 릴레이를 사용하는 이상 warning.go.kr은 똑같이 마주칠 수밖에 없다.

이럴 땐 New Circuit for This Site 또는 단축키 Ctrl+Shift+L을 눌러 출구 릴레이를 바꿔 주면 간단히 해결된다.

중간자 공격에 대비하기

중간자 공격man-in-the-middle attack이란 사용자와 웹사이트 사이를 오가는 데이터를 그 중간에 있는 누군가가 엿보거나 변조하는 것을 말한다. 중간자 공격을 당하면 웹사이트에 아이디, 비밀번호를 입력하는 경우 그 정보가 중간자에게 넘어가고, 웹사이트에서 파일을 다운받는 경우 중간자가 원래의 파일 대신 맬웨어가 심어진 파일을 대신 보낼 수 있다. 중간자 공격은 기본적으로 사용자와 웹사이트 사이에 끼어들 수 있는 사람이라면 누구나 쉽게 할 수 있다. 통신사, VPN 서버, 토르 릴레이, 카페에서 와이파이를 사용하는 경우 그 카페 운영자, 사용자가 거주하는 건물 복도 단자함에 접근할 수 있는 행인 등을 예로 들 수 있다.

토르를 쓰면 중간자 공격에 취약해진다는 말이 그래서 나온 것이다. 통신사, VPN 서버, 카페 주인은 잃을 게 많기 때문에 악질적인 중간자 공격을 하기는 어렵고, 기껏해야 음란물 차단이나 사용자 행태 분석 등 사회적으로 허용되는 목적을 달성하기 위한 중간자 공격을 행할 뿐이지만, 토르 릴레이는 해커를 포함해 아무나 자유롭게 운영할 수 있기 때문에 악질적인 중간자 공격을 할 확률이 비교적 높다.

이러한 중간자 공격을 막기 위해 나온 것이 HTTPS다. 사이트에 HTTPS로 접속하면 먼저 인증서를 통한 인증절차를 거친다. 여기서 인증authentication이란 사이트가 사용자에게 ‘난 사이트로 가장한 중간자가 아니라 진짜 그 사이트 맞아’라고 신빙성 있게 말하는 것을 의미한다. 인증이 완료되면 둘 간에는 비대칭형 암호화를 통해 임시로 교환한 암호화 키ephemeral key로 대칭형 암호화된 데이터를 주고받는다. 이 때문에 HTTPS로 접속하는 경우에는 중간자가 오가는 데이터를 엿볼 수도 없고 변조할 수도 없어, 몇몇 취약점을 이용하는 경우를 제외하면 기본적으로 중간자 공격이 불가능해진다. HTTPS의 경우 중간자가 할 수 있는 것이라곤 기껏해야 사용자와 사이트 간의 통신을 전부 차단하는 것뿐이며, 대한민국 정부가 현재 이것을 하고 있다. 토르 프로젝트는 미국의 시민단체인 EFF와 공동으로 HTTPS everywhere라는 확장기능을 개발하고 토르 프로젝트에 기본으로 탑재함으로써, 토르 브라우저 이용시 HTTPS를 지원하는 사이트는 HTTPS로 연결되게 강제하고 있기 때문에, 요즘은 토르 브라우저를 쓰더라도 중간자 공격을 당할 확률이 높지는 않다.

그러나 HTTPS를 지원하지 않는 일부 HTTP 전용 사이트에 접속할 땐 중간자 공격을 당할 가능성이 여전히 있다. 이는 토르 브라우저를 쓰든 일반 브라우저를 쓰든 마찬가지지만 앞서 말한 이유로 토르 브라우저를 쓰면 그 위험성이 상대적으로 조금 더 높아진다.

따라서 HTTP 사이트에서는, 토르 브라우저를 쓰든 일반 브라우저를 쓰든, 아이디, 비밀번호 기타 개인정보를 입력하거나 파일을 다운받을 때 주의를 기울여야 한다. 구체적인 사이트를 예로 들자면 웃긴대학, 보배드림은 기본적으로는 HTTP를 사용하지만 로그인 페이지(웃긴대학, 보배드림)는 HTTPS로 만들어 놓았는데 이렇게 HTTPS 페이지에서 로그인하는 것은 괜찮으며, 일단 로그인한 후에는 HTTP 상태로 사이트를 둘러보더라도 아이디, 비밀번호가 유출되지 않는다. 다만 쪽지 같은 것은 HTTP로 보는 경우 중간자에게 그 내용이 유출될 수 있다. 오늘의유머는 HTTP인 메인 페이지에서 로그인할 수도 있고 HTTPS인 별도의 로그인 페이지에서 로그인할 수도 있는데, HTTP 페이지에서 로그인하면 아이디, 비밀번호가 중간자에게 유출될 수 있다.

부득이 HTTP 페이지에서 아이디 비밀번호를 입력할 수밖에 없는 경우에는 해당 사이트의 아이디 비밀번호를 다른 사이트의 그것과 다르게 설정해 놓음으로써, 혹시 유출되더라도 해당 사이트에만 피해가 국한될 수 있도록 한다. 사실 HTTPS 사이트라 하더라도 아이디 비밀번호는 사이트마다 모두 다르게 정해 놓는 것이 제일 좋다. 패스워드 매니저를 이용하면 쉽게 그렇게 할 수 있으며, 패스워드 매니저 프로그램은 Bitwarden을 가장 추천한다.

파일을 HTTP로 다운받는 경우에는, 만약 HTTPS로 접속되는 페이지에 그 파일에 대한 해쉬값이나 서명파일이 있다면 다운로드 후 해쉬값을 비교해 보거나 서명을 확인해 봄으로써 변조여부를 알아낼 수 있다. 다만 해쉬값이나 서명파일이 HTTPS가 아닌 HTTP 페이지에 올라와 있다면 거기에 대해서도 중간자 공격이 가능하므로 별 의미가 없다.

VPN을 쓰면 중간자 공격이 불가능해지는가? 간혹 HTTP 사이트는 암호화가 되지 않기 때문에 중간자 공격이 가능하지만, VPN을 이용해서 통신내용을 암호화시키면 중간자 공격을 막을 수 있다고 주장하는 사람을 본다. 그러나 VPN은 사용자와 사이트 간의 통신내용을 암호화해 주는 것이 아니라 사용자와 VPN 서버 간의 통신내용을 암호화해 줄 뿐이며, VPN 서버와 사이트 간의 통신내용은 여전히 암호화되지 않은 채로 남게 된다.

이 때문에 VPN을 사용하더라도 VPN 서버와 사이트 중간에 있는 자들은 VPN을 사용하지 않았을 때와 동일하게 중간자 공격을 할 수 있다. 또한 VPN 서버 자체도 중간자 공격을 하는 공격자가 될 수 있고, 실제 현실에서도 VPN이 의도적으로 중간자 공격을 하는 경우가 간혹 있다. 따라서 VPN을 이용함으로써 중간자 공격을 막는 것은 불가능하며, VPN을 쓰든 그렇지 않든 관계없이 HTTP 사이트를 이용할 땐 중간자 공격을 조심해야 한다.

사실 VPN을 쓸 땐, 어떤 VPN을 쓰느냐에 따라 다르지만, HTTPS 사이트를 이용할 때조차도 VPN 서버에 의한 중간자 공격을 조심해야 할 수 있다. VPN 클라이언트 프로그램 설치 과정에서 VPN 회사의 루트 인증서가 컴퓨터에 설치됐을 수 있기 때문이다. 루트 인증서를 사용자의 컴퓨터에 설치해 놓은 사람은 HTTPS 접속에 대해서도 중간자 공격을 할 수 있다.

토르 이용사실을 감춰야 하는가?

일반적인 상황에서는 감출 필요가 없지만, 특수한 상황에서는 감추는 게 도움이 될 수도 있다. 몇 가지 예를 들어 본다.

불법이거나 민감한 내용의 글을 올리는 경우. 토르로 인터넷에 특정 글을 올린 사람을 경찰이 추적한다고 해 보자. 완전히 불법적인 내용의 글일 수도 있고, 이명박 시절 미네르바 사건에서처럼 법적으로 따지면 불법은 아니지만 정부의 심기를 거스르는 글일 수도 있다. 아무튼 경찰, 검찰 등 국가의 수사기관이 공격자가 되어 글쓴이의 신상을 추적하는 상황을 상정해 보자.

용의자가 토르 브라우저를 이용했기 때문에 아이피 추적, 브라우저 핑거프린트 추적으로 신상을 알아내는 것은 불가능하다. 그러나 글이 올라온 시점에 우리나라에서 특정 시점에 토르를 이용하고 있던 사람이 누구누구가 있는지를 살펴봄으로써 용의자 범위를 좁혀 나가는 것은 가능할 수도 있다. 일례로 미국 하버드 대학교 2학년에 재학 중이던 Eldo Kim은 2013. 12. 16. 08:30경, 원래 그 날 09:00으로 예정돼 있던 기말고사를 연기하려는 목적으로 토르 브라우저로 게릴라메일GuerrillaMail 사이트에 접속해 하버드 측에 본인의 시험장소인 건물을 포함한 4개의 건물 중 2개에 폭탄이 설치돼 있다는 내용의 이메일을 보냈다. 그러나 토르 브라우저를 제대로 사용했음에도 불구하고 그날 저녁 Kim의 기숙사 방으로 FBI가 들이닥쳤다. 그날 그 4개의 건물에서 시험을 치르는 하버드 학생들 중 그 메일이 발송된 시각에 하버드 내에서 토르에 접속한 사람은 Kim밖에 없었기 때문이다. 그는 즉각 범행 일체를 자백했다.*

대한민국 경찰도 글쓴이의 신상을 알아내기 위해 이런 방법을 이용할 수 있을까? 그걸 할 수 있으려면, 글쓴이가 외국에 거주하거나 외국 여행 중인 한국인 또는 한국어를 아는 현지 2세일 가능성을 배제한다 하더라도, 최소한 한국 영토 내에서 특정 시점 또는 특정한 날에 토르에 접속 중이었던 모든 사람들의 명단을 경찰이 확보하는 것이 가능해야 한다.

이론적으로는 명단 확보가 가능할 수도 있다. ISP가 NetFlow, sFlow 같은 프로그램은 사용자가 언제 어디에서 어디로 어떤 크기의 패킷을 보냈는지를 자동으로 로그로 남긴다. 위키피디아에 의하면 전형적인 NetFlow 로그는 이렇게 생겼다고 한다.

Date flow start          Duration Proto   Src IP Addr:Port      Dst IP Addr:Port     Packets    Bytes Flows
2010-09-01 00:00:00.459     0.000 UDP     127.0.0.1:24920   ->  192.168.0.1:22126        1       46     1
2010-09-01 00:00:00.363     0.000 UDP     192.168.0.1:22126 ->  127.0.0.1:24920          1       80     1

토르 릴레이들의 IP는 전부 공개돼 있기 때문에, 이론적으로는 이 로그만 있으면 누가 언제 토르 릴레이에 접속해서 얼마나 많은 데이터를 주고받았는지를 전산으로 쉽게 알아낼 수 있다. 디폴트 세팅의 NetFlow는 토르 트래픽에 관해서는 30분 단위(1~60분 사이로 설정 가능)의 flow로 묶인 로그를 남기므로,* 문제의 글이 13:01에 올라왔다면 경찰은 그 전후로 30분씩 해서 12:31~13:31에 토르 입구 릴레이의 IP주소로 패킷을 보낸 사람을 전부 추려낼 수 있을 것이다. 우리 법상 경찰이 정보통신서비스 제공자에게 이런 광범위한 명단을 요구하는 것이 금지돼 있지는 않다. 2009년 이른바 군포 여대생 실종 사건을 수사하던 경찰은 네이버, 다음, 네이트 등 9개 포털 업체에 ‘군포, 안산, 실종, 납치, A씨’ 등 사건 관련 5개 단어를 검색한 사람들의 인적사항, 연락처, 최근 3개월간의 로그인 기록 정보를 달라고 요구했고 포털들은 데이터분석팀이 열흘 이상 밤을 새워 가며 해당 정보를 정리해 경찰에 제공했다.* 전국에서 특정 단어를 검색한 사람들의 전체 명단을 입수하는 것이 법적으로 허용된다면, 전국에서 특정 시점에 토르에 접속한 사람들의 전체 명단을 입수하는 것도 당연히 법적으로 허용된다고 봐야 할 것이다.

그러나 설령 명단 입수가 가능하다 해도, 이를 통해 개별적인 1개의 글, 댓글의 글쓴이를 추적하는 것은 여전히 불가능할 수도 있다. 한국에서 1일 동안 브릿지를 거치지 않고 토르에 직접 접속하는 사람 수는 정부의 HTTPS 차단의 여파로 2019년 초부터 꾸준히 늘어나기 시작해 이제는 15,000명 정도가 됐다.

그렇다면 글이 올라온 시점 앞뒤 30분씩 총 1시간의 범위 동안 한국에서 토르에 접속해 있던 사람 수는 적게 잡아도 500명은 될 것이다. 이러면 용의자 특정은 실패다.

그러나 해당 글쓴이가 사람들이 잘 보지 않는 특정 기사를 몇 개 링크했다면 이야기가 달라질 수도 있다. 글쓴이가 그 기사를 읽을 때 토르 브라우저를 이용했다면 뉴스 사이트는 글쓴이의 신상을 직접 알 수는 없지만 그래도 특정 시점에 어떤 토르 이용자가 그 기사를 읽었다는 사실은 알 수 있다. 따라서 경찰은 이론적으로 문제의 글이 올라온 시점의 토르 이용자 명단과, 거기에 링크된 기사를 토르 이용자가 읽은 시점의 토르 이용자 명단을 각각 뽑아서 겹치는 사람을 찾는 방법으로 용의자를 압축할 수 있을 것이다. 해당 글쓴이가 같은 아이디로 여러 시점에 걸쳐 수십 개의 글와 댓글을 올리고 있었던 경우에도 동일한 방법을 쓸 수 있다. 그 많은 수의 글, 댓글이 올라온 각 시점별로 토르 이용자 명단을 뽑아서 겹치는 사람을 찾으면 대부분의 경우 1명, 많아야 2명일 것이다.

따라서 적어도 이론적으로는 토르를 쓰더라도 인터넷에 불법글을 올렸을 때 경찰에게 그리 어렵지 않게 추적당할 수 있다.

다만 다음과 같은 이유로, 특정 시점의 토르 이용자 명단을 경찰이 입수하는 것이 현실적으로 가능할지가 확실하지는 않다. 첫째, NetFlow 로그는 모든 트래픽에 대해 남길 수도 있지만 그러려면 컴퓨팅 파워가 많이 필요하기 때문에 샘플링 기법으로 일부 트래픽에 대해서만, 가령 500개의 패킷마다 1개씩만 뽑아서 남길 수도 있다. 이렇게 일부 트래픽에 대해서만 로그를 남기는 경우, 토르에 접속했음에도 불구하고 NetFlow 로그에서는 빠지는 사람이 나오는 게 가능할지, 만약 가능하다면 그 확률이 얼마나 될지는 알 수 없으나, 적어도 이론적으로는 빠지는 것이 가능할 수도 있어 보인다. 우리나라의 대표적인 ISP들이 해당 로그를 전부 남기는지 일부만 샘플로 뽑아서 남기는지도 알려져 있지 않다. 둘째, 우리나라 ISP들이 NetFlow 로그를 얼마나 오래 보존하고 있는지가 애매하다. 통신비밀보호법 및 그 시행령은 ISP 등 전기통신사업자로 하여금 통신사실확인자료의 하나인 “컴퓨터통신 또는 인터넷의 사용자가 전기통신역무를 이용한 사실에 관한 컴퓨터통신 또는 인터넷의 로그기록자료”를 3개월 이상 보존하도록 규정하고 있으나, 이 로그기록자료라는 것이 구체적으로 무엇을 말하는 것인지는 문헌에 전혀 나와 있지 않다. NetFlow 로그는 여기에 해당하지 않을 가능성도 상당하다. 셋째, ISP들이 경찰에 이 자료를 순순히 제공할는지도 알 수 없다. 오지형, 『범인 검거를 위한 그물짜기, 강력사건 수사론』 (2016)에 의하면 기지국 수사를 위해 통신사에 특정 기지국에서 통화한 사람들의 명단을 요구하면 통신사들은 기본적으로 현장에서 전화를 건 발신번호만 회신해 주고 수신번호는 회신해 주지 않기 때문에 현장에서 범인이 통화를 했다 해도 기지국 자료에는 1/2의 확률로 범인의 전화번호가 빠져 있을 수도 있다고 한다. 수신번호를 회신받은 사례들도 간혹 존재하지만 알 수 없는 이유로 통신사들은 압수수색영장에 의하더라도 자료제공을 꺼려 하는 실정이라고 한다.

그래서인지 몰라도 (국정원이 아닌) 경찰이 이런 기법으로 토르 이용자를 추적한 사례는 국내에서도, 국외에서도 아직 찾을 수 없었다. 오히려 추적을 하지 못한 사례를 찾을 수 있었을 뿐이다. 예를 들면 어니언 사이트 중에 HiGH KOREA라는 대마초 거래 사이트가 있다. 이곳 회원들은 하나의 아이디로 수 년에 걸쳐 수백 개의 게시물을 올리면서 활동하고 있어 추적이 용이하고, 해당 사이트의 ‘딥웹보안’ 게시판에 있는 글들을 읽어보면 전반적으로 OPSEC을 그렇게 철저하게 유지하는 분위기도 아닌 것 같으며 특히 토르 이용사실을 숨기는 방법에 대한 글은 전혀 찾아볼 수 없다. 만약 경찰이 토르 글쓴이를 추적하는 게 위에서 묘사한 것처럼 그렇게 쉬운 일이었다면, 이분들이 그렇게 오랜 시간 동안 안 잡힐 리는 없었을 것이다. 디씨에는 토르 브라우저로 올린 글 때문에 4~5번이나 고소를 당했는데 단 한 번도 경찰에서 연락 온 적 없다고 말하는 사람도 있다.*

김가연 사건도 토르 추적에 성공한 사례가 아니다. 예전에 김가연에게 악플을 남긴 토르 사용자가 “부천지청에 인계”됐다는 취지의 짤방이 커뮤니티에 돌아다닌 적이 있었고,* 그 때 대부분의 사람들은 이를 ‘토르 사용자가 경찰에 검거됐다’는 의미로 받아들였으나,* 이 자가 실제로 검거됐다는 증거는 어디에서도 찾을 수 없었다. 그렇게 대놓고 나 잡아보라며 어그로를 끈 사람을 잡았으면 경찰이 그걸 뉴스에 자랑하지 않았을 리가 없는데도 그렇다. 김가연이 워낙 많은 악플러들을 고소했기 때문에, 해당 토르 사용자가 아닌 다른 사람에 대한 통지를 받은 것을 가지고 착각을 했을 가능성이 있다.

그렇다면 현실적으로 봤을 땐, 토르 이용사실을 숨기려는 노력을 하지 않고 그냥 대놓고 토르를 쓰더라도 그 메타데이터로 인해 경찰로부터 추적당할 확률이 그리 높지는 않다고 볼 수 있다. 국정원 레벨로 올라가면 추적이 가능할 수 있겠지만 고작 인터넷에 민감한 글 쓴 사람 하나 찾겠다고 국정원이 나설 가능성은, 본인이 미네르바 급이 아닌 한, 희박하다.

그러나 만약 본인에게 국정원까지 경계해야 하는 특별한 사정이 있는 경우에는 이론적으로 토르 이용사실을 숨기는 게 나을 수도 있을 것이다. 한국 국정원이 특정 시점에 한국 내에서 토르를 이용한 사람들 명단을 뽑을 능력을 갖고 있는지는 아직 알려져 있지 않으나, 미국 NSA는 그런 능력을 갖고 있는 것으로 알려져 있다.

전략적 검토. 이런 상황에서는 경찰이 투망식으로 수많은 국민들을 스캔할 때 거기에 걸려드는 것만 피하면 되고, 경찰이 ‘나’라는 1명을 용의자로 콕 집어서 면밀하게 조사하는 위협은 상정하지 않아도 되기 때문에, 토르 이용사실을 감추는 것이 비교적 쉬워진다. 그냥 VPN+obfs4 브릿지 등 적당한 기술적 수단을 이용해 네트워크 감시만 피하면 된다. 또한 글을 쓰기 위한 자료 조사를 할 때도 생 인터넷은 이용하지 말고 토르, 또는 VPN+obfs4를 이용함으로써 항상 신상을 감춰야 한다.

마약류를 구입하는 경우. 우리 법에서 아편과 같은 마약, 수면제와 같은 향정신성의약품, 그리고 대마를 한 데 묶어 이르는 말이 마약류controlled substances다. 한국의 경우 아직까지도 대부분의 마약류는 오프라인으로 유통되고 있으나 인터넷을 통한 유통량도 꾸준히 늘고 있는 추세다. 인터넷으로 마약류를 구입하는 사람들은 조직범죄와 관련 없이 해외 사이트에서 1인분의 마약류를 직구하는 사람들이 대부분이라고 한다. 이처럼 해외에서 마약류를 직구하는 경우에는 마약류가 세관을 통과하면서 적발될 가능성이 있다.

참고로 세관에서 그걸 잡아낼 수 있을 확률이 높지는 않다. 상식적으로 생각해 보면 쉽게 알 수 있는데, 해외 범죄조직이 대량의 마약류를 기상천외한 방법으로 숨긴 채 밀반입하려다 적발된 사례에 대한 뉴스를 심심찮게 본 적이 있을 것이다. 만약 대한민국 세관이 마약류를 높은 확률로 잡아낼 수 있었다면, 그 정도는 충분히 알 수 있을 만한 정보력을 가진 국제범죄조직이 감히 한국으로 마약을 반입하려는 시도를 할 수 있었을까? 조직이 한국으로 마약을 반입하려고 시도하다가 세관에서 걸렸다는 것은 그 전에 다수의 밀반입 시도가 이미 성공했음을 의미한다. 자꾸 성공하니까 자꾸 하게 되고, 그게 지속되다 보면 조직 내부 갈등으로 인해 수틀린 조직원이 관련 정보를 세관에 제보하기도 하고, 그 제보를 받은 세관이 그곳을 검사해 보면 비로소 걸리게 된다. 개인도 마찬가지로 한두 번 조심스럽게 해서 성공하니까 그 다음부터는 조심성 없이 대량으로 시도해 보고, 그러다 보면 운 좋게 한 번은 걸리는 것이다.

테크니컬한 측면을 보더라도 그렇다. 세관을 통과하는 소포는 기본적으로 엑스레이로 검사되고, 일부는 마약탐지견과 이온스캐너로 검사된다. 엑스레이는 박스 안에 든 물건의 형태를 보여 주는 물건으로, 그 물건이 정확히 뭔지는 엑스레이에 찍힌 형태만 보고 직원이 감으로 판독해야 한다. 그런데 가령 알약 형태로 된 마약이 있다고 하면, 요즘 해외에서 비타민 등 영양제 또는 탈모약 등 전문의약품을 직구하는 사람이 많아진 상황에서 그 알약 형태가 영양제인지 의약품인지 마약인지 어떻게 구분할 수 있겠는가. 엑스레이 화면에는 발송국 및 편명, 발송인의 이름 및 주소, 수취인의 이름 및 주소, 물건의 명칭(발송인이 적은 대로), 수량, 중량, 가격과 같은 부가적인 정보들도 같이 뜨기 때문에 거기에 수상한 점이 있는 경우에는 구분할 수도 있겠지만 그렇지 않은 경우에는 현실적으로 구분하기 어렵다. 마약탐지견은 전통적으로 대마초라는 1개 물질에 대해서만 훈련됐고 최근 들어서야 필로폰에 대해 훈련된 탐지견이 조금씩 도입되기 시작하는 실정이다. 대마초, 필로폰 이외의 물질은 탐지견으로는 찾아내기가 어렵다. 이온스캐너는 스캔할 수 있는 물질을 사전에 등록해 놓아야만 스캔이 가능한데, 2012년 당시 이낙연 국회의원의 국정감사 자료에 의하면 한국에 도입돼 있는 장비는 등록 가능한 물질의 갯수가 대략 14개 정도밖에 되지 않는다고 한다. 한국에서 인기가 낮은 마약류를 구입하는 경우에는 소포가 이온스캐너로 스캔돼도 걸리지 않는다는 것이다. 하지만 어쨌든 낮은 확률로나마 적발될 수 있는 것은 사실이다.

그런데 세관에서 마약류가 적발된다고 해서 그것만으로 곧장 수취인을 처벌할 수 있는 것은 아니다. 그 마약류를 주문한 게 수취인이 아닐 수도 있기 때문이다. 수취인의 이름과 주소는 그 집 우편함에 꽂혀 있는 우편물들을 보고 쉽게 알아낼 수 있고, 이를 이용해 자신의 주소가 노출되는 것을 꺼리는 마약류 구매자가 자기와 아무 관련 없는 집으로 마약류를 배달시키고 적당한 기회를 봐서 물건을 가져오는 식으로 구입하는 경우가 적지 않다. 이런 마약류 구매기법을 드랍drop이라고 부르기도 한다. 그래서 수사기관은 소포 수취인이 실제 마약류 구매자가 맞는지를 입증할 증거를 필요로 한다. 수취인에게 전화해서 통관 과정에 약간의 트러블이 생겨서 뭘 좀 해 주셔야겠다는 식으로 은근슬쩍 떠 볼 수도 있고, 수취인을 긴급체포하면서 거주지를 압수·수색해서 컴퓨터, 휴대폰 기록을 분석해 주문사실을 알아낼 수도 있다.

그런데 수취인이 마약류를 주문하면서 토르 브라우저를 사용한 경우에는, 램 공간이 모자라서 브라우징 데이터가 주 저장장치의 페이지파일에 쓰여졌고(Said et al., 2011; Satvat et al., 2014) 그 후 시간이 얼마 지나지 않아서 페이지파일이 다른 데이터로 덮어씌워지지도 않은 한(Eterovic-Soric et al., 2017), 컴퓨터를 포렌식해도 토르 브라우저가 언제언제 실행됐는지만 알 수 있을 뿐 그걸로 정확히 어떤 사이트에 들어갔는지는 알 수 없다. 더군다나 아예 테일즈Tails를 사용했다면 그 테일즈 USB 자체가 발각되도 않고 테일즈를 다운받아 설치한 행위와 관련된 증거도 남기지 않았다는 전제 하에 그 컴퓨터에는 아무런 포렌식 증거가 남아 있지 않을 가능성이 높다. 만약 수취인이 결제를 카드로 하지 않고 익명으로 구입한 암호화폐로 하는 등 다른 관련증거를 안 남기는 데에도 신경을 썼다면 수사기관은 주문사실을 입증할 증거를 확보하지 못할 수도 있다.

다만 이로 인해 최종적으로 법원에서 무죄판결을 받는다 하더라도 그 전에 수사 단계에서 용의자로 의심받아 심리적인 압박을 받거나 구속되는 것은 가능할 수도 있다. 진짜로 아무것도 모르는 사람이라는 분위기를 풍긴다면 수사기관에서도 너무 강하게 압박하기는 부담스러울 수 있겠지만, 진범이 맞는데 다만 증거를 잘 인멸했을 뿐이라는 분위기를 풍긴다면 상황에 따라서는 구속수사도 가능할 것이다.

수취인의 컴퓨터에서 발견된 토르 브라우저는 그 분위기의 향방에 영향을 미칠 수 있다. 앞서 본 바와 같이 2019. 7. 현재 우리나라에서 1일 동안 토르에 직접 접속하는 사람 수는 15,000명으로, 익명성을 확보하기에는 나름대로 충분한 숫자지만 우리나라의 전체 인구 50,000,000명에 비하면 그리 많은 숫자는 아니다. 대부분의 평범한 일반인들은 토르를 쓰지 않는다는 이야기다. 마약 수취인의 집에서 토르 브라우저가 발견됐다면, 수사기관 입장에서는 그 사람이 평범한 일반인은 아니고 뭔가 숨길 게 있는 사람이라고 의심해 수사의 강도를 높일 수도 있다.

전략적 검토. 이런 상황에서는 ‘나’라는 1명이 용의자로 지목돼 집중적인 조사를 받게 되므로, 단순히 VPN+obfs4 브릿지 정도로 네트워크 감시를 피하는 정도로는 방어가 어렵다. 토르 이용사실을 완벽하게 숨길 수 있다면 그게 최선이겠지만 이렇게 집중적으로 조사받는 상황에서는 그러기가 쉽지 않다.

이럴 땐 차라리 토르를 숨기지 말고 더욱 당당하게 쓰는 게 나을 수도 있다. 앞에서도 계속 말하는 것이지만 뭔가 숨기고 싶은 일을 할 때만 한정적으로 토르를 쓰면 토르를 쓴다는 사실 자체가 수상해 보이게 되지만, 평소에도 항상 토르를 쓰면서 딱히 무슨 범죄를 저지르는 게 아니라 무분별한 데이터 수집과 프라이버시 침해에 반대하는 그런 성향의 사람인 것처럼 포지셔닝하면 그냥 그런가보다 하고 받아들여질 가능성도 존재한다. 물론 이것도 완벽한 대안이라고 보기는 어려운 것이, 상황에 따라서는 저렇게 평소에도 항상 토르를 쓰면서까지 완벽하게 숨겨야 하는 무언가가 있겠구나 라는 인상을 줄 수도 있기 때문이다.

이런 상황에서 또 한 가지 고려해 볼 수 있는 전략은 바로 디코이decoy를 만드는 것이다. 토르, 테일즈를 비롯한 각종 암호화 프로그램들의 공통점은 암호화된 통신이 이루어지고 있다는 사실 자체는 숨겨지지 않지만, 그 밑에서 정확히 어떤 내용의 통신이 이루어지고 있는지는 거의 완벽하게 숨겨진다는 것이다. 따라서 실제로는 토르로 불법활동인 A를 했음에도 마치 합법활동인 B를 한 것 같은 증거를 만들어 두고, 나중에 경찰이 너 A 했지?라고 추궁하면 아뇨, B 했는데요 라고 대답하는 것이 가능할 수 있다.

여기서 경찰은, 합법활동인 B는 그냥 당당하게 해도 되는데 왜 굳이 토르씩이나 이용하면서 숨기려고 했을까?라는 의문을 가질 수 있다. 물론 행태정보, 빅데이터 수집당하는게 싫어서 라고 대답할 수도 있겠지만 사실 대부분의 평범한 일반인들은 자신의 인터넷 사생활이 낱낱이 감시당하고 기록으로 남으며 데이터 브로커들을 통해 각종 기관으로 유통되는 걸 별로 껄끄럽게 생각하지 않기 때문에, 경찰 입장에서는 그런 류의 대답에 선뜻 수긍하기가 어려울 수도 있다. 그래서 상황에 따라서는 B에 누가 봐도 껄끄러울 만한 것을 넣는 것이 도움이 될 수도 있다. 한 가지 생각해 볼 수 있는 것은 음란물 감상이다. 누구라도 숨기고 싶어할 만한 것이지만, 그렇다고 딱히 불법으로 처벌할 수 있는 것은 아니다. 때문에 경찰 수사를 받는 상황에서 디코이로 쓰기에 적절하다. 다만 이것도 만능은 아닌 것이, 음란물 감상시 토르씩이나 이용하는 사람은 많지 않기 때문이다. 상황에 따라서는 음란물 감상을 위해 토르를 쓴다고 하면 그게 평범한 음란물이 아니라 아청, 동성애 등 사회적으로 금기시되는 종류일 거라는 인상을 줄 수도 있다. OECD에 가입한 선진국답게 우리나라에서는 피의자가 경찰 수사를 받으면서 진술하는 내용이 그대로 언론으로 뿌려지는 경우가 종종 있는데, 만약 이런 이미지가 언론을 타고 퍼져나가면 사회생활에 악영향이 오는 경우도 있을 수 있다.

토르 이용사실 유출 가능 경로

여기부터는 토르 이용사실을 숨기는 방법에 대해 알아본다. 먼저 토르 이용사실이 유출될 수 있는 경로가 뭐가 있는지부터 생각해 보자.

사이트 및 트래커: 토르 브라우저를 이용해서 실명계정으로 로그인하면, 그 로그인한 사이트 및 거기에 달려 있는 트래커들은 우리가 토르 유저라는 사실을 알게 된다. 가장 틀어막기 쉬운 유출 경로다.

가족, 친구, 룸메, 방문자: 컴퓨터를 잠깐 빌려 쓰다가 토르 브라우저 아이콘을 발견하게 될 수 있다. 이건 테일즈를 사용하면 거의 완벽하게 막을 수 있다.

등 뒤에 서 있는 사람 및 본인 컴퓨터에 설치돼 있는 모든 프로그램: 윈도우 및 거기에 설치돼 있는 각종 보안프로그램, 게임, 유틸 등은 사용자의 활동내역에 대한 다양한 정보를 수집한다. 윈도우 설정의 개인 정보→피드백 및 진단에서 진단 데이터를 ‘전체’로 설정해 놓으면 윈도우는 사용자가 어떤 프로그램을 실행시킬 때마다 실행 시각, 프로그램 이름, 종료 시각 등을 마이크로소프트로 전송한다.* 윈도우에 기본 탑재된 보안 기능인 Windows Defender SmartScreen은 사용자가 인터넷에서 다운받은 파일명, 파일 크기, 해쉬값, 다운 URL, 전자서명정보 등을 마이크로소프트로 전송한다.* 거의 모든 은행, 관공서 사이트에서 설치를 요구하는 AhnLab Safe Transaction은 “웹 브라우저 등을 통해 다운로드 된 응용프로그램에 대한 정보. 예: 파일명, URL, IP, 파일 크기, 서명자”를 수집함으로써 마치 SmartScreen과 유사한 기능을 한다.* 세계적으로 유명한 보안 프로그램인 AVG는 사용자가 방문하는 사이트 URL을 수집하며 그렇게 수집한 브라우징 히스토리 정보를 제3자에게 판매함으로써 수익을 창출한다고 개인정보처리방침에 명시했던 적이 있다.* 게임 플랫폼인 스팀 프로그램은 사용자가 핵 사이트에 들어갔는지를 알아보기 위해 OS의 DNS 캐시 데이터를 수집한다.* 이를 통해 이미 설치된 토르 브라우저가 언제 실행됐는지, 토르 브라우저를 이용해 어떤 사이트에 들어갔고 어떤 파일을 다운받았는지에 관한 기록이 수집될 수 있음은 물론, 애초에 토르 프로젝트 사이트에 접속해서 토르 브라우저 설치파일 자체를 다운받았다는 기록도 수집될 수 있다. 컴퓨터에 설치된 프로그램 문제는, 일단 윈도우 클린 재설치를 한 후 매우 제한적으로만 프로그램을 설치하고, 은행, 관공서 사이트 이용을 위한 ActiveX는 가상머신 또는 듀얼부팅 윈도우 내에만 설치하는 방법으로 통제할 수 있다. SmartScreen 기능은 수동으로 끌 수 있고(다만 그걸 껐다는 사실 자체가 유출될 가능성은 있다), 진단 데이터는 수동으로 ‘기본’으로 설정할 수 있다. 아니면 테일즈를 사용함으로써 막을 수도 있다.

국내 네트워크 감시자: 학교·회사 와이파이를 쓰거나 학교·회사 기숙사에서 인터넷을 하는 경우 그 학교·회사, 카페 와이파이를 쓰는 경우 그 카페 주인, PC방 컴퓨터를 쓰는 경우 그 PC방 주인, KT, LG, SK 등 통신사, 정부의 HTTPS 차단시스템, 국정원에서 운영하는 XKeyscore 유사의 프로그램 등 국내 네트워크 감시자들은 우리가 토르로 정확히 뭘 하는지는 알 수 없지만, 토르의 입구 릴레이 IP는 모두 공개돼 있고 또 토르 트래픽은 514바이트 셀 단위로 전송되는 등 고유한 특징이 있기 때문에, 우리가 토르를 쓴다는 사실 자체는 쉽게 알 수 있다. VPN+obfs4 브릿지를 이용하면 토르 트래픽을 숨길 수 있고, PC방이나 모텔 같은 공공장소 컴퓨터를 이용하면 토르 트래픽 자체는 숨겨지지 않더라도 그 토르 트래픽을 유발시킨 사람이 바로 나라는 사실을 숨길 수 있으나, 아래에서 살펴볼 것처럼 이 방법들에는 이런저런 한계점들이 존재한다.

외국 네트워크 감시자: 미국 NSA, 토르 릴레이나 VPN 서버가 위치한 외국 데이터센터 회사, 그 데이터센터에 인터넷 연결을 제공하는 외국 ISP 및 Autonomous System, 외국 정부 등 외국 네트워크 감시자도 감시를 수행할 수 있다. 가령 국내 네트워크 감시자를 피하기 위해 해외 VPN 서버를 이용해 VPN→Tor 구성을 하는 경우에도 그 VPN 서버가 위치한 국가의 정부는 내가 토르에 접속한다는 사실을 안다. 한편 미국 NSA는 미국뿐만 아니라 전 세계 상당수의 IXP (internet exchange)를 장악하고 있어 국가 간에 왔다갔다하는 인터넷 트래픽의 상당비율을 감시할 수 있기 때문에,* 미국 외의 국가 서버를 이용하는 경우에도 미국의 감시망에 들어갈 수 있는 가능성이 있다. 본인이 용의자로 특정된 상황이 아니라면 여기까지 신경쓸 필요는 없을 수도 있겠으나, 이미 용의자로 특정돼 공격자가 수사력을 집중할 수 있는 상황에서는 공격자가 외국 정부나 기업의 협조를 받아 감시정보를 입수하는 것이 가능할 수도 있다.

지금 이 글을 읽는 것의 문제

여러분은 아마 별다른 보안조치를 하지 않은 상태로 이 글을 읽고 있을 것이다. 다행히 이 블로그에는 보안, 익명성 외에도 요리, 자취생활, 법률 등 다양한 주제에 대한 글이 올라와 있기 때문에, 통신사와 정부의 HTTPS 감시시스템은 여러분이 이 블로그에 들어왔다는 사실 자체만 기록할 있고 거기서 정확히 어떤 포스팅을 읽었는지를 기록하지는 못할 것이다. 그러나 컴퓨터에 설치돼 있는 보안 프로그램 및 이 블로그 자체에 달려 있는 구글, 페이스북 등 트래커는 여러분이 정확히 이 포스팅을 여기까지 읽었다는 사실도 기록으로 남길 수 있다. 다만 이 기록이 공격자에게 노출되더라도, 호기심에 한번 읽어 보기만 했을 뿐 그걸 진지하게 따라하지는 않았다고 주장하는 것은 가능하다. 실제로 대부분의 사람들이 그럴 것이기 때문에 꽤 신빙성 있는 주장이 된다.

다만 이 글을 한 번 읽고 마는 것이 아니라 계속 반복적으로 읽었다는 기록을 남기면 위와 같은 주장이 먹히지 않을 수 있으므로 주의를 요한다. 이 블로그에서 제안하는 방법들을 실제로 쓰려면 한 번 읽는 것으로는 불충분할 것이므로, 기록을 남기지 않으면서도 글을 여러 번 읽으려면 어떤 식으로든 글을 오프라인으로 저장해서 은밀하게 읽어야 할 것이다. 그런데 오프라인으로 저장을 어떻게 해야 할 것인지도 사실 문제다. Ctrl+A로 전체 선택하고 Ctrl+C로 복사 후 메모장에 붙여넣는 방법이 있으나 그러면 텍스트 외에 사진 등은 저장이 되지 않는다는 문제가 있고, Ctrl+P로 PDF로 인쇄하는 방법이 있으나 이 경우 해당 웹페이지를 인쇄했다는 기록이 크롬 개발사인 구글 측에 전송될 가능성이 있는지 없는지가 확실하지 않다. 또한 방법을 제대로 써먹으려면 지금 이 포스팅뿐만 아니라 윈도우 재설치, 기타 프로그램 설치 등 다른 포스팅들도 참조해야 하는데 그렇게 관련 포스팅들을 자꾸 클릭해서 읽으면 여러분이 이 주제에 관심이 있다는 사실이 더 강하게 드러날 수 있다.

이 문제를 해결할 수 있는 방법 중 하나는 본인 생활반경과 멀리 떨어진 PC방, 모텔, 구청, 도서관, 스터디카페(프린트용 컴퓨터가 있는 경우가 있다) 등 공용 PC가 있는 곳으로 은밀하게 이동해서 필요한 글들을 Ctrl+P로 프린트해 USB에 저장해 오는 것이다. 다만 그 USB를 집에 있는 컴퓨터에 꽂으면 그 파일들이 V3 등 보안프로그램에 의해 스캔될 우려가 있으므로, 좀 더 높은 수준의 보안이 필요한 경우에는 현장에서 테일즈Tails를 다운받아 설치해 온 뒤 집에서 테일즈를 오프라인 모드로 부팅해 그걸로 PDF파일을 읽는 게 나을 수도 있다. 테일즈 설치를 위한 8GB 이상의 USB를 가져가서, 이 블로그 독자라는 사실이 노출되지 않도록 하기 위해 이 블로그에는 들어오지 말고, tails.boum.org 사이트로 들어가서 영어로 된 설명을 따라하면 된다. 아니면 각종 리눅스 배포판을 다운받을 수 있는 사이트인 mirrors.kernel.org에서 테일즈를 다운받아도 된다. 테일즈 설치가 완료됐으면 테일즈로 부팅해서 그 테일즈에 탑재돼 있는 토르 브라우저를 이용해 이 블로그인 gogilove.wordpress.com 또는 블로그 포스팅들이 아카이브돼 있는 archive.today로 접속해 Ctrl+P 등으로 필요한 포스팅을 저장하면 된다. 저장한 PDF 파일들은 Persistence 폴더에 넣어 놓아야만 테일즈를 재부팅해도 삭제되지 않는다.

공용 PC가 있는 장소는 당연하지만 본인 생활반경과 멀리 떨어진 곳이어야 한다. 서울의 경우 적어도 ‘구’ 하나 이상의 간격을 둘 것을 권한다. 정확히 어디로 갈지 정하기 위해 인터넷 검색을 해서는 안 되며, 아무 정보 없이 그냥 발 닿는 대로 가면서 찾아보는 것이 바람직하다. 여러분이 이 글을 읽은 기록이 있는 시점과 그 근방의 공용 PC에서 누군가가 gogilove.wordpress.com, archive.today, tails.boum.org로 접속한 시점이 비슷해지는 것을 막기 위해, 공용 PC로 가서 작업하는 것은 오늘 당장 하지는 말고 며칠, 몇 주, 또는 몇 달의 시간 간격을 두는 것이 좋다.

또한 이동시에는 휴대폰과 지갑을 반드시 집에 두고 나가야 한다. 구글은 안드로이드폰의 위치를 GPS로 실시간 수집해서 Sensorvault라는 이름의 데이터베이스에 영구히 보관하며, 경찰 등의 요청이 있으면 그 데이터를 건네 준다.* 아이폰도 아마 크게 다르지 않을 것이다. 설령 애플 자체가 위치정보를 수집하지 않는다 해도 아이폰에 설치돼 있는 각종 앱들은 위치정보를 수집할 수 있다. 지갑은 해당 장소 근방에서 카드결제 기록, 교통카드 기록을 남기지 않기 위해 두고 나간다. 들고 나가면 습관적으로 카드를 꺼내게 될 수 있고, 일단 카드를 꺼내고 나면 실수한 것을 깨달아도 뻘쭘해서 다시 집어넣지 못하고 그걸로 결제를 해 버릴 수 있기 때문에 집에 두고 나가는 게 최선이다.

기타 스마트워치, 나이키플러스 등 전자기기도 두고 나가야 한다. 현금은 혹시 모르니 한 10만원 정도 가져가는 것을 추천한다. 메모를 위한 종이와 펜도 가져가는 것이 좋다. 신분증도 PC방 연령확인시 필요하므로 가져가자. 단, 현재 도입 논의 단계에 있는* 전자신분증이 아니라는 전제 하에서다. 전자신분증 도입 후에는 상황이 어떻게 변할지 아직 알 수 없다.

이동수단은 도보, 버스, 자전거다. 버스는 당연히 현금으로 타야 한다. 자전거는 지자체에서 제공하는 자전거의 경우 도난방지를 위해 위치추적장치가 달려 있으므로 그런 것은 쓰지 말고, 본인 소유의 자전거여야 한다. 지하철이나 택시는 현금으로 이용하더라도 탑승위치와 하차위치가 전산기록으로 남기 때문에 되도록이면 이용하지 않는 것이 좋다. 버스 노선도는 컴퓨터 또는 스마트폰으로 검색하면 기록이 남을 수 있고, 토르 브라우저나 공용 PC 등 익명화된 수단으로 검색하더라도 ‘누군가가’ 그 즈음에 그 위치에서 승차해 그 위치에서 하차했다는 기록이 전산에 남는 셈이 되므로 특별한 사정이 없는 한 이런 익명화된 수단으로도 검색하지 않는 것이 좋다. 정류장에 붙어 있는 아날로그 노선도만 보는 것이 최선이다.

이동 과정에서 실수로 신상정보를 흘리지 않도록 유의한다. 가령 음식점에서 식사 후 결제시 포인트 적립 또는 현금영수증 발급을 위해 휴대폰 번호를 묻는 경우가 있는데 그거 하지 말아야 한다. PC방 이용시에도 본인 신상을 입력해서 회원가입을 해서는 안 되며, 허위 정보로 회원가입을 시도해 보고 만약 휴대폰 인증 같은 것이 필요해서 그게 불가능하다면 비회원으로 이용해야 할 것이다. 해당 PC로 게임에 로그인하거나 커뮤니티에 로그인하는 것은 절대 금기사항이고, 본인이 평소 즐겨 보는 웹툰, 평소 즐겨 찾는 커뮤니티를 비회원으로 보는 것도 지양하기 바란다.

테일즈를 쓰기로 한 경우, 일단 집으로 돌아온 뒤에는 테일즈 부팅방법, 사용방법을 컴퓨터로든 스마트폰으로든 검색하면 안 되므로 현장에서 방법을 잘 숙지하고 돌아와야 한다. 그리고 집에서 테일즈로 부팅할 땐 다른 대안이 떠오르기 전까지는 일단 오프라인 모드로만 부팅해야 한다. 디폴트인 온라인 모드로 부팅하면 테일즈가 자동으로 토르에 접속해서 토르 이용기록이 남을 수 있기 때문이다. 테일즈를 오프라인으로 부팅한다 함은, 최초 부팅시 뜨는 Welcome to Tails! 창에서 Additional Settings에서 Network Configuration을 Disable all networking으로 설정해 둔 상태로 테일즈를 시작하는 것을 말한다. 이 설정은 저장되지 않으므로 매번 테일즈를 부팅할 때마다 이렇게 해 줘야 한다. 노트북의 경우 온라인으로 부팅하더라도 와이파이 연결이 자동으로 되지 않으므로 괜찮을 거라고 생각할 수 있으나, 그런 경우에도 와이파이가 주변으로 탐색신호probe를 보내면서 모종의 정보가 새 나갈 수 있으므로 되도록이면 오프라인 모드로 부팅해서 쓰는 것이 바람직하다.

은밀한 이동에 대한 자세한 논의

이 블로그 글을 몰래 저장하거나 테일즈 USB를 몰래 저장할 때 말고도 공공장소로 ‘은밀하게’ 이동해야 하는 경우는 꽤 많다. 이와 관련한 일부 주제에 대해 좀 더 자세한 논의를 아래에 덧붙여 본다. 전체적인 내용 조망은 바로 위에 있는 항목을 참조하기 바란다.

1. 휴대폰과 위치추적

스마트폰이 나오기 전에도 휴대폰은 이미 위치추적장치였다. 우리나라 경찰은 기지국 수사라고 불리는 기법을 흔히 활용하는데, 기지국 수사란 특정 장소에 있는 특정 기지국에서 특정 시간대에 통화를 발신 또는 수신한 사람들의 명단을 경찰이 통신사에 요청해 건네받는 것을 말한다. 사건 현장 주변이 아니더라도 범인의 이동 동선상에 있는 기지국에 대해서도 기지국 수사가 이루어진다(오지형, 2016). 범인과 같은 장소에 있던 사람은 아주 많을 수 있지만 범인과 이동경로 자체가 완전히 겹치는 사람은 거의 없기 때문에, 이런 식으로 이동경로에 대해 여러 곳의 기지국 자료를 넘겨받아 겹치는 번호를 확인하면 범인의 휴대전화번호를 특정할 수 있다.

우리나라에서도 그런지는 알 수 없으나 미국의 경우에는 통신사가 경찰의 요구 없이도 자체적으로, 아마도 기지국 삼각측량법cell tower triangulation 등의 방법으로 사용자의 대략적인 위치정보를 수집해 데이터 브로커들에게 판매하기도 한다. Verizon, AT&T, T-Mobile, Sprint는 2018. 5.까지 모든 고객들의 현재 및 과거 위치를 망라한 정보를 데이터 브로커에게 판매해 왔다.* 2018. 6.경 미국 상원의원이 통신사들에게 그러한 행위를 중단하라고 요구했음에도 불구하고,* 2019. 1.까지도 AT&T, T-Mobile, Sprint는 여전히 실시간 위치정보를 판매하고 있었으며 기자도 현상금 사냥꾼에게 300달러를 지급해 특정 휴대폰 번호의 위치를 쉽게 알아낼 수 있었다.*

스마트폰은 GPS를 통해 기지국보다 더 정교한 위치정보를 수집한다. 안드로이드 스마트폰은 사용자의 GPS로 수집한 정확한 위치 정보 및 가속도계로 수집한 이동속도 정보를 실시간으로 수집해서 구글로 전송하며, 인터넷이 끊긴 상황에서는 그러한 정보를 휴대폰 내부 저장공간에 저장해 놓고 있다가 와이파이, LTE, 5G에 연결되는 순간 그 때까지 저장해 둔 자료를 한꺼번에 구글로 전송한다.* 이는 설정에서 Location History를 꺼 둔 경우에도 마찬가지다.* 구글은 이렇게 수집한 위치정보 등을 Sensorvault라는 이름의 데이터베이스에 영구히 보관하고 있다가 경찰이 수사목적으로 요청하면 해당 데이터를 건네 준다.* 안드로이드 OS뿐만 아니라 거기에 설치돼 있는 각종 앱들도 위치정보를 수집, 보관, 판매한다.* Strava라는 피트니스 앱 회사는 자신들이 수집한 사용자 위치정보 데이터를 한 데 모아 히트맵heatmap으로 만들어서 대중에게 공개한 적이 있는데, 이로 인해 CIA 비밀기지의 위치, 각국 군부대의 순찰 경로 등이 노출돼 파문이 일었던 적이 있다.* WeatherBug, Weather Channel,* AccuWeather* 같은 유명 날씨앱들도 사용자들의 위치정보를 수집, 판매한다. 이는 꼭 안드로이드만의 문제는 아니고 아이폰도 마찬가지다. 참고로 아이폰을 비행기 모드로 설정해 놓더라도 셀룰러, 와이파이, 블루투스는 꺼지지만 NFC와 GPS는 켜진 채로 남는다.*

그러므로 어떤 장소로 은밀하게 이동하려면 당연히 휴대폰은 집이나 사무실에 놓고 이동해야 한다.

다만 이론적으로는, 이것만으로 모든 문제가 완벽하게 해결되는 것은 아닐 수도 있다. 휴대폰을 가만히 놔 두면, 그 휴대폰은 아무 기록도 생성하지 않는 것이 아니라 언제부터 언제까지 가만히 있었다는 기록을 생성하기 때문이다. 일단 그 시간 동안 카톡을 확인하지 않은 사실, 그 시간 동안 전화를 받지 않은 사실도 그 시간 동안 휴대폰이 주인 품을 떠나 방치돼 있었음을 나타내는 간접적인 증거가 될 수 있다. 구글의 Sensorvault 등 GPS, 가속도계 기록까지 보면 단순히 휴대폰을 주머니에 넣고 확인만 안 한 사람과 아예 방 구석에 놔 둔 사람을 구분하는 것도 가능할 것이다. 휴대폰이 주머니에 들어 있었다면 흔들림이 기록됐을 것이기 때문이다.

휴대폰 전원을 끈다고 문제가 해결되는 것도 아니다. 그 시간 동안 휴대폰 전원이 꺼져 있었다는 기록이 생성될 수 있기 때문이다. 배터리가 다 떨어졌을 때를 제외하면 휴대폰을 끄고 다니는 사람은 거의 없기 때문에, 배터리가 남아 있고 그 밖에 휴대폰을 꺼야 할 만한 사정이 엿보이지 않는데도 휴대폰이 장시간 꺼져 있었다면 그 자체가 수상해 보일 수 있다. 참고로 휴대폰에 설치돼 있는 각종 앱과 브라우저로 접속한 웹사이트들은 Battery Status API를 이용해 휴대폰의 현재 배터리 충전 퍼센트를 알 수 있다.

휴대폰이 가만히 있었다는 기록이 문제가 되는 이유는, 공공장소로 은밀하게 이동해서 인터넷 작업을 마치고 다시 돌아오려면 적어도 수 시간이 필요한데, 대부분의 사람들은 휴대폰을 수 시간 동안 가만히 놔두지 않기 때문이다. 공격자가 공공장소 컴퓨터에서 자꾸 토르를 쓴 사람이 누구인지를 알아내고 싶어한다고 하자. 만약 그게 며칠 전에 있었던 일이라면 해당 공공장소를 직접 찾아가서 CCTV로 이동경로를 추적하거나 필요하면 지문, DNA 검사를 통해 쉽게 신원을 알아낼 수 있겠지만, 시간이 많이 지나 CCTV도 법과학증거도 확보할 수 없고 위치정보 데이터베이스에만 의존해야 하는 경우가 이론적으로는 있을 수 있다. 이 때 만약 공격자가 모든 사람들의 휴대폰 위치정보 데이터를 갖고 있다고 가정한다면, 공격자는 먼저 문제의 공공장소 컴퓨터 근방에 거주하는 사람들 중 토르 이용 시간대 동안 휴대폰이 가만히 놓여 있었거나 전원이 꺼져 있던 사람들의 명단을 뽑을 수 있을 것이다. 이렇게 1회적으로 명단을 뽑는다면 여기에 해당되는 사람은 한두 명이 아닐 것이므로 용의자 특정은 불가능하지만, 만약 용의자가 공공장소에서 토르를 쓰는 걸 자주 한다면 공격자는 그 각 시점마다의 명단을 뽑은 다음 각 명단에 공통적으로 나타나는 사람만 추려낼 수 있을 것이다. 이 경우 용의자는 한두 명으로 쉽게 좁혀질 수도 있다. 다만 이게 현실적으로 가능한지는 잘 모르겠다. 수사기관 레벨에서는 특별한 사정이 없는 한 불가능할 것이고, 국정원 레벨에서도 대한민국 국정원이 구글 데이터에 접근할 권한이 있는 게 아니기 때문에 아마 불가능할 것이다. 그냥 이론적으로는 가능할 수도 있다는 이야기다.

이 문제를 해결하는 가장 쉬운 방법은 신뢰할 수 있는 다른 사람에게 부탁해서 휴대폰 이동기록 또는 사용기록을 좀 만들어 달라고 하는 것이다. 아니면 집에 애완동물이나 아기를 키우는 경우 휴대폰을 그 애완동물이나 아기에게 붙여 놓음으로써 공격자가 ‘특정 시간에 가만히 놓여 있던 스마트폰’이라는 조건을 줘서 명단을 뽑을 때 거기에 걸려들지 않게 하는 것도 가능하다.

이게 불가능한 경우에는 차선책으로 휴대폰이 가만히 놓여 있어도 이상하지 않은 시간대를 택해서 움직인다. 대표적으로 한밤중~새벽 시간대를 꼽을 수 있겠다. 다만 밤에 움직이는 것에는 단점도 있는데, 다음날 활동에 지장이 생길 수 있고, 룸메이트가 가족이 있는 경우 밤에 외출했다는 사실이 발각될 수 있으며, 기숙사 같은 데 거주하여 건물 출입시 출입카드 따위로 인증하는 경우 밤에 외출했다는 사실이 기록으로 남을 수 있고, 버스 시간 맞추려면 멀리까지 이동하기가 어려울 수 있다.

2. 이동수단

자동차. 오지형, 『강력사건 수사론』, 2016, 170면에는 다음과 같은 말이 있다.

경찰청에서 차량방범용 CCTV와 차량번호자동판독기(AVNI)를 연계, 수배차량을 실시간 검색하여 추적·검거하는 수배차량 등 검색시스템(WASS)을 운용하고 있다. WASS의 기능은 ①수배차량 실시간 검색·전파 기능, ② 범죄용의 차량 검색(차량번호 일부만 알 경우), ③ 중복차량 검색, ④수배차량 과거 이동경로 추적 기능 등 4가지이다. 수배내용을 경찰서 112종합상황실과 외근 경찰의 휴대폰과 순찰차 내비게이션에 문자로 자동전파, 예상 도주로를 차단하여 검거할 수 있다. 긴급수배 차량번호의 일부를 입력하여 용의차량들에 대한 대상을 압축할 수 있고, 농산물 절도와 같이 동일 차량을 이용, 여러 지역에서 반복적으로 범행한 차량을 특정할 수 있는 중복차량 검색도 가능하다. 범죄 및 여죄 수사를 위해 특정된 용의자량번호를 입력하면 전국 CCTV 통과사항의 조회도 가능하다.

렌터카. 렌트하는 과정에서 본인 신상과 해당 차량번호가 연계되는데다가 자가소유와 달리 차에 GPS가 장착돼 있는 경우가 많으며, 『강력사건 수사론』에는 “CCTV 화면 속에 ‘허’ 넘버인 렌터카가 발견되면 더욱 용의점을 두고 수사를 진행하여야 한다.”라는 말도 있다.

지하철. 현금으로 1회용 교통카드를 구입해서 타더라도 교통카드의 특성상 탑승장소·시각과 하차장소·시각이 전산기록에 남는다. 따라서 지하철을 유일한 교통수단으로 삼는 것은, 즉 자기 집과 가장 가까운 지하철역에서 탑승해서 목적지 PC방 근처의 지하철역에서 내리는 것은 생각보다 위험하다. 거주지가 곧바로 추적당할 수 있다.

확실하지는 않지만, 어쩌면 승하차 전산기록을 역이용해 수사에 혼선을 주는 것도 가능할 수 있어 보인다. 장애인 출입구에서 호출버튼을 누르고 역무원에게 화장실에 간다거나 반대쪽 승강장으로 넘어간다는 핑계를 대면 하차태그를 하지 않아도 문을 열어 주는 경우가 많다. 이걸 이용해서, 가령 A역에서 화장실에 간다며 문을 열어달라고 한 뒤 실제로는 하차태그를 하고 빠져나가고, 화장실에 갔다 왔다며 승차태그를 하지 않고 다시 들어온 뒤, 지하철을 타고 B역으로 이동해서 화장실에 간다고 말하고 다시 빠져나가는 식으로 수작을 부릴 수 있다. 이 경우 실제로는 B역에서 내렸음에도 불구하고 전산기록상으로는 A역에서 내린 것으로 나오게 된다. 단, 공격자가 이 가능성을 염두에 두고 B역 직원에게, 화장실에 간다면서 빠져나간 뒤 다시 들어오지 않은 사람이 있나요?라고 물어본다면 발각될 수도 있다.

택시. 교통안전법에 의해 택시는 의무적으로 디지털 운행기록장치를 달고 다니게 돼 있다. 운행기록장치는 승객의 승하차 위치(GPS) 및 시각을 전산기록으로 남기며 이는 현금 결제를 하더라도 마찬가지다. 대략 지하철과 비슷하다고 보면 된다. 다만 몇 가지 차이점이 있다. ① 지하철과 달리 기사와 협의 하에 미터기를 끄고 이동하는 게 가능하다. 이 경우 운행기록장치는 시간대별 GPS 기록은 남기겠지만 승하차 기록은 남기지 않을 것이다. ② 지하철은 대부분의 사람들이 교통카드로 이용하기 때문에 현금결제 탑승자가 좀 튀어 보일 수 있지만, 택시는 아직도 현금으로 타는 사람이 많기 때문에 현금결제 탑승자가 튀어 보이지는 않을 것이다.

고속버스. 고속버스 표는 버스터미널에서 익명으로 현금으로 구입하는 것이 가능하며 별도의 신분확인 절차는 없다. 정기운행을 한다는 특성상 탑승장소·시각과 하차장소·시각이 기록에 남기는 하나, 같은 노선을 따라 동일장소·시각에서 탑승해서 동일장소·시각에서 하차한 사람 수가 많기 때문에 어느 정도 익명성이 확보될 수 있다. 그러나 같은 노선을 타고 움직인 다른 사람들이 대부분 신용카드로 결제했다는 등의 특별한 사정이 있는 경우에는, ‘혼자만 현금으로 결제해서 그 노선을 타고 움직인 사람’으로 특정될 수 있는 위험이 있다.

시내버스. 시내버스는 현금으로 탑승하면 탑승장소·시각과 하차장소·시각이 CCTV 외의 전산기록에 남지 않으므로 매우 은밀하게 멀리까지 이동할 수 있다. 중간에 여러 번 갈아타면 더 좋다.

요즘은 버스 안쪽에도 CCTV가 설치된 경우가 많아 CCTV를 분석하면 특정인의 탑승장소·시각과 하차장소·시각을 알아내는 것이 가능하나, 이 CCTV 영상은 자동으로 전산에 저장되는 것이 아니고 그냥 개별 버스 내의 저장장치에 저장돼 있다가 며칠 지나면 새로운 영상으로 덮어씌워져 없어지므로, 이 정보가 어떤 영구보존되는 데이터베이스에 들어갈 염려는 별로 없어 보인다. 버스 내 CCTV가 정확히 며칠 보존되는지는 개별 버스회사마다 다를 것이나 아마 길어도 한 달을 넘기지는 못할 것이다.

대여자전거. 서울시의 초록색 공유자전거 ‘따릉이’에는 1대당 51만원 상당의* GPS/통신장치가 달려 있다.* 인천 연수구의 공유자전거 ‘쿠키자전거’에도 위치추적장치가 달려 있다.*

본인 소유 자전거. CCTV 이외에는 기록을 남기지 않으면서도 장거리 이동이 가능한 우수한 이동수단이다. 강가에 있는 자전거도로에는 CCTV가 설치돼 있지 않거나, 설치돼 있더라도 일반 시내 도로에 비하면 훨씬 드문드문 설치돼 있는 경우가 많으므로 CCTV 추적도 조금 어려워질 수 있다. 광주 천변 자전거도로에는 2019. 3. 15.까지 CCTV가 없었다.* 한강에는 2019. 1. 10.까지 잠실 부근 탄천자전거도로에 2대, 여의도 부근 여의상류 및 여의하류 자전거도로에 5대, 뚝섬 부근 구리시계 자전거도로에 3대가 설치돼 있었다.*

3. CCTV

요즘 도시에는 CCTV 사각지대가 거의 존재하지 않는 수준으로 CCTV가 촘촘하게 깔려 있다. 경찰·지자체 통합관제센터와 연계된 공공 CCTV는 간혹 작은 골목에는 사각지대가 있기도 하지만 요즘은 건물 주인들이 무단주차 방지 등 차원에서 건물 입구에 도로를 향하는 CCTV를 설치해 놓는 경우가 많고, 블랙박스를 설치해 놓은 차도 많으므로 그것까지 합하면 사각지대를 찾기가 쉽지 않다. 다만 아예 없는 것은 아니다.

이 때문에 요즘 경찰은 사건 현장에서 찍힌 CCTV로 범인의 인상착의를 파악해 그냥 막 찾아다니는 식으로 수사하는 게 아니라, 사건 현장에서부터 범인의 이동경로상 CCTV를 하나하나 따라가면서 범인의 최초 출발지점까지 따라가는 식으로 수사한다. 『수사연구』지 2018년 9월호에 자세한 내용이 소개돼 있다. CCTV 추적은 보통 2인 1조 또는 두 개 조 4명으로 진행하며, 형사 한 명은 관제센터로 이동하고 나머지는 현장에서 영상자료를 단체 대화방에 올리면서 교신한다. 사거리 갈림길에서 CCTV가 있는 곳과 없는 곳이 나오면 있는 곳부터 하나씩 배제한 뒤 남은 한 곳으로 다시 추적한다. 버스, 택시를 현금으로 이용한 경우 내부 CCTV를 열람해 용의자가 내린 곳으로 가서 다시 추적한다. 한편 『수사연구』지 2018년 12월호를 참조하면 통합관제센터 CCTV가 아닌, 집 주인이 개별적으로 설치한 CCTV를 확인해서 추적하는 데는 시간이 꽤 오래 걸리는 것 같다. 서울지방경찰청 마약수사계 3팀이 국정원의 첩보를 받고 필로폰 보관책을 추적하는데, 신촌 이대거리의 한 골목으로 들어가는 곳까지만 추적이 가능했다고 한다. 경찰은 주택가나 빌라 입구에 설치된 CCTV를 까 보기를 열흘 동안 지속한 끝에 결국 마포구를 넘어 서대문구 소재의 빌라로 들어가는 보관책의 영상을 찾을 수 있었다고 한다.

CCTV 설치범위는 계속적으로 넓어지고 있어 이제는 버스 객실, 지하철 객실에는 대부분 CCTV 설치가 완료됐고 택시 내부에도 CCTV가 급속도로 설치되고 있는 추세다. 그러나 강가에 있는 자전거도로에는 아직 CCTV가 많이 설치되지는 않았고, 넓은 공원, 동네 뒷산에도 CCTV가 없는 경우가 많다. 뒷산의 크기가 큰 경우, 뒷산으로 들어가서 다른 동네 쪽으로 나오면 추적자는 그 뒷산에서 나올 수 있는 모든 경로의 모든 시간의 CCTV를 다 체크해 봐야 하므로 추적 소요시간이 길어질 수 있다. 아파트 단지는 주택건설기준등에 관한 규칙에 의해 승강기, 어린이놀이터 및 각 동의 출입구마다 CCTV를 설치하게 돼 있으나 그 외의 장소에는 CCTV가 상당히 띄엄띄엄 설치된 편이고, CCTV 사각지대에 있는 담을 넘어 밖으로 나감으로써 추적에 약간의 혼선을 주는 것도 가능할 수 있다. 대학교 캠퍼스에도 CCTV 사각지대가 많은 편이다.

찍힌 영상의 보관 기간. 아파트 단지 내 CCTV는 공동주택관리법 시행규칙에 의해 30일 이상 보관해야 한다. 어린이집 CCTV는 고해상도(HD, 100만 화소) 이상의 화질을 갖추고 60일 이상 5개월 이하로 보관해야 한다.* 그 외에는 공공 CCTV, 민간 CCTV를 불문하고 영상의 보존기간에 대한 법적 효력 있는 규정은 없다. 영상을 아예 보관하지 않고 실시간으로만 볼 수 있게 하든 영구적으로 보관하든 모두 합법이다. 다만 개인정보 보호법 12조는 행정안전부가 표준 개인정보보호지침(표준지침)을 정해 개인정보처리자에게 그 준수를 권장할 수 있다고 규정하고 있고, 그 표준지침 41조 2항은 영상정보처리기기운영자가 그 사정에 따라 보유 목적의 달성을 위한 최소한의 기간을 산정하기 곤란한 때에는 보관 기간을 개인영상정보 수집 후 30일 이내로 한다고 규정하고 있다. 그래서인지 지방자치단체 통합관제센터 CCTV의 경우 대부분 30일 보관 후 삭제된다고 한다.*

오지형, 『강력사건 수사론』, 2016, 161면에는 은행 등 금융기관은 30일, 마을버스는 5~6일, 일반시내버스는 4~5일, 지하철역은 30일, 택시 및 자가용은 2~3일, 대형마트·백화점은 30~45일, 편의점·주유소·금은방 등은 15~20일, 까페 등 개인업소는 15~30일, 아파트는 15~45일, 구청 주민센터는 20일, 경찰방범용은 30일, 구청주차위반은 30일 정도 보관된다는 말이 있다.

안면인식 기술 적용 여부. 2019년 현재 한국의 공공 CCTV에는 안면인식 기술이 도입돼 있지 않다. 가까운 미래에도 CCTV와 피사체의 거리, 각도, 이동속도 등의 사유로 인해 CCTV에 찍힌 특정인이 5천만 국민 얼굴 데이터베이스 내에서 즉각 식별되는 것은 기술적으로 매우 어려울 것으로 보인다. 게다가 한국 정부의 경우에는 주민등록증, 운전면허증, 여권 만들 때 증명사진 제출하는 것이나, 미국 MTA에서 하듯이* 교통단속 카메라에 찍힌 운전자 얼굴을 그 차량 번호판으로 인식된 소유주 데이터와 매칭시켜 저장함으로써 운전자들에 대한 저화질 사진을 수집하는 것 외에 전국민에 대한 3D 얼굴 데이터베이스 수집·축적 수단이 없다. 그래서 한국의 경우에는 향후 10년 내에는 CCTV 안면인식 기술이 보급되지 못할 것으로 예상된다.

중국의 경우, AI를 동원한 감시가 가장 삼엄한 지역인 신장 위구르 자치구에서도 적어도 2017년까지는 실시간 안면인식은 도처에 깔린 CCTV로 자동으로 이루어지는 것이라기보다는 안면인식을 위한 별도의 체크포인트에서 전용 카메라로 수동으로 이루어지는 경향이 있었던 것으로 보인다.* 한편 중국 상양襄阳시 횡단보도에는 무단횡단을 하는 사람을 자동으로 안면인식해서 그 사람의 신상을 전광판에 뿌려 주는 CCTV가 있는데, 정확히 몇 년도에 그랬는지는 알 수 없으나 2018년 기사에 의하면 이것도 실제 무단횡단 시점으로부터 전광판에 뜨는 시점까지 5~6일이 걸린다고 한다.* 해당 CCTV에 걸리는 모든 사람의 얼굴을 식별하는 것도 아니고 무단횡단을 하는 일부 용의자에 대해서만 식별을 진행하는데도 이렇게 오래 걸린다면, 전국민에 대한 실시간 안면인식 및 식별은 그 분야 세계 1위 국가인 중국에서도 향후 몇 년 내로는 불가능할 것이다.

북미의 경우, 2018년 캐나다의 한 쇼핑몰이 고객의 동의를 받지 않고 CCTV 영상분석을 하다가 적발된 적이 있는데, 회사측은 고객의 성별, 나이 정도만 분석되고 기타 개인정보는 저장되지 않는다고 대답했다.* 2018년 미국 시민단체인 ACLU가 미국의 대형 리테일러 20곳에 안면인식 기술의 사용여부를 질의했을 때 1곳은 쓰지 않는다고 답했고, 1곳은 절도 방지를 위해 쓰고 있다고 답했고, 18곳은 답하지 않았다.* 쇼핑몰은 고객들이 실명 신용카드로 결제를 한다는 특성상 CCTV에 인식된 특정인을 개인 신상과 매치시키기 쉬운 포지션에 있다.

재식별 기술 적용 여부. CCTV에서 재식별re-identification이란 동일한 사람 또는 차량이 여러 시점에 걸쳐 여러 CCTV에 찍힌 경우 이를 컴퓨터가 자동으로 한 데 모아서 보여 주는 기술을 말한다. 재식별 기술을 이용하면 CCTV를 통한 이동경로 추적을 더 쉽게 할 수 있고, 이동경로 추적 중 범인을 놓친 경우 해당 시점·경로와 연속성이 없는 전혀 엉뚱한 곳에서라도 범인이 CCTV에 찍히면 그것도 쉽게 찾을 수 있어 수사에 큰 도움이 된다.

Market 1501 데이터셋. 출처

우리나라에서도 이 기술이 개발되고 있다. 클라우드 기반 지능형 영상보안 인큐베이팅 플랫폼 개발은 ETRI, 경찰청, 제주도 등이 참여해 2017년부터 진행되고 있는 사업으로, 2018년 말부터 제주도 지역에 시범사업이 시행되기 시작했다. 여기서 제주도 지역의 시범사업이란, 기술개발이 완료됐기 때문에 제주도 지역부터 시범적으로 그 기술을 도입한다는 말이 아니라, 제주도 지역 CCTV 영상데이터를 수집해서 그 데이터로 학습을 시킴으로써 기술개발에 도움을 얻겠다는 말에 더 가까운 것으로 보여진다. 제주도 이후에는 대전, 천안·아산, 부산 지역으로 확대할 계획이라고 한다.

실종아동 등 신원확인을 위한 복합인지기술개발사업은 KIST, 과학기술정보통신부, 산업통상자원부, 경찰청이 참여해 2018. 11.부터 시작된 사업으로 2022년까지 5년간 총 320억 원이 투입된다. 사람의 얼굴, 걸음걸이, 행동 등을 종합적으로 인식, 특정 장소에 나타난 인물의 신원 확인은 물론이고 실시간으로 이동 동선을 추적하는 것도 가능한 CCTV 시스템을 개발해 범죄 예방, 용의자 검거 등 치안 문제에 폭넓게 활용할 예정이며, 초기 2년 동안 프로토타입을 만들고 안양시 통합관제센터를 통해 기술을 실증할 계획이라고 한다.

요약하면, 2019년 기준으로는 재식별 기술은 아직 개발 초기 단계이고 전국적으로 많이 보급되지도 않았으나, 몇 년 지나면 상황이 바뀔 수도 있다.

공공장소에서 토르, VPN 이용시 CCTV로 추적당할 가능성 고찰. 지금까지 딱히 용의선상에 올라 있지 않던 사람이 공용 컴퓨터를 이용해 토르, VPN에 접속했다는 이유만으로 국정원으로부터 신상이 추적당할 가능성이 있는지 생각해 보자.

미국 NSA는 XKeyscore라는 프로그램을 통해 토르, 테일즈, Hotspot Shield, FreeProxies.org, MegaProxy, privacy.li 등을 검색·사용하는 사람을 감시한다. 여기서 감시한다는 게 정확히 뭘 의미하는지, 그러니까 그걸 쓰는 사람의 IP주소를 수집해서 명단으로 관리한다는 뜻인지, 누군가가 그걸 쓸 때마다 시간별 사용내역을 기록으로 남긴다는 뜻인지 등은 알려져 있지 않다. 만약 대한민국 국정원에서도 비슷한 프로그램을 운영한다면, 누군가가 공용 PC로 토르, VPN을 이용하는 경우 국정원은 일단 그 사실을 인지할 수는 있을 것이다.

그런데 공공장소로 은밀하게 이동해 공용 컴퓨터에서 토르, VPN을 이용하는 경우 그 사람이 누군지 알 수 있는 방법은 CCTV를 보거나 DNA, 지문 등 법과학 증거를 수집하는 것뿐이고, 보통 PC방 등 공용 컴퓨터는 사용을 마치고 나면 직원이 걸레로 키보드, 마우스 등을 닦아 법과학 증거를 훼손시키는 경우가 많으므로 현실적으로는 CCTV가 유일한 추적수단이다. CCTV로 용의자의 이동 동선을 역추적하는 것은 재식별 기술이 보급되지 않은 현재로서는 품이 많이 들어가는 수사기법이어서, 국정원 직원씩이나 되는 사람들이 딱히 범죄 혐의점도 없고 그냥 공용 컴퓨터에서 토르, VPN을 이용했을 뿐인 자의 신상을 ‘혹시 모르니’ 파악해 놓기 위해 그런 귀찮은 걸 할 가능성은 상식적으로 낮다. 경찰은 국정원의 명령을 받는 조직이 아니므로 경찰에게 시키는 것도 불가능하다.

따라서 현실적으로 봤을 때, 공공장소에서 토르, VPN을 이용했다는 이유만으로 국정원, 경찰에 의해 CCTV로 신상 파악을 당할 가능성은 매우 낮다.

4. 네트워크 관련

VPN, obfs4. 공공장소에서 비밀스러운 작업을 할 때 감시자에게 작업내용이 노출되는 것을 피하기 위해 VPN을 쓰거나, 토르 이용사실이 직접 노출되는 것을 피하기 위해 VPN 또는 obfs4 브릿지를 쓰고 싶은 생각이 들 수 있다. 그러나 이 경우 잘못하면 본인 신상이 노출될 수 있으므로 주의해야 한다. 예를 들어 집에서 쓰던 VPN과 동일 회사의 유료 VPN을 공공장소에서 사용하면 공격자 입장에서 봤을 때 잠재적 용의자 집단이 ‘평소 해당 VPN을 유료 결제해서 쓰는 사람’으로 줄어들 수 있다. 이와 비슷하게, 집에서 쓰던 퍼블릭 또는 프라이빗 obfs4 브릿지 주소를 공공장소에서 그대로 사용하면 이를 통해 공공장소 방문자의 신상을 유추하는 것도 가능하다.

공공장소에서 작업하면서 네트워크 감시자에게 작업내용을 숨기고 싶다면, 가장 무난한 방법은 공용 PC에서 토르 브라우저를 다운받아 브릿지 없이 토르에 접속하거나, 공용 PC를 테일즈로 부팅해 브릿지 없이 토르에 접속하거나, 아니면 현재 가장 대중적인 VPN인 VPN Gate를 다운받아 설치해서 쓰는 것이다. 다만 공용 PC가 아닌 개인 PC를 들고 가서 쓰는 경우에는 브릿지 없이 토르에 접속한다 하더라도 Guard node의 지속성으로 인해 신상이 유추당할 수 있으니 주의.

MAC주소 등 기기 식별자 문제. 노트북, 스마트폰 등 네트워크 장비는 기기마다 고유한 맥주소MAC address를 가지고 있다. 맥주소는 원래는 공유기 단에서만 볼 수 있고 공유기보다 상위에 있는 통신사 등은 볼 수 없으나, 공유기 운영자 또는 해당 기기에 설치된 프로그램은 맥주소를 볼 수 있고 때로는 그걸 수집하기도 한다. 또한 이론상이 아닌 실제 현실에서는 통신사도 맥주소를 볼 수 있는 경우가 많다. 집에서는 통신사에서 제공한 기가 와이파이 공유기를 사용하는 경우가 많으므로 그 공유기 운영자인 통신사가 맥주소를 볼 수 있고, 스타벅스, 할리스, 투썸, 엔제리너스 등 카페에서도 와이파이 이름에는 통신사명이 들어가 있지 않지만 내부적으로는 통신사가 제공하는 공유기를 사용하는 경우가 많기 때문에 그 공유기 운영자인 통신사가 맥주소를 볼 수 있다. 이 때문에 평소 집에서 쓰던 노트북을 갖고 공공장소로 이동해서 와이파이로 인터넷을 하는 경우 통신사에게 신상이 노출될 수 있다.

이 문제는 해당 노트북을 테일즈로 부팅해서 쓰더라도 완벽하게 해결되지는 않는다. 테일즈에는 맥주소 변조 기능이 내장되어 있어서, 테일즈로 부팅하면 사용자가 별도로 세팅을 하지 않아도 원래 맥주소 6자리 중 오른쪽 3자리가 랜덤하게 바뀐다.* 즉, 예를 들어 테일즈 USB가 꽂혀 있는 노트북 자체의 맥주소가 00:0a:95:9d:68:16라면, 그 노트북을 테일즈로 부팅해서 공유기에 연결하면 공유기는 00:0a:95:bd:40:4f과 같은 맥주소를 보게 된다.

그러나 테일즈의 맥주소 변조기능을 켜더라도 맥주소의 왼쪽 3자리는 그대로 유지되므로, 만약 왼쪽 3자리 숫자를 공유하는 사람의 숫자가 적다면 맥주소를 변조했음에도 불구하고 여전히 추적이 가능할 수 있다. 어떤 사람이 자기가 갖고 있는 삼성 갤럭시 S3 2대의 맥주소 왼쪽 3자리가 각각 08:d4:2b, 0C:71:5d라고 한 것으로 봐서,* 같은 회사의 같은 기종의 스마트폰이라도 왼쪽 3자리는 달라질 수 있는 것 같다. 왼쪽 3자리 숫자를 공유하는 사람 수가 정확히 얼마나 많은지에 대해서는 아직 잘 알려져 있지 않다.

이 문제를 좀 더 확실하게 해결하려면, 아예 본인 소유의 하드웨어 자체를 쓰지 말고 PC방, 모텔 등 공공장소에 있는 공용 PC를 쓰는 게 좋다. 만약 공용 PC를 테일즈로 부팅해서 사용한다면, 테일즈 시작할 때 디폴트로 켜져 있는 맥주소 변조기능은 수동으로 ‘끄고’ 사용하는 것을 추천한다. 로컬 네트워크 관리자 입장에서 봤을 때, 자기 네트워크에 원래 없던 새로운 맥주소가 갑자기 뜨면 수상해 보일 수 있기 때문이다.

상황에 따라서는 아예 익명으로 구입한 새 노트북을 공공장소 전용으로만 사용하는 방법도 고려해 볼 수 있다. 자기 신상과 연계되지 않게 잘 구획화된, 작전용으로만 사용되는 노트북을 burner laptop이라고 부르기도 한다. 공용 PC를 쓰는 것과 비교해서 장점은 카페에서도 쓸 수 있다는 점, CCTV 사각지대에서도 와이파이가 잡히면 쓸 수 있기 때문에 상황에 따라서는 추적을 아예 불가능하게 만들 수 있다는 점(특히 자작 안테나를 사용하는 경우), 설령 CCTV에 잡히더라도 PC방에서는 정확히 몇 번 자리에 앉은 사람이 그 작업을 했는지가 기록으로 남지만 노트북으로 와이파이를 쓰는 경우에는 해당 카페 내에 있던 수많은 노트북 이용자들 가운데 정확히 누가 그 작업을 했는지 알아내기 어려울 수 있다는 점이다. 단점은 그 노트북의 MAC주소가 유지되기 때문에 동일한 노트북을 여러 번 사용하는 경우 그 각 사용자가 동일인이라는 사실이 공격자에게 쉽게 노출될 수 있다는 점이다.

작전용 노트북은 당연히 판매점으로 은밀하게 이동해 현금으로 구입해야 하며, 이 때 현금 결제가 수상해 보일 수 있는 하이마트, 디지털프라자보다는 현금 결제를 해도 그리 이상해 보이지 않는 용산을 이용하는 것이 나을 수 있다. 대량의 현금을 한꺼번에 ATM에서 인출한 기록이 있으면 수상해 보일 수 있으므로, 향후 본인 1명이 용의자로 지목돼 집중 조사를 받는 등 공격자가 본인의 금융거래기록에 접근할 수 있을 것으로 보이는 상황에서는 장기간에 걸쳐 조금씩 인출하거나, 여럿이 식당 갔을 때 카드를 긁고 현금을 분배받는 식으로 천천히 돈을 모으는 것이 나을 수 있다. 작전용 노트북은 기본적으로 테일즈로 부팅해서 이용하는 것이 좋은데, 맥북 시리즈, 마이크로소프트 서피스 시리즈는 일반적으로 테일즈와의 호환성이 나쁜 것으로 알려져 있기 때문에 구입을 추천하지 않는다.

토르 브릿지의 사용

모든 토르 릴레이는 IP주소가 실시간으로 대중에게 공개되고, 토르 트래픽은 514바이트 셀 단위로 전송되는 등 트래픽 모양에 있어서도 고유한 특징이 있기 때문에, 중국 등 인터넷 검열국가는 토르 IP주소로의 접속을 차단하거나 토르 트래픽과 같은 모양을 가진 트래픽을 차단하는 방법으로 토르 접속을 차단할 수 있다. 이런 차단정책을 우회해 토르에 접속할 수 있게 해 주는 것이 브릿지다. 브릿지는 IP주소가 실시간으로 공개되지 않기 때문에 IP를 보고 차단하기가 어렵고, obfs4 등 pluggable transport를 이용하면 트래픽의 모양도 바뀌기 때문에 모양을 보고 차단하기도 어렵다.

토르 트래픽의 모양을 변형시켜 그것이 토르 트래픽이 아닌 다른 무언가로 보이게 만드는 기술들 가운데 토르 프로젝트에서 공식적으로 채택한 것들을 pluggable transport (PT)라고 부른다. PT에는 obfs4, meek, snowflake 등이 있다.

obfs4. 이 브릿지는 일반적인 토르 입구 릴레이를 완전히 대체한다. 원래는 릴레이1-릴레이2-릴레이3으로 연결된다고 하면, obfs4를 사용하는 경우 obfs4 브릿지-릴레이2-릴레이3으로 연결되는 것이다. obfs4를 사용하면 사용자와 브릿지는 서로 아무런 특징이 없는 랜덤한 트래픽을 주고받는 것처럼 보이게 되는데, 이 비정상적인 랜덤함 자체를 특징으로 잡아서 obfs4 트래픽을 판별해 내는 것은 가능하다(Wang et al., 2015). 중국에서는 이미 obfs4도 자동으로 감지해서 차단하고 있다.*

obfs4 브릿지는 배포방식에 따라 디폴트 브릿지, 퍼블릭 브릿지, 프라이빗 브릿지로 다시 나눌 수 있다. 디폴트 브릿지는 토르 브라우저 내에 자체적으로 탑재돼 있는 브릿지들을 말한다. 토르 브라우저의 Tor Network Settings에서 Select a built-in bridge를 선택했을 때 뜨는 게 바로 디폴트 브릿지다. 토르 브라우저는 오픈소스 소프트웨어이기 때문에 토르 브라우저에 자체적으로 탑재돼 있는 브릿지 목록도 오픈소스로 공개돼 있어, 실질적으로 차단 회피를 위한 브릿지로서의 역할을 하지는 못한다.

퍼블릭 브릿지는 대중에게 전부 공개돼 있지는 않고 BridgeDB를 통해 제한적으로 배포되는 브릿지를 말한다. 토르 브라우저의 Tor Network Settings에서 Request a bridge from torproject.org라는 옵션이 바로 BridgeDB에서 퍼블릭 브릿지를 받아 오는 옵션이다.

퍼블릭 브릿지의 난관 중 하나는 토르 사용자에게 브릿지 주소를 어떻게 전달하냐는 것이다. 토르를 차단하는 국가라면 당연히 bridges.torproject.org도 차단할 것이므로 그 사이트를 통해 브릿지를 전달하는 것은 불가능하다. 이 문제를 해결하기 위해 현재 토르 프로젝트는 2가지 방법을 사용하고 있다. ① 구글 지메일을 이용해 bridges@torproject.org로 브릿지 요청을 보내면 이메일로 브릿지 주소를 회신해 준다. 이 경우 구글은 지메일 계정 정보를 통해 누가 브릿지를 받아갔는지를 정확히 알게 되고 이메일 내용 분석을 통해 브릿지 주소도 알게 된다. ② Tor Network Settings에서 Request a bridge from torproject.org를 선택하면, 토르 브라우저는 도메인 프론팅이라는 일종의 우회 기법을 이용해 실제로는 bridges.torproject.org에 접속하고 있지만 네트워크 감시자가 볼 땐 마이크로소프트의 ajax.aspnetcdn.com에 접속하는 것으로 보이게 한다. 이 경우 마이크로소프트는 어떤 IP주소를 쓰는 사람이 브릿지를 받아갔는지를 알 수 있으나 암호화 때문에 정확한 브릿지 주소는 알 수 없으며, 사용자가 VPN을 쓴 경우 해당 사용자의 정확한 IP주소도 알 수 없다.

퍼블릭 브릿지가 브릿지로서의 역할을 하려면 토르를 차단하고자 하는 국가기관이 전체 퍼블릭 브릿지의 목록을 입수하기가 어려워야 한다. 현재 obfs4 퍼블릭 브릿지의 수는 1000개 정도인데, BridgeDB에서 얻을 수 있는 브릿지의 갯수는 한 번에 1~2개에 불과하고 더군다나 요청자의 IP 대역별로 쿼터제가 적용되기 때문에 국가기관이라 해도 전체 퍼블릭 브릿지의 리스트를 확보하기가 쉽지만은 않다. 다만 전체 리스트를 확보하기는 어렵다 해도 상당 부분을 확보하는 것은 충분히 가능하다. 가령 다수의 토르 2번째 릴레이를 운영하면서, 자기에게 들어오는 토르 트래픽 중 공개된 입구 릴레이가 아닌 다른 곳에서 들어오는 게 있는지 살펴보는 방법으로 브릿지를 알아낼 수도 있고, 대한민국 정부의 경우에는 은행, 관공서 사이트에 들어갈 때 보안프로그램 설치를 의무화하는 방법으로 전국민 컴퓨터에 높은 권한을 가진 정부 프로그램을 심어 놓는 데 성공했기 때문에 해당 국민들 중 누군가가 BridgeDB에서 브릿지를 얻으면 그 정보가 자동으로 국정원으로 전송되게 하는 방법으로 브릿지 목록을 확보할 수도 있을 것이다. 하지만 그렇다 해도, 브릿지를 쓰는 주된 목적은 토르 이용사실을 숨기기 위한 것이 아니라 토르 차단을 우회해 토르에 접속하기 위한 것이고, 국가가 상당수의 브릿지를 알아 내 차단한다 해도 사용자 입장에서는 아직 차단되지 않은 브릿지를 1개만 알아 내면 되는 것이므로 크게 문제가 되지는 않는다.

프라이빗 브릿지는 BridgeDB에 뜨지 않는 브릿지를 말한다. 개인이 직접 서버를 만들거나 VPS를 임차해서 프라이빗 브릿지로 구성하는 경우가 많다. 이름에서 풍기는 느낌과 달리, 프라이빗 브릿지는 퍼블릭 브릿지보다 익명성이 떨어질 수 있다. 김갑동이 123.45.67.89:52710이라는 프라이빗 브릿지를 구성해서 평소에 집에서 토르에 접속할 때 그걸 쓰고 있었는데, 어느 날 좀 더 강한 익명성이 요구되는 활동을 하기 위해 테일즈를 가지고 공공장소로 이동해서 똑같이 123.45.67.89:52710라는 프라이빗 브릿지에 접속했다고 하자. 그러면 감시자들은 그 때 그 공공장소에서 그 브릿지에 접속한 사람이 다름아닌 김갑동이라는 사실을 쉽게 알 수 있다. 혼자서만 쓰는 프라이빗 브릿지라는 특성상, 123.45.67.89:52710이라는 IP:port에 접속할 수 있는 사람은 김갑동 1명밖에 없기 때문이다. VPS 임차 과정에서 결제 기록이 남는 것도 고려해야 한다. 그리고 앞서 언급했듯이 중국처럼 발전된 통제기술을 가진 국가는 실시간으로 obfs4 트래픽을 감지, 차단하는 것도 가능하며, 그런 기술이 없는 국가라 할지라도 특정인 1명이 용의자로 지목돼 면밀히 분석되는 상황에서는 그 트래픽이 평범한 트래픽이 아닌 obfs4 트래픽이라는 사실이 드러날 수밖에 없다. 퍼블릭 obfs4 브릿지와 마찬가지로, 프라이빗 obfs4 브릿지도 토르 이용사실을 숨기는 데 적합한 도구가 아닐 수 있다.

meek. 도메인 프론팅 기법을 이용해, 마이크로소프트, 구글, 아마존 등 일반인들이 널리 쓰는 회사 서버를 거쳐 토르에 접속하는 방식이다. 예전에는 구글, 아마존을 사용하는 meek-google, meek-amazon도 있었으나 2018년경 구글, 아마존이 러시아 정부의 요구에 의해 도메인 프론팅을 차단하면서* 현재는 마이크로소프트 서버를 사용하는 meek-azure만 남아 있다. obfs4와 달리 meek은 별도로 BridgeDB에서 브릿지를 받아 오는 과정이 필요하지 않고 그냥 토르 브라우저 상에서 built-in bridge를 선택해서 접속하면 된다. 속도는 obfs4보다 훨씬 느리다.

meek 서버는 토르 입구 릴레이를 대체하지는 않기 때문에 이걸로 연결하면 meek서버-릴레이1-릴레이2-릴레이3-인터넷의 구조가 된다. 외부에서 보면 토르에 접속하는 게 아니라 마이크로소프트 서버와 HTTPS로 통신하는 것처럼 보이게 된다. 머신러닝을 이용하면 meek도 2%의 false negative, 0.02%의 false positive의 정확도로 감지할 수 있다고 하기는 하나(Wang et al., 2015), 2019년 현재 중국에서도 이걸 사용하면 토르에 접속할 수 있는 것으로 봐서* 현실적으로 감지하기가 쉽지만은 않은 모양이다.

meek을 쓴다고 토르 이용사실이 누구에게나 완벽하게 숨겨지는 것은 아니다. 마이크로소프트 서버를 거친다는 특성상 마이크로소프트는 우리가 토르를 이용한다는 사실을 알 수 있다. 또한 대중적으로 널리 쓰이는 클라우드인 Azure 서버를 이용한다는 특성상 meek-azure에 접속한 상태로 Azure에 호스팅된 사이트에 접속하면 마이크로소프트는 토르로 들어가는 트래픽과 나오는 트래픽을 모두 관찰할 수 있어 마음만 먹는다면 그 둘을 연계시킬 수 있다. 다만 현실적으로 마이크로소프트가 굳이 그걸 연계시키고 있지는 않을 것으로 생각된다.

meek-azure은 마이크로소프트 서버를 이용하기 때문에 우리가 이걸 쓰는 만큼에 비례해서 토르 프로젝트 측에서 마이크로소프트에 서버 사용료를 낸다.

snowflake. WebRTC를 이용하는 PT다. 자원봉사자가 snowflake.torproject.org로 접속해 Do you want your browser to act as a proxy?에서 Yes를 선택하면 그 페이지에 접속해 있는 동안 본인 컴퓨터가 snowflake proxy가 되어, snowflake 브릿지 사용자들이 본인 컴퓨터를 거쳐 토르 트래픽을 주고받을 수 있게 된다. 2019년 현재 토르 브라우저 알파 버전에서만 사용 가능하며, 정식 출시가 언제 이루어질지는 알 수 없다.

obfs4 브릿지를 쓰려면 중앙의 BridgeDB로부터 브릿지 정보를 받아 와야 하는 것과 마찬가지로, snowflake도 쓰려면 중앙의 broker (snowflake rendezvous)로부터 snowflake proxy 정보를 받아 와야 한다. 현재 이 broker는 마이크로소프트 Azure 클라우드에 호스팅돼 있기 때문에 snowflake로 토르에 접속하면 마이크로소프트는 그 사람이 snowflake를 통해 토르에 접속했다는 사실을 알게 되며, 이 점에서 snowflake는 meek과 매우 유사하다. 다만 meek과의 차이점은, meek은 모든 토르 트래픽이 마이크로소프트 서버를 거쳐서 전달되지만, snowflake는 처음에 snowflake 프록시 정보를 받아 오는 것 외에 실제 데이터 전송은 마이크로소프트를 거치지 않고 사용자 컴퓨터와 snowflake 프록시 간에 직접 이루어진다는 점이다.

브릿지를 쓰면 토르 이용사실이 숨겨지는지 여부. 브릿지는 기본적으로 정부의 토르 차단을 우회하기 위해 만들어진 것이고, 정부의 토르 차단을 우회한다는 것은 정부에게 토르 이용사실이 즉각적으로 노출되지는 않는다는 것을 의미하므로, 브릿지를 쓰면 어느 정도는 토르 이용사실이 숨겨지는 효과가 있다. 다만 그 숨겨지는 정도가 완벽하지는 않기 때문에, 인터넷에 불법글을 올리면서 메타데이터 분석을 회피하는 경우와 같이 본인이 용의자로 특정되지 않은 상황에서 수사망을 빠져나가는 것을 목표로 하는 경우에는 효과가 좋을 수 있지만, 본인 1명이 용의자로 특정돼 그간의 트래픽 내역에 대해 집중적인 검토를 받는 상황에서는 효과가 부족할 수 있다.

다만 이게 효과가 부족하다는 것은 경찰 또는 국정원이 특정 용의자 1명에 대한 그간의 NetFlow 로그 등 트래픽 내역을 입수하는 게 가능하다는 전제 하에 그렇다는 것인데, 현실적으로는 그걸 입수하는 게 불가능할 수도 있다. 국정원 패킷 감청 소송에 대한 기사들을 보면 대한민국 국정원은 법원으로부터 감청영장을 받아 그 이후로 실시간으로 모든 패킷을 감청할 능력은 갖추고 있지만, 그 사람이 용의자로 떠오르기 이전에 인터넷으로 주고받은 트래픽 내역을 입수할 능력은 갖지 못한 것처럼 보이기도 한다. 확실하지는 않다.

만약 이론적으로 경찰 또는 국정원이 특정인에 대한 과거 수 개월 간의 패킷 전송 내역을 전부 입수하는 것이 가능하다고 전제한다면, 로그 분석 결과 용의자가 유럽, 남미, 중앙아시아 지역에 있는 정체불명의 외국 서버 1개하고만 지나치게 랜덤한 트래픽만을 장시간 주고받고 있었던 것으로 드러나는 경우(obfs4), 또는 마이크로소프트 Azure 서버하고만 지나치게 랜덤한 트래픽을 장시간 주고받고 있었던 것으로 드러나는 경우(meek), 또는 정체불명의 외국 주거지역residential IP들과 랜덤한 WebRTC 트래픽을 장시간 주고받았는데 용의자가 그 시간 동안 외국인과 화상채팅을 했다든가 하는 사정은 엿보이지 않는 경우(snowflake), 토르를 사용했을 거라는 의심을 피해 가지 못할 것이다.

토르와 VPN의 조합

브릿지와 비슷하게, VPN을 쓰는 것도 국내 네트워크 감시자로부터 토르 이용사실을 숨기는 데 약간의 도움이 될 수 있다. 윈도우에서 VPN을 켠 상태로 토르 브라우저를 이용하는 경우 트래픽은 사용자-VPN-릴레이1-릴레이2-릴레이3-인터넷의 순서로 전달된다. 이전 포스팅에서 설명한 바와 같이 일반적인 웹서핑을 할 땐 브라우저 핑거프린팅 및 구글, NHN 등 서드파티 트래커 때문에 VPN으로 IP주소를 감추더라도 신상이 노출될 가능성이 높지만, 토르 릴레이에 접속할 땐 거기에 구글 등 글로벌한 서드파티 트래커가 달려 있지 않을 가능성이 높고 또한 브라우저 핑거프린트도 없기 때문에, 사용자 정보 수집·판매 비즈니스를 하는 VPN이 아닌 괜찮은 VPN을 사용하면 어느 정도 익명성이 확보될 가능성이 있다. 그리고 obfs4 브릿지를 사용할 때와 달리, VPN은 꽤 많은 사람들이 음란물 시청 등의 목적으로 이용하기 때문에 본인 1명이 용의자로 지목돼 집중 조사를 받을 때 둘러댈 핑계거리가 생긴다는 장점도 있다.

다만 이 경우에도 VPN 서버가 위치한 데이터센터, ISP 등은 우리가 토르를 쓴다는 사실을 쉽게 알 수 있는 포지션에 있고, 또 VPN을 이용하더라도 514바이트 셀 등 토르 트래픽의 모양 자체는 숨겨지지 않기 때문에, 좀 더 높은 수준으로 토르 이용사실을 감추기 위해서는 VPN과 obfs4 브릿지를 같이 쓰는 게 나을 수 있다. 윈도우에서 VPN을 켠 상태로 토르 브라우저에서 obfs4 설정을 하고 접속하면 VPN-obfs4브릿지-릴레이2-릴레이3의 구조로 통신이 이루어진다. 다만 이 경우에도 VPN이 obfs4 트래픽의 모양 자체를 바꿔 주지는 않으므로, obfs4의 비정상적인 랜덤함에 주목해 obfs4를 감지, 차단할 수 있는 시스템은 동일한 방법으로 VPN+obfs4도 감지, 차단할 수 있다.

익명 이메일, 익명 SMS 서비스

이메일은 프로토콜 자체가 암호화를 지원하지 않기 때문에 근본적으로 보안성이 떨어지는 통신수단이다. 서로 다른 메일주소 간 메일을 보내는 경우, 예를 들면 ProtonMail 사용자가 구글 지메일 사용자에게 메일을 보내는 경우에는 그 메일 내용이 암호화되지 않은 상태로 인터넷을 거쳐 전송된다. 이 때문에 통신사, 국정원을 비롯한 중간자들은 메일 내용을 자유롭게 엿보거나 분석할 수 있다. 동일한 이메일 회사 사이에서 메일이 오가는 경우, 예를 들면 구글 지메일 사용자가 다른 지메일 사용자에게 메일을 보내는 경우에는 메일 내용이 구글 내에서만 머물며 외부로는 유출되지 않고 전달될 가능성이 있으나 확실하지는 않다. 그래도 민감한 내용을 꼭 이메일로 보내야만 하는 특별한 사정이 있는 경우에는 되도록이면 수신자와 같은 메일주소를 사용하는 것이 좋다. ProtonMail은 같은 프로톤메일 사용자끼리 메일을 보내는 경우 이메일의 제목, 수발신자 이름 등을 제외한 이메일의 ‘내용’에 한해서는 종단 간 암호화, 즉 프로톤메일 회사측도 내용을 열어볼 수 없는 기능이 지원된다고 한다.*

ProtonMail은 가장 무난하게 쓰기 좋은 프라이버시 이메일이다. 여러 이메일들 중 보안성이 가장 뛰어난지와 같은 것은 알 수 없으나 일단 현재 가장 유명하고 가장 많은 사람들이 쓴다.

ProtonMail을 대놓고 써도 되는지는 본인이 처한 상황에 따라 달라질 수 있다. 일반적인 경우에는 토르를 대놓고 써도 되는 것과 마찬가지로 ProtonMail도 대놓고 써도 되지만, 본인이 용의자로 특정돼 면밀하게 조사받을 수 있고 보안, 프라이버시에 대해 아무것도 모르는 사람인 척 연기해야 하는 특별한 사정이 있는 경우에는 숨기는 게 나을 수도 있다. 검찰은 2014. 8. 29. 세월호 사건을 언급하며 청와대를 비판한 혐의로 전교조 소속 교사 3명에 대해 구속영장을 청구하면서 “수사기관의 추적을 피하고자 미국에 서버가 있어 압수수색이 불가능한 지메일을 사용하는 등 참여자의 신원확인에 지장을 야기했다”는 이유를 제시했는데, 이 때 피의자들은 교사선언을 앞두고 갑자기 지메일을 쓰기 시작한 게 아니라 오래 전부터 쓰고 있었다는 식으로 방어했고, 결국 법원에서 영장이 기각당하긴 했다.*

ProtonMail은 집, PC방에서 접속시에는 구글 캡챠만 풀어도 회원가입이 가능하지만, VPN으로 접속시에는 서버마다 다른데 간혹 구글 캡챠로는 안 되고 다른 이메일 인증을 해야 하는 경우가 있고, 토르로 접속시에는 SMS 인증 또는 신용카드·페이팔 인증을 해야만 가입이 가능하다. (참고로 이 때 인증에 사용된 이메일 주소 또는 전화번호는 ProtonMail 측에 해쉬값의 형태로 기록으로 남으며 향후 동일한 이메일, 전화번호로 가입 시도시 막힌다.) 아래 소개할 익명 SMS 서비스를 이용하면 토르로 ProtonMail에 익명으로 가입하는 것이 가능하나, 대부분의 익명 SMS 서비스는 암호화폐로 결제를 요구하기 때문에 지금 갖고 있는 암호화폐가 없다면 좀 귀찮다.

이 문제에 대한 현실적인 해결방안을 제시해 본다.

1. 멀리 떨어진 PC방으로 은밀하게 이동해서 거기 인터넷으로 회원가입 하기: ProtonMail 회사 및 그 회사 서버의 ISP에 대한 익명성이 유지되나, 국내 통신사에는 특정 PC방의 특정 자리(PC방은 각 자리마다 고유한 고정IP를 사용한다)에서 누군가가 ProtonMail 사이트에 접속했다는 기록이 남을 수 있다. 만약 해당 PC에 감시 프로그램이 설치돼 있었다면 그 자리에서 누군가가 특정한 아이디를 가입했다는 사실까지 기록으로 남을 수 있으나 이게 현실적인 위협인지는 알 수 없다.

2. VPN으로 가입하기: 앞서 VPN을 이용하면 디바이스 핑거프린팅 공격을 가하는 트래커를 방어할 수 없기 때문에 익명성을 얻을 수 없다고 말했으나, ProtonMail처럼 홈페이지에 트래커가 달려 있는 것도 아니고 그 회사 자체도 외국에 있는 프라이버시 중심의 회사로서 한국 거주 일반인 입장에서 딱히 공격자로 상정할 필요가 없는 회사인 때에는, VPN을 이용해 국내 네트워크 감시자로부터 ProtonMail 사이트 접속사실만 숨겨도 충분할 수 있다. VPN으로 접속해서 가입을 시도하면 서버마다 다르지만 이메일 인증이 가능한 경우가 많은데, ProtonMail보다 가입절차가 느슨한 다른 프라이버시 이메일 주소를 만들어서 써먹으면 안전하게 ProtonMail 주소를 만들 수 있다. 다만 컴퓨터에 설치돼 있는 각종 프로그램 및 OS 등은 관련 사실을 알 수도 있다.

3. 그냥 집 인터넷으로 가입하기: 구글 캡챠로 인해 본인이 프로톤메일에 가입한다는 사실이 구글에 노출된다. 비추천.

마이크로소프트가 운영하는 outlook.com은 토르로 가입시 SMS 인증을 요구하나, VPN으로 가입시에는 아무 인증도 요구하지 않는다. 그러나 앞서 설명한 바와 같이 VPN으로 익명성을 얻기 위해서는 신경써야 할 것들이 많다는 점에 유의하기 바란다.

그 외에도 별도의 인증 없이 토르 가입을 받아 주는 이메일들이 많이 있다. 이메일 업체들은 자꾸 생겨났다 없어졌다를 반복하기 때문에 이 블로그에 완벽한 리스트를 제시하는 것은 불가능하고, privacytools.io, 나무위키 이메일 항목, 다크넷 커뮤니티인 Dread 같은 곳에서 정보를 입수할 수 있을 것이다.

참고용으로 인터넷상에 돌아다니는 프라이버시 이메일 서비스 목록 중 현재 사이트 접속이 되는 것들을 나열한다. 이 목록은 보안성, 서비스 지속성 등 측면에서 믿을 만한 사이트인지 여부, 토르로 가입이 가능한지 여부 등을 내가 확인한 것이 아니며 그냥 마구잡이로 긁어 온 목록임에 유의 바란다. TorBox, elude.in, darwin1210.me, Mail2Tor, riseup.net, Cock.li, SecMail, MailPile, Bitmai.la, OnionMail, SCRYPTMail, Systemli.org, O3 Mail, MailCity, Confidant Mail, Onion Mail, BlackHost.xyz, posteo.de

SMS 인증 등을 위한 전화번호 서비스는 SMSPrivacy.org가 괜찮다. 그 외에 직접 써 보지는 않았지만 SmsPVA, Truverifi, SpoofBox라는 서비스도 있다고 한다.

디코이 전략 관련

앞에서 잠깐 언급한 디코이 전략 사용시 유의할 점들을 적어 본다. 우선, 만약 공격자가 총 전송 용량 등 트래픽 패턴과 관련된 정보를 입수할 수 있는 상황이라면, 진짜와 디코이는 트래픽 패턴이 서로 맞아야 한다. 가령 토르로 진짜 숨기고 싶은 작업을 하면서 디코이로 음란물을 준비해 놓는다고 하자. 여기서 ‘준비해 놓는다’고 함은 음란물을 다운받아 놓는 것일 수도 있고, 평소 스트리밍으로 보는 사람인 척하면서 스트리밍 사이트나 최근 인상 깊게 본 작품 등을 잘 기억해 놓는 것일 수도 있다. 이 때, 진짜 숨기고 싶은 작업은 텍스트 위주의 사이트를 탐방하는 것인데 그에 대응하는 디코이는 고화질 야동이라면 전송 용량을 알고 있는 공격자로부터 의심을 살 수 있다. 야동 대신 야설 사이트를 디코이로 준비한다면 좀 더 그럴듯해질 수 있을 것이다.

디코이를 파일을 다운받는 식으로 준비한 경우, 그 파일에는 마지막으로 수정된 날짜, 마지막으로 열어 본 날짜가 뜬다는 점에 유의해야 한다. 본인이 바로 어제까지 토르를 쓴 사실을 공격자가 알고 있는데 어제 다운받았다고 주장되는 동영상은 한 달 전에 열어본 것으로 돼 있으면 조금 곤란할 수 있다.

테일즈를 쓰는 경우에도 진짜 테일즈와 디코이 테일즈 2개를 각각 준비해 두는 식으로 디코이 전략을 쓸 수 있다. 이 경우, 만약 공격자가 집을 물리적으로 수색할 위험이 있다면 진짜 테일즈를 잘 숨겨 놓는 것도 관건이 된다. USB가 아닌 microSD카드에 테일즈를 설치해 놓으면 공격자가 쉽게 찾을 수 없는 기상천외한 곳에 숨기는 것이 가능해진다. 당연한 말이지만 microSD 카드 자체를 구입할 때도 은밀하게 이동해서 현금으로 구입해야 한다. microSD카드는 다이소에서 2천원에 파는 어댑터를 이용해 컴퓨터의 USB 슬롯에 꽂을 수 있다.

테일즈로 디코이 전략을 구사하면서 브릿지도 사용하는 경우에는 진짜와 디코이 모두 같은 브릿지를 사용하게 설정해야 한다. 또한 진짜 테일즈로 브릿지에 접속하는 경우, 그와 같은 시각에 디코이 테일즈도 부팅해서 브릿지 정보가 저장된 텍스트 파일을 열었다가 끔으로써 ‘마지막으로 열어본 시각’ 정보를 매칭시켜야 할 것이다. 이게 귀찮다면 아예 브릿지를 사용하지 않는 것도 한 가지 방법이다.

테일즈 사용 관련

부팅방법. 윈도우에서는 UEFI에서 Secure Boot를 해제해 줘야 부팅이 가능하다. 조만간 테일즈도 마이크로소프트 Secure Boot를 지원한다는 말이 있으나 아직은 아니다. T2가 장착된 맥에서는 Startup Security Utility에서 리눅스 부팅을 위한 Secure Boot 설정을 해 줘야 부팅이 가능하다. 한편 맥에서는 옵션 키를 눌렀을 때 뜨는 부팅 선택 화면에서 테일즈 선택시 알 수 없는 이유로 프리징이 걸리는 경우가 많은데, 이 때 전원 버튼을 길게 눌러 강제종료하고 재시도하기를 될 때까지 반복하다 보면 언젠가는 부팅이 된다.

한글 입력방법. 우상단에 ‘en’이라고 적힌 것을 클릭해서 Korean (Hangul)로 바꿔 준다. 만약 한영키가 먹지 않는다면, 같은 메뉴에서 Setup으로 들어가 한영키 설정을 해 준다.

브릿지 사용법. 2019. 7. 현재 테일즈에서는 obfs4 브릿지만 지원되고 meek은 지원되지 않는다. 2019. 10.경 출시될 테일즈 버전 4.0부터는 meek도 지원할 예정이라고 한다.*

테일즈에서 obfs4 브릿지에 접속을 시도하면 접속이 안 되는 경우가 많다. 이는 브릿지 자체에 문제가 있어서일 수도 있지만 대부분의 경우에는 컴퓨터 시간이 안 맞아서 그렇다. 윈도우는 UTC와의 편차를 고려하지 않고 현지 시간 자체를 바이오스 시간으로 등록하는데, 테일즈는 바이오스 시간을 UTC 시간으로 그대로 읽어들이기 때문에 한국의 경우 테일즈로 부팅하면 시스템 시간과 실제 시간 사이에 9시간의 격차가 있게 된다. 정확한 이유는 알 수 없으나 시스템 시간에 9시간의 격차가 있으면 일반 토르에는 문제없이 접속되지만 obfs4 브릿지에는 접속이 되지 않는다. 이 문제는 시간을 표시된 시간의 9시간 이전으로, 즉 원래가 11:00이었다면 2:00으로 맞춰 주면 해결된다.

시간은 UEFI로 들어가서 시간 설정을 하고 테일즈로 부팅하는 식으로 맞출 수도 있고, 테일즈로 부팅한 다음 테일즈상에서 시간 설정을 하는 식으로 맞출 수도 있다. 전자의 방법은 누구나 직관적으로 알 수 있을 테니 생략하고 여기서는 후자의 방법을 소개해 본다. Welcome to Tails! 창에서 Additional Settings로 들어가 Configure a Tor bridge or local proxy 및 Administration Password를 활성화하고 테일즈로 들어간다. Applications–System Tools–Root Terminal을 열고, date를 입력해 현재 시스템 시간이 언제로 돼 있는지 본 다음, 현재 한국시간으로부터 9시간을 뺀 시간으로 시스템 시간을 다시 설정한다. 예를 들어 현재 한국시간이 2019. 7. 11. 03:12:50이라면 date --set "Sun Jul 10 18:12:50 UTC 2019"라고 입력한다. 초 단위까지 정확히 맞을 필요는 없고 1~2분 정도는 틀려도 상관없다. 그리고 브릿지에 접속한다.

이 때 주의사항은, 테일즈 바탕화면으로 들어오자마자 바로 터미널을 열고 시간 변경을 하지 말고 반드시 토르에 직접 연결할지 브릿지를 사용할지 묻는 Connect, Configure 창이 뜰 때까지 기다렸다가 터미널을 열어야 한다는 것이다. 왜냐하면 Connect, Configure 창이 뜨면 그 창이 자동으로 활성화되는데, 그 때 엔터나 스페이스바를 누르면 디폴트로 선택돼 있는 Connect 버튼이 눌려 토르로 직접 접속이 이루어져 버리기 때문이다. 터미널 명령어를 열심히 입력하던 중 갑자기 그 창이 뜨면 자기도 모르게 엔터나 스페이스바를 누를 수밖에 없다.

공유기의 문제. 테일즈로 부팅된 컴퓨터는 원래 컴퓨터와 앞 3자리는 같고 뒤 3자리만 다른 맥주소와 빈칸(*)의 호스트네임을 가진다. 공유기 관리자는 맥주소와 호스트네임을 볼 수 있기 때문에, 통신사에서 무료 제공받은 공유기를 사용하거나 공유기 없이 통신사 모뎀에 컴퓨터를 직접 연결하면 본인이 테일즈를 정확히 언제 썼는지에 대한 정보가 통신사에 노출될 위험이 있다. 참고로 KT의 인터넷 서비스 개인정보처리방침에는 “서비스 이용시간/이용기록, 이용정지기록, 이용정지/해지 사유, 결제기록, 착/발신 전화번호, 개통정보, 위치정보(기지국 위치, GPS 정보), 접속 IP/MAC, 접속로그, 이용컨텐츠, 쿠키 등 서비스 이용정보, 기타 요금 과금에 필요한 데이터, 위의 개인정보를 조합하여 생성되는 정보”를 “해지 후 6개월 까지” 보유한다는 내용이 있다.*

이를 방지하기 위해서는 아이피타임 등 본인이 별도로 구입한 공유기를 이용해 통신사 모뎀, 통신사 공유기 등 통신사 장비와 개인 컴퓨터 사이를 가로막아야 한다. 예를 들어 원룸 벽에 나 있는 인터넷 구멍에 랜선을 꽂으면 인터넷이 되는 구조인 경우, 컴퓨터를 벽에 직접 꽂지 말고 일단 개인 소유 공유기를 벽에 연결한 뒤 컴퓨터는 그 공유기에 꽂아서 사용해야 한다.

다만 이렇게 하더라도 호스트네임과 MAC주소 이외의 방법으로 테일즈 이용사실이 노출되는 것은 여전히 가능하다. 윈도우에서 토르 브라우저를 이용할 때와 달리 테일즈를 쓸 땐 모든 트래픽이 100% 다 토르로만 향하고, 브릿지를 사용하지 않는 경우 윈도우에서와 다른 guard node로 접속하게 되므로 공격자는 여기에 주목해서 테일즈 이용시간을 알아낼 수 있다. 만약 국내 ISP만을 공격자로 상정한다면 VPN 클라이언트 공유기를 사용함으로써 이 문제를 해결할 수 있으나, 이 경우 VPN 서버의 ISP가 똑같은 정보를 알아낼 수 있게 된다.

테일즈에서 VPN 사용법. 테일즈 자체에서 VPN→Tor로 연결되도록 설정하는 것은 아주 어렵다. 대신 공유기 설정을 통해 그 공유기를 거치는 모든 트래픽이 자동으로 VPN 서버로 향하도록 한 다음(‘VPN 클라이언트 공유기’라고 하자), 테일즈를 이용할 컴퓨터를 그 공유기에 연결하는 방법으로 VPN→Tor를 만드는 것은 쉽게 가능하다.

참고로 VPN 클라이언트 공유기와 VPN 서버 공유기는 다르다. VPN 클라이언트 공유기는 해당 공유기에서 나오는 트래픽이 외부 VPN 서버로 향하는 공유기를 말하고, VPN 서버 공유기는 밖에 나가 있을 때 VPN으로 집 공유기에 접속함으로써 집 IP로 인터넷을 하고 집 공유기에 연결된 NAS에도 접속할 수 있는 그런 공유기를 말한다. 아이피타임 등 대부분의 공유기에 있는 VPN 기능은 VPN 서버 기능이며, VPN 클라이언트 기능을 기본으로 지원하는 소비자용 공유기는 많지 않다. VPN 클라이언트 기능을 쓰기 위해서는 ASUS 공유기를 구입하거나, 아니면 TP-LINK 같은 공유기를 구입해서 OpenWrt 펌웨어를 올려야 한다. ASUS는 현재 OpenVPN 프로토콜만 지원하고, OpenWrt는 OpenVPN, WireGuard 모두 지원한다.

이 방법의 단점은 VPN 클라이언트 공유기를 만들었다는 사실 자체가 네트워크 감시자에게 노출될 수 있다는 점이다. OpenWrt를 설치하면 기본 호스트네임이 OpenWrt이기 때문에 ISP에게 OpenWrt 설치사실이 노출된다. OpenWrt에서 VPN을 쓰기 위해 OpenVPN 패키지를 설치하면 downloads.openwrt.org/releases/18.06.2/packages/aarch64_cortex-a53/base/openvpn-openssl_2.4.5-4.2_aarch64_cortex-a53.ipk에서 패키지가 다운로드되는데, HTTPS가 아닌 HTTP 연결이어서 full URL이 정부의 warning.go.kr 감시체계에 노출된다. 또한 패킷 감청을 하는 네트워크 감시자는 TCP 메타데이터를 통해 특정 패킷이 어떤 OS상에서 나온 건지 알 수 있는데, OpenWrt, ASUSWRT는 리눅스이므로 VPN 클라이언트 공유기를 쓰면 네트워크 감시자는 어떤 리눅스 장비가 VPN에 접속해 있다는 사실을 알 수 있게 된다. 이 때문에, 예를 들어 본인이 1명의 용의자로 특정돼 조사받는 상황에서 패킷 감청 결과 분명 리눅스로 VPN에 접속한 기록이 있는데 용의자의 집에서 리눅스 장비가 발견되지 않는다면 뭔가 숨겨진 장비(=OpenWrt 공유기)가 있는 것으로 의심될 수 있다.

VPN 클라이언트 공유기를 쓰는 경우에는 그 사실을 굳이 꽁꽁 숨기려 하기보다는, 그걸 써야 하는 정당한 이유를 미리 만들어 놓고 당당하게 쓰는 것이 나을 수 있다. 예를 들면 플레이스테이션, 엑스박스 등 게임기나 애플TV, 샤오미 미박스 등 TV 셋탑박스는 그 자체에 VPN을 설치할 수 있는 방법이 없으므로 그걸로 해외서버에 접속해서 게임을 하거나 해외 컨텐츠를 즐기려면 VPN 클라이언트 공유기를 쓸 수밖에 없다.

2 thoughts on “토르 브라우저 주의사항, 꿀팁, FAQ 정리

  1. 이 글을 보고 토르를 사용하기 시작했는데, Internet is consored here라는 옵션은 어떤 역할을 하나요?

    Like

    1. 거기 체크하면 브릿지(bridge)를 설정할 수 있게 됩니다. obfs4, meek 등… 중국처럼 토르 접속을 차단하는 국가에서 차단을 우회해서 토르에 접속할 수 있게 해 주는 기능이라고 보시면 됩니다.

      Like

Comments are closed.