Mixnätverk (även kallat Digitala mixar eller Chaum-mixar) är ett koncept för anonym kommunikation som först introducerades av David Chaum på 80-talet[1]. I sin enklaste form fungerar mixar som proxyservrar som tar emot meddelande och vidarebefordrar dessa på ett anonymiserat sätt. Mixar är höglatens-system, d.v.s. meddelande kommer in till mixen men inget lämnar switchen individuellt utan meddelande klumpas ihop och skickas vid en senare tidpunkt än vad de kom in för att angripare inte ska kunna observer in- och utgående meddelande och med hjälp av timing-attacker bestämma vem som skickade vilket meddelande.

Beskrivning redigera

Förutsättningar redigera

Alla parter i kommunikationen (mixar, sändare och mottagare) har ett publikt och privat nyckelpar och det antas att alla känner till de andra parternas publika nyckel. En angripare antas kunna observera alla meddelande som går in och ut från mixen samt kunna införa, ta bort och modifiera meddelande.

Chaum inför ett koncept som kallas att sluta ett meddelande med en nyckel[1]. Eftersom alla känner till alla publika nycklar skulle en angripare kunna observera ett meddelande   (meddelandet   krypterat med den publika nyckeln  ) och kontrollera sin gissning   genom att testa om   för att bestämma meddelandets innehåll. Detta löses genom att lägga till en stor (hemlig) slumpmässig sträng   till meddelandet så att man sluter meddelandet:  . Även om angriparen skulle gissa rätt så får han inte reda på det eftersom han inte vet den hemliga slumpmässiga strängen  .

Skicka meddelande redigera

En avsändare   förbereder ett meddelande   till mottagare   genom att lägga till   och kryptera det med  :s publika nyckel  :

 

Han lägger sedan till ännu en slumpsträng   och  :s adress och krypterar det med mixens publika nyckel  :

 

Detta meddelande skickas till mixen som tar emot det och dekrypterar med sin privata nyckel och plockar bort den slumpmässiga strängen  :

 

Mixen vet nu att meddelandet ska till   (men kan inte läsa dess innehåll) och kan vidarebefordra   till   som kan dekryptera det med sin privata nyckel och läsa meddelandet.

Returnera meddelande redigera

Den ovan beskrivna metoden fungerar bara åt ett håll:   vet endast att han fått ett meddelande via mixen men inte från vem. Vad som vill uppnår är att   ska kunna svara   utan att  :s identitet avslöjas. En lösning som föreslås av Chaum[1] är att   skapar en ospårbar returadress av formen:

 

Där   är  :s riktiga returadress (sluten med mixens publika nyckel) och   är en temporär publik nyckel som endast används för detta tillfälle. Denna temporära returadress kan nu skickas till   som en del av meddelandet på samma sätt som beskrevs innan:

 

  får nu

 

som han kan dekryptera för att läsa meddelandet och se vilken publik nyckel han ska kryptera sitt svar med. När   ska svara till   gör han det genom att skicka följande till mixen:

 

Mixen tar emot det, dekrypterar den första delen med sin privata nyckel och ser att det är ett meddelande till   (men kan fortfarande inte läsa innehållet). Om mixen bara skulle vidarebefordra   så skulle en angripare kunna observera detta krypterade meddelande på båda sidorna av mixen och få reda på att   och   kommunicerat. Istället använder mixen   som nyckel för att kryptera meddelandet när det är på väg till  :

 

Eftersom   även känner till   kan han nu dekryptera meddelandet och läsa  :s svar.

 
En bild av två parter som kommunicerar genom en mix.

Attacker mot mixar redigera

Så kallade replay attacker skulle kunna bryta anonymiteten som en mix tillhandahåller. Om en angripare skulle skicka in ett meddelande som skickats tidigare och observera vem som får två identiska meddelande så får han reda på vem som kommunicerat med vem. Två lösningar som Chaum nämner är baserat på tidstämplar samt att spara hashvärden[1]. Att skicka med tidstämplar i meddelande gör att mixen kan kontrollera om meddelandet är nytt eller gammalt (eftersom angriparen inte kan ändra tidstämpeln i meddelandet när det väl är krypterat med mixens publika nyckel). Att spara en hash av alla meddelande löser också problemet men kräver att mixen kan lagra alla hashvärden vilket kan bli många om mixen är populär.

Anonymiteten bygger på att mixen antas vara ärlig. Det är dock enkelt att lösa detta genom att utöka protokollet så att man använder en kaskad av mixar. För att vara anonym i detta scenario räcker det med att en av de mixar man valt är ärlig och går att lita på för att man ska förbli anonym.

Referenser redigera

  1. ^ [a b c d] David Chaum, Untracable electronic mail, return addresses, and digital pseudonyms, Comm. ACM, 24, 2 (Feb. 1981); 84-90