서울대학교 컴퓨터공학과 권태경 교수님의 "Topics in Computer Networks" 강의를 필기한 내용입니다.
다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.
Tor (Gen 2)
- TLS 를 기반으로 작동한다
- 일반 request 를 Tor 네트워크로 보내도록 하는 것을 Onion Proxy (OP) 라고 하고 tor browser 같은 애들이 여기에 해당한다
- server 에 도달하는 마지막 hop 은 plain text 일 수 있다 (HTTP)
- Directory server: OR (Onion router) 에 대한 정보들을 가지고 있는 서버
- 근데 이놈이 attacker 의 손에 들어갈 수 있기 때문에 절반 이상의 directory 서버가 살아 있을 때 consensus 가 이루어 진 것으로 한다?
- OR keys
- ID key: (long-term) 뭐 TLS 에서의 server auth 같은 용도로 사용
- onion key: (mid-term) next hop 에 대한 정보를 암호화하기 위한 것?
- sender 에게서 받은 정보를 복호화하기 위한 것
- TLS 에서처럼 key exchange 를 하고 대칭키로 통신? 이 대칭키가 session key?
- 하루에 한번 정도 바꾼다고 한다
- session key: (short-term)
- client 는 경로상의 모든 OR 로부터 대칭키를 교환해 역순으로 암호화하며 encapsulation 을 한다?
- 이것을 위해 extend command 가 있다
- OP 가 OR1 에게 extend OR2 를 보내면 OR2 와의 key exchange 가 OR1 을 거쳐 수행되게 되는 듯
- cell 은 mgmt packet 인 것 같다
Tor 용례
- hidden service
- 자신의 서버를 숨기되 익명으로 접근은 가능하게?
- hidden server 는 자신의 앞에다가 proxy 를 두어 자신을 숨긴다 - 이것을 introduction point 라고 한다
- client 는 rendesvous point 라는 놈과 연결을 하면 이놈이 intro point