这里是普通文章模块栏目内容页
智能家居安全——身份劫持

欢迎关注我们的微信公众号:EnsecTeam

智能家居身份和劫持危害

先通过一张简图来了解一下应用,智能设备和云端三者交互时携带的身份标识,如图所示:

图片1.png

智能家居设备交互时携带的身份标识

图片1.png

智能家居设备交互时携带的身份标识

从上图了解到,智能家居身份标识通常是以下几种情况:

1. 账号cookie相关,如身份Token;

2. 用户id:userid

3. 设备id:deviceid

4. 认证或加密的key

一旦用户或设备的身份被劫持,那么至少存在如下几方面危害:

1.个人信息,聊天内容等以隐私敏感信息泄露
2.智能设备被任意控制
3.财产损失
4.随时被监控

以智能音箱和智能插座等设备为例,至少有两个环节设计“身份”相关:

1.账号同步
2.设备交互操作

下面将分别介绍如何在这两个环节进行身份劫持。

账号同步

账号同步是指,在智能设备在初次激活使用(或更改绑定用户时),用户将自己的身份信息同步给设备,并绑定设备。

一个简化的账号同步流程,如图所示:

图片2.JPG

账号同步

图片2.JPG

账号同步

账号同步通常会存在如下两类问题:

1. 如何验证设备是否合法:验证设备id还是设备key?id和key都很容易泄露伪造。

2. 账号Token如何安全传输:设备此时为入网,通过蓝牙、AP,还是其他何种方式传输账号信息。

账号同步时身份劫持,以厂商A音箱的配网和身份账号同步为例,其账号同步分为两种方式:
1. 直接通过UDP广播255.255.255.255:50000,发送userid、token和wifi的ssid和wifi密码。
2. 将userid、token、ssid和wifi密码等转化成语音播放,音箱进行语音信息识别即可。
关于两种模式的选择:由本地sharedPreferences文件(tg_app_env.xml)中的app_connect_mode属性值决定,其账号同步代码如图所示:

图片3.png

厂商A音箱的账号同步

图片3.png

厂商A音箱的账号同步

厂商A的音箱将身份信息,通过固定“协议”的格式,在UDP255.255.255.255:50000端口进行身份信息发送,攻击者可以监听UDP50000端口,从而获取用户的userid和token,窃取身份凭据;语音发送也是按照同一套固定的“协议”格式发送。协议格式通过破解后如图所示:

图片4.png

厂商A音箱的账号信息同步格式

图片4.png

厂商A音箱的账号信息同步格式

设备交互

设备交互是指应用,设备和云端的三者交互访问;交互操作大体分为两种方式:

1.只支持广域网:厂商A为代表;

2.支持广域网和局域网:厂商B和C为代表。

广域网交互中应用与设备交互,设备与设备的交互方式如图:

图片5.png

应用设备网广域交互

图片6.png


设备与设备广域网交互

图片5.png

应用设备网广域交互

图片6.png


设备与设备广域网交互

厂商A的智能家居接入方式:以开灯为例

第一步:厂商一的音箱 – >音箱server

url:https://***.com/***

Payload:  { Uderid, Deviceid, Accesstoken, 打开灯的语音}

第二步:厂商A的音箱sever–>第三方server

用户需要在第三方产品server注册并通过Oauth授权给厂商A的Server,消息格式如下:

 ”header”:{

   “namespace”:”***Genie.Iot.Device.Control”,

      ”name”:”TurnOn”,

      ”messageId”:”1bd5d003-31b9-476f-ad03-71d471922820″,

      ”payLoadVersion”:1

   },

   ”payload”:{

       ”accessToken”:”access token”,

       ”deviceId”:”34234″,

       ”deviceType”:”XXX”,

       ”attribute”:”powerstate”,

       ”value”:”on”,

       ”extensions”:{                                          

          ”extension1″:”",

          ”extension2″:”"

      }

}

第三步:第三方server–>设备

#p#分页标题#e#

Payload:{command: turn-on, currentValue:0 }
厂商A音箱的身份劫持
厂商A的音箱每次交互时,都会携带: token、userid、deviceid、action来进行,并且server会依据userid来进行身份判断:

1. 有了userid就可以身份劫持——远程设备任意操作;

收藏
0
有帮助
0
没帮助
0