Sieć miksująca

Sieć miksująca (MixNet, Digital mixes) – rodzaj sieci anonimizującej zapewniającej bardzo wysoki poziom anonimowości.

Sieci miksujące zostały wymyślone przez Davida Chauma w 1981. Idea działania sieci miksującej opiera się na zmianie kolejności przesyłanych wiadomości w połączeniu z kryptografią klucza publicznego. Sieć składa się z węzłów pośredniczących (serwerów proxy), których zadaniem jest buforowanie, permutowanie, deszyfrowanie oraz wysyłanie przychodzących pakietów.

Proces przesyłania wiadomości wygląda w następujący sposób: nadawca chcąc wysłać wiadomość W do odbiorcy o adresie A dołącza do niej losowy ciąg znaków C0 a następnie szyfruje całość kluczem publicznym odbiorcy. W ten sposób otrzymujemy wiadomość w postaci C0(W,L0). Do otrzymanego ciągu dołączamy adres węzła docelowego A i szyfrujemy całość kluczem publicznym C1 węzła przedostatniego. Operacja ta jest powtarzana dla każdego węzła pośredniczącego. W ten sposób otrzymujemy wiadomość w postaci Cn-1(Cn(...C1(C0(W,L0),A,L1)),Ln). Tak "opakowaną" wiadomość wysyłamy do pierwszego w kolejności serwera pośredniczącego o kluczu publicznym Cn-1, który deszyfruje otrzymany ciąg swoim kluczem prywatnym a następnie odrzuca nadmiarowość Ln-1. Operacja ta jest powtarzana dla każdego serwera pośredniczącego. W serwerach dodatkowo dokonywane jest buforowanie i permutowanie przychodzących pakietów aby uodpornić sieć na ataki polegające na śledzeniu wiadomości.

Serwery pośredniczące można podzielić ze względu na sposób zmiany kolejności wiadomości na buforujące oraz na Stop And Go. Dodatkowo serwery buforujące można podzielić ze względu na warunek opróżnienia bufora na czasowe i progowe oraz ze względu na sposób zmiany kolejności wiadomości w buforze na deterministyczne oraz dwumianowe. W serwerach typu Stop And Go dla każdej wiadomości losowane jest opóźnienie po jakim zostanie ona przekazana do następnego węzła. W serwerach buforujących wiadomości są przechowywane do wystąpienia warunku opróżnienia bufora. Serwery czasowe opróżniają swoje bufory co stały okres natomiast progowe gdy w buforze znajdzie się zadana liczba pakietów. W serwerach o deterministycznej zmianie kolejności pakietów zawartość bufora jest, przed wysłaniem, permutowana w losowy sposób. W serwerach o dwumianowej zmianie kolejności pakietów przed wysłaniem, dla każdego pakietu, losowana jest wartość 0 lub 1 z zadanym prawdopodobieństwem. Wylosowanie 0 oznacza, że pakiet pozostanie w buforze do czasu następnego losowania w kolejnej rundzie natomiast wylosowanie 1 oznacza, że pakiet zostanie wysłany w rundzie bieżącej. W niektórych przypadkach szybkość działania sieci miksującej zależna jest od natężenia ruchu (np. dla serwerów o warunku opróżnienia bufora progowym). Dlatego też często wprowadza się tzw. ruch nadmiarowy nie niosący żadnej użytecznej informacji, którego zadaniem jest przyśpieszenie działania sieci oraz utrudnienie analizy ruchu. Niewątpliwą zaletą sieci miksujących jest bardzo wysoki poziom anonimowości, który zapewniają. Obecnie nieznany jest silniejszy mechanizm zapewniania anonimowości a wszelkie najsilniejsze rozwiązania bazują na sieciach miksujących. Dużą wadą MixNetów są opóźnienia wnoszone przez poszczególne węzły. Dlatego też często wykorzystuje się rozwiązania implementujące wybrane cechy sieci miksującej. Przykładem mogą być sieci Crowds (Random walks), których idea działania polega na losowaniu w każdym z serwerów pośredniczących następnego węzła. W ten sposób każdy z węzłów wie jedynie skąd wiadomość przyszła i gdzie została wysłana. Żaden węzeł nie ma wiedzy o całej trasie pokonywanej przez wiadomość. Użycie tego mechanizmu w połączeniu z wprowadzaniem ruchu nadmiarowego pozwala na znaczne utrudnienie śledzenia wiadomości.