今天来讲讲这个事情,按照惯例,写一个短答案给没耐心的读者:不是,数据传输加密后仍然有很多手段可以窃听。
给有耐心的读者看的长答案,大概十分钟:
对于加密的通讯,我们仍然有以下手段可以窃听全部或者部分内容。
1. 破解加密
这是最直接最传统的手段,对于加密强度不足的通讯,在强大的算力面前,都是渣渣。刚好最近比特币矿机价格大跌,我也准备去买上几吨来做暴力破解(大雾),因此通讯时的加密要与时俱进,时代进步了,算力增长了,原先的一些传统加密算法和短密钥该淘汰淘汰,该升级升级。
2. 加密通道外窃听
通讯通道虽然是加密的,但在发送端和接收端都处于明文状态,所以窃听者可以通过在通信终端上安装后门来窃听。举个例子,当用户使用手机上网时,手机和网站之间很可能是通过 HTTPS 加密的,但手机上如果被植入后门,对后门来说,所有的数据都是明文的。
3. 侧信道攻击
侧信道攻击是说:除了加密信道内传递的信息之外,一些其他内容也包含着重要的信息,比如域名信息可以知道你访问的是什么网站,甚至什么子域名,新闻还是博客。流量信息可能可以猜测到传输的是视频还是文字,游戏还是图片。通讯时间、频率和通讯双方的位置也会携带重要的信息,例如军队的调动等,甚至一些侧信道攻击手段可以通过加密解密的速度来计算加密的强度和可能的密钥算法,通过电压功耗监测来缩小破解范围提高破解速度。
4. 通讯劫持
通讯劫持,又叫中间人攻击是通过通讯链路劫持的手段替换加密的密钥,来实现对加密链路的解密。例如替换 SSL 证书等,假设有甲乙两个人要进行加密通讯,丙是攻击者,那么丙可以分别伪装成甲乙向另一个人发动送自己的证书密钥,同时接受返回的证书和密钥,这样丙就成为了中间人,在甲乙都不知道的情况下转发双方内容,并在中间窃听。
总结:通信加密后数据仍然不能认为是安全的,还需要采用多种手段保障数据的安全性。
星友 Kyoukai 提问: 求解枪叔,密码破解都有哪些方法呢?总不能都是单纯的一位一位试吧,那样的话很浪费时间。
Shotgun 的回答:
当然不是,密码破解的方法很多,也有不少奇技淫巧,今天可以分享下。
最简单的办法当然是暴力破解,就是用明文一位一位修改之后加密去试,但暴力破解也并非完全没有策略,常用的密码字典、字母和短语组合,社工库的彩虹表等等都是暴力破解的变种,可以大幅度降低计算的复杂度。
除了暴力破解之外,也有基于算法和实现的攻击。例如山大的王小云老师多次对一些加密算法和实现进行了算法上的攻击,从数量级上大幅度降低了破解这些算法的难度,类似的例子还有很多,虽然加密算法在数学上属于陷阱函数,无法通过反推计算出明文,但程序员实现的时候由于种种原因,往往会由于 bug 或者安全意识不足,大幅度降低了加密强度。
基于明文的攻击也是常用的手段,二战中图灵破解英格玛加密机的时候,就是利用了德军在电报中传送天气预报和元首敬语的习惯,这就是一种典型的基于明文攻击的手段,在攻击者事先知道明文的前提下,可以降低工攻击者破解加密算法或密钥,从而快速破解其他密文的难度。
基于密文的攻击也是常用手法之一,例如福尔摩斯探案中,福尔摩斯破解字母表密码的时候,就利用了密文字母出现频率来进行参考,首先破解了高频率字母 e ,然而根据上下文语义、单词长度等等逐渐破解了全部密文。
另外有一种针对硬件加密的侧信道攻击,可以通过监测芯片引脚电压,加解密时间,芯片功耗等了解芯片的工作状态,从而辅助对密码的破解。
最后还有我们的终极手段:社会工程学,利用心理学和社工库等等方式缩小密码的范围,甚至直接猜测出密码。
领取专属 10元无门槛券
私享最新 技术干货