许多物联网(IoT)设备都是咱们日常日子中所运用的,例如家电和恒温器等,因而,网络安全应是IoT体系供货商首先要考虑的问题。人们在日常日子中遇到问题最简略让人懊丧:假如您的冰箱由于软件缺点而停止作业,这是不是也会成为头版头条!
IoT产品在安全上有各种层面的考虑,从根本的数据流加密到用户和设备级的认证等。在这篇文章中,咱们要点介绍网络级安全。
一个典型的IoT设备坐落私有网路中,在防火墙的后边。这种体系结构既有长处也有问题。一方面,它减少了设备与防火墙和Wi-Fi网络自身的安全触摸,无论如何,减轻了网络供货商的安全职责。安全署理有助于下降CPU本钱。另一方面,防火墙阻挠了云服务器出于经过移动运用程序进行操控的意图而直接衔接IoT设备。
有些技能能够协助旁路防火墙,支撑从云端到IoT设备的输入衔接。可是,许多这类技能利用了缝隙,并不是一切网络都支撑这样做,并且,这种体系结构很难规划一种真实安全的 IoT设备。旁路防火墙最简略、最安全、最牢靠的办法是IoT设备契合“仅输出衔接”规矩:一切衔接都是从设备向云端建议,然后,设备应坚持这一衔接是敞开的。这一办法简略并且更安全,这是由于它不依托防火墙的敞开端口,也不依托让防火墙完结数据流路由的技能,例如,NAT会话穿越(STUN)办法等。
树立衔接后,咱们应挑选怎样高效的运用衔接,在呼应和资源占用之间到达均衡。HTTP 长轮询是一种双向通讯,根据“由内而外输出 规范的办法 (图1)。
图1. 双向通讯,根据由内而外规范的办法
在长轮询模型中,IoT 设备向服务器宣布HTTP恳求。服务器推迟对HTTP恳求的呼应,直至经过了预先设定的时刻周期,或许直至收到要求呼应IoT设备的指令或许恳求。假如指令是有必要的,服务器会当即呼应指令,IoT客户端处理指令。IoT客户端会当即宣布另一服务器 HTTP 恳求,开端循环。假如指令或许恳求需求向服务器供给成果,那么,它会在新的长轮询恳求中进行。
这一办法有几种长处。从IoT设备的视点看,HTTP简略,轻量,并且还有许多支撑库。HTTP还供给了互联网路由功用,包含对长轮询所需求的继续衔接的支撑。
HTTP还支撑恣意负载,您能够灵敏的挑选与设备相关的音讯。咱们成功的在长轮询上运用了JSON/REST语法,以及谷歌协议缓冲音讯。
从云端服务器的视点看,大部分作业结构都是规划成处理HTTP恳求,支撑服务器开发人员自在的运用现有作业结构和库以加快开发。
HTTP 长轮询还支撑服务器经过简略的完成更长的呼应延时,然后操控带宽利用率。并且,经过添加简略的“轮询定时器”,迫使 IoT 客户端延时HTTP恳求,这样,您很简略取得真轮询模型,一方面,献身呼应时刻,而另一方面,下降了对资源的占用,能够运用电池供电。
WebSockets 是另一种挑选,与HTTP长轮询十分类似。WebSockets与HTTP帧头合作运用,功率十分高。WebSockets还供给实时设至极服务器提示功用,某些运用会需求这一功用。为取得长轮询模型的实时提示功用,有必要运用独自的套接字,以坚持服务器操控的长轮询通道。
可是,并不是一切服务器作业结构都支撑WebSockets,在很少的一些实践运用中,网络布线会成为问题。在不远的将来,WebSockets 会是很好的挑选,可是现在而言,我不会运用它,除非您的方针环境支撑它。
这些技能的根底都是传输操控协议(TCP)套接字。合理可行的安全模型在这一套接字衔接上对数据流进行加密。尽管最近有些欠好的音讯,可是安全套接字层(SSL)或许传送层安全(TLS)仍然是加密层最好的挑选。SSL 经过的检查最多,支撑最多,也最被简略了解。
您想过要创造自己的协议?考虑到最近的安全缺点,例如,现在知名的“Heartbleed” 缺点,它来自一些大公司的SSL和敞开源库,这阐明了很难开发一种真实安全的协议,更不用说正确的完成它。因而,在测验自己的安全计划之前一定要三思。
可是,SSL 本质上是一种大规模协议,在衔接树立过程中需求许屡次握手。这种开支进一步阐明一切通讯应运用继续衔接办法,好在HTTPS长轮询(结合TCP套接字“坚持衔接”,因而,每次轮询不会从头翻开)合适这一运用。
SSL还会占用许多的代码空间和运行时存储器。关于资源丰富的云服务器,SSL资源开支并不是太大的问题,可是关于低本钱IoT设备却否则,这是由于存储器和CPU功耗是首战之地要考虑的。当考虑IoT设备的SSL库时,假如您挑选的SSL库供给了选项来禁用您不运用的功用,那么应评价您需求运用 SSL 的哪些功用。您还应该看看方针硬件能否协助您减轻负载。SSL 根据高档加密规范(AES)、安全哈希算法(SHA),以及其他规范暗码算法。许多硬件渠道供给专门的加密硬件,把这些核算从CPU中卸载下来。
最终,这些办法实践上是在资源和了解安全需求之间到达均衡。仔细的考虑,提早规划好有助于处理许多扎手的问题。