物联网操作系统安全性分析

物联网操作系统安全性分析

bt0sea · 2015/09/10 20:49

0x00 前言



物联网目前是继移动互联网之后的又一个未来IT发展的蓝海。智能设备的不断涌现已经在不知不觉中占领我们的生活,颠覆我们的原有的思维模式,记得前几年我还带着一块天梭的机械手表,近段时间地铁好多人都佩戴iWatch等智能手表。还有智能手环、智能灯等在不断的改变我们的生活方式。那么这些智能设备具体的IT架构是什么?他们的安全性设计如何?对于信息安全工作者,有必要研究一下。

物联网操作系统,其实和传统的windows操作系统大同小异,但是经过一段时间的调研,才发现它不光由本地物联网设备上的操作系统组成,还包括提供物联网终端设备支持的云端架构。所以,我们的安全研究范围锁定在以下3个方面:

  1. IoT终端和云端通讯协议的安全
  2. 物联网终端安全
  3. 云端IT架构的安全性

0x01 物联网云协议安全性分析



针对于智能家居等物联网设备,接入到互联网进行数据交换,安全风险性就非常大,如果处理不好,可能就会像黑客电影中桥段:通过网络把你家的智能门锁打开。

那么,物联网操作系统具体怎么连接互联网呢?

其中物联网终端(例如:灯泡)有两种连接方式,

  1. 连接IoT gateway网关,再通过IoT gateway网关 连接家里的wifi路由器上网。
  2. 物联网设备直接通过自己的wifi模块(或者直接集成GPRS/3G/4G连接模块)连接家中路由器上网。

这两种连接方式都有现实存在的意思,直连的一般都是大型家电设备,因为节点量比较少,互联网可以通过物联网协议直接控制,wifi模块信号强。但是像插座、灯泡这种小的终端设备还是连接到IoT gateway网关中转后再连接互联网。

那么物联网协议都有哪些呢?

那么,从商业模式上分析,大公司一般是通过移动端(手机开发SDK)、云端(建立开源物联网云平台)、设备端(物联网连接硬件和软件SDK)、然后使开发者通过众筹方式,开发硬件,但是传递到云端的数据归物联网公司平台拥有。最后通过自己的电商销售渠道卖给用户。通过上述流程物联网生态系统,拥有物联网大数据,在资本市场上大捞一笔。

很显然,如果要研究物联网通讯协议,就必须了解做为展示和输入输出设备的手机端物联网SDK调用,物联网设备端硬件支持的协议SDK、以及云端对以上各种协议支持的具体体现。

国外市面上有很多开源的协议。

  • AllSeen Alliance AllJoyn
  • 开放互联网联盟 Open Interconnect Iotivity

国内在这些开源协议之上有建立了一层物联网操作系统。

  • 技术型的华为LiteOS,重点在嵌入式物联网设备。(伪开源,到目前为止github上没看到上传的源码)
  • 业务型的京东智能云,重点是通过众筹吸引硬件开发团队合作。通过自己互联网商城销售。
  • 当然还有一些创新型公司

那么,我们先分析一下其相关的SDK,是怎么处理数据的:

(一)物联网终端设计

安全层可以看出一般在协MQTT等议栈中实现,如果协议栈中没有实现,那只能在Application SDK API中实现。

在终端实现其安全特性还有几个问题要考虑:

  1. 物联网终端的内存和硬盘都很有限。
  2. 物联网终端电源有限,很多安全设计,例如:心跳检测时间不能太近等。

一般和云通讯会有Cloud key 和自己设备本身的private key。通过SSL隧道交换秘钥。

和云端通讯函数。

同时,查看了iOS手机端控制部分,由于是部分开源,dot m实现函数已经屏蔽,无法了解其内部逻辑。

小结:由于某云厂商相应的硬件端源码开发不完全,只能看到这些,同时、强烈鄙视这种伪开源的行为。

可以看出使用非对称秘钥加密传输数据到云端。同时,发现设置开发测试模式和生产环境的云端连接域名。当然,证书验证等没看到。

(二)物联网云端设计

云端设计、一般要有几个模块要考虑:

  1. 账号处理模块:主要是和用户互交。
  2. 设备管理模块:绑定用户和设备的关系。
  3. OTA模块:升级固件功能
  4. 定时执行模块:定期执行相关任务
  5. 大数据分析模块:这个要看具体的应用了,比如说:全国路由器信号排行榜,以及你打败了多少人的路由器。等

当然,还有很多功能,就不一一讲解。先举例说明一下OTA模块

No.1 OTA(Over The Air) 服务 推送文件到设备端。

  • @param $deviceId 整数,是要被升级的设备的逻辑ID。
  • @param $toVersion 字符串,表示升级的目标版本号,如:2-0-3。
  • @param $OTAHash字符串, 验证逻辑固件。

文件存储服务。向BlobStore服务上传文件。

  • @param $bucket 给定的类别名字。
  • @param $filePath 要被上传的文件的本地路径。
  • @param $name 可以指定文件被上传后在服务器端的存储名字。如果未指定,则使用从$filePath在提取到的文件名。

提供存储服务是为了进行固件升级。同时,物联网硬件开发商可以在自己的私有云中上传固件,然后存储到物联网云平台,更新给联网的物联网终端设备。

No.2 设备管理模块:这里面设计一个带时间限制分享码(其实就是web服务中的session的意思)

设计设备的管理员用户获取设备的分享码。

  • @param $deviceId 要操作的对象的逻辑ID。整数。
  • @param $user ACUser对象,表示该设备的管理员用户。
  • @param $timeout 生成的分享码的有效时长。以秒为单位。

小结:云端对多租户的设计,主要体现在不同DNS域名隔离不同的企业物联网应用。服务器端么法发现使用HTTPS的通讯协议,难道是云服务商为了节省成本?设备分享码的设计确实很前卫。

0x02 物联网操作系统安全建议



目前,物联网还在发展之中,把通讯协议直接裸奔在固件上也无可厚非。但是还是有几条提醒各位物联网玩家。

  1. 当物联网设备无网络连接时、云端立刻通知。
  2. OTA升级、出现重大安全漏洞要厂商直接推送更新固件。
  3. 设置强密码Policy 要求12位以上,同时使用数字、特殊符号和字母的组合。如果条件允许尽量使用双因素方式认证(Two-factor authentication)
  4. 使用SSL/TLS连接云端传输数据(HTTPS+ AES 128bit encryption),尽量不要在物联网终端设备上存储数据,以免被黑。如果必须在本地存储请加密,同时加密备份到云端一份。如果再安全一点可以使用TPM处理,把秘钥存储到类似U盘的设备当中做认证。
  5. 如果使用SSL,检查两端(服务器和客户端)的证书,不允许使用自签名证书。
  6. 云端处理好多租户问题,尽量做到操作系统层面、数据层面的隔离。
时间: 2024-08-25 13:06:28

物联网操作系统安全性分析的相关文章

深入解析物联网操作系统(架构/功能/实例分析)

?? 1.       物联网的主要特点 i.             连接 所谓连接,指的是各种各样的终端设备,都能够通过某种网络技术,连接到一个统一的网络上.任何终端之间都可以相互访问.下一代的基础通信网络,包括未来的5G,通信网络架构重构等,为物联网提供泛连接网络是核心目标.目前也已经有很多厂商推出解决方案,比如Google的thread/wave,华为的Hi-Link,以及NB-IoT等. 传统的物联网连接,都是指物联网终端设备与物联网云平台之间的连接,如下图: 在这种模式下,物联网设备

基于Linux的物联网操作系统

提到物联网操作系统,就不能不提Linux,因为Linux可能是目前在物联网设备中应用最广的操作系统了.本文和大家分享的就是目前常用的基于Linux的物联网操作系统,一起来看看吧. 在传统Linux内核基础上,经过裁剪,就可以移植到嵌入式系统上运行.不过,还有很多开源组织和商业公司对Linux进行了一番改造,使其更符合嵌入式系统或物联网应用的需求,比如改为实时操作系统. RTLinux RTLinux(Real-Time Linux)是Linux中的一种实时操作系统.它由新墨西哥矿业及科技学院的V

物联网操作系统

物联网是新一代信息技术的重要组成部分.其英文名称是IOT(Internet Of Things).由此,顾名思义,"物联网就是物物相连的互联网".这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络:第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信.因此,物联网的定义是通过射频识别(RFID).红外感应器.全球定位系统.激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别.定位

OpenCV:Mat元素访问方法、性能、代码复杂度以及安全性分析

欢迎转载,尊重原创,所以转载请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种访问矩阵元素的方法,在指定平台上给出性能比较,分析每种矩阵元素访问方法的代码复杂度,易用性. 一.预备设置 本文假设你已经正确配置了OpenCV的环境,为方便大家实验,在文中也给出了编译源程序的Makefile,其内容如代码段1所示. 采用如代码段2所示的计时函数,这段代码你可以在我之前的博文中找到,abtic()

物联网操作系统 微软 Windows IoT Core 与华为 LiteOS 对比

在物联网领域,各主流厂商都在不同的层面抢占地盘.IBM 的 微软的 Azure IoT Hub,华为的 NB IoT 都在做着热火朝天的自我炒作. 今日关注了一下物联网操作系统,对微软的 Windows IoT Core 和华为的 LiteOS 作了一些了解. 两家的相关资料可参见如下地址: http://www.huawei.com/minisite/iot/cn/liteos.html https://developer.microsoft.com/en-us/windows/iot/Exp

物联网操作系统HelloX V1.79发布公告

经过HelloX开发团队近半年的努力,在HelloX V1.78版本基础上,增加许多功能特性,并对V1.78版本的一些特性进行了进一步优化之后,正式形成HelloX V1.79测试版本.经相对充分的测试和验证之后,现正式发布.相关代码,已全部上载到github上(github.com/hellox-project/HelloX_OS),欢迎对HelloX感兴趣的朋友下载测试和试用,并进一步反馈问题. 除继续保持V1.78所有特性之外,V1.79版本主要对下列特性进行了支持或优化: 1.     

物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到github上(github.com/hellox-project/HelloX_OS),欢迎感兴趣的朋友下载测试. MinnowBoardMAX是在Intel的支持下,由Circuit公司开发的一款基于Intel ATOM处理器的卡片式电脑,具备超高的性能,丰富的扩展性,以及相对较低的功耗和成本.

物联网操作系统HelloX V1.77(beta)版本发布

物联网操作系统HelloX V1.77发布 经过近半年的努力,物联网操作系统HelloX V1.77版本正式完成,源代码已上载到github(github.com/hellox-project/HelloX_STM32).这个版本主要支持下列特性: 1.        定制化扩展,通过宏定义,能够把内核裁剪到20K以下,以适应低配置硬件需要.同时如果把所有的功能特性都加上,则尺寸可以达到500K左右,以适应复杂功能硬件需求: 2.        支持完整的TCP/IP协议栈,移植了业界通用可靠的

基于物联网操作系统HelloX的智慧家庭体系架构

基于物联网操作系统HelloX的智慧家庭体系架构 智慧家庭是物联网的一个分支应用,是一个被广泛认同的巨大IT市场空间.目前市场上已经有很多针对智慧家庭的产品或解决方案,但与移动互联网不同,智慧家庭至今尚未形成一个完整的生态系统.究其原因,在于不同的智慧家庭参与者,对智慧家庭的理解不同.有的人认为智慧家庭就是"智慧控制",远程控制家里的灯光/开关/窗帘/空调等,而有的又认为智慧家庭应该更具"娱乐色彩",像一个私人电影院,于是"N屏互动"等解决方案又