小米自家与其生态链下的 IoT 设备五花八门,有牙刷、有电动玩具、对讲机、摄像头甚至是守护家里大门的智能门锁等,覆盖我们生活的方方面面。面对如此复杂庞大的产品品类,小米是如何保障它们安全的呢?相信这也是大家心里的疑问。
我们要考虑不同设备的攻击面,比如指纹锁有自学习功能,这个容易被贴片攻击;蓝牙通讯是否可以被劫持,篡改;NB-iot通讯也可以被伪基站劫持,发一些虚假消息和控制指令;GPS协议自身也存在安全缺陷,容易被伪造。以及硬件设备自身又会存在很多调试接口,在一定场景下会暴露权限。如果说每款设备都要解决这些问题的话,那工作量是相当巨大的。
面对这个问题,小米的方案很干练,那就是减少设备的攻击面。这里主要分为六个层面:
认证层面 保证每台设备预制不同密钥,用户绑定产生唯一关联性的token,利用密钥与token的关系防止越权操作问题。
通讯层面 要做流量加密与数据签名。
硬件层面 尽可能的把调试接口关掉,并且引入安全芯片,安全存储密钥信息。
固件层面 防止固件被篡改,所以验签与防降级的保护是基本要求。
系统层面 禁止开启任何处miio外的通讯或管理功能服务端口,局域网是不可信的环境。
应用层面 向开发者提供成熟可靠的SDK,减少额外开发带来新的安全风险。