next up previous contents
Next: Proponowane rozwiązanie Up: Istniejące rozwiązania Previous: Crowds   Spis treści

Onion Router

Protokół Onion Routing pozwala na anonimizację komunikacji za pomocą każdego protokołu wspierającego serwery pośredniczące, w szczególności HTTP. Idea tego protokołu opiera się na mechanizmach wykorzystywanych w miksach Chauma. Klienci korzystają z sieci serwerów pośredniczących zwanych tutaj Core Onion Router (COR). Każdy COR wykonuje protokół podobny do tego stosowanego w miksach.

Celem tego protokołu jest zapewnienie własności anonimizacji podobnych do tych, założonych w systemie pocztowym Chauma. Ponieważ system Chauma nie był przystosowany do komunikacji w czasie rzeczywistym, wprowadzono szereg modyfikacji.

Protokół miksów wykorzystuje kosztowne operacje kryptografii asymetrycznej zbyt wolne do komunikacji w czasie rzeczywistym. W celu usunięcia tej niedogodności w protokole Onion Router asymetryczny algorytm szyfrowania wykorzystywany jest tylko do nawiązywania połączenia w obrębie sieci COR-ów. Ustalona w ten sposób ścieżka jest niezmienna dla wszystkich danych tego połączenia. Do komunikacji zwrotnej w ramach połączenia również używa się tej samej ścieżki, tylko z odwróconą kolejnością serwerów pośredniczących.

Takie podejście powoduje utratę szeregu własności gwarantowanych przez miksy. Obserwator nasłuchując w dłuższym okresie czasu komunikację jednego tylko miksu, może wykryć przebieg połączeń w obrębie tego miksu na podstawie analizy statystycznej. Dodatkowo jeśli taki obserwator ma dostęp do informacji o obciążeniu obliczeniowym komputera, na którym znajduje się COR, może wykryć fakt tworzenia nowych połączeń, gdyż to powoduje większe obciążenie ze względu na operacje RSA. Autorzy Onion Router sugerują w związku z tym wypełnianie kanałów komunikacyjnych pomiędzy COR-ami sztucznym ruchem. To wymaganie znacząco pogarsza jednak wydajność całego systemu.

Fakt użycia tej samej ścieżki do przesyłania komunikatów żądania i odpowiedzi stanowi drugą wadę tego systemu. Pojedynczy COR na podstawie ilości danych przesyłanych w jedną i drugą stronę połączenia może łatwo domyślić się, po której stronie znajduje się klient, a po której serwer. Na podstawie czasów pomiędzy kolejnymi żądaniami klienta może domyślić się liczby serwerów pośredniczących między nim a klientem. Podobnie można ustalić odległość od serwera. Informacje te może również zdobyć lokalny obserwator, jeśli wcześniej ustalił przebieg połączeń.


next up previous contents
Next: Proponowane rozwiązanie Up: Istniejące rozwiązania Previous: Crowds   Spis treści
Michal Szafranski 2003-11-13