我们经常担心自已的个人信息被放进或存储在没有安全防护措施的系统中。网络间的通信所需要的安全保护级别取决于信息的重要程度。
常见的安全措施
对嵌入式系统来说,安全防护措施涉及到一个最基本的概念——物理安全性。也就是说,如果像对待珍贵物品那样将系统“锁”起来,那么丢失信息的风险将大大减少。这意味着需要将嵌入式控制器及其它关键任务系统放在上锁的房间内或安全的箱子中。这种方法适用于那些可以将系统“包装”起来的应用,但也往往会导致通信掉线、阻塞或拦截。这种方法适用于不少有线和无线系统。有线系统在一些安全级别较高的应用中具有不可替代的优势。举个简单的例子:如果发生黑客入侵,只要掐断电线就能使关键数据不外泄。
应用公共密钥加密和椭圆曲线加密能获得非常好的保护效果。这些方法广泛用于电子商务及其它需要高级加密的应用领域。然而,这类方法并不适用于那些对安全级别要求较高的嵌入式系统。有多种软件和硬件技术可以用来使数据“散列”,从而使信息在存储和传输期间难以被拦截。
一种保护嵌入式系统存储与传递数据的简单方法是使用滚动码。滚动码已出现了很长的时间,例如二战期间的恩尼格码密码机。现代滚动码加密原理是采用串行移位寄存器以及异或函数,使伪随机码确定性增强,但逆向工程更加复杂,如图1所示。
图1 流动码加密
该原理下异或函数的一个输入是正传输(或加密)的当前位。只要知道最初锁存到寄存器中的起始的种子值,该函数是完全可逆的。在其它加密方案中使用时,这种技术需要填充信息,以确保有足够的数据来防止泄漏密钥。此外,过长的消息可能暴露伪随机码发生器的模式。网络中大多数数据包流量都属于这类加密的范畴。
时变加密
数据安全性的一个重要方面是确保密钥不泄密。即使采用公共密钥加密,如果私人密钥泄密,系统也会崩溃。一个确保密钥永不泄密的简单方法是不断发布新密钥。一种较好的做法是使用当前时间。如果每个设备知道在某个时间废弃密钥并开始使用新密钥,将很难对密钥进行逆向工程,因为它已过期。这种思想的一种简单应用是酒店磁卡钥匙。酒店的电子锁已编程为接受编码的磁卡,但只在您住宿期间有效。如果没有其他人使用房间或者对电子锁重新编程,电子锁内的时钟会控制钥匙的有效性。也就是说,电子锁会在一段时间后使磁卡钥匙无法打开房门。
现在的问题是确保每个人都知道电子锁会在何时令磁卡钥匙失效。有多种方法可以解决这个问题。一种方法是与主时钟同步,这需要使用协议来维护当前时间。所需协议取决于更新密钥的时间间隔,可以使用带有时间信息的周期性数据包(如NTP或网络时间协议),也可以使用更加准确的协议,如IEEE1588精确时间协议(PTP))。PTP提供非常高的准确性,无需每个节点具有GPS接收器或铯原子钟。以太网物理层器件,如美国国家半导体的DP83640,内置了这项功能,且可以与任何媒体访问控制器(MAC)一起工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)