Mixed network [1] ( English Mix network ) - routningsprotokoll som skapar en svårspårlig anslutning med hjälp av en kedja av proxyservrar som kallas blandningar, som tar emot meddelanden från många användare, blandar dem och skickar dem vidare i slumpmässig ordning till nästa destination (kanske i en annan mixnod). Detta bryter kopplingen mellan källan till meddelandet och mottagaren, vilket gör det svårare att fånga upp meddelandet i end-to-end-kommunikation. Dessutom känner varje nod endast till information om den föregående noden och adressen till nästa mottagare. Detta gör nätverket motståndskraftigt mot falska noder [2] .
Varje meddelande krypteras för varje proxy med hjälp av ett kryptografiskt system med publik nyckel. Krypteringsresultaten är ordnade som Matryoshka, förutom att alla element har samma storlek. Varje nod i nätverket avslöjar sitt eget lager av matryoshka. Därmed får han information om den framtida mottagaren. Även om alla noder utom en äventyras, kommer identiteten fortfarande att vara svår att avklassificera.
Mixnätverkskonceptet beskrevs första gången 1981 [3] . Applikationer som Tor och Mixmaster bygger på samma princip.
David Chaum publicerade konceptet Mixed Networks 1979 i artikeln "Unspårbar e-post, returadresser och digitala pseudonymer" [4] . Den här artikeln förbereddes för en magisteruppsats, kort efter att han först introducerades till kryptografi med publik nyckelkryptering av Martin Hellman, Whitfield Diffie och Ralph Merkle. Medan kryptografi med offentliga nyckel gav informationssäkerhet, trodde Chaum att det fanns sårbarheter för personlig integritet i metadata som hittades i meddelanden. Några av sårbarheterna som möjliggjorde intrång i den personliga integriteten var tidpunkten för meddelanden som skickades och tas emot, storleken på meddelanden och den ursprungliga avsändarens adress.
Låt oss definiera avsändaren som och mottagaren som . Överväg att skicka ett meddelande över ett nätverk med en enda nod. förbereder sitt budskap i flera steg. Först lägger den till ett slumpmässigt värde till sitt meddelande. Den kodar sedan meddelandet med den offentliga nyckeln , lägger till mottagarens adress och kodar slutligen meddelandet med den offentliga nyckeln . Noden, efter att ha tagit emot meddelandet, dekrypterar det med sin privata nyckel, och får därigenom information om den slutliga adressen och skickar meddelandet till mottagaren [4] .
Avsändaren tar den publika nyckeln och krypterar med hjälp av den sitt meddelande efter att ha lagt till slumpmässigt brus till det .
Mottagarens adress (A) och en slumpmässig sträng R1 läggs till den som tas emot i det första meddelandet . Resultatet krypteras med den senaste värdens publika nyckel .
Dessa operationer utförs för alla N noder. Du får ett meddelande som:
Vidare dekrypteras detta meddelande genom att passera varje nod, och meddelandet anländer till adressaten , som han dekrypterar med sin privata nyckel .
Slumpmässiga strängar behövs för att förhindra att gissa meddelanden. Det antas att crackern kan se alla inkommande och utgående meddelanden. Om han har en uppfattning om innehållet i meddelandet, kan han kryptera sitt meddelande med den publika nyckeln och jämföra resultatet med det peepade meddelandet. Därmed kan angriparen ta reda på innehållet i meddelandet. Med tillägg av en slumpmässig sträng blir detta omöjligt. Algoritmen för att lägga till en slumpmässig sträng kallas Salt . Även om knäckaren gissar vårt meddelande, kommer han inte att kunna kontrollera riktigheten av sin gissning.
Dessutom är det nödvändigt att kunna svara tillbaka och bevara avsändarens identitet.
Lösningen på detta problem är att generera en ospårbar returadress , där är den verkliga adressen, är en engångsnyckel som genereras endast för det aktuella fallet och som beter sig som en slumpmässig sträng för att förhindra möjligheten att äventyra adressen. Skickar sedan adressen som en del av meddelandet enligt algoritmen som beskrivs ovan. Adressaten skickar ett svarsbrev i formuläret till nod M, och denna nod omvandlar meddelandet till formuläret .
Denna nod använder bitsträngen som en nyckel för att koda om en del av meddelandet . Endast A kan avkoda meddelandet eftersom det genererade både nycklar och . Den extra nyckeln säkerställer att noden inte kommer att kunna se innehållet i svarsmeddelandet.
Som ett exempel, betrakta följande sekvens av åtgärder. Meddelande från :
Svarsmeddelande från :
Där: = offentlig nyckel B = offentlig värdnyckel .
Mixmaster är ett anonymt typ II-meddelandenätverk som skickar meddelanden i skurar av fast storlek och ordnar om dem, vilket förhindrar tittare från att spåra inkommande och utgående meddelanden. Detta är en implementering av Mix Network. Mixmaster skrevs ursprungligen av Lance Cottrell och underhålls av Len Sassaman . Peter Palfreider är den nuvarande underhållaren. Den nuvarande Mixmaster-mjukvaran kan också kompileras för att behandla Cypherpunk- meddelanden ; de behövs som svarsblock för nym-servrar .
I icke-interaktivt läge läser Mixmaster ett meddelande från dess standardingång eller från en fil. Destinationsadressen och indatafilen kan anges på kommandoraden. Om ingen adress anges på kommandoraden, förväntas indatafilen innehålla ett meddelande med e-postrubriker [5] .
Medan blandade nätverk ger säkerhet även om en angripare kan se hela vägen, är mixning inte ett absolut idealiskt sätt att förbli anonym. Angripare kan utföra långa korrelationsattacker och spåra avsändaren och mottagaren av paket [6] [7] .
En angripare kan utföra en passiv attack genom att sniffa trafik in och ut ur ett mesh-nätverk. En analys av ankomsttiderna mellan flera paket kan ge den information du behöver. Eftersom inga ändringar görs i paketen är en sådan attack svår att upptäcka. I värsta fall av en attack antar vi att angriparen kan observera alla länkar i nätverket, och infrastrukturen för det blandade nätverket är känd.
Ett paket på ingångslinjen kan inte korreleras med ett paket på utgångslinjen baserat på information om när paketet togs emot, storleken på paketet eller innehållet i paketet. Paketkorrelation baserad på paketsynkronisering förhindras genom buntning, och korrelation baserad på innehåll och paketstorlek förhindras av kryptering respektive paketutfyllnad.
Mellanpaketintervall, det vill säga skillnaden i tid mellan observationen av två på varandra följande paket på två nätverkslänkar, används för att bestämma om dessa länkar har samma anslutning. Kryptering och utfyllnad påverkar inte intervallet mellan paket som är kopplat till samma IP-ström. Paketintervallsekvenserna varierar mycket mellan anslutningar, till exempel när du surfar på webben sker trafik i skurar. Detta faktum kan användas för att identifiera föreningen [3] .
Aktiva attacker utförs genom att introducera riktade paket med unika tidssignaturer [8] . En angripare kan utföra attacker för att försöka identifiera dessa paket på andra nätverkslänkar. Det kanske inte går att skapa nya paket på grund av den nödvändiga kunskapen om symmetriska nycklar i alla efterföljande mixers.
Stort utrymme kan skapas genom att skicka ett stort antal på varandra följande paket till målströmmen. Till exempel skickar simuleringen 3000 paket till målströmmen. När antalet på varandra följande paket som tappats ökar, minskar skyddets effektivitet avsevärt.
Angriparen kan skapa konstgjorda explosioner. Detta görs genom att skapa en signatur från konstgjorda paket, hålla dem i kanalen under en viss tid och sedan släppa dem alla på en gång. Säkerheten är försvagad och en angripare kan fastställa målströmmen. Det finns andra skyddsåtgärder som kan vidtas för att förhindra denna attack. En sådan lösning skulle kunna vara adaptiva utfyllnadsalgoritmer. Ju fler paket som försenas, desto lättare är det att avgöra beteendet och därför kan bättre skydd tillhandahållas [7] .