信息流在I2C和USB中的隔离.docx
《信息流在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 是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 I2C USB 中的 隔离

链接地址:https://www.31ppt.com/p-5012779.html