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