Utmaningar och konsekvenser av att stödja alla IP-paket i Tor
Om Tor utökades till att transportera alla IP-paket, inte bara TCP-strömmar, skulle flexibiliteten och stödet för nya protokoll kunna förbättras. Det skulle dock även medföra komplexa problem, såsom risker för fingeravtryck, läckor på protokollnivå och mer komplicerade utgångspolicyer.
Detta vore praktiskt av flera skäl: Det skulle göra Tor bättre på att hantera nya protokoll som VoIP. Det skulle kunna undanröja hela behovet av att SOCKS-anpassa program. Utgångsreläerna skulle dessutom inte behöva avsätta ett stort antal filbeskrivare för alla utgående anslutningar.
Vi är på väg i den riktningen. Några av de svåra problemen är:
- IP-paket avslöjar egenskaper hos operativsystemet. Vi skulle fortfarande behöva normalisera paket på IP-nivå för att stoppa exempelvis attacker med TCP-fingeravtryck. Med tanke på mångfalden och komplexiteten hos TCP-stackar samt attacker med enhetsfingeravtryck verkar det bästa alternativet vara att leverera en egen TCP-stack i användarrymden.
- Strömmar på programnivå måste fortfarande rensas. Vi skulle fortfarande behöva program på användarsidan, som Torbutton. Det blir alltså inte bara en fråga om att fånga paket och anonymisera dem på IP-nivå.
- Vissa protokoll kommer fortfarande att läcka information. Vi måste till exempel skriva om DNS-förfrågningar så att de skickas till en DNS-server som inte kan kopplas till användaren, i stället för till DNS-servern hos användarens internetleverantör. Därför måste vi förstå de protokoll som transporteras.
- DTLS (datagram-TLS) har i princip inga användare, och IPsec är onekligen omfattande. När vi har valt en transportmekanism måste vi utforma ett nytt Tor-protokoll från ände till ände som motverkar märkningsattacker och andra möjliga anonymitets- och integritetsproblem, nu när paket kan tappas, skickas om och så vidare.
- Utgångspolicyer för godtyckliga IP-paket kräver att ett säkert intrångsdetekteringssystem (IDS) byggs. Våra nodoperatörer säger att utgångspolicyerna är ett av de främsta skälen till att de är villiga att driva Tor. Ett IDS för att hantera utgångspolicyer skulle öka Tors säkerhetskomplexitet och sannolikt ändå inte fungera, vilket hela forskningsområdet kring IDS och motåtgärder mot IDS visar. Många möjliga missbruksproblem undviks genom att Tor endast transporterar giltiga TCP-strömmar (i motsats till godtycklig IP-trafik, inklusive felaktiga paket och IP-översvämningsattacker). Utgångspolicyerna blir ännu viktigare när vi kan transportera IP-paket. Vi måste också beskriva utgångspolicyerna kompakt i Tor-katalogen, så att klienterna kan förutse vilka noder som tillåter deras paket att lämna nätverket. Klienterna måste dessutom förutse alla paket de kommer att vilja skicka under en session innan de väljer utgångsrelä!
- Tors interna namnrymder skulle behöva göras om. Vi stöder onion-tjänstadresser med ändelsen ”.onion” genom att fånga upp adresserna när de skickas till Tor-klienten. Att göra detta på IP-nivå kräver ett mer komplext gränssnitt mellan Tor och den lokala DNS-resolvern.