硬件黑客

来源:百度文库 编辑:神马文学网 时间:2024/04/29 04:05:04
环球科学首页|《环球科学》2010年第9期

芯片设计

●芯片越来越复杂,功能越来越强大,但漏洞也越来越多。

●电路设计一般由多个研究团队分别开发的不同模块整合而成。也许在电路出厂很久后,隐藏在硬件中的木马才会发作。

●一些相对简单的措施将有效地保护硬件免受恶意攻击。

综述

你曾经可靠的手机突然死机,键盘全部罢工,电话无法拨打或接听,短信也不能收发,甚至正常关机都不行。无奈之下,你取下电池强行关机,但重新开机后手机再次死机。这显然不是普通故障。几小时后,你发现不止你的手机这样,还有上百万人跟你一样,手机突然无故死机。

这是我们遭受到一场大规模硬件攻击之后可能发生的情况。这场攻击的根源在于越来越复杂的集成电路,它们正是人们日常依赖的各种设备的核心部件。现代集成电路已经非常复杂,任何一个工程师团队都不足以了解他们设计电路中的所有部分。因此,集成电路的研发工作现在都由世界各地的团队共同完成,每个团队只负责整个设计的一部分,在印刷电路板之前,才把各部分设计集成起来。电路复杂性也决定了根本不可能用穷举法来测试它。芯片中的任何一个编码缺陷往往都会潜伏很长的时间,直至被一些触发条件(如特定的数据或时间)激活——这有点像木马病毒,在发作前会一直安全地存储在硬件中。

硬件攻击的物理本质使得它的潜在危害远胜病毒及其他恶意软件。软件病毒可在机器之间传播,但从理论上说,我们可从任何受感染的系统中彻底清除它们。然而计算机在遭受硬件攻击后是无法修复的,至少目前还不行,除非更换硬件。

修复系统的恶意硬件非常困难。所有使用微处理器的设备,甚至可以说所有的电子设备,都很脆弱。集成电路在现代通信系统及全球电力供应系统里处于核心地位,在飞机上负责襟翼的定位,在汽车防抱死刹车系统(ABS)中负责调节制动力,在银行保险库和ATM机上负责安全授权,在股票市场负责交易运作。集成电路还是武装部队使用的几乎所有关键系统的核心。可以想象,一起精心策划的硬件攻击,能够让金融系统瘫痪,或者让军队或政府的关键部门陷入混乱。

由于硬件木马在激活之前可以隐藏很多年,它们也许、甚至非常可能已被植入硬件缺陷中了。虽然到目前为止尚未证实有大规模硬件攻击发生,但是这类攻击是不可避免的。

从基于软件的网络攻击中我们可以看得非常清楚,即使很少一部分人不怀好意地使用黑客技术,都会造成巨大的危害。因此,我们需要考虑的问题不是硬件攻击是否会发生,而攻击将采用何种方式?攻击步骤是什么?而最重要的问题或许是,如何检测并阻止攻击,或者至少降低攻击带来的损失。

模块化

芯片内部:

芯片包含一系列功能模块,每个模块执行一种特定任务。模块间的数据经系统总线传送,一个叫做总线仲裁器的模块会对总线上的数据流进行控制。

以手机为例,数据可能会从内存(1)传送到执行计算的模块(2),然后再传送到负责信息编码和解码的模块(3),最后再传送到负责与芯片外部交换数据的模块(4)和(5)。

出错的时候:芯片会一直正常工作,直到其中的流氓电路被激活并发起攻击。触发条件可以有多种形式,如特定数据和时间,或者是外部发送的特定编码格式数据包中的“唤醒呼叫”。一旦激活,木马随即就会公开或秘密地展开攻击。

在公开攻击时,流氓硬件可以使正常运行的芯片罢工。这个事例中,感染的模块拒绝让出被它占用的总线,使其他模块之间无法通信。这种情况下,该芯片会完全停止工作。

在隐蔽攻击中,流氓电路的行为不会留下任何痕迹。隐蔽攻击特别令人担忧,因为没有明显迹象表明运行出现了问题。但是,流氓电路会将机密数据发送到芯片外部的某个地址,或配合其他受感染的系统发动攻击。

简单来讲,集成电路,也就是我们常说的芯片,是一种刻蚀在半导体晶片(通常是硅)上的电路。现代芯片非常小,最大也就几平方厘米,但可容纳数十亿个晶体管。由于现代芯片拥有如此高的复杂性,一些可能被木马利用的漏洞也存在其中。

根据功能不同,现代芯片可划分成若干个子单元,即模块(block)。以手机处理器为例,有的模块用于存储相机拍摄的视频,有的用于把视频压缩成MPEG文件,有的可将 MPEG文件转换成可无线传输的格式。模块间的数据通过系统总线(systembus)传输,后者就像是连接芯片不同部分的高速公路。

当一家公司着手设计新款芯片时,首先要规划出芯片所需的功能模块。其中一些模块是自主设计的,要么从零开始设计,要么对自家早期产品加以改进。其他一些功能模块,比如通过天线接收数据的模块,则可以从专门开发特定功能的第三方那里获得使用许可。

从第三方那里获取的模块并不是一块块实际的晶片,因为制造集成电路的目的就是要把所有功能模块印刷到同一块晶片上。相反,那些模块是以数据文件的形式提供的,其中完整地描述了模块被刻蚀到硅片上的方法。这样的文件可以包含数千条指令,人们要想读懂其中的内容几乎是不可能的。模块供应商通常还会向购买者提供一些软件,模块买家可以用它来模拟该模块在不同情况下的使用效果。在芯片开始印制之前,设计公司还会将所有模块集成在一起,建立模型并使用计算机进行仿真测试,以保证芯片能够按照设计初衷正常工作。只有模型通过这一系列测试,公司才会开始漫长而且耗资巨大的实体芯片制造。

这样的设计流程还是会留下漏洞。由于流氓硬件(即存在漏洞的电路)需要特定的触发条件来激活,芯片制造商不得不对模型进行尽可能全面的触发测试,以保证硬件是“干净”的。这一点完全不可能做到,因为宇宙中可能的触发方式无穷无尽。触发分为两种:一种叫内部触发,前面手机的例子中基于时间的触发就属于这一种;另一种则是外部触发,例如接收包括特定字符串的文本信息或电子邮件。即使设计公司竭尽所能进行测试,也只能覆盖所有可能输入中非常小的一部分。在实际测试中,只要模块能按预期工作,制造商一般就认为它们功能正常。

安全芯片

发帖区

Copyright 2006 -2010 Global Science
环球科学杂志社版权所有 未经许可严禁转载