实际上电源线能获得的信息比一般人想象的要多得多,从电源线获取计算机内部的信息有很多种方式:
- 比较容易想到的是通过加装电力猫来做电力线通信(PLC)。但是这个方法并不实用,问题在于通常这些涉密的计算机在物理上就是隔离的,普通攻击者根本没有可能直接接触到这些计算机,更别说打开机箱加装电力猫或者插上一个USB的电力猫了。如果一个攻击者有可能直接物理接触到这些计算机,他会有很多更有效的方法来获取想要的资料。
- 不过仍然会有计算机内部的任何部件在计算或者传输数据时候都会有电磁波产生,尽管电力线不是一个性能良好的信道,这些电磁波很容易可以通过电力线传导到很远的地方。最著名的就是这台二战时期贝尔电话公司为美国军方生产的Sigaba m134c密码机。从加密解密算法和工作原理本身来讲这台机器在当时相当完美,可是唯一的问题是,贝尔公司后来发现,通过电力线他们可以轻而易举地在20米以外读出75%的密文!这件事在最近美国国家保密局(NSA)解密的1972年论文《TEMPEST: A Signal Problem》中有详细讲到。
- 那么使用另一个答案中提到的红黑隔离插座,把电磁波通过电力线传导出去的信号限制在一定范围内是否就安全了呢?答案仍然是否,这里有一个例子。假如一个加密算法根据报文每个比特做一些复杂计算,并把计算结果作为密文输出,假设报文比特为0时做的计算简单,而报文比特为1做的计算复杂一些。看下图是我们捕捉的系统功耗值随时间变化的曲线,每个波峰代表对于每个比特做的一次计算,可以看到第一个波峰小一些矮一些。那么通过这样的功耗值分析,我们就能够猜测智能卡内部做了什么计算。显然,如果我们猜测前者为0,后者为1,在不破解算法的情况下我们已经解出了报文!这就是简单电源分析(SPA)的基本原理。
- 更复杂一些的电源分析破解算法(DPA, HO-DPA)会用到大量信号处理和统计学的知识做深入的分析,对于非常微弱的0/1计算之间功耗的差异也能区分出来,并通过这些分析和一些对于算法的先验知识把系统中正在处理的比特逐个恢复。
以上就是通过电源线能泄露的信息。实际上还有更多的方法可以不直接攻击加密解密算法来破解密文密码,这些统统归类为Side channel attack,是密码学很重要的分支。基本原理就是通过正常加密/解密信道之外的信息来直接破解或者加速破解,通常会起到事半功倍的效果。
— 完 —
本文作者:知乎用户(登录查看详情)
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 17 个回答,查看全部。
延伸阅读:
非计算机专业,计算机如何入门?
网站数据库用什么样的密码加密的算法才是最安全的?