物联网设备安全1.4 改变灯泡状态
1.4 改变灯泡状态
到目前为止,我们知道了如何向网桥发送命令改变灯泡状态。网桥本身使用ZigBee Light Link(ZLL)无线协议向灯泡发送指令。ZLL协议以IEEE 802.15.4标准为基础,是一种低成本、低功耗、广泛应用于数以百万计的设备和传感器上的协议。ZLL标准实际上是一个ZigBee应用配置的规范,定义了与消费市场和小型专业设备相关的照明系统参数。
ZLL需要开发商提供主密钥,并将它保存在网桥和灯泡上。初始化时(也就是用户按下网桥按键时),网桥会产生一个随机网络密钥并使用主密钥进行加密。灯泡使用主密钥解密并读取出网络密钥,之后网桥和灯泡就可以使用该网络密钥进行通信了。
使用KillerBee框架和RZ U盘,我们可以嗅探ZLL的网络流量。插入RZ U盘之后,我们先使用zbid工具验证一下,zbid是KillerBee套件中的一个工具:
# zbid
Dev Product String Serial Number
002:005 KILLERB001 [DELETED]
之后,我们就可以使用zbwireshark命令进行嗅探(比如这里嗅探11信道):
# zbwireshark -f 11 -i '002:005'
该命令会启动Wireshark(http://www.wireshark.org/)工具,并开始捕获ZigBee流量。
如图1-15所示,网桥持续不断地在信道11上发送信标广播请求(ZigBee的信道范围从11~26),候选设备如灯泡可以对该信标请求做出响应,以加入到网络中。
图1-15:WireShark捕获信标请求
本例中,除了信标请求之外,在20信道上也会出现ZLL流量,如图1-16所示。ZigBee的Security Header中的Security Control字段设为0x01,表示正在使用一个消息认证码(AES-CBC-MAC-3/MIC-32)。该消息认证码的传输过程也被捕获到并显示出来了。
图1-16:WireShark捕获20信道流量
当网桥收到一个认证请求用以改变与其关联的灯泡状态时,就需要使用ZigBee协议以及ZLL规范进行通信了,通信过程如图1-15和图1-16所示。
我们知道网桥使用ZLL协议与灯泡通信。网桥还会使用一个共享密钥来维持与照明系统基础设施的基于HTTP的带外连接。当网桥接收到来自照明网站(或者来自远程网络的iOS App)路由过来的命令时,会启用该连接。应用于网桥的ZLL实现或者加密方法有可能存在缺陷。然而,要利用这些缺陷,攻击者需要与被攻击对象保持很近的距离(以便于利用ZLL的问题),或者能够拦截网络数据并注入数据包。
由于这类问题发生的概率比较低,所以它并不视为关键的风险,但是它的潜在威胁还是值得我们陈述一下。
相关文章
- 阿里云服务器网络收发包PPS是什么意思?5万PPS/10万/20万/80万/100万PPS
- 如何通过域名查ip
- AI表情包生成器来了!给AI喂了96万个表情包文案,做出的图能接地气吗?
- 云栖进行时|分享:可编程网络的现在与未来
- kubernetes关于eks一次异常问题的复盘
- 域名怎么注册和申请
- [oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
- 如何申请网络域名
- 初次使用阿里云的体验
- 如何将域名绑定到服务器
- 如何查看域名是否备案
- 域名如何绑定空间
- 如何注册中文域名
- 海康Visionmaster-VM3D工具-平面检测-深度图
- 手把手教你用低代码30分钟实现ChatGPT AI机器人
- WGCLOUD监控系统如何监测主机CPU温度指标「建议收藏」
- 迁移到云平台时如何确保成功过渡
- 数据结构-Hash常见操作实践
- 一般用什么云服务器好呢
- 数学建模比赛超全整理【数学建模有哪些比赛?】【全网最全数模整理】