人们对物联网的安全性有着广泛的高度关注。互联网中充斥着大批游手好闲的人,他们以入侵网络设备为乐,这是不诤的事实。但许多嵌入式开发团队在之前从来没有处理过安全问题,且仍在试图决定什么是他们需要做的,如果有的话。
为了要获得有许多物联网设计经验人士的观点,笔者日前采访了物联网平台制造商Electric Imp的共同创办人和首席执行长Hugo Fiennes,他日前才在今年的ESC Boston中针对物联网的安全发表过演讲。他提出了很多建议,其中最重要的三条守则将是一个很好的起始点,让开发团队可以顺利地迈向物联网的安全大道。
![](http://www.ck365.cn/data/upload/201507/10/14-46-25-14-0.jpg)
第一,制定一份计划,让你的设备能够以安全的方式在远程更新的固件。安全领域的市场态势一直都在不断地变化。那些今天可以压制攻击者的方法,明天可能就不管用了。但客户还是会有合理的期望,希望他们所购买的设备将可提供一段很长时间的良好服务,而且不会带来许多麻烦。所以,几乎可以肯定是,物联网设备将随着时间的推移而需要一种安全的更新方法,因此进行这种更新的设施,将会是其设计中的一个基本部分。对物联网而言,那种卖了就忘(sell-and-forget)的时代已经结束了。
此一规则会产生多方面的影响。这种产品需要某种形式的支持服务,以创建、管理,并提供所需的更新,以及一种可提供这种服务的安全通道,而这种服务需要以产品开发的一部分来规画。而这项产品也要设计成在接受更新之前,可验证其所接收到的更新通知,且要在更新在加载时,还能够继续运作,且在理想情况下,如果由于某种原因,此一更新为使用者带来了问题,还要能够恢复回已知的良好状态(a known good state)。且这整个过程都应该自动完成的。
其次,在设计的早期步骤就应该把安全性纳入考虑。安全并不是那种你只要将它插入工作系统中,并让它即刻生效的东西。我们不能把它视为是一种事后添加的功能。它必须是装置整体设计中的一部份,而不是围绕在外的装甲钢板。否则,该设计就会存在着一条你所不知道的攻击途径。检视一下像数据流、功能集、和设定流程等,以确保你在设计的各个方面都已将安全的需求和所涉及的问题都已考虑在内。
当然,没有那一种安全是完美的,但它要够坚固,让攻击该设计的成本会非常高。并不是所有的攻击是一样的,有些会打开IC的封装,再以电子显微镜读出其闪存中的内容,你可能不需要对此提供保护。你需要将决定提供多少保护,所愿意承担的风险等作为设计过程中考虑的一部分。
第三,请确保有足够的预算来实现安全性。对物联网的安全性而言,具有成本意识的管理充其量只是口惠而实不至的,这种情况经常会发生。最糟的是,安全并不是一具有市场性的功能的这样的想法,他们也表示认同;或以"没有人会想"攻击这样的产品来自我说服。于是,即使有的话,他们也并未将资金正确地配置在实现安全性上。
这种失败让产生严重后果的可能性大增。对无法在其设备上提供充分安全性一事,消费产品的开发人员早已被认为是要对此负责的。即使没有财务上的冲击,安全失败也会连累产品 (和公司) 的声誉,长远来看,对销售还是有影响的。即使该产品并没有吸引潜在攻击者的诱因,像是并没有有价值的数据或控制的区域,但单是它是一款可连接到网络上的智能型设备,就有可能会被有心人士利用,拿它来当作殭尸网络的一环,或是把它当作是一个后门进入点,藉由此一进入点进入一个拥有贵重数据的网络。
开发人员可以采取许多具体的行动来确保其物联网的设计更加安全,但前文所指出的这三个步骤却是建立这些行动的基础。如果你还没有规划可以在现场升级,如果你没有从头开始就把安全性纳入考虑,如果你没有编入足够的预算来实现所需的安全性,那么,其它的行动就显得毫无意义。你可能可以完成一项设计,在它发表的当时看起来似乎拥有足够的安全性,但它可能无法承受那些来自网络连接另一端的那么多的有心人士的觊觎目光,他们都在伺机而动,随时准备侵入你的产品之中。