何谓匿名?
匿名定义为未知姓名或未确定身份。我们上网时并没有匿名,即使在使用隐私工具如Tor、Bitcoin或V**的时候。每项服务至少有一条可以用于区分不同用户的信息,无论其为一套IP地址(V**或Tor)还是一个电子钱包(Bitcoin)。这种信息本身可能不会泄露用户的任何私人信息,但其可与其它相似信息联系起来,最终确定个人的身份。 V**虽然不会使得我们完全匿名,但它会极大增强上网时的隐私和安全。
既然不可能做到完全匿名,我们只能提高相对匿名性,从而使得自己在网络中的隐私度更高,安全性更高。
一定的匿名性是有必要的
互联网时代,个人隐私的保护更加复杂与困难,亟待各种保护手段的更新和创新。比如在网络立法层面,目前仍有许多空白,缺乏相应的顶层设计。有必要在个人信息保护、电子商务等领域建立严格健全的法律规定,划定互联网服务商的“禁区”,明确权责,让处在弱势的普通用户拥有知情权、选择权与维权的依据。
因而在当今这个时代,不论是信息/网络安全从业者,还是普通群众都应该自主地去提高自己的安全意识,通过一些措施防止自己的信息泄露。
什么因素会泄露你的真实IP信息?
可以小结出以下因素:
- IPV4地址泄露
- IPV6地址泄露
- DNS泄露
- WebRTC泄露
- HTTPHeader信息泄露
- 等等.....
IPV4泄露
IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(232)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),这减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。基于分类网络、无类别域间路由和网络地址转换的地址结构重构显著地减少了地址枯竭的速度。但在2011年2月3日,在最后5个地址块被分配给5个区域互联网注册管理机构之后,IANA的主要地址池已经用尽。
我们现在常说的IP地址就是指IPV4地址,通常我们在使用浏览器访问web站点时,请求头中会包含我们的IPV4地址,因此可以被服务器获取到我们的IP并记录进入日志。
IPV6泄露
Internet协议版本6(IPv6)是Internet协议(IP)的最新版本,IP协议是为网络上的计算机提供标识和定位系统并通过Internet路由流量的通信协议。IPv6是由互联网工程任务组(IETF)开发的,用于解决长期以来的IPv4地址耗尽问题。 除了更大的寻址空间之外,IPv6还提供其他技术优势。特别是,它允许分层地址分配方法,这些方法有助于跨Internet的路由聚合,从而限制了路由表的扩展。扩展和简化了多播寻址的使用,并为服务的提供提供了额外的优化。在协议的设计中已经考虑了设备移动性,安全性和配置方面。 IPv6地址表示为八组,每组四个十六进制数字,组以冒号分隔,例如2001:0db8:0000:0042:0000:8a2e:0370:7334,但存在缩写此完整符号的方法。
IPV6是还未普遍使用的一种地址,用于解决长期以来的IPv4地址耗尽问题,通过没有隐藏IPV6也会泄露我们信息。
DNS泄露
什么是DNS?
DNS或域名系统用于将域名(如www.astrill.com)转换为数字IP地址,例如 123.98.12.1在互联网上用于发送数据包。 每当您的计算机需要联系网络上的服务器时,例如当您在浏览器中输入URL时,您的计算机会联系DNS服务器并请求IP地址。大多数互联网服务提供商为他们的客户分配一个DNS服务器,它们用于控制和记录您的互联网活动。
在某些情况下,即使连接到匿名网络,操作系统仍将继续使用其默认DNS服务器,而不是由匿名网络分配给您计算机的匿名DNS服务器。这被称为泄漏。DNS泄漏是主要的隐私威胁,因为匿名网络可能会在私人数据泄露的同时提供错误的安全感。
当您的DNS请求被泄露时,发送到/从网站发送的实际数据将不被捕获。但它仍然可以向窃听者提供关于您访问的网站的足够信息。它也为DNS病毒打开门户,可用于钓鱼攻击(DNS劫持)。
WEBRTC泄露
什么是WEBRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。2011年5月谷歌开放了WebRTC的源代码,在行业内得到了广泛的支持和应用。
即使您正在使用 V**,也会出现多个可以泄漏 IP 地址的“意想不到的错误”。它被称为 WebRTC(Web 实时通信)泄漏。
WebRTC 允许浏览器内部的实时通信。这很方便,但也有一个缺点。即使打开了V**,WebRTC 也能默认泄漏您的真实地址。WebRTC 协议通过设计实现此目的,即使是最好的 V** 也无法始终保护自己的信息不被泄露。
因此,如果使用默认启用 WebRTC 的浏览器,则采取必要的预防措施这一点十分重要。在选择的浏览器中搜索如何关闭 WebRTC,或查找是否存在可安装用来禁用 WebRTC 的 WebRTC 阻止插件。请记住,禁用 WebRTC 可能会导致部分网站(如 Google Hangouts)无法正常工作,因此您可能需要在特定情况下启用它。
代码语言:javascript复制
Firefox浏览器禁用WebRTC的方法是:在浏览器上输入:about:config。之后搜索:media.peerconnection.enabled。找到它后双击,将其改成 false 即可。
Chrome浏览器禁用WebRTC的方法是:在Chrome应用商店里,安装一个名为WebRTC Leak Prevent的扩展,然后选择 Use my Porxy server(if present) 即可。
HTTPheader泄露
http请求数据包中的 header
:
代码语言:javascript复制
GET / HTTP/1.1
Host: www.4399.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-TW;q=0.7,zh-CN;q=0.6
Cookie: home4399=yes; UM_distinctid=169050f7793431-0062d73fb17ef-b79183d-144000-169050f7794319; CNZZDATA30039538=cnzz_eid=1853484585-1550564275-&ntime=1550564275
If-None-Match: W/"5c6b5dba-2a86c"
If-Modified-Since: Tue, 19 Feb 2019 01:36:58 GMT
可见,通过 header
中的 Accept-Language
, User-Agent
泄露了一些信息,如:我们使用的是中文和英文,用户详细UA信息等等。
一般情况下我们也可以使用 X-Forwarded-For
, X-Client-IP
, X-Real-IP
, X-Remote-IP
等请求属性伪造IP从而骗过服务器的IP识别。
IP匿名性测试
我们接下来基于windows10和parrot linux平台代理进行IP匿名性测试,代理软件是最普通的 小飞机(ssr)
,值得一提的是 Electron版小飞机
还不错,跨平台。
什么是Parrot linux? Parrot Security OS(简称作「ParrorSec」或「Parrot(鹦鹉)」)是一个基于 Debian 面向安全的 GNU/Linux 发行版。它提供了诸多用于安全测试、数字取证、软件开发及隐私防护的专业工具。 Parrot与kali类似,但比kali多很多工具。在我目前使用的情况看来,同等配置下Parrot要比kali美观流畅。
使用以下三个网址进行匿名性检测:
- https://www.astrill.com/zh/V**-leak-test
- https://whoer.net/zh
- http://ceye.io/
通过测试直观地显现出不同平台,不同情况下的匿名程度,从而得到其差别。
Windows 10平台
在我的物理机 windows10
本地启用 小飞机
之后,我们分别从几个测试平台获得了IP匿名性测试结果:
astrill.com
:
whoer.net
:
ceye.io
:
通过伪造httpheader中的 x-real-ip
我们可以给自己加上一层伪装,但是并不能逃过检测:
由以上三个结果可以了解到,单纯在win10上使用小飞机代理时,astrill和whoer平台的结果共同反映出了DNS和WEBRTC的泄露,以及页面语言,当地时间等信息。而ceye的结果更是直接得到了我们的真实IP,仅凭上述信息已经可以精确知道我是哪个村的人了(开个玩笑hhh),因此在win10上小飞机的匿名性堪忧。
Parrot Linux平台
在我的虚拟机 ParrotLinux
启用 小飞机
之后,我们分别从几个测试平台获得了IP匿名性测试结果:
astrill.com
:
whoer.net
:
ceye.io
:
由以上三个结果可以看到,没有出现与我所在地有关的信息,检测到的IP也不是我的真实IP(117.170.***.***),而是代理服务器的IP地址,没有出现DNS和WEBRTC泄露,因而可以看出 Parrotlinux
作为一个面向安全测试的linux发行版的匿名性是十分之高的,相对于win10匿名性要提高了不少。
以Parrot作为跳板,为win10代理
既然Parrot的匿名性比较好,那我们把parrot作为跳板(parrot上的小飞机允许局域网连接),用win10连接运行在parrot上的小飞机代理,会有什么结果呢?
whoer.net
:
ceye.io和astrill检测是正常的,没有泄露信息,但是从whoer.net的结果看来:泄露了时区,语言等信息。最关键的是WEBRTC直接泄露出了我们的真实IP地址和内网地址。
Parrot OS中自带Tor网络,和匿名模式,以上测试均在未开启Tor网络和匿名模式情况下测试。 总的来说,单纯地使用Parrot还是很香很匿名的!
思考
当今的科技发展迅速,隐私信息也显得越来越重要,通过一部分真实的蛛丝马迹,就可能还原出精准的信息模型。IPV6泄露,DNS泄露,WEBRTC泄露,HTTPheader泄露都可能导致你在网络上的匿名性降低,可能对于普通人来说,这只是无关紧要的事情,但对于诸位安全从业者来说,其中利弊不用多言。