嵌入式系統(tǒng)安全級別的設(shè)計
新聞總是樂于報道安全系統(tǒng)遭到攻擊的事件:操作系統(tǒng)漏洞、非法入侵政府網(wǎng)絡(luò)、筆記本電腦的信用卡帳戶信息被竊等等。安全性不僅僅涉及到筆記本電腦和服務(wù)器,嵌入式領(lǐng)域也越來越關(guān)注安全性問題,例如交通燈、家庭安全系統(tǒng)、煙霧探測器、ATM、收銀機等,由此看來,風險無處不在。
嵌入式系統(tǒng)需要安全保護的原因有多種,某些應(yīng)用中,政府部門需要對敏感數(shù)據(jù)進行保護,例如:病歷、信用卡信息等。有時還會對銷售流程進行安全保護,例如,公司可能以低于成本價出售打印機,通過打印機耗材的高利潤進行補償。利用安全技術(shù)可以鑒別耗材的真?zhèn)危苊馐褂玫谌降募倜爱a(chǎn)品。某些情況下,安全技術(shù)被用來保護知識產(chǎn)權(quán),嵌入式設(shè)備中可能包含極具創(chuàng)新的算法,制成成品后,為了保護來之不易的產(chǎn)品設(shè)計,需要增加安全性,以防止盜版。
安全性設(shè)計是一個折中的過程一理想的安全產(chǎn)品設(shè)計將耗資無限,而不具備安全保護的設(shè)計則不需要任何安全功能的花費。每種特定應(yīng)用都必須確定所要求的安全等級,具體了解安全系統(tǒng)需要保護什么?
加密安全嗎?
選擇合適的加密工具對于通訊架構(gòu)來說至關(guān)重要,應(yīng)選擇公共算法,應(yīng)用較為普遍的算法包括:DES、RSA或DSA。許多人認為選擇一個模糊的私有算法會更安全,實際情況并非如此,公開算法已經(jīng)經(jīng)過學(xué)術(shù)界、政府機構(gòu)和業(yè)內(nèi)專家的評估。私有算法看起來安全,而且也經(jīng)過一位收取一定費用的專家的評審,但是,如何保證事物背后的安全性,如何保證評審人員的可信度?另外,私有算法還可能需要支付許可權(quán)費用、版權(quán)費用等,限制今后的選
擇權(quán)。
盡管加密技術(shù)對于嵌入式系統(tǒng)的安全性來說至關(guān)重要,但這只是一個方面。假設(shè)現(xiàn)實世界場景中,兩個人通過相互傳遞編碼信息進行交流。攻擊者可能竊取此信息,如果信息編碼所采用的加密技術(shù)可靠,這種攻擊將是無效的。有膽量的攻擊者可能會直接對人進行攻擊。與破解加密信息相比,強迫參與者泄漏通訊密碼會更加容易。
這個例子對于嵌入式應(yīng)用非常形象,例如ATM與銀行之間的加密通信。試圖破譯傳輸線上的加密PIN數(shù)據(jù)幾乎是不可能的,有些攻擊者可能認為攻擊ATM機更有效。攻擊者可能會在夜深人靜時打開ATM。在一系列攻擊后獲取ATM與銀行通信的密鑰。然后,攻擊者將ATM恢復(fù)原位后離開。這種情況下,對傳輸線的監(jiān)測使攻擊人員獲取了密鑰,可以解密所有帳號和PIN數(shù)據(jù)。
值得慶幸的是,目前的ATM具備強大的物理層和邏輯安全技術(shù)的保護。當然,上述例
子也提出了以下幾個安全性問題:
·加密技術(shù)只提供一層保護,不能完全阻止攻擊者的行為。
·貯存在ATM機中最有價值的東西是密鑰,而非賬號、PIN數(shù)據(jù)或現(xiàn)金。
·一個安全的嵌入式設(shè)備必須在遭受攻擊時有所反應(yīng),擦除有價值的密鑰。
對嵌入式系統(tǒng)的攻擊
攻擊者通過什么途徑得到ATM的密鑰呢?
攻擊著可能從最簡單的操作開始,假如密鑰存儲在外部存儲器,攻擊者只需簡單地訪問地址和數(shù)據(jù)總線竊取密鑰。即使密鑰沒有連續(xù)存放在存儲器內(nèi),攻擊者仍然可以破解外部代碼,確定哪個存儲器包含有密碼。引導(dǎo)裝入、調(diào)試和測量狀態(tài)下都是遭受簡單攻擊的薄弱環(huán)節(jié)。這些工作狀態(tài)通常允許對微處理器內(nèi)存和寄存器讀/寫操作。即使這些狀態(tài)的文件不公開,對于有著廣泛社交經(jīng)驗的工程師來說,通過微處理器廠商的雇員來獲取這些信息也是輕而易舉的事情。
嘗試了簡單的攻擊手段后,如果沒有達到目的的話,攻擊者還會采取更為詭異的手段。從簡單的時序和功率分析中觀察加密操作的時序和功率消耗。對于設(shè)計不理想的加密過程可能會在處理密鑰1時比處理0時消耗更多的時間和功率,這為攻擊者提供了足夠的信息,使其推算出密鑰。如果這種簡單的分析手段不起作用,攻擊者便會使用差分能量分析(DPA)技術(shù)。差分能量分析是一種統(tǒng)計攻擊方法,通過采集上千次運行時的能量損耗數(shù)據(jù),最終,從功率脈沖信號中獲取密碼。雖然這種方法耗時,但可以自動操作。此外,攻擊者還可能采用故障注入攻擊,使微處理器運行在工作范圍以外的條件下,從而產(chǎn)生故障信息,導(dǎo)致密碼泄漏。攻擊者也可能試圖拆除微處理器的塑料封裝,用微探針分析密碼數(shù)據(jù)。內(nèi)存具有規(guī)則的結(jié)構(gòu),很容易在硅片中識別出來,利用微探針設(shè)備可以很容易地對此操作。
面對上述種種攻擊,工程師必須采取適當?shù)拇胧榍度胧较到y(tǒng)提供有效防護。
防攻擊措施
在高安全性應(yīng)用中需要具有唯一的質(zhì)詢,單一品牌的處理器。安全微處理器,例如DallasSemiconductor的DS5250(圖1),能夠滿足最高安全級別的設(shè)計需求。
優(yōu)秀的安全處理器非常注重密鑰保護,使用非易失電池備份SRAM儲存敏感信息。這種SRAM應(yīng)該采用定制的可歸零或瞬間擦除的存儲器,一旦檢測到篡改操作時即刻擦除存儲器內(nèi)容。利用連續(xù)工作的傳感器或有電池供電的時鐘檢測篡改事件(例如溫度攻擊、電壓攻擊或微探針攻擊)。這種安全監(jiān)測可以確保攻擊者利用外部時鐘控制時無法阻止清零過程。使用片上存儲器,攻擊者無法竊取器件內(nèi)部傳輸?shù)拿荑€。另外,假如對器件實施物理攻擊,密鑰會被立刻擦除。
為了確保攻擊者無法控制內(nèi)存總線、插入可能竊取密鑰的指令,安全處理器對外部存儲器總線進行加密,并對程序存儲器提供完整性監(jiān)測,密鑰隨機產(chǎn)生,每個器件不同,這種加密方法確保攻擊者無法復(fù)制或竊取產(chǎn)品設(shè)計,提供有效的知識產(chǎn)權(quán)保護。假如攻擊者試圖插入隨機指令,完整性檢查就會報告檢測錯誤,認為偵測到篡改事件。
安全處理器同樣配備了硬件加密加速器,可以在納秒級(而不是毫秒級)時間內(nèi)執(zhí)行三DES算法。另外,硬件加速器設(shè)計運行在固定數(shù)量的時鐘周期,不管密鑰內(nèi)容如何,都會消耗同樣的能量。隨機數(shù)生成器也能夠把一系列虛假的執(zhí)行周期添加到加密算法的頭部和尾部,禁止功率時序分析。
結(jié)語
設(shè)計者必須確定具體應(yīng)用對安全級別的要求,一次成功的攻擊會產(chǎn)生什么樣的后果。對于安全級別要求較高的嵌入式系統(tǒng)寧可廢除其操作功能,也不能泄漏密碼,必須對多種攻擊措施有所考慮。對于防攻擊措施要求較高的應(yīng)用,可以使用DS5250等安全微處理器,能夠在任何情況下對加密數(shù)據(jù)提供有效保護。