blog/_posts/2022-07-16-privacy.md

12 KiB
Raw Blame History

layout title tags
post 关于在网络中隐私的研究
网络
隐私

没有保护隐私的权利,我们也能自己来维护

起因

前段时间可谓是盒泄漏时代,各个组织和公司都在争着把自己拥有的用户隐私数据往出送,以致于现在在一定程度上可以说没有准备的人默认就是实名上网了 (我也没有准备好😂 。不过其实如果说做好准备的话除非对方有天大的本事,不然都无法找到在网络中实际操作的人。所以我这次想从原理上来说一说关于隐私的保护方案。

保护的前提

因为考虑到泄露隐私这种事情实在是太容易了,所以我们一般来说如果想保护的话也很难做到面面俱到,只能针对单独的身份或者行为进行保护,如果真的想保证完全的隐私,那恐怕就不能待在地球上网了。所以尤其是在中国这种地方就更加困难,毕竟实名的东西也很多,关联起来也很简单。

隐私泄露的原因与渠道

针对向普通访问者泄露的原因

一般来说如果只是访问网站的话是很难泄露隐私的毕竟获取隐私信息的主要方法是通过关键信息关联比如手机号、邮箱还有IM账号等方便关联实人的联系信息所以对于其他访问者来说这些信息本来就是不可见的。一般能泄露给访问者的信息基本上只有在网站上进行了写入可以公开信息的东西比如注册账号、发帖、发消息之类的当然一般来说普通人之所以开盒也都是因为发送了东西才会引起其他人的注意不发东西也没有目标啊。
在这种情况下的泄露关联很简单也很好避免一般这种就是查发送的信息和公开的个人信息可能不是所有人都会公开手机号不过IM账号大多数人都会公开也许是腾讯的系统并不怎么安全像QQ号查绑定手机的社工库还挺多的尤其是用的时间比较长比较常用的QQ号可以说是100%泄露了手机号。通过手机号查人就更简单了,对于普通人来说什么转账查询、通过快递订单泄露查询什么的可以说是应有尽有,我自己也查过自己,可以说是轻松就能查到,加上我常用的用户名,我只能说其实我在实名上网😭
当然除了上述普通的社工方案也有比较高级的技术方案比如MITM攻击、钓鱼攻击、以及第三方引用泄露等等不过这些难度还是挺大的主要还是因为现在加密技术的成熟可以大大提高这些攻击的难度。

针对向网站管理员泄露的原因

作为在互联网上访问的人来说你对目标网站的任何访问网站管理员自然是知道的一清二楚毕竟你的访问肯定得让网站程序知道吧不然网站程序怎么给用户返回正确的信息在这种情况下泄露的信息就更多了防御的难度也更大了。首先最先泄露的就是IP地址毕竟在TCP协议中访问一个网站那数据想原路返回也得提前知道访问者的地址啊就像访问者也能很轻松知道网站的IP地址一样。对于大多数网站管理员来说其实IP地址能获知的隐私信息也不是特别多最多就是知道你在哪个城市再精确估计也最多到小区在IPv4已经被分配完的时代大多数运营商都用了NAT所以一个IP下可能包含很多个用户当然对于运营商的人来说那就不一样了他们可以根据地址分配的时间以及使用的端口精准的找到访问者的物理位置。顺便一说如果这个网站允许其他用户使用第三方的图片等资源同样也可以获得访问者的IP。
除了IP之外还有就是用户自己输入的信息像对其他访问者不可见的信息对于网站管理员那自然是一览无余的这个就实在是太简单了其实说来钓鱼网站也是一样的道理没有防备的人可能输入的信息就是完全准确的以致于当网站被攻破时泄露的数据也是准确的。
上述的信息可以说是一些显式的信息,除此之外还有一些隐式的隐私信息,比如访问习惯,访问时间,还有访问的终端信息之类的,虽然这些信息单独拿出来都是没有意义的,但是统一整理出来就能定位到一个人,像很多广告的精准投放就是这个原理。而且这些隐式的隐私信息相比之下就会更加难以去除,相对来说利用也更加困难。

针对网络服务提供商泄露的原因

作为用户与网站之间的连接者ISP他们获取隐私信息的方式就相当于是MITM像以前数据没有加密的时候那所有信息对于ISP来说都是完全透明的那也没有什么隐私而言还好现在成熟的加密技术可以有效的防止他们获取到用户的信息。不过即使是在加密时代不恰当的处理依然是会泄露自己的信息。首先我们要知道他们会知道什么虽然访问的内容对于运营商可能是不可知的但是大多数情况现在人们都不会使用加密的DNS所以用户访问的网站域名首先就会被泄露。另外即使使用了加密的DNS很遗憾的是TLS1.2及以前版本有个叫做SNI的特性这个东西是完全明文的运营商同样也能根据这个知道你访问的网站。除此之外就是访问的IP了。一般来说现在的统计信息能很轻松知道哪个IP对应于哪个域名还好有像Cloudflare这种CDN公司许多网站指向的IP都是相同的以致于根本没法根据访问的IP来推测用户访问的是哪个网站当然对于CDN公司本身肯定是知道的一清二楚包括访问与输入输出的内容也一样因此运营商现在也几乎没办法仅通过IP来获知用户在访问哪个网站了。

对于隐私泄露的解决方法

身份伪造

首先对于上述问题我们可以发现大多数的隐私泄露都是用户自己造成的主要是自己输入的信息。一般来说如果遇到一定需要输入自己信息的一些网站我们可以提前设定好一个完整的虚拟网络身份名字和一些住址信息啥的还是比较好整的不过难整的是联系信息像中国手机号是实名的如果用其他国家不实名的手机号运营商还是能通过基站定位到而其他在中国的很多服务则必须使用手机号登录这就是所谓的前台匿名后台实名吧。当然中国服务不能用我们也可以考虑用国外的比如Google Voice啥的不过我也没整过我也只用过一些公共接码平台。邮箱的话相对倒是好整一些注册一个邮箱不是什么复杂的事情。银行卡虽然很难整不过大多数网站我们应该不需要用到银行卡真要付款可以考虑一下数字货币国外的很多支付平台现在也都支持了。在上述信息准备好后我们在需要用到隐私信息的地方就只需要填自己做好的信息就可以。另外密码最好用密码管理器所有网站的密码都使用随机字符保存密码的设备最好用硬件Key而且方便销毁的那种以避免钓鱼事件的发生。

链路伪造

在上述情况我们可以很明显的看出来除了自己泄露的隐私信息还有很大一部分是由于主动访问导致的这种情况倒是也有很多解决办法比较常见的就是使用代理当然一层代理不行一层代理实际上对于ISP来说跟没挂差不多很轻松就能关联起来要挂至少得两层以上这样访问时的IP才能和实际上使用的IP脱钩不然运营商一查目标网站访问IP的访问者一看流量就知道是谁在访问了。
当然像我们这种没什么钱的人想整多层代理还是比较困难的毕竟一台服务器不便宜这时候我们可以用Cloudflare做中间那一层虽然Cloudflare想追踪也很容易这样ISP的追踪就很困难了基本上就只能查到用户正在访问Cloudflare下保护的网站其他什么也不知道。
如果连服务器都没有也可以用Tor这个网络就相当于是一个社区维护的多层代理了通常因为用的人多所以安全性可能比自己搭的还要好。当然如果有条件的话可以自己的服务器和Tor叠起来用这样还能避免某些网站歧视Tor出口节点以及可能会遇到蜜罐节点的问题。其实相比之下I2P要更加安全但是体验……实在是有点拉跨再怎么隐私我们也得考虑一下体验问题。
另外再希望安全些的话最好买用于当代理的服务器时也挂上Tor付款的时候使用数字货币以避免服务器商出卖或者信息泄露的问题。 还有一个很重要的问题就是DNS和SNI想要解决这个问题首先DNS也得过代理不过也行还有一种叫做DoH的DNS也可以在一定程度上保证安全至少运营商看不到了但是DoH的服务商还是能看到所以还是都过代理比较好。SNI的话主要是现在有些网站它不支持像ESNI或者ECH啥的所以没办法反正只要出口节点不要关联到自己就行。另外代理最好使用透明代理而不是系统代理因为有些软件它不想走代理比如在使用带有穿透的功能像直播或者语音电话啥的如果过网站服务器比较费流量所以为了避免因为这些情况导致的代理失效使用透明代理是更好的选择。

行为伪造

这里算是比较复杂的部分了因为要做到这一点可能成本会更高。为了防止网站管理员获知访问者的行为我们一般除了上述的操作外还要做一些别的操作比如需要使用纯净的系统并且在这个系统上不能够操作任何与现实有关的事情而且随时都要挂着透明代理一旦做了不正确的操作一定要及时销毁。据说Subgraph OS就挺好的最好不要用Windows有些时候管理员可以通过你不细心的地方发现你的关联性所以最好用虚拟机或者另外的物理机我的意见是用树莓派就挺好系统装TF卡里有必要的时候把卡直接拔出来一折就销毁掉了非常的方便内存用打火机稍微烤一下数据就消失了
用了上面的方式已经可以避免访问环境造成的隐私泄露了但还有一个是时间比如我要发布一个东西时间一般来说是我按下发布按钮时就会发布但是这样如果有人从你家窗口看到你按下回车的瞬间文章就出现在了他的屏幕上那不就很轻松的发现了你与发布的东西的关联性了嘛所以如果真的要考虑的话时间问题也很重要比如我想在发送这篇文章的时候不想让别人知道我什么时候发送的我可以在我的服务器上写一个脚本当它在某个时间点时在自动commit&push上来这样大伙就不知道我发送的具体时间了。评论也是差不多的道理只是操作更复杂一些有可能会用到浏览器自动化工具就是操作起来更麻烦一些。

总结

从上面来看想搞比较完美的隐私还是很困难的所以全程隐私基本上在地球上不太现实。如果只是希望在发布或查看某些信息时需要隐私就可以用到以上方案了我们可以编一个身份拿树莓派安装个自己喜欢的Linux系统去个咖啡厅连上公共WiFi在上面用数字货币挂着Tor在服务器商买个VPS然后用Tor连上去在上面再搭个代理再用这个Tor+代理去访问网站用编好的身份注册看好想发布的位置再用VPS写个脚本选个喜欢的时间通过自动化脚本把想说的话发出去有必要的时候再随手找个焚烧炉把树莓派丢进去销毁我们的隐私行动就完满结束啦😂