内容提供:施镇乾(C. K. Sze),Z-Wave联盟官方代表(Z-Wave Evangelist)
智能家居的保安肯定是个重要课题,当中的危机不单因为私人家居和人生活都可以在互联网上被黑客入侵,还有能源供应商或其它情报单位;用户也担心攻击者会将他们的照明随意开关,甚至乎会开启他们的门户,让盗贼轻易进入。
保安一直是资讯科技的重要课题,不过,互联网保安及资讯科技所应用的规则和技术,只有部分可被应用于智能家居的环境里,因此值得我们对保安课题作出更全面的检视。
保安及典型攻击的一般介绍
在资讯科技行业,一般保安意指对以下三种可能攻击的保护:
第三方对私人数据的获取
第三方冒充被攻击者的身份进行某些行为
用户的资讯系统功能被废除 – 一般称为“拒绝服务”(Denial of Service)
在公共网络里,比如互联网,有两个常用的方法去保护数据之交换:
数据加密(Encryption)
鉴权(Authentication)及授权(Authorization)
加密(Encryption)可防止数据被未获授权之第三者解读,而鉴权(Authentication)及授权(Authorization)确定未获授权人士,不能够获得及使用他人之某些服务的身份或权力,比如银行账户;这两个机制,都是针对在公众而没有保护之互联网里,为敏感及私人数据的传输及应用而设。不过,私人的智能家居环境并不完全符合这个设计概念。
加密(Encryption)及重播式攻击(Replay-Attacks)
相较于资讯科技之个人数据传输数据包,智能家居或者物联网中用于控制与状态报告之数据包其实非常细小,而且数据包之内容亦被规范而标准化,可以隐藏的内容并不多。
对如此透明之数据加密,对处理可能之攻击可以说是无补于事,黑客要了解数据包内容,无需花很多时间和力气来解码。
真正的威胁来自于,黑客捕获数据包后在另一个不适当之时刻将数据包重发(replay),若攻击者能重发并产生可见动作,如将灯开亮、或将门打开,这些都属于骚扰或危险类的攻击方法,在这类攻击中,数据包有没有加密其实也没有关系。
捕获一个数码数据包并之后将其再发送,这种攻击称为重播式攻击(replay attack),数据加密是无法应对重播式攻击的。
让智能家居免疫于重播式攻击的唯一方法,是每一次传送都运用一次性钥匙,让被捕获的数据包变得无效,因为对指令授权之钥匙,经发送者使用过、或钥匙产生之一段时间后,已告失效。这个一次性密码或交易钥匙称为一次性验证码(Nonce),和保护线上银行交易之技术同出一撤,银行业称之为TAN(交易授权码Transaction Authorization Number)。
使用TAN或一次性验证码能有效地保护数据传输免于重播式攻击,但对于这类无线连接,其他种类的攻击依然存在:
产生一次性验证码的方式是已知的,因此攻击者可随时为攻击产生一个新的一次性验证码,这个威胁,跟银行交易中所使用的公共交易授权码生成器(public TAN generator)可以相比疑。
一次性验证码被捕获并且没有抵达接收者,攻击者可以在等候超时(time-out)之内、冒充为获授权之发送者、发送伪冒获授权的数据包,这种攻击也称为中间人攻击(MITM, Man-in-the-Middle Attack)。线上银行交易也有很多这种攻击,称为网络钓鱼(phishing)。
使用一次性验证码并对数据包加密,是应对中间人攻击的强力方法,再加上一重发送者的合法认证,因此PIN/TAN组合便成为线上银行的实施方式。
最有效的做法是收发双方的一次性验证码都不需要依赖对方,而每次的一次性验证码都是随机产生的,这样确保了通讯的最佳保护,但亦因此必须要接收者产生一次性验证码并回复给发送者;若通讯有足够加密,一次性验证码也可以与真实数据经同一条途径传输,而由于一次性验证码只可以被发送一次,攻击者根本没有足够时间作出重播式攻击,而加密也无需十分强劲,已足够延误攻击者,当等候超时(time-out)过后,一次性验证码已经失效。
拒绝服务式攻击(Denial-of-Service-Attack)
另外一个较出名之攻击方法为拒绝服务式攻击,攻击者之目标既不是进接私人数据,也不是冒充被攻击者,而是令通讯无法实现。拒绝服务式攻击是一种破坏式攻击方法。
在无线通信领域,百分百免于拒绝服务式攻击是不可能的,攻击者随时都可以利用一个宽频发送器干扰所有无线通信,这现象不单发生于智能家居中,动电话机及广域网交通亦面对性质一样的问题。
在智能家居,有线通信方式一个优势是其更有效免于拒绝服务式攻击,此论点是有力的,但并不完全,理由是移动电话及无线网络(WLAN)仍继续采用相对脆弱的无线通信方式。
个中之原因也和这种技巧一样简单:给移动电话及广域网制造拒绝服务式攻击一点不难,但对于攻击者,也没丁点趣味并得益不多。要产生一个公众事件(如,将某条街的街灯全关掉)并不容易,而入侵一个家庭也不见得有巨大之有型得益,事实上,有更多比无线干扰更简单、更低成本、更好的方法去骚扰他人,试想一下,有什么比在冷天掷石敲破人家的玻璃窗更有影响。
无线安全性的其它方面
另一个可算是对拒绝服务式攻击及中间人攻击的先天性保护,是无线通讯于距离上的限制。Z-Wave领域里有个别的例子运用发射功率高达25毫瓦(mW),但一般数据发送都只在几毫瓦之内,因此户外无线距离都在一百米范围内, Z-Wave在设计上运用路由功能来平衡其短距离特性。高的发射功率无疑会令无线技术更易受到攻击,若信号不会伸延得离家太远,攻击者便必须很接近住所才能发动攻击。
最后一个无线网络之保安课题,但亦相当重要之考虑是成本/效益比。例如亚洲黑客进接到一个欧洲家庭里的洗衣机,获得相关之能源消耗资料,对于大部分人来说,都觉得颇无意义,试问数千公里外的黑客可以从数千公里远的家庭得到什么有型利益?他宁可花精力去入侵受害者之银行户口,更为有利;能够近距离接近一个住所固然让攻击者有更多选择去搞破坏,但一块石头总比复杂之电子技术,来的更便宜及更方便,更不用说掷石的知识比装备干扰的发送机之知识更易获得。
另一个类似道理,一个有经验的盗贼可以在数分钟内破坏最先进的机械门锁,而攻击者能运用电子技术将门户打开的风险,其实已经大大减轻了。
Z-Wave S2 保安技术
2016年初,Z-Wave 公布了更先进的S2加密机制(有别于上一代S0保安机制)S2向下对原来S0加密机制兼容,S2采用了Diffie-Hellman密钥交换机制,免除了交换密钥的风险。
S2除了解决了密钥交换那一瞬间的暴露风险以外,还有一系列的改进:
不需要用轮询(polling)去查询设备状态
为了减低节点之间通信频次,提高网络容量,Z-Wave plus规格严格限制了轮询的使用,S2提供Supervision 指令集去取代轮询的功能,即控制器发出控制指令之后无需向目标节点(destination node)轮询状态;Supervision指令允许目标节点用一个报告同时提交目前跟未来的状态,以减省通信的频次。举一个例子,控制器发命令给门锁把门锁上,门锁可以通过supervision指令报告目前是“进行中”,3秒钟之后会“完成”,所以控制器会在用户界面上显示门锁状态为“正在工作”,而3秒后会转变为“锁上”
S2采用主动防护机制规避“重播式攻击”
每一个发出的数据帧都通过13byte动态验证码加密,让截听者无法预测信息内容的模式(Patterns)
S2 支持3个保安层级
S2 Class 0 – 非鉴权(Unauthenticated)
这一级的保安度最低,厂家如果想降低成本不提供DSK标签可以用这这个层级。
另外那些不支持DSK鉴权功能的控制器也要用这一层级。
S2 Class 1 – 鉴权 (Authenticated)
所有带DSK标签的设备应该通报为S2 Class 1,但门磁与类似的设备会有一些限制。
这些设备进行【添加】的时候需要输入“设备指定密钥”(Device Specific Key,简称DSK,一般是设备上的一个QR二维码标贴)前面的5位数字
S2 Class 2 – 门禁控制(Access Control)
这是Z-Wave S2机制最高保安层级
门锁应该只通报这一个层级,因为需要最高保安性能。
Z-Wave技术由于S2保安机制的实现,为目前唯一获(美国)UL列入部件认可名单的自组网无线通信技术,换句话说,采用Z-Wave S2技术的产品具备通过UL安防设备的条件(注1),从而得到保险公司的认可理赔资质。
S2于2017年4月1日成为Z-Wave 联盟对于新产品认证的强制性要求。
注1:
美国安防服务运营商与保险公司通常会要求产品根据其自身功能而需获得额外相关UL认证作为认可接入系统的要求,常见的有:
UL 634 (Standard for Connectors and Switches for Use with Burglar-Alarm Systems)
UL 639 (Standard for Intrusion-Detection Units)
阅读延伸:
关于Diffie-Hellman 密钥交换机制
Diffie-Hellman 密钥交换机制是采用公共密钥(Public key) 与私人密钥(Private key)去实现:
1.一开始A与B双方会先交换公共密钥(Kp),我们假设C一直在旁截听,所以C也收到这个公共密钥;公共密钥包含了质数底数G(Generator)和质数模P(Prime Modulus)。然后A与B他们自己各自会生成一个私人的随机密钥(分别为Ka 和Kb) ,这个私人密钥不会告知对方,因此C没法截听而得知;
2.A和B会把自己的私人密钥Kx和收到的公共密钥匙(含G和P)作模算术(modular arithmetic)生成一个余数Rx,再发给对方,故 A从B收到的信息是B通过公共密钥Kp取得的底数G和质数模P,再以私人密钥Kb作为G的指数(exponent)通过模算术求出mod P的余数Rb;同样B也从A那里收到A以相同方式算出来的余数Ra;
算式是: GKx mod P = Rx, x是a或b
Kx是双方自己随机生成的私人密钥(Private Key), mod是求余算法。
假设G是3,P是17,Ka是10,Kb是6
那么A的算式是:310 mod 17 = 8(Ra);B的算式是:36 mod 17 = 15(Rb)
3.最后一步,双方把从对方获得的余数Rx作为底数G,以自己私人密钥作为指数再用模算术求余算出一个最终的余数出来。双方算出来的结果R会是一致的,就是双方以后使用的密钥。
算式是: RxKx mod P = R
因此A的算式是: 1510 mod 17 = 4 ;B的算式是: 86 mod 17 = 4
两者得出的余数R皆是4,这就是双方以后加密数据用的密钥,而由于Ka和Kb从来没有在空气中交换过,所以C无法得悉(C只截听到G、P、Ra、Rb),因而无法算出R。
模算术的优点是其单向性(one way function),G与P都是质数,没法用算式把余数与底数反向求出指数Kx,只能一个一个去试(Trial and error),只要G和P的数值足够大,要一个一个去试的时间会很长,例如达几百位的10进数,用目前最快的超级电脑去试的话都需要几十年以上。这就堵塞了交换密钥的保安风险。
关于Z-Wave
Z-Wave是目前很少数能聚焦于智能家居全方位应用并能成功大规模商业化的技术之一。为了确保各品牌的产品能切切实实符合相互操作兼容性,Sigma Designs 与Z-Wave联盟执着的建立和执行一套完善的认证体系和流程,打造出目前最大的一个兼容产品的市场生态系统,目前Z-Wave联盟有超过450个国际会员与超过1700个认证的产品,在欧美市场是主流技术。
获取更多资讯请访问www.z-wavealliance.org
Z-Wave是Sigma Designs的注册商标。