Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

如果网络层不可信。。。

  网络层并没有加密机制,所以 IP 包的头信息都是可以被篡改的。当一个网络环境的路由是一个不可信的设备时,整个网络层就是不可信的,比如我们连接了一个陌生的 WIFI。我主要还是研究 Web 方向的,其它东西我也不懂,只能扯一扯网络层不可信会给 Web 带来哪些影响。
  Web 中最重要的就是 HTTP,它是基于 TCP 来传输的。我们之所以如此信赖 Web 是因为它是基于 TCP,而 TCP 自身的三步握手确立了连接双方的身份。我们再往底层看呢?TCP 的三步握手是基于网络层可信的前提下的,如果网络层不可信了,TCP 的三步握手也就可以被伪造了。
  域名解析也是基于 IP 的,我们可能会把自己的 DNS 服务器设置为 8.8.8.8 之类的东西。如果网络层本身不可信,那就意味着一切都可能是假的。8.8.8.8 这个 IP 地址可能也会路由到一台莫名其妙的 DNS 服务器上,得到一个被伪造的的结果。
  网络层不可信到底是什么概念?造成网络层不可信的直接原因是网关本身不可信,而设备的所有对外流量都必须通过这个网关。如果这个网关足够强大,它几乎可以做任何事情。这就好比一个从来不出门,仅通过信件有外界联系的人。如果邮递员本身不可信,那么邮递员可以捏造出许多角色,让屋子里的人认为它在和很多不同的人交流,为屋子里的人编造出一个世界。
  这个网关通常是我们自己的路由器,它是可信的。但是它的外面是运营商,如果运营商不作恶的话大部分时候也是可信的。最可怕的公共场所中一些钓鱼 WIFI,连了它们之后就只能呵呵了。
  以上说的主要是客户端中招的情况。其实不仅是客户端,服务器端也可能中招!中运营商的招。在开发应用层的程序时我从来不会考虑网络层的安全性,至少在写服务端程序时我不会怀疑 getpeername 得到的客户端 IP 是伪造的。然而如果运营商作恶,那么客户端 IP 就可以被伪造,所有依赖 IP 判断唯一性的程序都会瘫痪。虽然目前运营商还没有无节操到这种程度,但还是觉得一点安全感都没有。
  说到底,我就是不相信人类。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^