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