基于使用机器到机器(M2M)等协议的联网设备不断普及的发展趋势,网络(特别是无线网络)的安全性越来越受人们的关注。外面的世界无处不在,仍有许多人想要建立这些连接所需的社会性和关键性基础设施。
针对基于MCU、MPU或FPGA的嵌入式无线或M2M系统,特别是在当今普遍联网但易受的世界中,良好的安全性要求采取以下这些全部使用了标准加密算法的措施:
使用IPSec的虚拟专用网安全(VPN)
使用SSH的安全登录和系统交互
使用SFTP的安全文件传送
安全的电子邮件——加密的电子邮件和安全的邮件服务器链
安全的网站服务器——https
安全的管理——SNMP v3
使用加密和检查过的映像进行安全启动
本文简要讨论了上述各项安全措施应用到M2M的情况以及总的系统级考虑因素。M2M系统要求高度的安全性来信息和系统。没有这种无缝的集成和测试,就会存在安全漏洞,系统很容易受到,并可能发生的后果。
在M2M系统中,不管是哪种无线类型,所有无线链都会使用某种加密技术来无线传输的数据。在一个节点内或两个节点之间,负荷数据以明码的方式存在于/无线混合系统中。一种方法是使用传输层安全(TLS)协议。TLS作为网络中两个节点之间的端到端加密技术,可确保数据不管走哪条径总是安全的。
如图1所示,TLS很容易配置和使用,正是这个原因,TLS是人们非常青睐的一种通信安全方法。TLS的典型实现遵照的是针对应用程序可移植性开发的事实上的openSSL接口标准。这种应用程序编程接口(API)是套接字(socket)接口中的表示层,可为应用程序提供安全性。
图1:TLS可端到端通信的安全。
在套接字通信之上提供TLS层可以为安全应用提供安全的套接字通信,而直接使用套接字的通信是不安全的,因为所有数据都是明码传输。
使用IPSec协议的虚拟专用网(VPN)
许多时候,网络中两个节点之间的所有通信都要求是安全的。在这种情况下,可以建立虚拟专用网(VPN)(图2)。这种协议深入TCP/IP实现内部,对两个节点间传输的所有数据包进行加密。因为IPSec是作为网络层的一部分,因此节点之间的所有套接字调用都会自动加密。
图2:在两个节点之间使用VPN和IPSec可以确保节点之间所有通信业务的安全。
有人可能会问,既然如此,为什么我们还要使用其它方法,用这一种方法不就可以了吗?原因有两个。第一个原因很好理解:VPN的建立相当麻烦,会遇到很多问题。正是这个原因使得它的使用面不如想像的那么广。
第二个原因是最好的安全性需要建立在各层中。通过提供各个安全层,被攻破的难度就要大得多。这与打开多重锁着的门才能进入金库是一个道理——每个层都增加了入侵难度。基于这个理由,最好采用更多的安全措施,而不仅是VPN.
安全壳
为了登录并在远程系统上工作,小型系统上经常使用telnet.现在通过增加额外的闪存空间,你可以运行安全壳(SSH)(图3)。SSH就像是一种安全的telnet,但并不是运行在TLS之上的telnet.SSH有它自己的协议。它通过在MCU上运行的SSH服务器提供安全壳访问。
图3:SSH代替Telnet提供节点间的安全通信。MCU产品只提供SSH服务器,该服务器。
安全文件传送
只是因为在使用文件传送协议(FTP)时使用了登录身份和口令,许多人就认为这是安全的传送。事实上,即使是口令在网络上也是明码传送的。更好的方法是使用安全文件传送协议(SFTP)。SFTP并不是在TLS上运行的FTP.而是如图4所示那样,是另外一种用于加密文件传送的特殊协议。