隨著智能家居等物聯(lián)網(wǎng)生態(tài)逐步普及,更多的傳統(tǒng)設(shè)備物聯(lián)網(wǎng)化呈現(xiàn)急劇增長趨勢,智能鎖就是一個很好的例子,智能鎖鎖可以提供一些典型的功能比如:遠(yuǎn)程解鎖,智能手機集成,高級身份驗證方法等。但作為一個個人安防設(shè)備,安全是消費者最為關(guān)注的問題,現(xiàn)在我們就來看看一個優(yōu)秀智能鎖開發(fā)者如何來從開發(fā)角度來提高安全性。
最近安全實驗室RISCURE在一些智能鎖設(shè)備中設(shè)備中分析了內(nèi)部,反向設(shè)計了固件和相應(yīng)的智能手機應(yīng)用程序,并嘗試了幾次攻擊,看看鎖是否可能受到損害。總結(jié)如下:
(1)可以使用外部設(shè)備上的物理攻擊打開第一個鎖,通過一些練習(xí),這個鎖可以在幾分鐘內(nèi)被打開。
(2)可以對無線通信協(xié)議使用加密攻擊來打開第二個鎖,使得門在一小時內(nèi)被遠(yuǎn)程打開而不用鎖或門使用物理的方式。
(3)第三把鎖被充分保護,以抵御測試者的攻擊。但是也發(fā)現(xiàn)了這一點上的副作用:鎖容易受到拒絕服務(wù)的攻擊,阻止合法用戶解鎖。。
這些研究結(jié)果表明,智能鎖可以帶來新的風(fēng)險,應(yīng)該更強調(diào)智能鎖在發(fā)展過程中的安全。根據(jù)分析,結(jié)合在評估安全嵌入式設(shè)備方面擁有豐富的經(jīng)驗,這里總結(jié)了以下,對智能鎖開發(fā)人員提供了13條建議。
1:正確使用密碼學(xué)
許多智能鎖依賴于加密算法來驗證用戶并保持身份驗證標(biāo)記保密。雖然一般來說,標(biāo)準(zhǔn)的加密算法是被認(rèn)為非常安全,它們的實施和組合方式通常決定了實際情況安全級別。
避免使用專有的加密協(xié)議
密碼專家對標(biāo)準(zhǔn)加密算法和協(xié)議進(jìn)行了廣泛的審查和研究。這些標(biāo)準(zhǔn)的算法安全性已經(jīng)非常成熟且經(jīng)過大量驗證,但是一些開發(fā)人員卻通過構(gòu)建新的加密算法或以不設(shè)計使用的方式組合現(xiàn)有加密算法。但效果往往適得其反,但在許多情況下,由于算法的不成熟,設(shè)備往往更容易受到攻擊。
使用高強度的隨機數(shù)生成器
對于安全通信,身份驗證和設(shè)備密鑰生成,使用高熵隨機數(shù)至關(guān)重要。確保用于加密目的的隨機數(shù)是從高質(zhì)量的隨機數(shù)發(fā)生器獲得的,也就是要做到真隨機性。比如時間或者其他可預(yù)測的值作為種子的偽隨機數(shù)是很容易被黑的。
不要在所有設(shè)備上存儲相同的秘密
如果在其他設(shè)備中也發(fā)現(xiàn)了涉及預(yù)共享密鑰的鎖密碼,主要風(fēng)險是它很容易受到攻擊而且不需要攻擊者在現(xiàn)場,一般采用一鎖一密的方式是最佳的。
不要使用弱密鑰生成或派生
如果根據(jù)攻擊者已知的可預(yù)測數(shù)據(jù)或生成密鑰,那么攻擊者可以直接確認(rèn)密鑰。
安全地存放和運輸鑰匙
許多開發(fā)人員聲稱具備強大的加密技術(shù),但重要的是確保保存在硬件中的密鑰不能輕易被讀取,也要確保無線通信信道或云端系統(tǒng)中的漏洞不被旁路攻擊或者竊聽。
2:關(guān)閉測試和調(diào)試功能
在開發(fā)嵌入式設(shè)備時,開發(fā)人員通常使用調(diào)試接口,測試功能或“后門”來支持他們的開發(fā)過程。在構(gòu)建生產(chǎn)版本時,盡可能地關(guān)閉這些調(diào)試機制,因為它們對于想攻擊該設(shè)備的人來說也非常有用。,測試者已經(jīng)在智能鎖上使用這些接口來獲取內(nèi)部存儲器的固件和運行時間。這顯著減少了反向工程和理解固件所需的時間。
在某些情況下,開發(fā)人員選擇使邏輯上無法訪問測試功能。但是,我們建議從代碼庫中完全刪除此功能的執(zhí)行,因為一些邏輯攻擊可以重新啟用測試功能。此外,保持測試功能通常會導(dǎo)致調(diào)試字符串仍然包含在固件中并被引用。這會導(dǎo)致固件上的逆向工程的可能性。
3:安全更新機制
與任何其他軟件產(chǎn)品一樣,智能鎖上運行的固件可能包含錯誤和漏洞。嵌入式設(shè)備通常支持固件升級,通常使用從網(wǎng)上下載的映像。安全地實施此更新機制非常重要。我們推薦:
(1)·正確驗證更新映像。例如,通過在對新固件編程之前驗證加密簽名。·
(2)防止固件降級,因為這會帶來重新引入漏洞的風(fēng)險。
(3)確保未經(jīng)所有者同意,無法從外部調(diào)用軟件更新機制。
除了真實性之外,還應(yīng)考慮固件的機密性。輕松訪問固件,例如,當(dāng)它可以從互聯(lián)網(wǎng)上下載時,簡化了反向工程過程。
4:防止外部設(shè)備的影響
不要信任來自在惡劣環(huán)境中運行的設(shè)備或接口的命令。這包括通過無線通信信道發(fā)送的命令以及外部設(shè)備比如安裝在門外的按鍵所發(fā)送的命令。由于攻擊者已經(jīng)(或通過一些努力可以獲得)控制這些外部設(shè)備,命令可以很容易地監(jiān)控,復(fù)制或修改。
如果外部鍵盤對用戶進(jìn)行身份驗證,則此外部按鍵應(yīng)僅發(fā)送認(rèn)證數(shù)據(jù)到內(nèi)部單元,或者它應(yīng)該執(zhí)行到內(nèi)部單元的安全通道并實施防篡改。無論如何,請確保他人難以添加竊聽裝備到外部設(shè)備。
5:實施緩和中繼攻擊
假設(shè)智能鎖在其密鑰(例如,移動電話)非常接近時自動打開。在這種情況下,攻擊者可以使用另一個通信通頻道來縮短智能鎖和所有者智能手機之間的距離并打開鎖。這種中繼攻擊可以看作是一種中間人攻擊,其中通信沒有被修改。我們建議實施針對此類攻擊的緩解措施; 例如,通過要求所有者的故意行動(例如,按下按鈕以打開門)或?qū)νㄐ偶訌妵?yán)格的時間要求。
6:使用安全編碼實踐
許多軟件漏洞都是由不安全的編碼實踐引起的,例如數(shù)據(jù)長度的內(nèi)存副本來自不受信任來源。這可能導(dǎo)致緩沖區(qū)溢出,從而成功利用智能鎖。我們建議實施安全編碼實踐,例如正確的輸入驗證,安全的默認(rèn)返回值和深度防御(即實現(xiàn)多層安全機制)。
7:防止異常活動
在被分析的智能鎖上,我們進(jìn)行了多次攻擊,包括成功和不成功,這將被智能鎖內(nèi)的軟件所識別如果它可以監(jiān)視異常活動的話,通常,暴力攻擊(例如,暴力輸入PIN)或加密攻擊需要對智能鎖發(fā)送大量的請求以實現(xiàn)破解的目標(biāo)。
我們建議監(jiān)控通信異常活動并采取適當(dāng)措施。例如,限制對智能鎖的請求數(shù)并通知所有者。請注意實施這些應(yīng)對措施不得導(dǎo)致拒絕服務(wù)(DOS)攻擊的可能性。例如,在十次嘗試失敗后仍保持門關(guān)閉也會阻止智能鎖的合法用戶進(jìn)門。
8:實施適當(dāng)?shù)某蜂N支持
在某些情況下,打開智能鎖的密鑰可能會受到損害或丟失,例如當(dāng)帶有智能鎖密鑰的智能手機被盜時。另一個例子是攻擊者試圖出售使用過的鎖,同時仍然持有有效的解鎖標(biāo)記。為了防止未經(jīng)身份驗證的訪問,智能鎖的開發(fā)人員應(yīng)該提供撤銷可能受到攻擊的密鑰的功能。我們建議確保撤銷機制不僅依賴于密鑰設(shè)備來刪除標(biāo)記,而且還主動對鎖進(jìn)行干涉來 確保以前有效的密鑰被刪除或被列入黑名單。
9:防止物理攻擊
當(dāng)智能鎖還包括外部單元在惡劣環(huán)境中操作時,必須考慮對該外部單元的半侵入性和侵入性攻擊。特別是如果外部單元發(fā)送對內(nèi)部單元的“機密”消息,可以將外部單元物理地改變?yōu)槌掷m(xù)發(fā)送“機密”消息。在沒有其他漏洞的情況下,攻擊者可能會嘗試執(zhí)行更高級的攻擊例如故障注入或側(cè)通道分析。
故障注入攻擊旨在通過引入環(huán)境異常來干擾目標(biāo)的正常操作,如電壓尖峰或電磁脈沖。干擾可能導(dǎo)致目標(biāo)跳過執(zhí)行某些代碼,或執(zhí)行完全不同的代碼 - 從而達(dá)到繞過身份驗證的最終目標(biāo)。這些攻擊特別適合帶外部單元的鎖,攻擊者通常可以控制電源。
側(cè)信道攻擊使用來自電子電路的泄漏來恢復(fù)秘密信息。例如,攻擊者可能能夠測量芯片的功耗或電磁輻射來恢復(fù)加密算法中使用的密鑰,利用執(zhí)行的漏洞而不是算法本身的弱點。
甚至內(nèi)部單元也可能被側(cè)通道分析或故障注入所攻擊。有一個最近的例子表明,長距離邊通道可能攻擊到混合信號芯片所發(fā)射的無線電信號。像這樣的芯片通常在智能鎖中找到。因此,我們建議,組件在惡劣環(huán)境中運行時受到故障注入和側(cè)通道分析攻擊時,應(yīng)采取應(yīng)對措施。
10:拒絕服務(wù)攻擊
與網(wǎng)上的服務(wù)器類似,智能鎖可能會在使用拒絕服務(wù)(DoS)攻擊的時候遭受攻擊,攻擊者試圖阻止合法請求來打開門。攻擊者的目標(biāo)可能是為了破壞某個品牌的聲譽。攻擊可能是由以下原因引起的:導(dǎo)致某種內(nèi)存損壞的無效命令。故意保持連接打開(例如,藍(lán)牙或Wi-Fi)。中止(惡意)固件升級嘗試。我們建議考慮這些類型的攻擊,并確保任何外部請求經(jīng)過適當(dāng)?shù)尿炞C和處理。
11:對于“鑰匙”的攻擊
對于智能鎖,傳統(tǒng)密鑰由數(shù)字版本取代。這可能是按鍵,智能卡,RFID標(biāo)簽或智能手機。特別是當(dāng)密鑰在智能設(shè)備上使用時,例如智能手機,必須考慮此設(shè)備的攻擊。第三方應(yīng)用程序可能會嘗試訪問身份驗證令牌或鑰匙打開門。此外,攻擊者可能會創(chuàng)建一個請求身份驗證令牌的假鎖。智能手機可能會認(rèn)為鎖是一個合法的,并泄露秘密信息。
我們建議在鎖和密鑰之間實現(xiàn)相互身份驗證(雙向認(rèn)證)。
12:保障后端系統(tǒng)
許多智能鎖使用在云端運行的后端系統(tǒng)來保持客戶端更新和管理密鑰或令牌。因此,后端系統(tǒng)的安全性就像鎖本身安全一樣重要。對后端系統(tǒng)的攻擊甚至可以更好地擴展,并允許攻擊者獲得對大量鎖的控制。對保護后端系統(tǒng)的不同方法的詳細(xì)分析超出了本文的目的。我們建議考慮適當(dāng)?shù)陌踩珯C制。這意味著在很大程度上取決于系統(tǒng)的架構(gòu)。
13:這不僅僅是打開門
智能鎖不僅應(yīng)該保護門。考慮用戶的隱私也很重要。作為一個例如,竊賊使用郵件堆積作為居民休假的指標(biāo)。在一個鎖中我們已經(jīng)確定了可能通過展示等效數(shù)字來發(fā)現(xiàn)最后一次使用鎖是什么時候。這項檢查可以快速執(zhí)行,一個竊賊可以開車和周圍掃描智能鎖幾天,并同時建立一個所有房屋的哪些鎖一直沒被使用的示意圖。由于此信息對于鎖的所有者不可見,因此他們不知道并且不會采取任何對策。
-
智能安防
+關(guān)注
關(guān)注
13文章
652瀏覽量
58211 -
智能鎖
+關(guān)注
關(guān)注
18文章
1091瀏覽量
40244
原文標(biāo)題:開發(fā)智能鎖中提高安全性的13個關(guān)鍵方法
文章出處:【微信號:iotbanks,微信公眾號:iotbanks】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
鎖聯(lián)世界,智啟萬家,華普微藍(lán)牙智能鎖解決方案

低功耗藍(lán)牙智能門鎖應(yīng)用
高安全低功耗MCU:機器人控制系統(tǒng)的智能化與可靠性提升
如何提高嵌入式代碼質(zhì)量?
電池的安全性測試項目有哪些?

評論