Базовый анонимайзер просто действует как зашифрованный прокси, создавая зашифрованный «туннель» между прокси-сервером и клиентом, где весь трафик от клиента проходит через прокси. Это выполняет 3 вещи:
- Клиент не может * быть определен путем просмотра трафика между прокси и конечной точкой. Хосты на другом конце просто видят прокси-сервер.
- Контент клиентского трафика скрыт от мониторинга, поскольку соединение с прокси-сервером зашифровано.
- Невозможно * определить конечную точку для трафика, исходящего от клиента, поскольку все это, похоже, идет только на прокси.
* На самом деле простой анонимайзер не обеспечивает полной защиты, потому что если вы посмотрите на объем трафика между клиентом и прокси-сервером и трафик между прокси-сервером и различными сайтами, вы можете связать конкретного клиента с его трафиком. Это называется анализ трафика.
Более интересные анонимайзеры, такие как Tor, обеспечивают защиту от анализа трафика и множество других методов, позволяющих нарушить анонимность, НО это действительно выходит за рамки вопроса.
С вашей точки зрения, все, что имеет значение, это написание программного обеспечения для прокси. Ваша программа должна иметь возможность создавать и управлять зашифрованными подключениями к клиентам. Это означает, что он должен иметь возможность (безопасно) инициировать зашифрованное соединение с хостом, передавать соединения с внешними хостами, а затем передавать трафик туда и обратно. По сути, он должен действовать как маршрутизатор.
Существуют протоколы для достижения этой цели - я предлагаю вам прочитать протокол SOCKS или Tor. Лучше всего, если это учебный проект, - написать базовое ПО SOCKS proxy. Если это для реального использования, должны быть библиотеками на Java, которые предоставляют необходимые сервисы.
РЕДАКТИРОВАТЬ:
Ktunnel - менее модный прокси - он использует CGI-скрипт для перенаправления информации с URL-адреса туда и обратно. По сути, вы вводите адрес, он выбирает страницу для этого адреса и отправляет ее вам. Довольно просто, на самом деле.