安全协议
1983年11月10日,安全协议麻省理工学院的安全协议校园网里,一台叫MIT-MC的安全协议电脑收到了一条来自另一台电脑的请求。请求很简单,安全协议就是安全协议问“你是谁”。对方回答:“我是安全协议MIT-AI,我这边一切正常。安全协议”这段对话被系统日志记录下来,安全协议成了互联网历史上第一个有据可查的安全协议安全协议交互——尽管当时没人管它叫“协议”,大家只觉得这是安全协议两台机器在互相打招呼。
四十年后再看,安全协议这个场景挺讽刺的安全协议。两台机器像两个刚认识的安全协议人,先自报家门,安全协议再确认对方没发疯。安全协议可如今互联网上的“打招呼”早就变味了。你打开一个网页,它问你“你是谁”,你还没回答,它已经把你手机型号、操作系统、浏览器版本、屏幕分辨率全摸清了。这不是打招呼,这是搜身。
安全协议的本质,其实就是一套“怎么证明你是你”的规矩。但规矩立得越多,漏洞反而越深。2014年OpenSSL爆出“心脏出血”漏洞的时候,全球三分之二的网站都在用这套加密协议。攻击者只需要发送一个心跳请求,就能从服务器内存里读出用户的密码、密钥、甚至聊天记录。那感觉就像你装了一扇防盗门,结果门板是纸糊的,锁倒是挺结实。
我认识一个做渗透测试的朋友,他跟我说过一句糙理不糙的话:“安全协议不是用来防黑客的,是用来让老板睡个安稳觉的。”他接过的项目里,有银行、有医院、有政府机构,每家都有一套厚厚的安全文档,但真让他去攻,最快的一次只用了四十分钟就拿到了核心数据库的权限。突破口不是什么高深漏洞,就是某个运维人员把密码设成了“Password123”,还贴在显示器边上。
这事儿说起来荒唐,但换个角度想,协议再严密,最终执行它的还是人。人一累、一懒、一着急,什么协议都得靠边站。有一次我看同事调试接口,为了省事,他直接把API密钥写在了前端代码里。我提醒他,他摆摆手说:“先跑通再说,反正上线前会改。”结果那个项目上线了三年,那串密钥到现在还躺在公开的JavaScript文件里。
安全协议最吊诡的地方在于,它越复杂,越容易被人绕过。就像你给家里装了五道锁,结果小偷发现窗户没关。很多公司搞双因素认证、搞零信任架构、搞行为分析,但员工嫌麻烦,直接把验证码转发给同事代收。技术永远在升级,人的惰性也永远在升级,这场猫鼠游戏没有终点。
我有时候想,也许真正的安全协议根本不该是技术问题,而是个哲学问题——你到底信谁?上世纪九十年代,程序员之间流传着一句老话:“永远不要低估一个拿着合法账号的攻击者。”这话放到今天依然成立。最危险的不是那些试图破解你防火墙的黑客,而是那个拥有最高权限、却把密码存在手机备忘录里的管理员。
所以你看,从1983年那两句简单的“你是谁”,到现在动辄几百页的加密规范,我们发明了无数复杂的握手方式、签名算法、证书链验证,但本质上还是在重复那个古老的动作:确认对方没发疯。只不过现在,发疯的不只是电脑,还有坐在电脑前面的人。
(责任编辑:综合)














