来自加州大学的安全研究人员Tobias Boelter最近发布了一份报告,报告中提到像Whatsapp和Telegram这样的端对端加密通信服务商所采用的基于信号协议的加密方式存在后门。《卫报》率先对此进行了报道,生成WhatsApp、入侵者甚至情报机构都可通过利用这种基于信任的密钥交换机制去拦截用户信息,而用户却对此一无所知。
这是怎样一个“后门”?
WhatsApp采用端到端加密机制,A给B发消息。A持有的设备用自己的私钥和B所持有设备的公钥来加密信息,B收到信息后再用自己的私钥和A的公钥来解密。WhatsApp服务器上存储有双方协商的公钥,而私钥则是A/B的设备双方在本地生成的。
试想这样一个场景,某一天A给B发消息,而B却处在离线状态。且B因为某些原因需要更换一台设备登录WhatsApp帐号。这个时候由于B的设备已经不再有先前双方协商的密钥,理应是无法对A发送的消息进行解密的,但实际上在B用新设备登录WhatsApp后依然可以收到A发送的消息。这就是最近盛传的有关WhatsApp的“后门”所在。
在B根本就没有旧有公钥的情况下是如何对信息进行解密的呢?当B重新上线之后,WhatsApp会自动交换双方的新密钥,而这个过程是不会通知用户的。A会用新密钥重新对先前发送的消息进行加密,然后再发给B。
如果说,有个攻击者C恶意用自己的公钥来替换B的公钥,所有为发送的消息可自动加密后发往C——也只有C的私钥可以对这些信息进行解密。
这个后门存在的基础是——信任。毫无疑问的是,绝大多数加密通信服务都会将生成的加密密钥存储在线下,即用户的个人设备上,在用户通信时,仅是通过服务器来传输公有密钥。所以像Whatsapp这样的情况,用户就必须信任服务器不会更改发件人和收件人之间所使用的公有密钥交换机制来执行中间人攻击,去窥视用户之间的私密交流信息。
Tobias Boelter在《卫报》的采访中提到:“如果有政府机构要求WhatsApp公开他们的聊天记录,WhatsApp完全可以利用这个后门来有效的获取授权,窥视任意用户信息。”
WhatsApp是目前世界上最大的安全信息传输平台,在世界范围内拥有超过十亿用户。此次事件在几小时内就像病毒一样迅速蔓延开来,吸引了各安全专家,WhatsApp团队和为WhatsApp提供端对端加密实现的Open Whisper Systems公司关注。Open Whisper Systems是FaceBook的合作伙伴,而FaceBook在2014年以160亿美元的价格收购了WhatsApp。
这究竟是“功能”还是“后门”?
很多安全专家的看法是:“与其说这是一个后门,其实更像是一个功能。主要是为了避免不必要的对自动生成加密密钥的重复验证。”
Open Whisper Systems认为,并没有什么“WhatsApp backdoor”,密码学就是这么工作的,中间人攻击是共有密钥都会面临的问题,并不是WhatsApp特有的。
从定义上来看,后门是计算机系统存在的某个特性或缺陷,这个缺陷会导致未经授权的数据访问行为。后门存在于加密算法、服务器或实现中,而且不管之前有没有被使用过,后门始终存在。
实用性和安全性向来是不可兼顾的,并且只要是选择实用性高于安全性一般也不会有什么好结果。或许WhatsApp这么做是为了提升用户体验。在此可以用Signal来做对比:与WhatsApp自动信任收件人的新密钥不同,Signal私密短信应用的默认设置会在新密钥使用前要求发件人进行验证,这样也就提升了安全性,但对用户而言可能不够方便。
不过WhatsApp在设置项目中有个“安全通知”选项与此类似,只不过就算WhatsApp的用户打开了安全通知,发件人也只会在信息已经发送之后才收到提示。
WhatsApp实际上也就《卫报》的报道给出了回应:“WhatsApp并没有在系统中为政府提供‘后门’,而且也将努力不响应政府的请求。卫报提到的这种设计让我们数千万信息不会丢失,而且WhatsApp也为用户提供了安全通知功能,告知他们潜在安全风险。WhatsApp就加密设计公布了一份技术白皮书,也对收到的政府请求做了透明化说明,在Facebook政府请求报告中公布了这些数据。”
另外,从攻击者的角度来说,想要利用这个漏洞来实施入侵也是十分有难度的:
- 需要入侵WhatsApp服务器。
- 入侵者需要想办法让目标手机下线。
- 即便是已经控制的手机,针对手机上已经存储的加密信息也是无用的。
但这仍是个安全问题
值得注意的是,并没有一个安全专家否认这个事实:政府和存在国家背景的黑客都可能拦截并获取WhatsApp用户的聊天记录。就算WhatsApp不会屈服于政府的要求,但他们也没有办法避免国家背景黑客的入侵,毕竟这个“后门”不是只有WhatsApp自己才能用。
不过没有人说这是一个“加密后门”,这个后门并非加密方式本身的问题,完全是因为这种端对端加密方式被执行到WhatsApp的方式而产生的。
虽然WhatsApp已经为用户提供了“安全通知”功能,但这种功能对用户的信息安全可能并没有太大的帮助。因为WhatsApp并没有“在设计时就实现安全”,反而提醒用户有常识一点,不要跟那些总改变自己安全密钥的联系人聊天了。事实上,就是因为WhatsApp总是(因为某些原因)自动改变用户的安全密钥,所以用户开始忽略这些提醒,不会每次都会去证实这些变化的真实性。
WhatsApp真正应该做的事
所以实际上,WhatsApp至少应该做到以下两点:
- 不要再频繁的生成用户的加密密钥了;
- 增加新的隐私设置,如果将此选项打开,除非用户手动验证通过,他的WhatsApp将不会自动信任新的加密密钥并发送消息。