Stel je voor dat je een cafenetwerk deelt met iemand die een VPN gebruikt, en alles wat je ziet zijn pakketgroottes en timing. Dekverkeer moet dat beeld vervagen. Volg de opvulling van de laptop naar de gateway, en de vervaging blijkt lokaal: ze eindigt waar de gateway eindigt. Alles daarna is een nieuw observatieprobleem op hetzelfde echte verkeer.

De eerste vraag is dus nooit hoeveel vulling je verstuurt. Het is voor welke waarnemer je je verbergt, en waar die waarnemer zit.

Begin bij de laptop

Op de lokale verbinding ziet een waarnemer versleutelde pakketten vertrekken en aankomen. Zonder opvulling is een grote upload een reeks pakketten op volle grootte, is een gesprek een gelijkmatige stroom middelgrote pakketten, en zendt een inactieve client keepalives uit. Die vormen correleren met wat de gebruiker doet, zelfs wanneer de inhoud onleesbaar is. Vulling kan de vorm gladstrijken, tegen de prijs van bytes die niemand vroeg.

Schrijf op wat die waarnemer anders zou opmerken: een uitbarsting aan het begin van een overdracht, een gat wanneer een gesprek eindigt, een ritme van inactieve perioden. Als je het kenmerk niet kunt benoemen, kun je niet beweren dat de vulling het verbergt.

Volg de vulling naar de gateway

De laptop stuurt opvulling naar een samenwerkende gateway, die het weggooit en het echte verkeer doorstuurt. Die samenwerking is het mechanisme: zonder een eindpunt dat de vulling verwijdert, heb je last op iemands anders pad gelegd in plaats van dekking te creëren. De Tor-opvullingsspecificatie maakt diezelfde splitsing expliciet: linkopvulling tussen aangrenzende relays en circuitopvulling die aan de protocolstatus is gekoppeld.

Bedenk nu wat de gateway ziet. Die ziet het echte verkeer plus de vulling, wat betekent dat hij meer leert en niet minder, tenzij hij de partij is die je vertrouwt. Dekverkeer verplaatst vertrouwen; het neemt de behoefte eraan niet weg.

Kijk dan naar het tweede segment

Voorbij de gateway zijn de verdergaande verbindingen naar echte bestemmingen gewoon verkeer met gewone vormen. Een waarnemer daar, of dat nu een hostingprovider of het bestemmingsnetwerk is, ziet dezelfde uitbarstingen die de opvulling moest verbergen. Als die waarnemer degene was waar je je zorgen over maakte, deed de opvulling niets voor je. Deze grens is het hele punt van het pad lopen.

Dekverkeer is beperkt tot een segment, en het bereik uitbreiden betekent de samenwerking uitbreiden.

Richting en vorm

Opvulling die alleen naar buiten wordt gestuurd, verbergt de timing van wat je stuurt. Het zegt niets over de timing van wat terugkomt, want antwoorden komen volgens hun eigen schema. Asymmetrisch verbergen is normaal en het is de moeite waard dat hardop te zeggen: een sessie met veel download laat aan de inkomende kant nog steeds zijn vorm zien.

Pakketlengte, uitbarstingsstructuur, begin- en stoptijden en tussenankomsttijden dragen allemaal informatie. Een byteteller die vlak blijft, kan samengaan met een zeer herkenbare verdeling van pakketgroottes. Vlakke totalen zijn geen vlak gedrag.

Wat het budget koopt

Vulling verbruikt capaciteit die iemand betaalt: gemeten data, concurrentie om de uplink, wachtrijvertraging voor andere gebruikers op dezelfde verbinding. De maximaal beschikbare snelheid volgen is ook tegen jezelf, want dat maximum beweegt mee met de verbinding en de vulling beweegt dan mee. Een uitgesproken budget, met uitgesproken gedrag wanneer het budget op is, is het verschil tussen een mechanisme en een ongeluk.

Beoordeel het resultaat tegen de observatie die je in het begin noemde. Een test die verminderde herkenning onder een gedefinieerde waarnemer laat zien, is een resultaat; een belofte dat meer verkeer minder informatie betekent, is dat niet.

Beslissen of je het überhaupt doet

Voor de meeste mensen is het antwoord nee, en de eerlijke reden is dat een achtergrondstroom op volle snelheid een slechte vervanging is voor software die documenteert wat ze beschermt. Opvulling is legitieme techniek, en het hoort in ontwerpen die hun waarnemer, hun samenwerkende eindpunten, hun kosten en hun grenzen noemen. Het is geen selectievakje dat een VPN in een anonimiteitssysteem verandert.

Als je het implementeert, schrijf dan eerst het waarnemersmodel op. Elke latere beslissing, van pakketgroottes tot afsluitgedrag, volgt uit die ene alinea.

Gerelateerde artikelen