去年冬天,互联我帮一个做跨境电商的网安朋友看他的服务器日志。凌晨三点,全协后台突然涌进两千多条来自越南IP的互联登录请求,用户名全是网安“admin”,密码从“123456”试到“qwerty”。全协这不是互联黑客电影,是网安每天都在发生的撞库攻击。互联网安全协议,全协说白了就是互联给数据包穿上防弹衣,再教它怎么在枪林弹雨里认路。网安
协议这东西,全协普通人看不见。互联你打开网页,网安浏览器和服务器之间会先握个手——SYN、全协SYN-ACK、ACK,三次。这个握手过程像两个陌生人见面先对暗号,确认双方都在线,再开始传数据。但暗号本身不加密,中间人完全可以截获。所以有了TLS。TLS握手更啰嗦:客户端说“我支持这些加密套件”,服务器挑一个回“用这个”,然后交换密钥、验证证书。整个过程几百毫秒,你刷个短视频的工夫,背后已经完成了十几次密钥协商。
证书是个有意思的东西。它由CA签发,相当于网络世界的身份证。但身份证也会造假。2011年,荷兰CA机构DigiNotar被黑客攻破,签发了上百张假证书,包括Google的。攻击者用这些假证劫持了Gmail流量,伊朗用户首当其冲。后来DigiNotar破产了。这件事说明一个道理:协议再严密,信任链上任何一环烂掉,整个体系就塌了。现在浏览器内置的证书吊销列表和OCSP装订,就是给这类事故打的补丁。
IPsec和SSL VPN是另一条战线。IPsec在网络层加密,对应用透明,适合站点到站点的隧道。但配置起来像解九连环,IKE阶段一、阶段二、预共享密钥、DH组,错一个参数就通不了。SSL VPN则跑在应用层,用户装个客户端或者直接浏览器访问,体验好得多。我见过一家公司用IPsec连分支,结果两端MTU不匹配,大包全丢,小包能过。运维折腾了一周才发现是分片问题。协议规范里写了怎么处理分片,但厂商实现各有各的脾气。
物联网把水搅得更浑。一个智能灯泡用的MQTT协议,默认不加密,认证靠用户名密码,很多厂商连密码都懒得改。2016年Mirai僵尸网络就是扫了一遍默认密码的摄像头和路由器,搞出个几十万设备的僵尸大军,把Dyn DNS打瘫了。你家的摄像头可能在帮别人攻击推特,而你只关心它能不能拍清楚猫。
协议设计有个绕不开的取舍:安全性和延迟。QUIC协议把TLS 1.3塞进UDP,0-RTT握手,速度飞快。但0-RTT数据没有前向保密,重放攻击的风险得靠应用层兜底。谷歌推QUIC的时候,YouTube的卡顿率降了,但安全团队多了一堆新告警要看。没有免费午餐。
我自己的习惯:家里路由器刷OpenWrt,开WireGuard,所有外出流量走隧道。WireGuard代码量不到四千行,比OpenVPN少一个数量级,审计起来容易。但它的密钥管理很原始,没有证书体系,靠预共享公钥。小规模用着舒服,企业级部署得自己搭配置管理。协议没有银弹,只有适不适合你的威胁模型。
最后说个细节。你每次点开HTTPS网站,浏览器地址栏那个小锁图标,背后是证书链验证、CRL检查、HSTS预加载、SNI加密。这些机制不是同时诞生的,是二十多年里一次次泄露、劫持、中间人攻击倒逼出来的。协议在进化,攻击者也在进化。写代码的人多看一眼RFC,运维少熬一个通宵。