Budowa protokołu podobna jest do systemu pocztowego ogólnego zastosowania z pracy D. Chauma. Główną modyfikacją jest dostosowanie do modelu żądanie - odpowiedź. Podczas gdy w systemie pocztowym komunikaty były przesyłane od odbiorcy do nadawcy, tutaj po wysłaniu żądania do odbiorcy oczekujemy natychmiastowej odpowiedzi do nadawcy. Taki synchroniczny model komunikacji jest wykorzystywany przez protokół HTTP. Mimo tej modyfikacji nadal żądamy, aby odbiorca nie mógł zidentyfikować nadawcy.
W projektowanym protokole komunikaty wymieniane są wyłącznie pomiędzy miksami. Nowe komunikaty mogą być wprowadzane jedynie przez miks. Każdy miks realizuje identyczne operacje. Protokół nie zapewnia bezpieczeństwa poza siecią miksów, w związku z czym klient powinien korzystać z miksu położonego na granicy własnej sieci prywatnej i Internetu (szczegóły tego rozwiązania przedstawia rysunek 4.1).
Odsyłanie odpowiedzi można zrealizować przez generowanie anonimowego adresu zwrotnego, tak jak opisał to D. Chaum. Tutaj zostanie wykorzystany inny pomysł - każda wiadomość przechodząca przez kaskadę miksów jest ostatecznie adresowana do nadawcy. Jeden z miksów pośredniczących (wybrany przez nadawcę) modyfikuje wiadomość usuwając z niej żądanie i zastępując odpowiedzią. W ten sposób ścieżka powrotu odpowiedzi jest niezależna pod względem liczby i wyboru pośredników od ścieżki żądania. Nadawca może wybrać dowolną liczbę (ale ograniczoną z góry z powodu wymogu identycznego rozmiaru komunikatów) miksów pośredniczących spośród wszystkich dostępnych.
W celu realizacji tego pomysłu w wiadomości zostały wydzielone dwie części: nagłówek oraz dane. Obie te części są stałej, z góry określonej długości. Pierwsza część stanowi właściwą strukturę warstwową przekazującą zaszyfrowane kolejne adresy w kaskadzie, podobnie jak wiadomość w systemie pocztowym Chauma. Druga część służy do przekazywania treści żądania i odpowiedzi. Od długości pierwszej zależy maksymalna liczba miksów pośredniczących, a od drugiej maksymalna ilość danych przesyłana w jednym komunikacie. W systemie pocztowym Chauma po przejściu przez miks komunikat był rozszerzany o losowe dane dla zachowania stałej długości. Ponieważ tu komunikaty zawsze wracają do nadawcy, miks wykorzystuje to miejsce do przekazania dodatkowych informacji zwrotnych.
|
Druga modyfikacja protokołu ma na celu eliminację kosztownych operacji kryptograficznych z użyciem kluczy publicznych (w istocie w przypadku RSA najdroższe są operacje wykorzystujące część tajną klucza dokonywane przez miksy przy przekazywaniu informacji). W tym celu dodano nowy sposób pieczętowania wiadomości. Poza znanym z protokołów Chauma randomizowanym szyfrowaniem kluczem publicznym, dodane zostaje pieczętowanie przez szyfrowanie symetrycznym tajnym kluczem. We wstępnej fazie komunikacji używana jest kryptografia asymetryczna, a pośredniczące miksy otrzymują w przekazywanych wiadomościach klucze tajne. Gdy z jakimkolwiek miksem wymieniony został klucz tajny, w dalszej komunikacji w pełni zastępuje on klucz publiczny. Ponieważ klucz tajny jest dzielony pomiędzy dwoma konkretnymi miksami, nieuchronnie prowadzi to do przełamania anonimowości stron komunikacji. Tu utrata anonimowości jest jednak minimalna: miks, który przekazuje wiadomość z użyciem danego klucza, jest w stanie powiązać ją z innymi wiadomościami tego samego nadawcy (o ile użył tego samego klucza). Sama identyfikacja nadawcy jest niemożliwa ponieważ rozesłanie kluczy odbywa się za pomocą kaskady miksów, tak samo jak przy właściwej komunikacji, ale przy pomocy kryptografii asymetrycznej. Skojarzenie klucza z nadawcą możliwe jest przez identyfikator losowo wybrany przez nadawcę do komunikacji wyłącznie z tym miksem. Identyfikatory są jednorazowe, po jednokrotnym użyciu danego identyfikatora nowy jest generowany przez zaszyfrowanie starego związanym z nim kluczem. W ten sposób tylko miks posiadający tajny klucz pewnego nadawcy jest w stanie powiązać ze sobą pochodzące od niego komunikaty. Zewnętrzny obserwator nie uzyskuje żadnej dodatkowej informacji.
Podczas gdy w systemie pocztowym Chauma opóźnienia w przesyłaniu komunikatów nie miały kluczowego znaczenia, tutaj istotne jest aby odpowiedź wróciła w czasie rzeczywistym (akceptowalnym dla użytkownika). Podstawowym źródłem opóźnień w systemie Chauma jest oczekiwanie przez miks na określoną liczbę komunikatów, które są następnie mieszane. Aby uniknąć zbyt dużych opóźnień, w tym projekcie zostaje wprowadzone ograniczenie na maksymalny czas oczekiwania miksu na pełen pakiet komunikatów. Minusem tego rozwiązania jest to, że pewne pakiety przy małym ruchu mogą być zdegradowane nawet do jednego komunikatu. Zwiększa to prawdopodobieństwo wykrycia powiązania klienta z serwerem.