Even een incognito- of privé-venster openen om een session-cookie te ontwijken of iets te checken wat je liever niet in je zoekhistorie terugvindt: iedereen heeft zo zijn redenen om met iets minder pottenkijkers te browsen. Toch laten die sessies kleine stukjes leesbare informatie achter en om dat te voorkomen bedachten onderzoekers van MIT 'Veil'.
Veil werkt niet via de browser zelf, maar via externe servers die de onderzoekers ‘blinding servers’ in hun paper noemen. Op die manier is de informatie die iemand ontvangt ook veilig in niet-private browseromgevingen en volgens de onderzoekers zelfs veiliger. Zij presenteerden het systeem op NDSS in San Diego.
Gebruik maken van lekken
De eerste auteur van de paper, Frank Wang, stelt in een bericht dat ook privé-modi niet helemaal veilig zijn en er al makkelijk tien verschillende manieren aan te wijzen zijn om van bepaalde lekken gebruik te maken om de informatie toch te achterhalen. Dit laatste komt doordat de applicatie zelf informatie verzamelt en deze toch ergens tijdelijk opslaat. Om te voorkomen dat bruikbare informatie überhaupt opgeslagen wordt, moet volgens Wang de informatie helemaal niet opgeslagen worden.
Nu is het doel van privé-sessies dat de informatie na gebruik weer verwijderd wordt, maar er blijft altijd wel iets achter aan data ergens in een stukje geheugen, een swap-file of ergens een plukje cache. Zelfs als een browser alle data zou weten te achterhalen, kan de browser vermoedelijk niet eens alle data wissen doordat de applicatie geen schrijfrechten heeft in bepaalde delen van het gebruikte besturingssysteem.
Om dat probleem te omzeilen, gaat een gebruiker naar een speciale Vail-pagina in een normale browser. Vervolgens gaat de gebruiker via de ge-embedde code naar de eigenlijke website en vindt versleuteling bij Veil plaats. Vervolgens wordt de gevraagde site zichtbaar gemaakt via een decryptie-algoritme op de browser van de gebruiker zodat data die eventueel achterblijven later niet meer uit te lezen zijn. Een extra veiligheidslaag is ingebouwd door onzichtbare onzincode toe te voegen aan elke pagina die steeds verandert, zodat er geen herkenbare hash achterblijft; elke keer dat de pagina geladen wordt, wijzigt de onzincode.
Klap op de vuurpijl
Zo wordt de werkelijke url nooit opgeslagen op de computer zelf, blijft er niets begrijpelijks achter in de cache en is nooit iets te vergelijken met een hash van een database.
Als klap op de vuurpijl geeft Veil de mogelijkheid om slechts een screenshot te zien van de betreffende site waarbij Veil registreert waar je op het plaatje klikt en of dat inderdaad een link is. Er zit wel een addertje onder het gras: webdevelopers moeten wel een Veil-versie van hun site maken. Daarvoor hebben de onderzoekers een compiler ontwikkeld die de omzetting automatisch voor zijn rekening neemt.
Als laatste zijn er er natuurlijk wel veilige blinding-servers nodig. Daarmee hebben ze hetzelfde probleem als Tor-nodes: de servers moeten door organisaties gedraaid worden, die zouden het systeem kunnen ondermijnen. Wiskundig bewijs zal aan moeten tonen dat dit niet kan. Wellicht een decentrale oplossing kiezen? Maar dat laatste is traag en zorgt vermoedelijk niet voor veel betere performance.