没有绝对安全的系统,但有相对安全的结构。如何裁定怎样的安全才是足够的安全,其实并不是一个复杂的议题。
最近我的文章收到了这样一条留言:
你用TrustAsia跟裸奔有啥区别。
我有点哑然。这位朋友的担心我能够理解,就像当时我们的工程里采用了商密算法的时候有人提出:商密算法可能会有潜在后门,我们应该考虑到这一层级的风险并加以把控。只能说美国国家安全局和中国互联网络信息中心都有手脚不干净的案底,所以自然我们这群干信息安全的对它们的产品多少都带着一点天然的不信任在里面。
我不用 HTTPS, 可行么?
严格意义上来说,这个博客完全可以在不使用 HTTPS 的情况下运行——毕竟,这是在互联网上公开发表的文档。除了管理员后台需要一定的安全性,剩下的部分理想情况下是完全不需要任何加密的。对于大部分访问此站点的人,使用 HTTPS 与否大概没什么区别。尤其是这个网站目前是通过 CDN 分发的,TrustAsia 的证书只是顺手申请的免费证书。
如果我取消全站 HTTPS, 那么我的 CDN 甚至可以节省下一笔 HTTPS 请求费。我的页面会更容易压缩,也更容易缓存。我可以配置 nginx 在访问管理后台时只接受来自本地的连接,然后在需要的时候 SSH 进去。甚至,我可以通过 FRP 或者 ZeroTier 等工具设置一个虚拟局域网,这样我甚至不需要手动输入 SSH 密钥密码就可以在我授信的终端上执行管理操作。是的,这一切的一切都有合适且现成的解决方案。不使用 HTTPS 对于我而言是完全可行的。
当然,Google 等搜索引擎并不会很乐意。如果我不使用 HTTPS, 我本来就不高的搜索引擎权重就会进一步下降。当然我说实话没做任何搜索引擎优化所以我也并不特别纠结于搜索引擎排名之类的东西,但全站 HTTPS 毕竟是一个互联网发展的趋势。
HTTPS 到底保护了什么?
对于我而言,HTTPS (也包括许多代理协议)更多的是一种君子锁。如果你真的需要防御国家级别的针对于你个人的攻击,我想你的安全团队会有更好的建议。
为什么说这是一种君子锁呢?因为它只解决了这样一个问题:如果你的学校、公司或者公共网络下同一个链路中有人想给你整个大活,他们可以很轻易地实现中间人攻击。因为 HTTPS 会为每个客户端加密流量,所以这样的中间人攻击就不是特别好做了。同时,HTTPS 配合 HSTS 可以保护客户端不会被中间人调换证书,总体而言可以确保客户端和服务器之间的通信要么不发生,要么发生之后不会被第三方解密。
HTTPS 本身并不会达成更好的隐私效果:第三方仍然会知道你访问了什么网站,只是不知道你访问了什么内容。如果你需要更好的隐私,则也还要做好 DNS 安全。但即使做了 DNS 安全,SNI 可能也会出卖你,所以你还需要更完整的代理链来避免他人观测到你的 SNI 信息。
但是我相信各位也听说过「深信服」三个字。有些并不属于你的设备,就算你使出再多手段,也终究逃不出模拟漏洞。
我担心怎样的安全威胁?
如果那一天真的来临,我的服务器的硬盘镜像会被直接调取,所有的数据,文章也好密钥也罢,都在里面。犯不着大动干戈来做什么证书欺骗——上次这么搞的后果还没吃够么?所以,出于实用主义,我并不担心这个层面的威胁。
我担心的是有孙子闲的蛋疼爆破进入 SSH 在我的服务器里面拉屎;我担心的是有僵尸网络利用各种奇奇怪怪的漏洞感染我的服务器实例;我担心的是服务器突然爆炸或者失联导致我的心血付诸东流。和许多站长一样,我担心的是更为实际的、更可能发生的安全问题。这些问题,通过正确地配置各项服务程序、勤勤恳恳地更新服务器软件、执行多端备份、规划备用方案就可以解决。我的威胁模型很简单:我有一个属于我的博客,我想让它能一直存在于浩瀚的互联网之中,即使它可能每个月也就两三个访问,其中大半还是搜索引擎爬虫的造访。
没有绝对安全的系统
肯·汤普逊所著的关于对信任本身的思考[1]基本上宣告了计算机系统的信任边界并不是有界的。除非你决定亲手从沙子里不借助任何工具搓出一块芯片,否则你必然需要「信任」来自别人的工具,无论是服务程序、编译器、操作系统,甚至系统固件、微处理器,乃至于光刻机。
这条信任的细线,无论划在哪里,似乎都有理由反驳:如果对方是不可信的呢?但我觉得信任网络的崩塌多少是一件无论对于个人还是对于社会而言都比较负面的情况。人类社会的很大一部分都建立于「信任」二字,而不需要「信任」的结构很有可能充斥着无尽的欺骗。
额外抱怨一句,这种专门翻到第一页往后并且专门只在这个文章下面留言,我觉得多少有点奇怪。也许这篇文章变成了 Google 搜索相关关键词里面的一个排名比较靠前的文章?
参考资料
↑1 | Thompson K. Reflections on Trusting Trust[J/TPDM]. Communications of the ACM. 卷 27 期 8. p761-763 || https://dl.acm.org/doi/10.1145/358198.358210. |
---|
Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.