SIRIUS 是我们推出的一款集灯控、电视、空调、窗帘语音遥控一体的智慧遥控器 SIRIUS。
这款遥控器主要面向连锁酒店,为顾客提供一键式酒店智能化,除了基本的万能遥控功能之外,还能和酒店数字化系统相结合,提供一键式客房叫早、送餐、房间服务等。
背景和问题
小批量试产和上线之后,深得用户的喜爱。但是在运营的过程中我们发现,随着产品发放的日益增加。部分设备出现了频繁设备损坏、报修。酒店维护人员也反馈,一部分设备甚至出现了用户自行安装游戏、赌博软件等 APP 软件,为酒店的声誉造成了不良影响。
公司研发团队在接到前线运营反馈的问题之后,立即商讨对策。起初我们的想法是认为有人利用遥控器底部的预留的充电接口连接电脑下载安装应用。而遥控器本身是智慧遥控,除了装有我们自己研发的控制 APP 之外,还要兼容第三方生态以及酒店提供的小程序,所以无法从全局禁用 APP 安装方向着手来限制安装。于是我们提出了改造硬件电路,让 USB 充电口只充电而不通数据。
但是这样会带来两个问题:
- 首先是改造充电口结构会引起硬件改板,成本过高,周期也比较长。
- 而且 USB 数据功能也不能彻底去掉,需要用于运维,这样又需要我们联系提供数据线的供应商定制特殊的线材。
这样的改造为每个硬件带来的过高的定制化成本,显然不是一个最佳的解决方案。
那么怎么办呢,市面上有没有比较好的针对 SIRIUS 这类设备的解决方案呢。
方案制定
经过一番搜索,我们了解到阿里云 IoT 安全团队可以提供良好的解决方案。正好我们的遥控器内置了 IoT 平台连接能力,这样可以以比较小的代价来解决这个问题。
从阿里云物联网官网了解到,阿里云 IoT 安全的解决方案主要包括:物联网安全运营产品和设备身份认证方案。其中安全运营产品可以对设备的运行状况进行实时监控,并且支持人工按照特定的需求,允许和阻止设备的特殊行为、限制设备访问特定的网络。
阿里云 IoT 设备身份认证方案提供用户数据加密服务 ---- 这也是我们一直以来正在寻找的另一个让人头疼的问题:由于我们的万能遥控使用了通用红外码库,这个方案也可以防止我们的万能红外遥控码被其它厂家窃取!真是一个意料之外的收获!!
于是我们决定同时上阿里云的这两款产品。正好他们最近开放了试用,于是公司研发部门在体验过这两款产品之后,快速做出了方案:
- 在阿里云 IoT 安全中心开通了设备身份认证和 IoT 安全运营两个主要功能。
- 在 SIRIUS 遥控器系统当中集成了安全 Agent,并使用阿里云物联网 ID² 的轻量级加密能力对从遥控器数据库下发的码库进行加密。这样通信链路上的攻击者在无法获取设备 ID 的情况下是无法对密码进行猜测和解密码库的。
- 安全运营中心 Agent 持续运行在 SIRIUS 遥控器当中,并持续的上报风险事件,当发现有恶意安装 APP 行为时,可以及时通过邮件告知我们的运营人员,并通过阿里云安全中心控制台进行处理,卸载 APP 以及离线阻止应用安装。
方案实施
整个安全功能的改造的实施的过程非常平滑,主要分为两部分:设备端改造部分和安全运营部分:
设备集成安全功能
登录阿里云 IoT 安全运营中心:https://www.aliyun.com/product/iot/isoc,作为厂商,是可以在这里选择使用 IoT 安全 SDK 集成到自研设备的 -- 组合使用阿里云物联网平台,并开始接入。
1. 申请一个基于 ID² 认证和加密的接入凭据。设备通过这个凭据可以使用阿里云物联网专属的设备身份(ID²)技术,对设备接入云服务进行合法性认证,并且确保在云连接通道上传输数据时全程默认加密,保证数据传输的安全性,不被窃取。
2. 然后开启 IoT 安全运营中心,选择智慧遥控产品,并按照指示将安全 Agent 集成到 SIRIUS 设备。阿里云 IoT
安全中心支持对 Linux,Android,RTOS 等多种不同设备平台的支持,可谓是非常全面。这里我们选择下载 Android 设备 Agent。
选择下载合适的 Agent 进行集成。
3. 在 SIRIUS 源码树当中按照指导手册进行构建即可构建出带有通道加密和安全运营的遥控器 FOTA 固件和制造固件。构建时仅需要选择让安全加密通道通过 APP 进行建立即可,dps_sdk.mk 配置如下:
# 3 different connection mode: # dps_app : cloud connection is made by Android APP (by default) # dps_native_itls : cloud connection is made by native iTLS authorized by ID2 # dps_native_sbroker : cloud connection is made by triplet or security connection authorized by ID2 # all of the connection modes are mutually exclusive ! PRODUCT_PACKAGES += \ dps_domain \ dps_services \ dps_pro \ dps_sandbox \ dps_app \ # dps_native_itls \ # dps_native_sbroker \
然后按照 SIRIUS 的 Android 系统构建即可。
4. 阿里云提供的 ID² 接入 APP demo 如下,按照改造文档将当中的独立 SDK 集成到 SIRIUS launcher 即可实现开机默认建立轻量加密的安全连接,保护遥控编码数据。
投产和运营
升级过以及新出厂集成了安全功能的 SIRIUS,上线之后我们测试过模拟通信链路上的恶意分子用 tcpdump 抓包来试图截获遥控码库:如 wireshark 所见,下发的码库已经是加密状态了。
对于恶意安装 APP 和游戏的问题,可以在阿里云 IoT 安全中心控制台的看到所有 SIRIUS 外联的异常网络连接和异常执行的 APP:
并且可以随时对异常安装的应用进行阻止,禁止其运行。
总结
SIRIUS 这类智慧设备是一个开放式的可由用户自主配置和安装应用的环境,容易被针对性的破坏或者被滥用。不论哪一种情况都会增加我们的运维成本,甚至对客户造成不良观感,例如遥控器内出现黄色 APP,影响酒店声誉。
遥控器的系统安全和数据安全是我们这类小厂商不具备开发能力的领域,我们急切希望可以找到一个可实时远程监控其状态的方案,并且最好能够通过远程处理形成闭环,尽量避免我们重要的码库资产数据被人窃取,尽量避免运维人员到酒店房间逐台设备进行处理。
恰好阿里云 IoT 安全中心就很好的提供给了我们基于设备真实身份的强力加密能力,可以避免有人下载我们的 APP,破解遥控码;也可以远程深度监测系统行为(例如应用安装,全系统网络访问控制等)和可闭环处置的功能,经过一段时间的统计,国内某 X 酒店的客情投诉明显降低(仅剩硬件报修诉求),而且从安全中心的风险统计数据看,确实 IoT 安全中心能给我们带来便利和安全感!
目前 IoT 安全中心已经开放免费试用,感兴趣的朋友可以去前去尝试:
IoT 设备身份认证试用:https://free.aliyun.com/?product=9818539
IoT 安全运营中心试用:https://free.aliyun.com/?product=9840577