信息流在I2C和USB中的隔离.docx

上传人:牧羊曲112 文档编号:5012779 上传时间:2023-05-29 格式:DOCX 页数:10 大小:146.77KB
返回 下载 相关 举报
信息流在I2C和USB中的隔离.docx_第1页
第1页 / 共10页
信息流在I2C和USB中的隔离.docx_第2页
第2页 / 共10页
信息流在I2C和USB中的隔离.docx_第3页
第3页 / 共10页
信息流在I2C和USB中的隔离.docx_第4页
第4页 / 共10页
信息流在I2C和USB中的隔离.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《信息流在I2C和USB中的隔离.docx》由会员分享,可在线阅读,更多相关《信息流在I2C和USB中的隔离.docx(10页珍藏版)》请在三一办公上搜索。

1、信息流在I2C和USB中的隔离概要飞行控制,银行,医疗,以及其他(需要)高性能系统对于正确的操作有着严格的要求。 而这个的基础就是非干涉的执行,在这当中特定的子系统不能够影响另外一个子系统。为致 力于帮助保证该方针(的正确执行),最近在硬件级别当中出现了追踪信息流的工程。本文 使、用了一中特殊的方法,被称为门级信息流跟踪(GLIFT),来提供一种方法论来测试在 两种常见的总线协议,I2C和USB接口,当中的信息流。我们发现协议的确会引起意外的 信息流并且提供基于时分多址(TMDA)的解决方案,经证明这可以将总线上的设备与这些 信息流隔离开来。本文还讨论了由基于TDMA的解决方案引起的区和模拟时

2、间的系统开 销。、1.简介如在飞行控制和银行系统中发现的高性能系统要求保证正确操作不然他们将面临灾难性 的后果。确保这些系统按计划操作时一个非常困难和花费巨大的问题。有人曾估计过,这样 的保险每行代码可以花费1万美元【1】并且要花费10年的时间【2】。在这些系统中,一个共同属性是他们常常需要保证的是不干涉【3】,其中的某些部分系 统应该永远不会与其他部件干涉。例如,波音787飞机在用户和飞行控制网络之间的连接 【4】。确保两个网络之间不出现意外的信息流对于飞机的正确操作时至关重要的。随着通过 复杂协议实现交互复杂的系统级芯片的进一步发展,保证不干涉是一个很难的问题,因为信 息可以流过从而很难来

3、检测侧通道。近日,信息流跟踪(IFT)已经被引进通过监控信息是 如何通过系统来帮助减轻这个问题。IFT工程通过检测贯穿整个系统的数据的传播来看是否秘密信息泄露给未分类的子系统 或者以确保重要子系统的完整性不被不受信任的子系统侵犯。一般两种类别的信息流:显式 和隐式的。显式信息流由两个直接通信的子系统产生。例如,一个显式的信息流会在一条直 接交换数据的总线上的主机和设备之间产生。隐式信息流在整个表现中泄露信息更加容易和 普遍。典型的隐式信息流以时序的形式出现,其中信息可以从操作的等待时间中被提取。前 期的研究表明侧通道的时序攻击可以用于从高速缓存延迟【5】和分支预测【6】中提取机密 的加密密码。

4、高速缓存时序攻击可以通过观察时间命中和错过的高速缓存处罚来获得密码。 分支预测时序通道是也是用一个同样方式被利用,信息通过预测和没有预测的分支的延迟从 而被泄露。另一个利用可以看出,在一个共同的总线中设备通过在总线上通信来隐式通信 【7】。假设总线上有两个设备希望进行隐式通信。首先,当发送者发送1时会导致总线通信 量过量而当发送0是没有通信量。接收者可以探测总线上的通信量来确定发送者是发送的0 或1.为了解释这些难以检测的时序通道,目前的方法缺乏,他们要么进行物理隔离,要么“时 钟模糊化”【7,10】。物理隔离通过分离物理信任/非信任或分类/非分类子系统工作。这导致 区域的成本超支,也使它基本

5、不可能整合子系统。“时钟模糊化”通过显示在时序信息中产生 人工错误的有“模糊化”的时钟的非信任子系统来试图避免物理隔离。这尝试降低从时序通道 获取信息的能力,但在现实中只是降低了通道的带宽。门级信息流跟踪(GLIFT)【11】提供了解决方法来监测硬件中的信息流。由于GLIFT 以离散门为目标,一般已经足以应用在任何的数字硬件中。此外,它可以精确的监测出所有的显式信息流和时序通道,因为它监测每个位周期的变化。其结果是,它是非常有效证明信 息流的常见总线协议,如集成电路互联协议(I2C)和通用串行总线(USB)。有方法来了解 和防止这些信息流是必不可少的,因为系统中,如波音787飞机当中的,已经开

6、始相互连接 他们当中的高完整子系统和低完整子系统了。本文论述了 GLIFT是如何用来分析和删除总 线协议中的非预期信息流,以I2C和USB为例。本文的主要贡献是:介绍了一种方法,它通过使用GLIFT来测试总线协议中的非预期信息流来与现有的设计流 程实现匹配将这种方法应用到两种常见的总线协议(I2C和USB)来分析他们的信息流将改变引入到系统中,并讨论这些系统是如何显示强大的信息流隔离的。本文的其余部分安排如下“在第二节中,我们将讨论硬件信息流追踪和GLIFT的背景。 第三节介绍在总线协议中分析信息流的一般方法。第四节和第五节讨论分别应用到I2C和 USB的方法。我们将会在第六节得出结论。2.硬

7、件信息流追踪因为检测硬件中的信息流导致整个系统性能最小系统开销,所以在硬件信息流追踪领域 已经有很多工作了。本节讨论硬件信息流追踪的一些背景,我们将把重点放在GLIFT上因 为我们将把该方法使用在I2C和USB的信息流测试中。典型的硬件信息流追踪方案都倾向于以指令集架构(ISA)和微体系结构为目标。由Suh 【8】等人提出的动态信息流追踪(DIFT)从非信任通道中标签信息并且将跟踪到整个处理 器。他们某些处理器的输入标签为“假”,并且检查这些输入是否可能导致控制流转变为恶意 代码。Raksha【12】是一个DIFT风格的处理器,它允许了可编程安全政策的灵活性。Minos 【9】使用信息流追踪来

8、动态监控完整位的传输以确保在执行中潜在的有害分支以与【8】类 似的方法被防止。这些方案在检测从假输入到秘密或保护的体系结构区域的动态信息流是十分有效的。然 而,他们不能用来监控一般的数字硬件,因为他们是以更高抽象界别为目标的。出于这个原 因,这些方法也无法检测时序形式中的硬件特定侧通道。GLIFT提供了一个追踪在一般的 数字硬件中信息流的解决方案,包括通过时序通道。当系统中每个单独的字节传输通过布林 门时,GLIFT通过追踪他们来工作。如果输入影响输出的话,信息据说会流过一个逻辑门。 这是通过使用一个额外的标记位,通常被称为污点,和追踪指定的污点传输逻辑来实现的。 污点是一个与系统中每个数据位

9、相关联的标记,它表明了这个特定的数据位是否应该被追 踪。无论何时一个特定的被污染的信息位会影响输出,污点都会被传输。换而言之,如果输 出函数取决于污点输入的改变,输出将被标记为污点。Mu。(b|(c)图1: (a) 一个两输入端的与门。(b)带污点信息的两输入端与门的真值表(不是所有的组 合都示出)(c)两输入端与门的对应追踪逻辑为例如,一个简单的两输入端与门,如图1(a)所示。对于一个与门,只有特定的输入变 化才会导致输出的变化。具体来说,考虑当a=0,b=1的情况,b的值改变对于输出值没有 影响,因为a=0,这意味着从b到O没有信息流。如果b被污染(=0)a未被污染(=0),O 会被污染(

10、Ot=0)因为污点输入并不影响输出。所以的组合集可以从图1(b)中看到。使 用图1(b)中的真值表,一个函数可以将所有类似的输入组合推导为一个追踪逻辑函数, 如图1(c)所示。通过以下同样的方法,可以推算出或门和非门的追踪逻辑,从而获得功 能完整的门系列。使用该系列,任何数字电路的追踪逻辑都可以通过产生每个门的追踪逻辑 来推断出来。这推动了精确追踪所有信息流设计的产生。GLIFT的一个潜在问题是【15】中讨论到硬件系统开销大。然而,GLIFT通常是用于设 计阶段的测试,并不需要部署到系统中。本为重点介绍在测试过程中使用GLIFT来实现在 I2C和USB的非干涉。下面的一节将讨论用来分析在使用G

11、LIFT的总线协议中分析信息流 的一般的方法论。3. 一般分析法由于GLIFT逻辑以门为目标,它一般足以应用于任何数字硬件。本节将讨论当使用GLIFT 分析总线协议信息流属性的测试方法。正如图2中看到的,设计通常以建模在RTL的有限 状态机(FSM)进入。这个分析通常足以以任何可以建模为有限状态机的协议作为目标。其 他的RTL表示也可以使用,但是它用来使设计建模为有限状态机,因为信息流的侵犯往往 发生在状态转换中,我们将在第4,5节讨论这个。珪反信息流规则图2 :测试使用GLIFT的总线协议的信息流属性的方法一旦设计被综合成门级网表,每一个门都与追踪逻辑相关。追踪逻辑函数取决于门函数。此 过程

12、类似于工艺映射,系统中的每个门都被映射为特定的GLIFT逻辑。结果是一个有限状 态机的门级设计,它既包括原始逻辑也包括追踪逻辑。由此产生的设计配备了跟踪逻辑,它可以用来检测信息流。关于测试问题,通常要详尽 测试所有状态是不实际的,因为总的状态数随着输入量呈指数增长。然而,GLIFT通过定 义占用所有污染数据位可能的组合,因为污染数据位的值并不重要,如H5】证明。在我们 的例子中,常见和具体的方案是明确指定的。一旦被指定,该方案就可以在设计中执行,信 息流也可以被观测到。如果非预期信息出现,设计者负责了解这些非预期信息来源于哪里并 且对RTL进行适当的修改。这些修改往往是很微小的,但是在接下来的

13、章节中我们已经发 现了一些非常有效的的解决方案。4. I2C中的信息流本节将讨论前面所提及的在I2C中信息流的测试技术和展示如何获得隔离。I2C是一个2线串行通讯协议,它由一个共用时钟和数据线组成,如图3所示【13】。 考虑到这点,显示信息流很容积被鉴定出来,因为就算是主机和设备之间未曾转移过信息流, 任何设备仍然都可以公开窥探总线。SCL(时舛)SD削敷搪)图3: I2C总线配置。在一跟总线上I2C可以维持几个设备。我们对于I2C的分析遵循与第三节讨论过的相同的测试流程。我们用RTL Verilog将I2C 设备建模为有限状态机。枚举出系统的所有输入组合是不现实的,因为系统中的状态数是呈 指

14、数增长的。作为结果,我们选择分析信息流中一个常见的情况,即主机将数据写入从机) 中。(如图3所示),并且随后将数据写入从机1中。使用Synospys设计编译器将该设计综 合,门级功能使用Modelsim SE 6.6b进行验证。一旦验证,追踪逻辑与每个门相关联,并且 从机0被标记为污点,因为我们希望建东从机0的信息流。在主机和从机0通信过程中,从 机0需要发送一个ACK信号来响应接收数据。主机的状态完全取决于是否收到ACK信号。 因为ACK信号来自于被污染的的从机0,这个ACK信号也会导致主机状态机被污染,致使 主机的污染增长。正如之前提到的,这样一个显示流是我们所预期的,因为主机和从机0 是

15、直接通信。然而,一旦主机随后与从机1通信,受污染的信息流入从机1,这将导致不太 明显的隐式信息从从机0流向从机1。跟踪逻辑在该情况下清楚地识别了两者的信息流。为 了在该情况下,实现I2C总线的设备间的非干涉,所有从机间的信息流需要被消除。以下小 节将会讨论一种有用的技术来检查特定情况下的非干涉。4.1在I2C中实现非干涉要在I2C总线上实现设备间的非干涉,我们需要消除包括显式和隐式在内的所有信息流。 本节将讨论解决方案来保证I2C总线上设备的非干涉。如前所述,因为设备通过共用的线相 互连接,所以他们之间有明显的显式信息流。为了消除显式信息流,我们在总线和设备之间 加入了适配器,如图4所示。该适

16、配器以时分多址接入(TDMA)方式在设备间进行仲裁, 使得仅有一个设备被连接到总线(主机除外)。这样做,由于其他设备始终彼此隔离,显式 信息流便被消除了。由于通过主机的设备间的隐式信息流的存在,这并不能完全消除所有的 信息流(如前面提到的)。图4: I2C配置了一个额外的适配器来执行TDMA。这强制实现了所提出的测试条件下的设 备间的非干涉。为了消除隐式时序信息流,我们为主机引入了一个无污染复位,如此一来,主机在于另 一个设备通信前恢复到一个已知的状态。当TDMA开关出现时该执行租赁单元进行监控并 且将主机恢复到一个未被污染的状态。通过严格控制总线访问时间的执行和将主机恢复到已 知状态,我们将

17、能够消除任何设备间的潜在时序通道。因为GLIFT也捕捉信息流引起时序 通道,我们能够确认这些信息流其实是为特定情况消除的。4.2 I2C非干涉系统开销该设计用前面提及的、相同的测试流程处理,用Synopsys设计编译器进行综合。用 Modelsim SE 6.6b进行非干涉的测试。我们测试了一轮单时隙通信,验证了信息流事实上是 包含其中的。因为信息流被证实包含于时隙中,所以信息流也会被包含在随后的时隙中的测 试方案中。为了获得仿真时间,我们执行了上述的完整方案并且确认主机在不泄露任何信息给总线 上的任何设备的情况下恢复到一个已知的状态JDMA的仿真时间取决于解决方法和GLIFT 测试的设计,表

18、1所示。如图所示,我们测试了从机2、4、8在总线上的情况。不出意外, 基于解决方案的原始TDMA的仿真时间和基于GLIFT的仿真时间都随着从机数量的增加而 增加。因为我们用因子增加了系统的从机数量,这也加倍了硬件和结果的仿真时间。此外, GLIFT逻辑的系统开销相对来说对仿真时间有着显著的影响。然而,这种系统开销是不难 处理的,因为增加的仿真时间对于如此强的信息流保证来说,是可以容忍的。表1:模拟原始I2C设计和GLIFT设计的特定测试方案的所用时间2从机4从机8从机TDMA门设计121ms225ms426msTDMA w/GLIFT192ms389ms770ms表2:非干涉设计中I2C原件区

19、域。这是经测试后的最终系统,并不包含GLIFT逻辑门触发器主机14526从机12524适配器37562此外,我们还需要额外的硬件(适配器)来消除设备间的显式信息流。表2显示了在组 合和非组合区域方面的测试方案中每个原件的大小。需要注意的是我们的主机和从机是此时 是功能最小的,因为我们只关注测试前面讨论的方案。如果额外的复杂系统被添加到系统中 (即,一个全功能的I2C系统),适配器的区域系统开销的重要性大大降低,因为它的功能 已经固定(即,它仅执行仲裁)。执行租赁单元的系统开销是无关紧要也是不显示的,因为 它仅仅需要在定时器到期时将主机恢复到一个已知状态。此外,我们还需要执行一个TDMA 方针,

20、它固有地降低了通信通道的带宽,其原因是一个未使用的时隙被浪费了。然而,该解 决方法在特定情况下才执行由GLIFT提供的非干涉,并且对于一个强大的保证来讲,这样 的系统开销是可以容忍的。5. USB中的信息流与I2C不同,通用串行总线(USB)作为一个星形分层拓扑结构进行工作,如图5所示。 设备没有连接在一根全局总线上,这样显式信息可能在设备间流动。主机节点将信息传输到 所有的集成器和设备中。下行数据(主机到设备)被所有设备观测,上行数据(设备到主机) 只被集线器观测,集成器在数据流【14】路径中。其结果是设备不能窥探从设备发送到主机 的信息,因为信息流在到达主机前只在集成器中流动,如图5所示。

21、设备唯一可能拦截的信 息是从主机发送到设备的信息,因为它是被传输的。因此,假设USB集成器按指定路线发 送信息,显式信息流就不像在I2C中那么重要了。然而,USB中的时序通道和在I2C中一 样的明显。本节将讨论我们对于USB协议的分析以及执行非干涉的解决方案。我们所关注 的是设备间的所有信息流。虽然显式信息流不像在I2C中那么重要,他们仍然在主机传输 数据包给USB时产生。不太明显的类型是隐式信息流,它是由主机上的状态影响产生的, 主机状态影响即一个被污染的设备影响主机的状态。隐式信息流以时序通道的形式出现,因 为主机与设备通信的时间可以被另一个设备观测到。这和之间讨论到的由I2C引起的隐式信

22、 息流十分相似。第一层第二振第三层第四原图5:数据包通过总线从主机传输到所有连接的设备。该拓扑结构为分层星形结构。为了精确的模拟USB协议,我们在RTL Verilog HDL中设计了一个USB主机和设备, 并且按照图2中流程来测试信息流。这些行为Verilog模块是使用Modelsim SE 6.6b在RTL 级别进行功能验证。正如前面I2C提到的一样,因为状态量是指数级的,测试所有可能的组 合是不可行的。因此,我们选择由一个主机控制器和两个设备的典型通行情况进行测试,如 图6所示。我们让主机发送一个显示为写的数据包给设备1,随后再发送数据包。设备1通 过响应一个交互信号或确认数据完成交换。

23、然后主机对设备重复相同的过程。:主机,NX设备珂 :设备2图6:主机传输给设备1并且被设备2检测。随后的传输造成设备1和设备2之间的隐式信 息流流至主机一旦设计在RTL级进行了验证,我们将使用Synopsys射界编译器将设计综合成门级网 表。我们在和RTL级相同的测试条件对门级设计进行模拟,并且验证有等效功能操作的电 路。一经验证,门级设计将进行如追踪逻辑这样的后期处理,从而产生各个。一旦完成,处 理精确的追踪逻辑以外,整个电路就有了它的初始功能了。产生的带GLIFT逻辑的门级设计将再次使用几乎相同的测试方案进行模拟,不同点在于 设备被标记为污点(即污点1)。因此,我们能够确定,两个没有物理连

24、接的设备通过隐式 通道相互影响,如图6所示。一旦主机控制器完成数据发送,它的状态只取决于从设备接收 到的交换信号,该方式与I2C相同。这个信息流被GLIFT捕获而主状态机被污染。随后当 主机传输数据时该污染被传输给设备2,尽管两个设备间并没有用同一根线物理连接,它们 之间仍然会产生隐式信息流。这个信息流仍然是由时序通道产生的。为了解决这个问题,我们需要设计出一种方法来将主机重置到一个一直状态和将下行传 输与特定路径隔离开来。下一小节我们将讨论特别的TDMA解决方案来防止这些非预期信 息流和进行隔离。5.1在USB中实现非干涉TDMA解决方案的工作原理是使用TDMA单元来修改主机,从而在污染和非

25、污染间进 行仲裁。换而言之,主机用一个特定的状态在固定时隙中运行。一旦时隙到期后,主机会转 换到另一个状态(即从污染转换为非污染)。如果前者是一个污染状态,该转换会是主机中 所有的硬件回到非污染状态。定时器允许每个状态机以相互独立的方式运行。,因为状态机 对于仲裁没有印象,所以固定的TDMA时隙防止了状态机间的时序信息流动。从概念上讲, 主机中的TDMA单元扮演着两个状态机的监管的角色,并且对于污染和非污染状态何时运 行有着完全控制。为了占据显式信息流,当设备的时隙不足以保证他们在总线上窥探主机时, 设备处于三态。通过这些新功能,我们用图2中的测试流程综合设计并测试方案。我们对方案进行了一 个

26、完整时隙的模拟,并且验证了信息流是包含其中的。同样,这证明了为了特定的方案中随 后的时隙,非预期信息流被消除了。这其中包括了流过时序通道的信息。如同I2C,该解决方 案产生了一些硬件和性能的系统开销,下一小节将讨论更多有关细节。5.2 USB非干涉的系统开销基于USB解决方案的新TDMA的确对仿真时间有轻微的危害。但是,由于大部分硬件 不需要被再生产,新TDMA造成的硬件系统开销很小。具体来说,我们只需要额外的逻辑 来对状态进行仲裁。一旦定时器到期,新状态被装入主机,旧状态以一种类似于上下文切换 的方式被覆盖。所有内部的缓冲器,计数器等不变化。初始USB设计的仿真时间和配有GLIFT的仿真时间

27、可在表3中查到。与I2C相同,前 面提及的测试方案在总线上的设备2、4、8上执行。这意味着我们需要在主机中分别赋值2、 4、8状态机。这样做是因为如果非干涉在所有设备间执行,状态机需要主机的每个输出端 口。与I2C不同,模拟时间不一定是设备引入时间的两倍。我们猜测这是因为大部分主机中 的硬件保持不变造成的。因此,将设备引入系统增加的仿真时间等于与设备成正比的量机加 上主机中由于额外的仲裁逻辑产生的少量系统开销。另外,带GLIFT的设计的仿真时间和 没有GLIFT的设计的设计仿真时间的数量级是大致相同的。同样,我们认为有GLIFT的系 统和没有GLIFT系统的时间差比执行测试方案重要的多。表3:

28、模拟上述的USB有GLIFT和没有GLIFT测试方案所花时间2个开发设备4个开发设备8个开发设备TDMA门设计110ms171ms281msTDMA w/ GLIFT187ms291ms531ms表4:复制状态机的区域系统开销有限状态机数量区域开销212.6%433.4%877.4%16157.5%32322.9%复制一个单有限状态机的操作使初始主机控制器的区域了增加了 12.6%的系统开销。该 系统开销包括了定时器和逻辑在状态机间选择的开销。假设非干涉要在所有设备间执行,那 么其他的有限状态机需要主机的每个端口。考虑到这一点,区域系统开销随着有限状态机的 增加呈新型增长,如表4所示。这些结果

29、表明,因为系统开销量的增加和与TDMA和额外 仲裁逻辑有关的常量因子有关,所以大部分的硬件可以重新使用。因为状态机的数量很多, 系统开销变得相当大,原因是额外的仲裁逻辑开始在基本功能逻辑中占主导地位。该设计的 重大缺点是性能问题。因为任何TDMA都基于设计,如果当时隙可用时设备却并未使用, 那么时隙就被浪费掉了,这样可能会降低性能。然而,由于强信息流方法开来的好处,这样 的性能降低是可以容忍的。6. 结论本文提出了一种证明在总线协议中信息流动方式的方法,即追踪包括流过硬件时序信道 在内的所有信息流。我们介绍了一种可以用来测试总线协议中信息流的常用技术。在两种常 用的总线协议,I2C和USB,中采用了该方法,并且揭示了分别在I2C和USB总线上的设 备间的非预期信息流。我们提出了修改系统来执行设备间的非干涉和使用GLIFT来为特定 的测试情况提供非干涉方法。因为修改系统,我们又讨论了与仿真时间和硬件系统开销有关 的系统的潜在影响改变。7. 致谢作者要感谢读者的十分有价值的回复,这提高了本文最终版本的质量。该项工作由位于 美国国家科学基金会名下的格兰特CNS-0919581支持完成。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号