本书提到的“移动智能终端”主要是指智能手机,它在消费类IoT应用场景中是不可或缺的。用户通过智能手机和智能设备、云端进行信息交互,智能手机在IoT中的关联示意如图1-19所示。目前,主流的智能手机操作系统分为Android和iOS两大类。Android智能手机厂商众多,操作系统为Android——华为、三星、小米、OPPO、vivo等厂商的智能手机均使用Android;苹果智能手机厂商唯一,操作系统为iOS。就IoT普通用户而言,其关心与智能设备管理相关的移动App使用方法;就信息安全专业用户而言,其还关心智能手机在IoT中的具体作用,以了解底层的数据通信和业务处理机制。

智能手机在IoT中主要起到管设备、搭桥梁和查业务的作用,如图1-20所示。其中,“管设备”是指智能手机作为智能设备管理终端,“搭桥梁”是指智能手机作为智能设备网关或读卡器,“查业务”是指智能手机作为业务应用查询终端。

图1-19 智能手机在IoT中的关联示意

图1-20 智能手机在IoT中的主要作用

消费类IoT设备大多支持通过智能手机移动App完成对智能设备的远程管理,某智能汽车移动App和某智能家居移动App分别如图1-21和图1-22所示,包括设备的入网配置、远程操作、状态显示、固件升级、安全设置等功能。

图1-21 某智能汽车移动App

图1-22 某智能家居移动App

根据1.2节中介绍的IoT通信方式,移动App管理智能设备的通信方式包括以下3种。

(1)智能手机通过3G/4G/5G或Wi-Fi入网连接到云端服务,通过云端中转进行智能设备管理。在这种通信方式下,智能设备也是接入互联网并连接到云端,本质上云端作为业务交互平台,目前许多智能家居设备都采用该方式。

(2)智能手机通过Wi-Fi局域网内部直接访问智能设备开放的网络服务端口,以此进行智能设备管理。出于安全性考虑,主流IoT智能设备厂商大多不支持该方式。

(3)智能手机通过蓝牙等非IP信道进行智能设备管理,针对单个智能设备可直接配对连接管理,针对多个智能设备使用IoT网关进行集中管理。

智能手机常作为智能设备的蓝牙网关。智能手机通过自身蓝牙与智能设备蓝牙进行通信,然后通过智能手机的Wi-Fi或3G/4G与云端服务进行数据通信,从而承担起智能设备和云端的数据传输桥梁作用。典型应用场景包括智能家居、智能穿戴、共享单车等,例如,智能穿戴设备的人体健康数据同步,车载网络中的音频数据同步,共享单车使用蓝牙来配合开锁和身份验证等。

智能手机作为近场读卡器或读码器,通过近场扫描(如二维码、NFC等)获取硬件设备信息,然后将信息传输到云端。典型应用场景如共享单车、网购取货平台(如中邮速递易、京东、丰巢)等。

通过移动App查询IoT业务应用状态,包括主动业务查询和被动业务查询两种方式。

(1)主动业务查询。智能手机主动发起的业务查询。IoT设备采集的数据一般存储在云端或者智能设备自带的存储卡中,用户如果想查看这些数据,需要通过移动App远程读取云端中的业务数据,这些数据查询是通过移动App主动向云端发起的。

(2)被动业务查询。智能手机被动实施的业务查询。对一些具有报警和计费功能的IoT设备,如果设备监测环境、计费等发生改变,其会主动通过云端向移动App推送消息,以便用户实时掌控IoT环境变化、设备状态变化等情况。例如,智能摄像头因为周围环境发生改变给出警告信息,共享单车使用完成后的计费信息推送到云端等。

IoT设备厂商一般会同时提供针对Android和iOS两个系统的移动App,供不同的用户选择。Android和iOS上的生态系统不尽相同,移动App相应的特点也有所差异,这些会对安全性产生一定的影响。

(1)系统差异。Android由于其开源的特性,碎片化较为严重,即版本很多、很杂,尽管谷歌公司也一直在努力解决这个问题,但是收效甚微。iOS基于其特有的封闭性,版本一直处于相对统一的状态。

(2)代码开发差异。Android App在开发过程中可能使用一些第三方组件或代码资源,可能导致引入新的安全风险;iOS App在开发过程中基本使用自己的代码。

(3)移动App安装差异。Android App部署、下载和安装过程相对简单,通常在应用商城就能完成;iOS App安装过程相对复杂,需要注册Apple ID之后去App Store下载。计算机需要安装iTunes,连接并打开App Store下载软件,然后同步。

(4)移动App权限差异。Android App在安装时就会提示用户赋予一定的权限;iOS对移动App的访问控制较为严格,许多操作调用必须用户手动确定。

(5)移动App保护差异。由于Android开源,因此其移动App保护措施较多,如移动App加壳保护等;由于iOS App不开源,因此很少有相应的保护措施。