技術文章

首頁>技術文章
2018/12/13

IoT需要可升級的安全性

擷取

安全防護歷經DES、AES、DPA的改朝換代,原本高價的DPA工具也已淪為300美金即能取得的工具,甚至進階的後處理算法在網絡上就有免費資源。這也意味著,黑客的駭入門坎降低,故透過軟件更新方式,讓物聯網安全隨駭客能力同步升級已為大勢所趨。

物聯網(IoT)使人們能透過大規模部署來優化和改善現代生活的大多數層面。隨著數以億計的物聯網裝置帶動數億美元的經濟價值,物聯網的巨大潛力也引來了惡意的敵人與攻擊者。如果要讓物聯網裝置達到安全並反制攻擊,就必須確保物聯網所有的終端節點都可升級。物聯網裝置的壽命長,加上敵人所使用的知識和工具進步迅速,使裝置無從設計成在任何安全等級上都一輩子保持充分安全。因此,裝置如果要保持安全,就必須確保安全性可透過軟件更新來升級。本文即將從安全性如何隨著時間而改變的歷史著眼,來思考安全更新對物聯網裝置的設計有何影響。

安全性通常是以二分法的方式來看待:裝置、服務或系統是安全或是不安全?但使用者該問的問題是,是在哪方面安全?在現實中,安全性有不同的等級,而且就攻擊者而言,只有當安全等級比攻擊者的本領要高時,裝置才能算是安全。
 
此外,攻擊者的本領一般都是非靜態,因此安全等級會隨著時間而改變。攻擊者的本領提升可能會以多種不同的方式呈現,從發掘和/或發布問題與弱點,到更廣泛的可用設備和工具。

關於安全等級是如何隨著時間而演進,本文將回顧幾個例子,並從對稱式加密算法開始。 1977年時,數據加密標準(DES)算法獲得確立為標準對稱式密碼。 DES用的是56位的密鑰長度,所以只要既有的運算能力提高,標準就容易遭到暴力攻擊法破解。 1997年時,算法經證明花了56小時就遭到暴力攻擊法破解。 DES明確遭到破解後,三重DES便獲得確立為標準安全對稱式密碼,基本上就是以不同的密鑰把DES執行三次。關於DES的安全等級,有人推測假如政府在1977年時就已經能破解密碼,那DES絕對抵抗不了國家級的攻擊。不過從2000年代初期以來,由於運算能力唾手可得,DES連業餘玩家的個人計算機都擋不住。

DES/AES/DPA不敷使用 安全等級步步提升
從2001年起,進階加密標準(AES)便取代了DES。但連AES都無法保證絕對安全。即使算法無法輕易遭到破解,在實行時也經常可能遭駭。例如試想不同的差分能量分析(DPA)攻擊,它是用電路在執行加密時的耗能或電磁幅射來獲知密碼密鑰。特別是DPA會去掌握為數眾多的耗能踪跡,再靠分析來揭露密鑰。 DPA是在1998年所提出,自此以後,Cryptographic Research此類的公司(現在的Rambus)便開始販賣工具來執行DPA攻擊,只不過工具的售價是業餘玩家和大部分的研究人員所負擔不起。如今執行進階DPA攻擊的硬件工具花不到300美元就能入手,進階的後處理算法則是在網絡上就有免費的可用。如此一來,從事DPA攻擊的能力便從國家級和有錢的敵人轉移到了幾乎是任何黑客身上。
 
接下來針對物聯網裝置的長使用壽命來討論這些歷史教訓。物聯網裝置一般的生命期端賴應用而定,20年在產業應用上算是很普遍,也是本文在這段討論中所採用的時間長度。例如在1998年推出的裝置曾經只容易遭到國家級的攻擊;如今它則必須能承受擁有300美元的工具、一些閒暇時間和咖啡的業餘玩家所發起的DPA攻擊。要預測一票敵人的未來本領就算不是不可能,也是難上加難,尤其是時間週期為20年。

要反擊未來的攻擊態勢,唯一合理的方式就是讓裝置的安全性隨著敵人的本領而演進。這必須使物聯網的安全性可在軟件上升級。有的功能當然有賴於硬件支持,而無法透過軟件更新來修正。不過,當另一個選擇是派員處理時,在軟件上所能解決的事就不容小覷。
 
對各位的物聯網產品來說,這意謂著什麼?首先,產品需要能以安全的方式來接收軟件更新。本文將探討軟件更新安全的兩個層面:技術觀點,也就是對裝置和軟件的要求,以及程序觀點,尤其是發佈軟件更新的授權和控管。
 
就技術觀之,安全的更新牽涉到驗證、檢查完整性,以及可能要為裝置的軟件加密。處理這類安全性更新的軟件是開機程序,而且基於這些特性,它一般都被稱為安全開機程序。連同相應的密碼密鑰,安全開機程序本身構成了系統的信任根,而且一般都不可升級。因此,開機程序和密鑰必須擺在不可修改的內存中,像是一次性可編程(OTP)內存或只讀存儲器(ROM)。這種程序代碼的任何弱點都等同於硬件問題,並且無法在現場補救。
 
靠著裝置僅有的公鑰,驗證和檢查完整性應該是用非對稱加密來進行。裝置的簽章檢查密鑰並不是非保護不可。由於保護所佈建裝置的密鑰比保護控管裝置擁有者的密鑰更困難(或者至少應該是如此), 所以讓許多裝置使用相同的開機程序密鑰也無妨。最後,由於裝置可包含及使用公鑰,所以系統可以扺禦DPA的攻擊。

軟件加密顯神通 防盜拷設計有妙方
把在物聯網裝置上運作的軟件加密有兩個好處。第一,它可同時針對競爭對手和仿冒來保護許多廠商所認定的智慧財產(IP)。第二,加密可防止敵人去分析軟件的弱點。不過,加密新軟件以進行安全開機的確會牽涉到裝置的密鑰,而保護現場裝置的密鑰正變得日益困難。在此同時,較新的裝置則已提高對DPA攻擊的抵抗力。再者,對DPA攻擊的常見反制措施是限制密碼操作的次數,使它無從取得充分的資料來洩漏密鑰。即使密鑰保護起來很難,而且具備動機的敵人八成還是能夠擷取,但它的確可提高門坎,使攻擊者在施展身手時難度大增。因此,安全開機始終是會涉及軟件加密。
 
安全更新的另一個後果是,物聯網裝置未來可能會需要更多的內存。基於諸多原因,這會是複雜的取捨。首先,軟件往往會擴展至裝置的可用內存。所以裝置如果要有較大的內存,軟件團隊就必須有紀律地替未來的更新預留空間。另一個複雜之處則是備用內存的未來價值對比裝置的初始成本。內存較多往往會使裝置的成本提高。從裝置製造業者和消費者的觀點來看,這個成本都必須合理。遺憾的是,市佔率的激烈競爭使許多裝置製造業者都趨於短視,他們有時候會把成本看得比未來的安全性要重。
 
最後,很重要的是,安全性更新要有配送計劃。就大部分的裝置而言,這些更新都是利用裝置既有的網絡聯機。但在某些情況下,這必須增添或利用到實體接口,好比說隨身碟(也就是Sneakernet)。同樣很重要的是,要考慮到裝置可能會有防火牆,或是在某些情況下無法連上因特網。
 
安全更新一旦在技術觀點上有可能,問題就會變成誰有權簽署及發佈軟件更新。物聯網裝置日益常見的是,軟件完全由裝置製造業者擁有和管理。這代表裝置製造業者應該要有經過驗證的既定程序,以便從內部來保護簽署密鑰,尤其是誰能發布更新。這不見得要和客戶或終端使用者的授權相結合。以某些裝置來說,終端使用者必須主動下載更新和應用,或者起碼要啟動更新程序。在某些例子中,更新則是全自動。

所佈建物聯網裝置的壽命長,加上敵人的工具和知識大幅擴增,使裝置無從打造成在任何安全等級上都永遠保持安全。因此,如果要讓物聯網裝置在整個實際生命期都保持安全,就一定要確保這些裝置的安全性可透過軟件更新來升級。但由於更新機制也是攻擊點,所以一定要在物聯網產品的可編程裝置里布建安全開機程序,並把開機程序密鑰保管好。物聯網廠商應該可望從IC供貨商手上獲得安全開機程序的功能。再者,物聯網廠商必須將發出更新的傳送機制和程序能預先規畫好。所幸安全開機程序隨手可得,而且相關裝置已連上了因特網。善用安全更新不需花太多工夫,因此沒有不作為的理由。

Source: Silicon Labs, Lance Looper
 
© 2018 EDOM Technology. All Rights Reserved.