最近研究了一些物联网平台技术资料,以作选型参考。脑子里积累大量信息,便想写出来作一些普及。做为科普文章,力争通俗易懂,不确保概念严谨性。我会给考据癖者提供相关英文连接,以便深刻研究。html
—— 冯立超 HiwebFrankgit
5. 安 全
github
我想用遥控器把隔壁邻居家的电视给关了!web
不知是否能够,但至少,我拿着一个空调遥控器能够到各个房间开关空调。安全
若是物联网设备没有任何安全措施,那么情况将没法设想。网络
如何作到全方位安全?架构
微软早在2003年就提出了可信赖的计算 Trustworthy Computing 和基于 STRIDE 网络安全风险模型的纵深防护 Defence in Depth 理念。运维
这些理念并非针对微软产品及其解决方案的,而是被业界充分承认的通用的理念。ide
咱们将根据这些理念与模型,为你们展开讨论物联网安全。工具
微软基于上述网络安全模型与理念,给出了通用的 物联网安全构架 和 物联网安全最佳实践。具体信息请参见:
- 物联网安全架构
在上述资料中,微软对物联网的物理安全层面进行了细分,将其分为 设备、现场网关(Field Gateway)、云网关 及 服务等多个分区Zone。指出各区域都是分离的信任边界,每一个分区都应有本身的数据安全、验证、受权机制。
在这些分区之间数据与信息的传输都应考虑 STRIDE 各类风险,即:
- Spoofing 欺骗
- Tampering 篡改
- Repudiation 抵赖
- Information disclosure 信息泄露
- Denial of service 拒绝服务
- Elevation of privilege 特权提高
微软给出的物联网安全构架示意图以下所示:图中红色虚线框为不一样的分区Zone,红色虚弧线则为信任边界。
下图是用微软威胁建模工具所创建的数据流原理模型:
关于上述模型的详细信息,原文在 Internet of Things security architecture,中文能够参见 物联网安全体系结构,这篇文档好像是人翻译的:),中文可读。(谢谢Sunny Deng和v-cchen)
微软 Azure IoT Suite 物联网安全
具体到微软本身的 Azure IoT Suite 物联网部署构架,则主要包括以下三个安全领域:
- 设备安全:在实际部署物联网设备时,保护设备安全
- 链接安全:确保物联网设备和 Azure IoT Hub 之间数据传输的机密性和防篡改性
- 云安全:确保数据在云中传输、移动和存储时的安全
下图给出微软 Azure IoT 物联网安全相关概念:
- 设备预配与验证安全
微软 Azure IoT Suite 使用两种方法确保设备安全:
- 为每一个设备提供惟一标识密钥(安全令牌),设备可以使用该密钥与 IoT Hub 通讯。
- 使用设备内置 X.509 证书和私钥做为一种向 IoT Hub 验证设备的方式。 此身份验证方式可确保任什么时候候都没法在设备外部获知设备上的私钥,从而提供更高级别的安全性。
- IoT Hub 安全令牌
IoT Hub 使用安全令牌对设备和服务进行身份验证,而不在网络上发送密钥。,安全令牌的有效期和范围有限。 Azure IoT SDK 无需任何特殊配置便可自动生成令牌。 但在某些状况下,须要用户生成并直接使用安全令牌。 包括 MQTT 、AMQP 或 HTTP 应用层协议的直接使用,以及令牌服务模式的实现。
- 链接安全
使用传输层安全性 (TLS) 标准来保护 IoT 设备和 IoT 中心之间的 Internet 链接安全。 Azure IoT 支持 TLS 1.2、TLS 1.1 和 TLS 1.0
- 云安全
Azure IoT Hub 为每一个安全密钥定义访问控制策略。 它使用设备注册表读写、服务链接、设备链接等权限,向每一个 IoT Hub 的终结点授予访问权限。
另外,在云端的各类服务中,如 Azure DocumentDB、Azure Stream Analytics、Azure App Service、Logic App、Azure Blob Storage等服务,都应设置响应的安全权限配置。
亚马逊 AWS 物联网安全
亚马逊一样有一套完善的物联网安全方案。
所链接的每台设备必须拥有凭证才能访问消息代理或物联网设备影子服务。对于往返 AWS 物联网的全部流量,都必须经过传输层安全性 (TLS) 进行加密。必须保证设备凭证的安全,以便安全地将数据发送到消息代理。数据到达消息代理后在 AWS IoT 和其余设备或 AWS 服务之间移动时,AWS 云安全机制可为数据提供保护。
下图是亚马逊物联网安全与标识示意图:
- 咱们须要管理设备上的设备凭证(X.509 凭证、AWS 凭证)及 AWS IoT 中的策略。将惟一身份分配给每台设备并管理设备或设备组的权限。
- 设备将按照 AWS IoT 链接模式使用所选身份(X.509 证书、IAM 用户和组,或者 Amazon Cognito 身份)来创建安全链接。
- AWS IoT 消息代理 针对帐户内的全部操做执行身份验证和受权。消息代理负责对设备执行身份验证、安全地接收设备数据,以及支持经过策略授予设备的访问权限。
- AWS IoT 规则引擎 根据所定义的规则将设备数据转发到其余设备和其余 AWS 服务。利用 AWS 访问管理系统将数据安全地传输到最终目标。
AWS IoT 消息代理和设备影子服务利用传输层安全 TLS 对全部通讯进行加密。TLS 用于确保受 AWS IoT 支持的应用程序协议(MQTT、HTTP)的保密性。
对于 MQTT,TLS 可将设备与代理之间的链接加密。AWS IoT 使用 TLS 客户端身份验证来识别设备。对于 HTTP,TLS 可将设备与代理之间的链接加密。身份验证工做委派给 AWS Signature Ver. 4 执行。
IBM Watson IoT 物联网安全
一样,IBM Watson IoT 物联网解决方案也包含完备的安全方案。
在 IBM Watson IoT Platform Security 一文中, 首先强调了安全性的合规性、验证、受权、加密四各方面,并指出 Watson IoT Platform 以 Bluemix 为基础,而 Bluemix 基础构架的安全性与可靠性是 Watson IoT Platform 的基石。
而后,IBM 像个学生同样老老实实认认真真地道出他的安全方案。
首先,掏出证书。指出 Watson IoT Platform 得到了 ISO 27001:2013 认证。
而后,在 Watson IoT Platform 构架图的基础上,分别讲述了以下几个方面:
- 如何实现物联网信息管理安全
- 如何实现设备与应用程序凭据安全
- 如何实现设备链接安全
- 如何防止设备数据在设备之间泄露
- 如何防止数据在组织之间泄露
上面每一方面,都有较详细的描述和示意图,此不一一列出,仅如下图设备与应用程序凭据安全为例供你们参考:
另外,IBM 给出了安全风险管理建议,包括客户端证书、组织规划与安全策略、链接策略、黑白名单策略等。
总之,物联网安全是一个重要的、同时也是复杂的问题。不只仅包括物联网特定的设备与构架,还牵涉到网络安全及软件开发安全的各个方面。须要在构架设计、开发、部署、运维、应用的各个方面确保安全与合规。