[Network/Tech]
토르 네트워크는 무엇이며 어떻게 동작하는가?

2020. 3. 23. 22:09


Tor 네트워크란 무엇인가?

Tor는 온라인상에서의 익명을 보장하고 검열을 피할 수 있게 해주는 자유 소프트웨어로 미국 해군 연구소에서 최초로 시작하여 현재는 EFF 프로젝트에서 관리되고 있다. EFF는 2005년 11월까지 Tor를 재정적으로 지원하였고, 현재도 웹 호스팅을 지원하고 있다.

Tor는 트래픽 분석 공격으로부터 보호해주며, 양파 라우터를 거쳐서 네트워크를 사용한다. 나가는 연결이 익명으로 처리되며, 숨겨진 서비스를 사용할 수 있다.

Tor Network에 접속할 때는 Tor Project의 Tor Browser를 이용한다. 또한, 구글 안드로이드 이용자들은 가디언 프로젝트(The Guardian Project)의 Orbot과 Orfox로 접속한다.

익명성

Tor Network의 사용자들은 양파 프록시를 사용한다. 이 소프트웨어는 Tor Network에서 주기적으로 가상의 회로를 만든다. Tor는 암호화 기법을 사용해서 데이터를 전송하며, SOCKS 인터페이스를 제공한다. SOCKS를 지원하는 프로그램은 토르 가상회로를 통해서 데이터를 보낼 수 있다. Tor Network를 따라서 라우터들을 통과한 패킷은 종료 노드에서 실제로 진행한다. 상대방 컴퓨터에서 보기에는 Tor 종료 노드에서 트래픽이 온 것처럼 보인다.

Tor의 프로그램은 TCP 스트림 단계에서 작동한다. 그래서 인터넷 릴레이 채팅(IRC), 인스턴트 메시징, 웹 서핑등을 모두 처리할 수 있다. Privoxy와 같이 사용하면 애플리케이션 계층에서의 암호화도 추가해준다.

작동 예시

다음 예시는 Tor Client A(원본)에서 Tor Server B, C를 차례로 거쳐 목적지 D(일반 Web 서버 등)에 이르는 경우의 설명이다.
1. A는 미리 얻고 있는 디렉토리 목록에서 임의로 B와 C를 선택한다.
2. A는 B에 대해 가상 회선 연결 요청, AB 사이의 암호화 통신을 위한 세션 키를 교환하기 위한 정보와 함께 전달한다.
3. B는 A에 가상 회선 연결 수락과 함께 세션 키 교환을 위한 정보를 전송한다.
4. AB 사이에 전단까지 얻은 세션 키는 암호화 통신으로 얻을 수 있다. 이후 AB 간의 통신이 암호화 통신 경로를 사용하여 행해진다.
5. A는 B에 대해 "B가 C에 대한 가상 회선 연결의 요구를 제출하는 것"을 요구한다고 전송한다.
6. B는 C에 대해 가상 회선 연결 요청, BC 사이의 암호화 통신을 위한 세션 키를 교환하기 위한 정보와 함께 전달한다.
7. C는 B에 대해 가상 회선 연결 수락과 함께 세션 키 교환을 위한 정보를 전송한다.
8. BC 사이에 전단까지 얻은 세션 키는 암호화 통신을 얻을 수 있다. 이후 BC 간의 통신이 암호화 통신 경로를 사용하여 행해진다.
9. B는 A와 BC 사이의 가상 회선 연결이 완료되었음을 알린다.

위와 같이 구축된 ABC 간의 가상 회선을 통해 A는 D와 모든 통신을 할 수 있으며 통신 패킷은 마치 C가 D와 원본같아보인다.

AB 사이, BC 사이의 사이의 세션 키는 각각 A와 B, B와 C밖에 모르기 때문에, 중계는 익명성을 얻을 수 있다고 되어있다. 중계 서버가 3개 이상의 경우도 위의 단계를 반복하여 유사 회선 구축이 진행된다.

세션 키 교환을 위해서는 Diffie - Hellman 키 교환 방식을 체택, 통신의 암호화로는 AES 암호화 알고리즘이 사용된다. 또한, 가상 회선 구축을 포함한 Tor Node 사이의 모든 통신은 통신 도중 도청 및 변조를 방지하기 위해 TLS 통신에 의해 열린다.

How tor works?

위 사진은 Tor Network의 통신 알고리즘을 이미지로 표현한것이다. Sender가 거쳐가는 모든 노드상의 컴퓨터는 본인이 될 수도있다.
다른 누군가 역시 나를 통해 Tor Network를 사용하기때문이다. 이런 이유때문에 Tor Network는 불특정 다수의 컴퓨터를 네트워크 노드로 사용하기때문에 익명성을 보장받을 수 있는것이다.

마지막으로 흔히 대부분의 사람들이 Tor는 Browser로 생각하고있는데 Browser는 Tor Project중 하나일 뿐 Tor Network의 기술을 이용해 본문에서도 언급했지만 SOCK을 이용하는 서비스라면 Tor Network를 적용해 신원을 익명화할 수 있다. 이 글을 참고해보도록 하자.

  • 프로필사진
    zalrae2020.03.24 19:17

    음원 사재기 같은 요소가 vmware를 사용하면 확인할 수 있는 정보가 user-agent나 ip정도로 제한되는데 조작이 쉽기 때문에 가능하다고 알고 있습니다.
    tor 역시 이 부분을 쉽게 조작할 수 있으리라 생각되는데 범죄 이용의 예가 있나요??

    • 프로필사진
      root@ XXeros2020.03.24 20:11 신고

      같은 네트워크 대역대에선 vmware를 사용하더라도 결과적으로 외부로 나가는 ip는 같기때문에 vmware의 문제는 아닐것같습니다.

      다만 Tor의 경우에는 운이 좋다면야 최종 노드가 한국이면 한국 IP로 나오겠지만 보편적으로는 외국 PC가 최종노드가되어 외국 IP로 찍히기때문에 이부분은 필터링을 통해, 아니면 관제를 통해 사재기인지 아닌지에 대해 검증을 어느정도는 할 수 있을것같다고 생각됩니다. 다만 말씀하신대로 시도정도는 충분히 가능할것같네요 (사실 어느정도 막을수는 있습니다. 실제로 중국에서 Tor Network의 노드가 되는 IP들을 계속해서 황금방패로 차단하고있거든요)

      사실 Tor Network가 범죄에 많이 악용되고있는 사실은 맞지만 저로써는 상당히 안타깝습니다. Tor Project의 취지가 중국이나 러시아 이런 인터넷 검열이 되고있는 국가에서 자신의 신원을 밝히지 않고 인터넷 활동을 할 수 있다는것인데..