《一种安全的芯片间串行数据传输协议(共6页).docx》由会员分享,可在线阅读,更多相关《一种安全的芯片间串行数据传输协议(共6页).docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上I2CSec:一种安全的芯片间串行数据传输协议Jess Lzaro*, Armando Astarloa, Aitzol Zuloaga, Unai Bidarte, Jaime Jimnez摘 要本文提出了一种安全的芯片间I2C通信(集成电路)协议。以著名的AES-GCM加密验证算法被用于该低速串行通信安全协议。这种通信协议允许使用这一标准在有安全问题和计算资源被限制的应用中。硬件结构和通信协议都已被提出了。本文中提出的这个关于I2CSec的成果已经在FPGA器件上最优化过了。1 概述本文提出了一种可以保证安全的基于I2C的通信网。这种低速的通信网可以被用来控制嵌入
2、式的各种外设。由于这些嵌入式系统的简单性和有效性,这些嵌入式系统被各种工业应用所提出。但是,当使用这个通信网时,系统的安全和隐私是一个问题。在一些关键的控制应用中,至关重要的是,获取数据是从传感器中而不是一些恶意用户。本文首先提出这种方法,在满足安全问题时,同时,继续保持嵌入式系统的价格约束。由所取得的成果提出从机或主机(和配置数据)是不能被篡改的。换句话说,该成就只关注安全通信。对于传统的嵌入式处理器来说如果加密计算是由软件来完成,那么这种加密算法的计算要求会是非常之高以至于大多数嵌入式系统的计算能力就会有很高的要求。对于许多嵌入式系统而言,它们是达不到这种要求的【1】。为了解决这个不足,最
3、常用的工业应用处理器(如ColdFire处理器)会有一个同一设备嵌入的加密芯片(crypto-cores)2。用这种方法,让加密和解码由硬件来完成,以使这个任务释放主处理器。这种方法的主要缺点是看起来整个系统的灵活性被限制了。这些嵌入式处理器是ASIC技术。因此,无论是对软件接口和通信媒体控制器的外设或核心,加密的核心是固定算法的条件和接口的实现。此外,基于ASIC处理器的解决方案,工业上大规模采用的基于核心的、采用现场可编程门阵列(FPGA)系统集成的设计方法,从而导致片上可编程系统(SoPC)平台的出现3。考虑到由于FPGA系统的可重构性而引起的重复性工程费用的事实,数字系统组成的可复用I
4、P核的数量和多样性大大增加4,5。SoPC在不同方面是非常灵活的:IP核和处理器的种类和类型、总线体系结构、软硬件协同处理等。这种灵活性允许非常短的时间上市,并促进为多种行业和应用定制器件的设计。SOPC技术面临的安全通信模式具有最大的灵活性:根据不同的应用程序,FPGA器件中可以包括不同的加密核和通信媒体控制器核。对于SoPC的安全通信部分,设计师负责找到最好的FPGA资源占用和数据吞吐量权衡以及最佳的IP许可成本。通常,微控制器一直占嵌入式系统技术市场的主导地位。然而,如今,可重构平台提供的计算能力和灵活性更接近这个市场。FPGA主要的供应商,Xilinx和Altera公司,提供面向消费者
5、市场的低成本器件。实际的选择难以解释高成本的定制ASIC处理器为基础的接近中等规模的生产。事实上,一些领域采用基于核心的FPGA系统集成设计方法6。这种设计流程的简化和复杂系统的快速设计允许非常短的时间上市,并促进为多种行业和应用定制器件的设计。芯片到芯片的通信连接存在于大多数数字系统中。SPI或I2C的标准只是一种范例,并且它们的使用正在扩展到安全敏感的应用,如传感器连接,RFID,生物识别设备等等。这些链接可以受益于FPGA系统以得到安全通信。该技术的应用目标是位于有安全感的环境中,例如,工业装置中安全传感器的处理器通信。当domoticz应用想要提高他们的入侵检测能力,他们将从安全的通信
6、方案获益巨大。必须指出的是,该算法不仅可以防止窃听,而且它也能保证接收到的信息是从一个受信任的来源。2 安全低速通信方法在安全低速通信系统主要有两个方面。其中之一是无线通信和其他工业控制,如SCADA。我们提出的算法也适用于工业控制,特别是因为I2C是一个非常普通的微控制器和传感器之间的通信标准。因为我们的方法是和工业控制高度相关的,所以我们将以SCADA系统开始。SCADA用于监控和数据采集。SCADA这个术语通常指集中系统监视和控制整个站点,或在大范围内展开的复杂系统。SCADA可以控制高度敏感的过程,所以它的安全是一个问题7。在过去,SCADA系统是专有的并且被限制在它们控制的站点。这假
7、定任何攻击者必须获得设备的物理通道,并且他必须有非常专业的知识。在过去的几年,SCADA系统正在从专有到开源,从孤立到网络控制系统。这意味着他们更加易受攻击,因此安全措施是必要的。特别是这些措施都集中在互联网接入部分((DNP3 8, RTAP 9, IF-MAP 10, Realflex 11)。但是有一个问题出现了,原安全假设是否正确?大多数现场通信不是IP,它们是使用Modbus等标准的现场通信12,它们都没有安全顾虑。这意味着,当我们连接网络时,无论我们有多少安全防护措施,入侵者都可以绕过它们而获得物理访问。另一种不同的情况是无线传感器网络(WSN)13。在这种情况下,传感器的物理安全
8、就会受到损害,所以必须采取措施确保安全。通过认证(知道传感器真的是我们的东西)和加密(使我们的通信隐密)。无线传感器网络有一些特殊性,首先是资源,即计算能力。其次是部署可能无法控制,例如,他们可能是空投。安全协议的例子包括TinySec14, MiniSec 15, SPINS 16,等。本文提出的协议填补了这两个系统之间的间隔。它专注于有线系统,有备用的权力,但没有处理权力。这个定位是决定性的控制,但物理安全并不能得到保证。这种间隔domoticz应用也许会感兴趣,Lonworks17 提供基本认证计划,KNX18有几个安全建议,如EIBsec19。3 I2CI2C总线是一种事实上的世界标准
9、,现在应用在超过50家公司制造的1000多种不同的集成电路上。两根线,串行数据线(SDA)和串行时钟线(SCL),使挂接在总线上的器件相互传输信息。每个器件都可以通过一个独一无二的地址被识别(无论是微控制器,LCD驱动器,内存或键盘接口),也可以作为发射器或接收器,这取决于该器件的功能。在I2C总线上时钟信号始终是由主机设备生成的,每个主机在总线上传输数据时产生自己的时钟信号。在所有命令发生之前必须有一个起始状态并且在所有操作结束之后必须有一个终止状态。在串行时钟线为高电平同时串行数据线由高电平到底电平转换时,定义为起始状态。在串行时钟线为高电平同时串行数据线由低电平到高电平转换时,定义为终止
10、状态。起始和结束状态总是由主机产生。在开始条件之后总线是繁忙的,在结束状态之后的一定时间总线是空闲的。每个放上SDA线的字节必须是8位的长度。每次传输可以发送的字节数是不受限制的。每个字节必须跟随一个应答位。首先传输的是数据最高位(MSB)。应答发生在每个字节之后。该应答位允许接收器发送信号到发射机来确认该字节已成功接收和另一个字节可以发送。主机生成所有时钟脉冲,包括应答位时钟。在读操作时,如果主机接收器发送不应答信号,则它指示从机发送器这个发送的字节是最后的字节。4 AES-GCMAES-GCM的主要特点是,用于验证的伽罗瓦域乘法可以很容易地并行计算21。这种方法比使用串行模式的认证算法允许
11、更高的吞吐量,比如CBC(密码分组链接)。GCM模式应用于IEEE 802.1AE(MACsec) 22 以太网安全标准,ANSI(INCITS)光纤通道安全协议(FC SP) 23 ,IEEE P1619.1磁带存储规范 24 ,和IETF的IPSec标准 25 。其他有趣的一点是,因为它是一个计数器模式算法(加密的是一个计数器,而不是数据,加密和解密是使用相同的电路)。最后,认证是加密过程的一个组成部分,因此,不会招致额外的硬件或软件。GCM加密操作定义的几个方程如下 26 。第一步是计算H,即GF128的一个乘积因素。为了这样做,一个向量组成的128个零是利用K密钥加密,结果是向量H。第
12、二步是计算计数器的初始值。这个初始值(Y0)可以用两种取决于初始向量(IV)长度的不同的方式计算。如果初始向量是96位宽,Y0得到31个零和一个附加的“1”。否则,Y0是H矢量和IV乘积的结果,即 GF128。当一个新单词被加密和认证时,这个初始计数器递增。此增量只影响计数器的低32位。加密数据C是明码文本P与使用初始密钥加密计数器E(K,Yi)的异或。所使用的算法是128位的AES。必须注意的是,最后的明码数据可能不是128的倍数。在这个例子里,明码文本是使用 0 填充,因此产生的C只有许多有效位的原始P数据。数据验证是使用一个GF128乘子乘以输入数据H矢量进行。该乘法器的输出表示为X,X
13、的初始值都是零向量。数据A只能被通过乘数认证。这个数据是被使用零填充为128的倍数的。在第二阶段中,所有经过加密和认证的数据都经过乘法器,要做到这一点,就要使用C矢量。C矢量也用零填充为128的倍数。最后阶段对应于A部分和C部分的长度的乘法。为了这样做,在双方位的长度的计算,要用零填充64位。两个长度然后被连接,先A段后C段。此值用于如下乘数。该认证标签T的值是使用最终的X值和计数器的初始状态加密的值实现。由于算法的内部结构,解密是通过同样的方法作为加密方程(encryption.equations)scl=0scl=1&sda=0scl=0&i2c_stream_cnt=8scl=1&sda=0scl=0&i2c_stream_cnt=8scl=1&sda=0scl=0&i2c_stream_cnt=8scl=1i2c_start=1&wr=15d25d65d45d8IDLE5d95d75d55d35d1专心-专注-专业