如何确保物联网安全?
2016-06-01贸泽电子WarrenMiller
贸泽电子 Warren Miller
如何确保物联网安全?
贸泽电子Warren Miller
物联网开辟了连接智能设备的新时代。这些设备的集成运转具有无限的开发潜能,且大部分功能都极具个性化。物联网的价值大多来自于满足客户个人立即性需求的定制产品和服务,而物联网面临的最大挑战则是确保未授权访问机密信息和已授权发布信息的安全。
所幸,有可循的方法在确保机密信息和通信安全的同时,可对信息发送者和接收者以及安全共享对象进行验证。尽管这种方法涉及大量的数学运算,包括在内核中进行复杂的加密运算,但这些数学算法可以在我们使用的物联网设备中进行,因而无需了解“如何”实现加密运算。不过,了解加密算法以及相关设备的背景可以让我们更加安全地置身于勇者缔造的物联网新世界中。
图1 物联网需要高级安全性能来保护我们的隐私
1安全通信
早期使用的加密方式是使用替换代码,即用一个字母代替另一则短信息。如果接收方了解替换公式,便可轻松将替代字母A转成B,再将B转成C,解码信息将变得轻而易举。看到加密信息的任何人无法了解实际内容,除非他们也知道密钥。不过可惜的是,计算程序多做几次试错尝试便可轻松解码。
在现代数字世界中,我们可以使用更复杂的方法来加密消息——利用计算机甚至MCU的强大处理能力。这些方法虽仍然使用密钥和加密算法的概念给信息加密,但通过数字处理技术(加密算法函数)使得在没有密钥的情况下无法轻松解密消息。不过,使用现代计算机的处理能力也可能很容易破解过于简单的代码,因此,为强大的数字计算机创建复杂代码来打破“暴力”(反复试验)方法成为急切的需求。
使用算法创建难以打破的加密函数即可发现难以解决的问题所在,但有了问题“提示”便可更快解决。以两个大因数的乘积为例,如果仅知道乘积数,确定两个因数将耗费大量的精力,若使用此乘积方法加密信息,仅在了解两个因数(即提示)的情况下就能迅速进行解密。除此之外,还可以选择公开乘积数为“公共”密钥,且任何想发送安全信息的人均可使用此密钥,不过他们知道只有某些了解主要因素的人才了解如何解密信息。如果有人也有一个公开密钥,那么在回复消息时可以使用您的公开密钥加密消息,这样便可保证通信渠道的安全。安全通道的共用方式便是发送加密算法的公开密钥,这比公开密钥系统需要的计算量更小。
图2 公共和私人安全密钥将用于保护我们 在物联网虚拟世界的隐私
2信息验证
由于任何人都可以发送加密信息,任何有关加密处理的人均可验证发送方,所以可以使用公开密钥验证发送方的身份。譬如,您将加密信息返回给发送方时,可以使用一个随机数或要求对方反馈加密信息中的数字,以此来验证对方身份。如果随机数字被接收且正确,那发送方便已经证明他们知道如何使用有关公钥的密钥解密信息。这样,您便可以确认信息的正确性,且确认信息是来自发送方。
3信息的完整性
确保信息没有被第三方截获和篡改也是至关重要的。如果信息被作为文本在电子邮件中发送,翻转几位字节通常会使文本不可读,但您可能认为所有这些活动很寻常。然而,若涉及嵌入式MCU的代码更新,几位字节的改动可能使整个代码发生变化,使MCU无法正常运转。如果MCU的工作是在一个大型通信开关中调节温度,由此产生的后果便可想而知。因此,必须找到一种方法来保证信息的完整性,即使是信息篡改也应该立即被探测到。
最常见的方法便是生成一个标签(通常称为信息验证代码或MAC),这是一种复杂的方式,取决于信息主体的所有字节,还有更复杂的检测字节是否被翻动的奇偶校验法。此标签随信息主体一起被添加和加密,接收者可以解密信息及标签,然后再从解密的信息主体中重新生成标签,以匹配信息中嵌入的没有被篡改的字节。注意,MAC需要一个共享密钥,以确保没有其他人可以生成MAC。
可使用行业标准创建一系列可保护信息的标准,高级加密标准(AES)由美国国家标准与技术研究院(NIST)创建,是一种最通用的标准,且通常大小为128位、192位和256位。发送方和接收方都使用相同的密钥——即所谓的对称密码,而不是发送方和接收方使用不同密钥的公钥系统,因此,对称密码通常在单一会话中使用公钥进行信息交换时使用。
MCU通过内部的专用硬件已经能够轻松实现AES安全功能,例如,德州仪器MSP430FR5969 MCU系列包括专用的硬件AES加速度外围设备,可实现需要的加密和解密功能。外围设备还包括在加密或解密操作期间所需要的固态存储内存(可通过安全密钥实现一系列的转变、替换、互换和异或运算),以及安全密钥。设计工程师仅仅需要在内存和指定的函数中加载128位密钥进行加密或解密,便可自动启动,在固态内存中读取加密或解密输出信息。
图3 德州仪器MSP430FR59xx MCU 中的AES硬件加速器
可以在其他常见的加密功能函数中找到类似的硬件加速器,如用于生成验证摘要的MAC函数。最常见的MAC算法是由NIST创建的安全哈希函数(SHA)标准,也适用于MCU的硬件加速器,例如Freescale Kinetis K6x系列设备的硬件加速协处理器便可适用各种不同的标准,包括AES和SHA。该协处理器可单独在CPU中运行且使用内存映射接口,这样命令和数据便可在加密加速器装置(CAU)中缓冲。由于此装置是协处理器的架构,因此可以在没有CPU干预的情况下进行操作,且若加密函数占处理需求的比重大,其还可以大大改善操作效率。
4其他实现安全功能的方法
除了提供硬件加速外设和协处理器外,制造商还提供了一些其他安全功能来保护我们在物联网世界的隐私,例如Atmel公司生产了一款特殊的安全存储设备AT88SC0204CA,它使用对称的相互认证、数据加密和MAC操作,以在通过MCU串行接口标准访问系统时为敏感信息提供安全的存储位置,并且还具备防篡改检测电路,即使有人试图攻击硬件来访问信息,也可以确保此信息的安全。
另一种实现安全功能的方法是以更专用的方式结合MCU进行操作。Maxim生产了一系列使用SHA-256硬件在标准机接口中安全传送数据的设备。MCU外围认证器(如Maxim DS24L65)将一个标准的I2C接口转换成安全机接口,再连接到各种安全机外围设备(如Maxim DS28EL22)。Maxim DS28EL22是2 Kb EEPROM,芯片是基于SHA-256的MAC硬件和独特的64位ROM ID代码,从主机到代理机的身份验证用来保护DS28EL22用户内存,防止内存被不可信的主机篡改,可以通过用户内存中的数据、芯片保密数据、主机随机数据及64位ROM ID来运算,由DS28EL22生成SHA-256 MAC,确保安全性能。注意,这些设备可以包含在标准的使用I2C连接的外围设置(如智能传感器)中,以对预期制造商的传感器进行验证,并确保他们没有被篡改。使用传感器读数为公用事业和相似的“到期即付”企业创造可观的收益也非常重要。
总结
可以使用多种方法保护机密数,无论是使用专用加密技术支持公共安全算法的MCU,或使用片外密码记忆来存储敏感信息,还是在硬件级别进行身份验证以确保外设的可信性,这些数据都是通过数学运算得到保护,并且是大量的数学运算。