基于MCU、MPU或FPGA的嵌入式M2M系统安全解决方案
基于使用机器到机器(M2M)等协议的联网设备不断普及的发展趋势,网络(特别是无线网络)的安全性越来越受人们的关注。外面的世界危险无处不在,仍有许多人想要破坏建立这些连接所需的社会性和关键性基础设施。
针对基于MCU、MPU或FPGA的嵌入式无线或有线M2M系统,特别是在当今普遍联网但易受攻击的世界中,良好的安全性要求采取以下这些全部使用了标准加密算法的措施:
使用TLS的网络通信安全
使用IPSec的虚拟专用网安全(VPN)
使用SSH的安全登录和系统交互
使用SFTP的安全文件传送
安全的电子邮件——加密的电子邮件和安全的邮件服务器链路
安全的网站服务器——https
安全的管理——SNMP v3
使用加密和检查过的映像进行安全启动
本文简要讨论了上述各项安全措施应用到M2M的情况以及总的系统级考虑因素。M2M系统要求高度的安全性来保护信息和系统。没有这种无缝的集成和测试,就会存在安全漏洞,系统很容易受到攻击,并可能发生可怕的后果。
使用TLS进行网络通信
在 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所示那样,是另外一种用于加密文件传送的特殊协议。
图4:SFTP是一种新的协议,支持文件传送时的加密和认证通信,可替代所有数据都是明码传送的FTP
安全的电子邮件
邮件服务器之间的业务通常用TLS加以保护。但TLS只能保证只有授权和认证的用户才能使用服务器,而监视网络业务的任何人都无法阅读邮件。基于这个理由,如果你使用SMTP协议从基于MCU的M2M传感设备安全地发送通知,你也需要TLS(图5)。
图5:使用TLS的SMTP传输可以确保只有授权用户才能使用电子邮件服务器,并加密发送数据。如果消息在发送前得到了加密和签名,那么这些消息就能被拥有正确消息密钥的人加以鉴权,确保其私密性。
当然,在服务器上使用的安全性并不能应用于任何给定节点中的消息内容。因此消息需要签名和加密才能确保自身的安全性。
安全的网站服务器访问
为了安全地进行网站页面访问和数据传送,可以使用HTTP Secure(HTTPS)。采用任何M2M配置的网站服务器(图6)都要求支持HTTPS.HTTPS是联合运用TLS以及HTTP协议实现的。网站服务器本身可以通过HTTPS获得加密的数据包进行处理,并提供传送之前加密的解过密的网页。
图6:浏览器具有足够的智能使用TLS上的http进行连接,从而支持安全的网站访问。http服务器也接受TLS上的请求,以便提供安全的网页访问和更新。
安全管理
为了管理远程设备,我们经常使用安全网络管理协议(SNMP)。SNMP提供了查看设备内部细节、重新配置设备、执行各种命令、读取数据、读取记录和设置变量的一种方式。为了做到这一点,要求使用最新的安全版本(SNMP v3)(图7)。许多实现人员试图使用较早版本的SNMP,但这些版本都是不安全的。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码