数据安全保护机制
面向C端用户的物联网平台,其接入服务需要在公网上运行,对外开放了公网端口,以便分布在全球各地的设备和APP实行数据上行、指令下行等功能。公网的网络环境复杂,近年来,安全问题频发。物联网平台一旦发生重大安全问题,影响范围相当广泛。因此,安全这块也是物联网平台需要重点考虑的板块。
安全方面,其中涉及到设备这块的,主要包括传输安全、接入认证、操作鉴权。下面分别介绍这3块的内容。
1)传输安全
智能设备通过MQTT over TLS与云端MQTT负载均衡服务建立加密连接进行传输。TLS需要服务证书,爱星物联IoT云平台的TLS证书目前采用自签名证书,预先内置到IoT通讯模组,该证书单向认证服务器的服务,即对服务器的MQTT接入服务进行认证,确保设备连接的对端服务是正确的、并且没有被非法纂改的服务。认证通过之后,交换了对称密钥,该连接上的所有数据传输,均会自动加密,传输过程中的数据即为加密数据。网络上的攻击者,如果没有私钥证书的话,传输的数据无法被解密,也无法被纂改。这样就确保了数据传输的安全。
2)设备认证
除了设备要认证MQTT服务的真实身份外,MQTT服务也要对设备的身份进行认证。爱星物联IoT云平台的方案是,采用“一机一密”的方案。即预先在平台中生成三元组信息,包括deviceKey、userName、password等,将三元组信息烧录进IoT通讯模组中,后续IoT通讯模组利用该三元组信息作为身份信息,在建立MQTT连接时上报至MQTT服务,MQTT服务验证三元组的有效性。设备的三元组信息若是合法有效的,MQTT服务允许设备建立MQTT连接进行后续数据收发;如果被判定是无效的,则连接被拒绝,连接被MQTT服务主动断开,无法进行后续的数据收发。
3)设备鉴权
当设备认证通过后,设备和MQTT服务建立了长连接。如果不做鉴权的话,那怎么保证设备不乱发指令、或者订阅不该订阅的主题数据呢?这就涉及到MQTT消息主题topic的权限控制了。大多数MQTT服务,都提供topic ACL控制功能。爱星物联IoT云平台也不例外,MQTT服务针对APP和设备的topic都做了点对点的权限控制,什么设备能够发布什么topic消息,什么设备能够订阅什么topic消息,均已经进行了细粒度的权限控制。设备发布topic消息到MQTT服务后,MQTT服务调用鉴权服务API进行鉴权,如果鉴权通过,则放行该消息;如果鉴权失败,则阻止发布该消息。同样,设备订阅的topic也是一样,也执行类似的鉴权过程。