우리가 매일 쓰고 있는 인터넷 통신은 TCP/IP라는 프로토콜을 주로 이용합니다. 이 TCP/IP와 함께 UDP를 많이 사용하는데 높은 신뢰성을 요구하는 이메일이나 웹사이트에 글을 남기거나 할 때는 주로 TCP/IP를 사용합니다. 반면, 스트리밍 서비스 같이 신뢰도 보다는 고용량 파일을 보낼때 많이 사용합니다.
TCP/IP는 신뢰도가 중요하기 때문에 개인 식별 번호라고 할 수 있는 IP가 부여가 됩니다. 뉴스에서 해커나 악플러의 IP를 추적한다는 소리가 바로 개인 식별 번호인 IP를 추적해서 어느 PC에서 접속했는지 알 수 있습니다. 우리가 보내는 이메일이나 댓글 또는 여러가지 글을 남기면 거기엔 우리가 원하지 않아도 자동으로 내 IP가 찍힙니다.
이 IP는 순 기능도 하지만 역기능도 합니다. 예를 들어 정권 비판의 글을 쓰거나 익명으로 공익을 목적으로 비리를 제보하려고 할때 IP가 찍히는 것을 알면 비판의 댓글이나 익명의 제보를 하지 못하죠.
이런 불만을 해결하는 방법은 간단합니다. 익명으로 통신을 할 수 있게 하는 것이죠.
그 익명 통신의 선두주자가 바로 토르(Tor)입니다. 국내에서는 이 토르 익명 통신에 대한 정보가 거의 없네요. 그래서 토르 익명 통신 글을 소개합니다.
http://jordan-wright.com/blog/2015/02/28/how-tor-works-part-one/ 글을 바탕으로 제가 정보를 첨가해서 소개하겠습니다
양파 라우팅이라고 하는 익명 통신 토르(Tor)의 역사
Tor(토르) 익명 통신이 제안된 것은 1995년 이었습니다. 미해군연구소의 출자로 개발이 시작된 프로젝트입니다. 1997년에는 방위고등연구계획국인 DARPA도 이 익명 통신을 지원하게 됩니다. 이렇게 Tor(토르)는 미 정부 주도로 태어납니다. 지금은 reddit같은 소셜허브 사이트 등의 많은 민간단체도 후원을 하고 있습니다.
Tor(토르)가 처음 오픈 소스 소프트웨어로 출시 된 것은 2003년 10월입니다. 양파 라우팅을 이용한 소프트웨어입니다. 여기서 궁금한 게 양파 라우팅이 뭐냐는 것이죠.
릴레이 컴퓨터를 통한 익명성 강화
양파 라우팅의 핵심은 인터넷에서 주고 받는 데이터를 보호하기 위해서 송신측과 수신 측의 익명성을 보장하기 위해서 데이터를 암호화된 레이어에 숨기는 기능이 있습니다. 예를 들어 내가 google.com에 접속을 시도하면 바로 접속하지 않고 다른 컴퓨터에 접속(릴레이 에이전트)를 한 후에 다시 또 다른 컴퓨터에 접속을 하는 등 중간에 다른 컴퓨터들을 통해서 google.com에 접속하게 됩니다. 이렇게 중간에 여러 다른 컴퓨터를 이용하면 통신 속도는 좀 느릴 수 있지만 대신 그 중간에 거친 컴퓨터가 내가 접속한 기록 즉 릴레이 된 기록인 릴레이 로그를 남기지 않고 다른 릴레이 컴퓨터로 이동하는 출구 이외에는 모두 암호화 되기 때문에 출처가 불분명하게 익명성이 보장됩니다.
현재 Tor(토르) 네트워크에 존재하는 릴레이 컴퓨터는 무려 6,000개나 됩니다. 이렇게 이해하면 좀 쉽겠네요. 프럭시 서버라고 있습니다. 대리 서버라고 하는 이 프럭시 서버는 인터넷 IP를 숨길 때 많이 사용합니다. 웹 브라우저에서 프럭시 서버 IP주소와 포트를 적고 웹 서핑을 하다가 댓글을 달면 내 PC IP가 아닌 프락시 서버의 IP가 찍힙니다. 보통 IP를 숨기고 싶을 때나 중국과 같이 인터넷 사이트를 막는 곳에서는 해외 프럭시 서버를 이용해서 구글 등을 이용합니다.
Tor(토르)의 중계 역할을 하는 릴레이 컴퓨터가 프락시 서버라고 생각하면 되겠네요. 다른 점은 프락시 서버와 달리 모든 통신을 암호화 해서 릴레이 컴퓨터를 조사해도 IP기록이 없습니다.
그럼 익명 통신인 Tor(토르) 통신의 핵심이 되는 릴레이 컴퓨터는 누가 운영하는 것일까요? 이 릴레이 컴퓨터는 어느 정도 내 컴퓨터의 대역폭을 희생해도 좋다고 생각하는 자원봉사자들이 운영하고 있습니다. 이 릴레이 컴퓨터가 많아지면 많아질수록 Tor(토르) 통신의 속도는 빨라집니다. 또한 여러 릴레이 컴퓨터를 거치기 때문에 익명성은 더 강화됩니다.
이 릴레이 컴퓨터는 대단한 소프트웨어나 하드웨어를 달아야 되는 것은 아닙니다.
Tor(토르) 소프트웨어만 설치하면 알아서 릴레이 컴퓨터가 됩니다.
릴레이 컴퓨터의 종류
Tor(토르) 통신을 이용하면 기본적으로 3개의 릴레이 컴퓨터를 거치게 됩니다. 첫번째는 가드 릴레이(Guard Relay)를 거치고 중간 릴레이(Middle Relay)를 거치고 마지막으로 출구 릴레이(Exit Relay)를 거칩니다. 그 다음에 최종 목적지인 웹 사이트 등에 접속하게 됩니다. 일반적으로 가드 릴레이나 중간 릴레이는 디지털 오션이나 아마존 EC2와 같은 VPS(가상전용서버)나 공유 서버로 구축되어 있습니다. 이 서버들은 모둔 서버 운영자가 악성 암호화 통신이 없는지 감시하기 때문에 안전합니다.
다만, 출구 릴레이는 신뢰도가 떨어질 수 있습니다. 출구 릴레이는 그 다음 연결이 최종 목적지인 인터넷 웹 사이트이기 때문에 이 부분은 암호화를 하지 않습니다. 따라서 누군가가 출구 릴레이와 웹 사이트 사이에서 스니퍼 같은 해킹툴로 데이터 패킷을 감청할 수 있습니다. 실제로 드물게 공격의 대상이 되기도 하죠. 따라서 출구 릴레이를 운영하는 분들이 운영하기 힘들어 합니다.
왜 양파 라우팅인가?
토르(Tor) 통신을 양파 라우팅을 기반으로 하는 통신이라고 합니다. 그래서 Tor 마크에 양파가 그려져 있습니다.
왜 양파일까요? 아는 토르(Tor)의 통신 특징 때문입니다. 토르(Tor)는 각 릴레이 컴퓨터 사이를 지나 다닐때 데이터들이 모두 암호화 되어 있습니다.
먼저 인터넷 사용자가 구글에 접속하려고 하면 그 정보는 암호화 되어서 가드 릴레이에 도착합니다. 이 암호화 된 접속 정보는 출구 릴레이에서 해독이 됩니다. 암호화는 한 번 암호화 되는 것이 아닌 암호화 된 것을 다시 암호화 합니다.
즉 가드 릴레이에서 1차 암호화를 하고 중간 릴레이 컴퓨터에서 2차 암호를 합니다. 이렇게 최종 3차 암호화를 하기 때문에 해독도 더 어렵습니다.
이는 마치 양파를 까도 까도 똑같은 모습이 나오는 모습과 비슷해도 양파 라우팅이라고 합니다.
쉽게 말하면 암호를 2중 3중으로 하기 때문에 양파 라우팅이라고 하는 것인데 그 만큼 데이터를 해독하기 힘든 구조입니다.
각각의 릴레이 컴퓨터는 암호화 된 데이터를 받기 때문에 중간에 해독할 수 없고 그 내용이 뭔지 모릅니다. 다만 데이터가 어디서 와서 어디로 가야 하는지에 대한 정보만 알고 있고 그 정보 처리만 합니다.
그리고 최종 목적지 바로 전단인 출구 릴레이 컴퓨터에서 암호화된 데이터가 해독이 되면서 HTTP와 FTP 등등의 프로토콜 내용이 보여지게 되고 최종 목적지를 향해 떠납니다. 위에서도 말했듯 출구 릴레이 컴퓨터와 최종 목적지인 웹사이트 사이에서 패킷 감청을 당할 수 있습니다. 그러나 이는 극히 드문 경우입니다.
잘 아시겠지만 익명은 양날의 칼입니다. 시민들을 통제하려는 중국이나 한국 같은 공안 정권에서 자유로운 의사 표시나 정부에 반하는 행동을 하는 사람들은 국정원 같은 공안을 피하기 위해서 사용하는 분들이 있고 반대로 범죄를 목적으로 하는 해커들이 이용할 수 있습니다.
칼은 요리 도구이지만 동시에 살인 도구이기도 하죠.
토르에 대한 불안감이나 안 좋은 시선도 있긴 하지만 사용하는 사람에게 모든 것을 맡겨야 하지 않을까 하네요
토르 브라우저는 토르프로젝트 페이지에서 다운로드 받아서 사용할 수 있습니다.