目录
最近看到有朋友留言,提到一些所谓的密聊软件,宣称阅后即焚,私密性非常强,能否分析下其原理。
出于好奇,尝试去了解下底层原理,其实还是很简单,和大家聊聊。
1. 密聊的工作原理
所谓的密聊,大都采用的信息端到端加密,说人话就是Alice和Bob利用Diffie-Hellman密钥交换来共同协商一个私密密钥,然后使用这个密钥对要交互的信息进行加密,由于DH密钥交换的特性,这个私密密钥很难被破解,密聊软件的服务器仅仅提供一个中转站的作用,由于通信双方的信息是加密的,且不在服务器保存,所以一旦会话结束,整个信息生命周期就结束了。
整个通讯过程可总结如下图:
第1.2步没什么好聊的,主要是第3步和第4步;
第3步又分为了4小步骤:
- 双方建立会话后首先生成自己的密钥对,公式如下:A = G^a mod P,其中,a是随机选择的数字作为私钥,P是大素数、G是原根,A作为公钥发送给对方;Bob同理会将公钥B发给Alice;
- Bob拿到Alice 公钥后,会计算 k1 = A^b mod P;同理Alice会计算k2 = B^ a mod P;
- k1 = A^b mod P = (G^a)^b mod P = (G^b)^a mod P = B^ a mod P = k2;
- 由于私钥的反推非常困难,因此协商出的私密密钥也很难破解
第4步就很简单了,使用这个k去对要传输的数据进行加密即可;
但这有个问题,就是没有身份验证机制,这会导致容易收到中间人攻击,因为攻击者可以在通信双方之间拦截并替换公钥,这样双方实际上是在和攻击者交换密钥,而不是彼此。
因此在通信中,这就需要在密聊软件来保证,此外,在通信时还可以给私密密钥添加指纹信息来增强身份验证,一些软件(如Telegram)采用将密钥生成二维码,双方需线下比对确认,如同古代虎符对验,还有软件必须输入预设密信才能进入聊天界面;也有一些软件(如商小信)设置"接头暗号",需输入预设密信才能进入聊天界面。
那么这类软件是如何做到阅后即焚且私密的呢?
一般来说,都是采用消息定时、绑定设备、限制聊天记录转发的方式来定时清理记录,在这会话期间,服务器只负责转发加密后的数据包,由于无法获取解密密钥,服务器对加密的内容也无法读取。
2. 密聊的优与患
密聊软件的出现确实给用户带来了一些便利和优势,例如隐私保护,能够有效防止个人信息被泄露;端到端加密技术确保了只有通信双方能够查看消息内容,即使在公共网络环境下也能保证通信安全;一些密聊软件还提供了多种实用功能,如文件加密传输、自毁消息等,满足了用户多样化的需求。
但这类软件让我想起了很多年前微信的漂流瓶功能,漂流瓶是因为通信对手方的随机性,给这场通话添加了神秘感,更加吸引人;但密聊提到的私密性、安全性,也给不法分子许多可乘之机。
密聊软件除了上述工作原理实现真E2E加密通信,但还有一类仅仅是通过将技术手段就信息存放在境外服务器,只能特定方式才会回传给国内用户,这也意味着很有可能数据内容并没有被删除,而是服务器躺着。
除此之外,密聊软件还是电诈天生的温床,不法分子利用未成年人涉世未深的特点,在密聊软件上通过花言巧语哄骗未成年人提供个人信息等内容,使其成为违法犯罪行为的“帮凶”。
例如有骗子通过某短视频网站、微信等渠道发布红包返利虚假信息,很多小学生就会信以为真,被拉入群,进群后会先发一个链接,诱导入群者通过链接安装这个被假冒成应用市场中安全软件的“假软件”,而该软件背后实则为特制的密聊APP,其信息不会被任何其他渠道追踪到。这样就会导致当受害者发现上当受骗,在报警追责时无法取证的情况发生,可能到最后也没办法追回已损失的财产。
所以,密聊技术原理不复杂,但它既能为隐私保护切除监控毒瘤,也很可能被黑产势力用来剖开社会安全的血管。在这场没有终点的博弈中,真正的防线或许不在算法本身,而在于如何构建一个技术可控、法律完备、用户清醒的三维防御体系,安全永远是一个过程,而非一劳永逸的产品。