Zigbee的不安全源于对便携性的妥协,设备之间的通信需要一个连接密钥来加密,而Zigbee协议中密钥要么预先配置,要么通过明文传输,传送明文密钥的一瞬间就是网络脆弱的时候。当然,Zigbee也支持用密钥的密钥来加密这个密钥(SKKE),但是密钥的密钥依然需要预先配置或者明文传送,所以只要不是预先配置密钥,网络就存在脆弱的一瞬间。可能是因为要减少加解密的计算量,所以Zigbee选用了对称型加密,那么一瞬间的脆弱(a moment of vulnerability)就难以避免。
当然通过预先配置密钥是可以解决这个问题的,不过各个厂商如果想要各自的设备能互联互通的话,他们就必须要配置一个一样的密钥。事实上,据我所知,大部分的厂商都使用Zigbee联盟的默认配置,将密钥设置成“ZigBeeAlliance09”,这样看上去好像网络都加密了,大家的互联性也能保证。然而...这个密钥就是个人尽皆知的秘密,防小白不防小人。
用wifi举个例子,用户既想什么网络都能自动连接,又想网络被加密,于是所有的厂商都愉快的决定把所有的验证密码都设置为12345678。这样用户每次不需要输入密码就能加入所有厂商的wifi,而且这些wifi还都是被加密了。那么问题来了,这样的加密有什么用呢?
可以防外星人!