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