Bakgrund: Website fingerprinting (identifiering av webbplatser via fingeravtryck) är en grupp metoder som syftar till att identifiera vilka webbsidor en användare besöker genom en krypterad tunnel, till exempel VPN eller Tor. Ett vanligt scenario är att en angripare avlyssnar länken mellan användarens dator och tunnelns ingångspunkt, fångar in den krypterade trafiken och listar ut vilken webbsida trafiken motsvarar med hjälp av klassificeringsmodeller. Detta är möjligt på grund av att trafiken, trots krypteringen, innehåller mönster/signaler som kännetecknar den underliggande webbsidan. Vissa åtgärder, så kallade försvar, går ut på att dessa mönster kan förändras och göras oidentifierbara genom att skicka padding-paket som inte tillhör den riktiga data som webbläsaren behöver för att visa upp webbsidan. De kallas padding-baserade försvar.
Tor har implementerat ett circuit-padding framework i sin C-kod. Det representar padding-baserade försvar med icke-deterministiska ändliga tillståndsmaskiner, där event beskriver händelser i anslutningen och handlingar resulterar i att padding-paket skickas. Ramverket är dock begränsat vad gäller sitt stöd för olika försvar — det finns till och med padding-baserade försvar som inte kan implementeras — och tidigare arbete pekar på att det vore önskvärt att koda in funktioner som möjliggör avsiktlig artificiell fördröjning för att skapa bättre skydd mot trafikanalys och stödja flera försvar. Ramverket Maybenot har sitt ursprung i dessa idéer. Det är ett självständigt bibliotek skrivet i Rust som kan inkluderas i vilket program som helst och erbjuder en förbättrad modell som kan representera både padding- och fördröjningsbaserade försvar som probabilistiska ändliga tillståndsmaskiner.
Beskrivning: I artikeln använder jag Maybenot för att utvärdera potentialen av tillståndsmaskiner i allmänhet för att skydda mot website fingerprinting. Projektet genomförs i kontexten av Tors pågående utveckling av Arti, en ny version av Tor skriven i Rust - som ska inkludera ett ramverk för skydd mot trafikanalys (se här). Jag samlar insikter kring de byggstenar som behövs för att konstruera ett ramverk som stödjer effektiva försvar samt diskuterar vissa designval och utmaningar som är viktiga att överväga. Min slutsats är att flera tänkbara system bör utforskas innan en lösning väljs, därför att det är svårare — åtminstone byråkratiskt sett — att ersätta befintliga system än att skapa något framgångsrikt från början. Jag rekommenderar också vissa förbättringar på Maybenot som nu är tillämpade i version 2.