我正在尝试在Java中实现Web匿名器(如ktunnel),但我真的不明白这一点,我需要一些有关Web匿名器如何工作的信息。我真的不需要源代码或示例应用程序,只需要说明匿名器想法的想法或教程即可。
谢谢。
最佳答案
基本的匿名程序仅充当加密的代理,在代理服务器和客户端之间创建加密的“隧道”,来自客户端的所有流量都通过代理。这完成了三件事:
无法通过查看代理与端点之间的流量来确定客户端*。另一端的主机只能看到代理服务器。
客户端流量的内容不会受到监视,因为与代理的连接已加密。
不可能*确定来自客户端的流量的端点,因为所有端点似乎都仅流向代理。
*实际上,简单的匿名器无法提供全面的保护,因为如果您查看客户端和代理之间的流量以及代理和各个站点之间的流量,则可以将特定客户端与其流量相关联。这称为流量分析。
诸如Tor之类的更奇特的匿名器提供了针对流量分析的保护,以及许多其他打破匿名性的技术,但是这实际上超出了问题的范围。
从您的角度来看,最重要的是编写代理软件。您的程序应该能够创建和管理与客户端的加密连接。这意味着它需要能够(安全地)启动到主机的加密连接,将连接传递给外部主机,然后来回传递流量。基本上,它需要充当路由器。
有实现此目的的协议-我建议您阅读SOCKS协议或Tor。如果这是一个学习项目,那么最好的选择是编写基本的SOCKS代理软件。如果这是供实际使用,则应使用Java提供可提供必要服务的库。
编辑:
Ktunnel是一个不太花哨的代理-它使用CGI脚本来回重定向URL中的信息。基本上,您输入一个地址,它会获取该地址的页面,并将其发送给您。实际上很简单。
关于java - Java中的Web匿名器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1937070/