IoT Security DES AES DPA

可升級防線阻未來攻擊 物聯網裝置勢須具更新機制

2018-09-11
安全防護歷經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供應商手上獲得安全開機程式的功能。再者,物聯網廠商必須將發出更新的傳送機制和程序能預先規畫好。所幸安全開機程式隨手可得,而且相關裝置已連上了網際網路。善用安全更新不需花太多工夫,因此沒有不作為的理由。

(本文作者為Silicon Labs資深產品安全總監)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!