智能家居的保安肯定是個(gè)重要課題,當(dāng)中的危機(jī)不單因?yàn)樗饺思揖雍腿松疃伎梢栽诨ヂ?lián)網(wǎng)上被黑客入侵,還有能源供應(yīng)商或其它情報(bào)單位;用戶也擔(dān)心攻擊者會(huì)將他們的照明隨意開關(guān),甚至乎會(huì)開啟他們的門戶,讓盜賊輕易進(jìn)入。
保安一直是資訊科技的重要課題,不過,互聯(lián)網(wǎng)保安及資訊科技所應(yīng)用的規(guī)則和技術(shù),只有部分可被應(yīng)用于智能家居的環(huán)境里,因此值得我們對(duì)保安課題作出更全面的檢視。
保安及典型攻擊的一般介紹
在資訊科技行業(yè),一般保安意指對(duì)以下三種可能攻擊的保護(hù):
第三方對(duì)私人數(shù)據(jù)的獲取
第三方冒充被攻擊者的身份進(jìn)行某些行為
用戶的資訊系統(tǒng)功能被廢除 – 一般稱為“拒絕服務(wù)”(Denial of Service)
在公共網(wǎng)絡(luò)里,比如互聯(lián)網(wǎng),有兩個(gè)常用的方法去保護(hù)數(shù)據(jù)之交換:
數(shù)據(jù)加密(Encryption)
鑒權(quán)(Authentication)及授權(quán)(Authorization)
加密(Encryption)可防止數(shù)據(jù)被未獲授權(quán)之第三者解讀,而鑒權(quán)(Authentication)及授權(quán)(Authorization)確定未獲授權(quán)人士,不能夠獲得及使用他人之某些服務(wù)的身份或權(quán)力,比如銀行賬戶;這兩個(gè)機(jī)制,都是針對(duì)在公眾而沒有保護(hù)之互聯(lián)網(wǎng)里,為敏感及私人數(shù)據(jù)的傳輸及應(yīng)用而設(shè)。不過,私人的智能家居環(huán)境并不完全符合這個(gè)設(shè)計(jì)概念。
加密(Encryption)及重播式攻擊(Replay-Attacks)
相較于資訊科技之個(gè)人數(shù)據(jù)傳輸數(shù)據(jù)包,智能家居或者物聯(lián)網(wǎng)中用于控制與狀態(tài)報(bào)告之?dāng)?shù)據(jù)包其實(shí)非常細(xì)小,而且數(shù)據(jù)包之內(nèi)容亦被規(guī)范而標(biāo)準(zhǔn)化,可以隱藏的內(nèi)容并不多。
對(duì)如此透明之?dāng)?shù)據(jù)加密,對(duì)處理可能之攻擊可以說是無補(bǔ)于事,黑客要了解數(shù)據(jù)包內(nèi)容,無需花很多時(shí)間和力氣來解碼。
真正的威脅來自于,黑客捕獲數(shù)據(jù)包后在另一個(gè)不適當(dāng)之時(shí)刻將數(shù)據(jù)包重發(fā)(replay),若攻擊者能重發(fā)并產(chǎn)生可見動(dòng)作,如將燈開亮、或?qū)㈤T打開,這些都屬于騷擾或危險(xiǎn)類的攻擊方法,在這類攻擊中,數(shù)據(jù)包有沒有加密其實(shí)也沒有關(guān)系。
捕獲一個(gè)數(shù)碼數(shù)據(jù)包并之后將其再發(fā)送,這種攻擊稱為重播式攻擊(replay attack),數(shù)據(jù)加密是無法應(yīng)對(duì)重播式攻擊的。
加密通訊驗(yàn)證碼
讓智能家居免疫于重播式攻擊的唯一方法,是每一次傳送都運(yùn)用一次性鑰匙,讓被捕獲的數(shù)據(jù)包變得無效,因?yàn)閷?duì)指令授權(quán)之鑰匙,經(jīng)發(fā)送者使用過、或鑰匙產(chǎn)生之一段時(shí)間后,已告失效。這個(gè)一次性密碼或交易鑰匙稱為一次性驗(yàn)證碼(Nonce),和保護(hù)線上銀行交易之技術(shù)同出一撤,銀行業(yè)稱之為TAN(交易授權(quán)碼Transaction Authorization Number)。
使用TAN或一次性驗(yàn)證碼能有效地保護(hù)數(shù)據(jù)傳輸免于重播式攻擊,但對(duì)于這類無線連接,其他種類的攻擊依然存在:
產(chǎn)生一次性驗(yàn)證碼的方式是已知的,因此攻擊者可隨時(shí)為攻擊產(chǎn)生一個(gè)新的一次性驗(yàn)證碼,這個(gè)威脅,跟銀行交易中所使用的公共交易授權(quán)碼生成器(public TAN generator)可以相比疑。
一次性驗(yàn)證碼被捕獲并且沒有抵達(dá)接收者,攻擊者可以在等候超時(shí)(time-out)之內(nèi)、冒充為獲授權(quán)之發(fā)送者、發(fā)送偽冒獲授權(quán)的數(shù)據(jù)包,這種攻擊也稱為中間人攻擊(MITM, Man-in-the-Middle Attack)。線上銀行交易也有很多這種攻擊,稱為網(wǎng)絡(luò)釣魚(phishing)。
使用一次性驗(yàn)證碼并對(duì)數(shù)據(jù)包加密,是應(yīng)對(duì)中間人攻擊的強(qiáng)力方法,再加上一重發(fā)送者的合法認(rèn)證,因此PIN/TAN組合便成為線上銀行的實(shí)施方式。
最有效的做法是收發(fā)雙方的一次性驗(yàn)證碼都不需要依賴對(duì)方,而每次的一次性驗(yàn)證碼都是隨機(jī)產(chǎn)生的,這樣確保了通訊的最佳保護(hù),但亦因此必須要接收者產(chǎn)生一次性驗(yàn)證碼并回復(fù)給發(fā)送者;若通訊有足夠加密,一次性驗(yàn)證碼也可以與真實(shí)數(shù)據(jù)經(jīng)同一條途徑傳輸,而由于一次性驗(yàn)證碼只可以被發(fā)送一次,攻擊者根本沒有足夠時(shí)間作出重播式攻擊,而加密也無需十分強(qiáng)勁,已足夠延誤攻擊者,當(dāng)?shù)群虺瑫r(shí)(time-out)過后,一次性驗(yàn)證碼已經(jīng)失效。
拒絕服務(wù)式攻擊(Denial-of-Service-Attack)
另外一個(gè)較出名之攻擊方法為拒絕服務(wù)式攻擊,攻擊者之目標(biāo)既不是進(jìn)接私人數(shù)據(jù),也不是冒充被攻擊者,而是令通訊無法實(shí)現(xiàn)。拒絕服務(wù)式攻擊是一種破壞式攻擊方法。
在無線通信領(lǐng)域,百分百免于拒絕服務(wù)式攻擊是不可能的,攻擊者隨時(shí)都可以利用一個(gè)寬頻發(fā)送器干擾所有無線通信,這現(xiàn)象不單發(fā)生于智能家居中,動(dòng)電話機(jī)及廣域網(wǎng)交通亦面對(duì)性質(zhì)一樣的問題。
在智能家居,有線通信方式一個(gè)優(yōu)勢是其更有效免于拒絕服務(wù)式攻擊,此論點(diǎn)是有力的,但并不完全,理由是移動(dòng)電話及無線網(wǎng)絡(luò)(WLAN)仍繼續(xù)采用相對(duì)脆弱的無線通信方式。
個(gè)中之原因也和這種技巧一樣簡單:給移動(dòng)電話及廣域網(wǎng)制造拒絕服務(wù)式攻擊一點(diǎn)不難,但對(duì)于攻擊者,也沒丁點(diǎn)趣味并得益不多。要產(chǎn)生一個(gè)公眾事件(如,將某條街的街燈全關(guān)掉)并不容易,而入侵一個(gè)家庭也不見得有巨大之有型得益,事實(shí)上,有更多比無線干擾更簡單、更低成本、更好的方法去騷擾他人,試想一下,有什么比在冷天擲石敲破人家的玻璃窗更有影響。
無線安全性的其它方面
另一個(gè)可算是對(duì)拒絕服務(wù)式攻擊及中間人攻擊的先天性保護(hù),是無線通訊于距離上的限制。Z-Wave領(lǐng)域里有個(gè)別的例子運(yùn)用發(fā)射功率高達(dá)25毫瓦(mW),但一般數(shù)據(jù)發(fā)送都只在幾毫瓦之內(nèi),因此戶外無線距離都在一百米范圍內(nèi), Z-Wave在設(shè)計(jì)上運(yùn)用路由功能來平衡其短距離特性。高的發(fā)射功率無疑會(huì)令無線技術(shù)更易受到攻擊,若信號(hào)不會(huì)伸延得離家太遠(yuǎn),攻擊者便必須很接近住所才能發(fā)動(dòng)攻擊。
最后一個(gè)無線網(wǎng)絡(luò)之保安課題,但亦相當(dāng)重要之考慮是成本/效益比。例如亞洲黑客進(jìn)接到一個(gè)歐洲家庭里的洗衣機(jī),獲得相關(guān)之能源消耗資料,對(duì)于大部分人來說,都覺得頗無意義,試問數(shù)千公里外的黑客可以從數(shù)千公里遠(yuǎn)的家庭得到什么有型利益?他寧可花精力去入侵受害者之銀行戶口,更為有利;能夠近距離接近一個(gè)住所固然讓攻擊者有更多選擇去搞破壞,但一塊石頭總比復(fù)雜之電子技術(shù),來的更便宜及更方便,更不用說擲石的知識(shí)比裝備干擾的發(fā)送機(jī)之知識(shí)更易獲得。
另一個(gè)類似道理,一個(gè)有經(jīng)驗(yàn)的盜賊可以在數(shù)分鐘內(nèi)破壞最先進(jìn)的機(jī)械門鎖,而攻擊者能運(yùn)用電子技術(shù)將門戶打開的風(fēng)險(xiǎn),其實(shí)已經(jīng)大大減輕了。
Z-Wave S2 保安技術(shù)
2016年初,Z-Wave 公布了更先進(jìn)的S2加密機(jī)制(有別于上一代S0保安機(jī)制)S2向下對(duì)原來S0加密機(jī)制兼容,S2采用了Diffie-Hellman密鑰交換機(jī)制,免除了交換密鑰的風(fēng)險(xiǎn)。
S2除了解決了密鑰交換那一瞬間的暴露風(fēng)險(xiǎn)以外,還有一系列的改進(jìn):
不需要用輪詢(polling)去查詢?cè)O(shè)備狀態(tài)
為了減低節(jié)點(diǎn)之間通信頻次,提高網(wǎng)絡(luò)容量,Z-Wave plus規(guī)格嚴(yán)格限制了輪詢的使用,S2提供Supervision 指令集去取代輪詢的功能,即控制器發(fā)出控制指令之后無需向目標(biāo)節(jié)點(diǎn)(destination node)輪詢狀態(tài);Supervision指令允許目標(biāo)節(jié)點(diǎn)用一個(gè)報(bào)告同時(shí)提交目前跟未來的狀態(tài),以減省通信的頻次。舉一個(gè)例子,控制器發(fā)命令給門鎖把門鎖上,門鎖可以通過supervision指令報(bào)告目前是“進(jìn)行中”,3秒鐘之后會(huì)“完成”,所以控制器會(huì)在用戶界面上顯示門鎖狀態(tài)為“正在工作”,而3秒后會(huì)轉(zhuǎn)變?yōu)椤版i上”
S2采用主動(dòng)防護(hù)機(jī)制規(guī)避“重播式攻擊”
每一個(gè)發(fā)出的數(shù)據(jù)幀都通過13byte動(dòng)態(tài)驗(yàn)證碼加密,讓截聽者無法預(yù)測信息內(nèi)容的模式(Patterns)
S2 支持3個(gè)保安層級(jí)
S2 Class 0 – 非鑒權(quán)(Unauthenticated)
這一級(jí)的保安度最低,廠家如果想降低成本不提供DSK標(biāo)簽可以用這這個(gè)層級(jí)。
另外那些不支持DSK鑒權(quán)功能的控制器也要用這一層級(jí)。
S2 Class 1 – 鑒權(quán) (Authenticated)
所有帶DSK標(biāo)簽的設(shè)備應(yīng)該通報(bào)為S2 Class 1,但門磁與類似的設(shè)備會(huì)有一些限制。
這些設(shè)備進(jìn)行【添加】的時(shí)候需要輸入“設(shè)備指定密鑰”(Device Specific Key,簡稱DSK,一般是設(shè)備上的一個(gè)QR二維碼標(biāo)貼)前面的5位數(shù)字
S2 Class 2 – 門禁控制(Access Control)
這是Z-Wave S2機(jī)制最高保安層級(jí)
門鎖應(yīng)該只通報(bào)這一個(gè)層級(jí),因?yàn)樾枰罡弑0残阅堋?/p>
Z-Wave技術(shù)由于S2保安機(jī)制的實(shí)現(xiàn),為目前唯一獲(美國)UL列入部件認(rèn)可名單的自組網(wǎng)無線通信技術(shù),換句話說,采用Z-Wave S2技術(shù)的產(chǎn)品具備通過UL安防設(shè)備的條件(注1),從而得到保險(xiǎn)公司的認(rèn)可理賠資質(zhì)。
S2于2017年4月1日成為Z-Wave 聯(lián)盟對(duì)于新產(chǎn)品認(rèn)證的強(qiáng)制性要求。
注1:
美國安防服務(wù)運(yùn)營商與保險(xiǎn)公司通常會(huì)要求產(chǎn)品根據(jù)其自身功能而需獲得額外相關(guān)UL認(rèn)證作為認(rèn)可接入系統(tǒng)的要求,常見的有:
UL 634 (Standard for Connectors and Switches for Use with Burglar-Alarm Systems)
UL 639 (Standard for Intrusion-Detection Units)
閱讀延伸:
關(guān)于Diffie-Hellman 密鑰交換機(jī)制
Diffie-Hellman 密鑰交換機(jī)制是采用公共密鑰(Public key) 與私人密鑰(Private key)去實(shí)現(xiàn):
1.一開始A與B雙方會(huì)先交換公共密鑰(Kp),我們假設(shè)C一直在旁截聽,所以C也收到這個(gè)公共密鑰;公共密鑰包含了質(zhì)數(shù)底數(shù)G(Generator)和質(zhì)數(shù)模P(Prime Modulus)。然后A與B他們自己各自會(huì)生成一個(gè)私人的隨機(jī)密鑰(分別為Ka 和Kb) ,這個(gè)私人密鑰不會(huì)告知對(duì)方,因此C沒法截聽而得知;
2.A和B會(huì)把自己的私人密鑰Kx和收到的公共密鑰匙(含G和P)作模算術(shù)(modular arithmetic)生成一個(gè)余數(shù)Rx,再發(fā)給對(duì)方,故 A從B收到的信息是B通過公共密鑰Kp取得的底數(shù)G和質(zhì)數(shù)模P,再以私人密鑰Kb作為G的指數(shù)(exponent)通過模算術(shù)求出mod P的余數(shù)Rb;同樣B也從A那里收到A以相同方式算出來的余數(shù)Ra;
算式是: GKx mod P = Rx, x是a或b
Kx是雙方自己隨機(jī)生成的私人密鑰(Private Key), mod是求余算法。
假設(shè)G是3,P是17,Ka是10,Kb是6
那么A的算式是:310 mod 17 = 8(Ra);B的算式是:36 mod 17 = 15(Rb)
3.最后一步,雙方把從對(duì)方獲得的余數(shù)Rx作為底數(shù)G,以自己私人密鑰作為指數(shù)再用模算術(shù)求余算出一個(gè)最終的余數(shù)出來。雙方算出來的結(jié)果R會(huì)是一致的,就是雙方以后使用的密鑰。
算式是: RxKx mod P = R
因此A的算式是: 1510 mod 17 = 4 ;B的算式是: 86 mod 17 = 4
兩者得出的余數(shù)R皆是4,這就是雙方以后加密數(shù)據(jù)用的密鑰,而由于Ka和Kb從來沒有在空氣中交換過,所以C無法得悉(C只截聽到G、P、Ra、Rb),因而無法算出R。
模算術(shù)的優(yōu)點(diǎn)是其單向性(one way function),G與P都是質(zhì)數(shù),沒法用算式把余數(shù)與底數(shù)反向求出指數(shù)Kx,只能一個(gè)一個(gè)去試(Trial and error),只要G和P的數(shù)值足夠大,要一個(gè)一個(gè)去試的時(shí)間會(huì)很長,例如達(dá)幾百位的10進(jìn)數(shù),用目前最快的超級(jí)電腦去試的話都需要幾十年以上。這就堵塞了交換密鑰的保安風(fēng)險(xiǎn)。
(審核編輯: 林靜)
分享