嵌入式系統(tǒng)“多大程度的 安全才算安全”
當(dāng)今的嵌入式系統(tǒng)常常處理應(yīng)用代碼(IP)和數(shù)據(jù)等敏感信息,因此安全是其設(shè)計(jì)的一個(gè)主要關(guān)注因素。為了確立一個(gè)合理的基礎(chǔ)來判斷建議的安全系統(tǒng)是否足以御敵或是防衛(wèi)過當(dāng),就必須識(shí)別所察覺到的安全威脅。這意味著我們需要弄清對手有哪些,他們有什么樣的能力,他們的目標(biāo)是什么?我們要保護(hù)什么,我們要防范誰的威脅或什么威脅?世界上并沒有一個(gè)包打天下的解決方案,也沒有百分之百安全的安全系統(tǒng)。然而,安全系統(tǒng)不必是完美無缺的解決方案,也不需要全然牢不可破以至于失去應(yīng)用價(jià)值。安全系統(tǒng)只要足夠安全即可,也就是在它所保護(hù)的數(shù)據(jù)的預(yù)期有效時(shí)間內(nèi),它能夠抵御可能的敵人進(jìn)攻即可。
本文引用地址:http://butianyuan.cn/article/201609/304521.htm若沒有應(yīng)用環(huán)境,安全就沒有意義
嵌入式系統(tǒng)設(shè)計(jì)師經(jīng)常誤解安全,認(rèn)為諸如特定的加密算法和安全協(xié)議等安全措施只是系統(tǒng)的附加特性。安全是一個(gè)過程,而不是永遠(yuǎn)保持不變的一款產(chǎn)品或一種終極狀態(tài)。而且,也不能在產(chǎn)品將永遠(yuǎn)保持安全的假設(shè)下,把安全措施簡單地加入到一款產(chǎn)品中。當(dāng)今設(shè)計(jì)師面臨的最棘手難題之一就是明確嵌入式系統(tǒng)的安全要求和目標(biāo)。有助于解決這一難題的方法很多,本文所討論的方法涉及威脅建模和風(fēng)險(xiǎn)評估,目的是幫助設(shè)計(jì)師定義安全策略,然后設(shè)計(jì)對策來實(shí)施安全策略。
安全設(shè)計(jì)——在設(shè)計(jì)的初始階段檢測威脅
在設(shè)計(jì)安全解決方案的時(shí)候,首先必須做的就是定義一個(gè)威脅模型,然后再創(chuàng)建安全策略。一旦評估完成,就能安心地選擇具體的技術(shù)來實(shí)現(xiàn)安全對策。威脅決定應(yīng)對策略,策略決定設(shè)計(jì)。參見圖1
圖1 設(shè)計(jì)安全方案需要(1)定義一個(gè)威脅模型,(2)創(chuàng)建一個(gè)安全策略。
許多設(shè)計(jì)師都會(huì)犯同一個(gè)錯(cuò)誤,在設(shè)計(jì)安全系統(tǒng)時(shí)沒有首先明確和了解可能遇到的真正威脅,以及這些威脅會(huì)給他們的終端產(chǎn)品帶來的重大風(fēng)險(xiǎn)。相反,他們教條地把各類安全技術(shù)堆在一起,并希望能獲得很高的安全性。這樣做代價(jià)高昂,沒有系統(tǒng)能防御所有的安全威脅,在設(shè)計(jì)中囊括那些沒有必要的技術(shù)和防御沒有實(shí)際威脅的風(fēng)險(xiǎn)毫無意義。
威脅建模——價(jià)值意味著風(fēng)險(xiǎn)
對于資源受限的設(shè)備,嵌入式系統(tǒng)必須在存儲(chǔ)容量、功耗、處理能力、上市時(shí)間及成本等參數(shù)和安全需求之間獲取一種平衡。盡管存在資源不足的挑戰(zhàn),通過仔細(xì)考慮威脅模型并設(shè)計(jì)系統(tǒng)使其工作在能滿足該模型的可用計(jì)算能力限制之內(nèi),仍有可能開發(fā)出使產(chǎn)品在開放環(huán)境中有效工作的系統(tǒng)。
對系統(tǒng)設(shè)計(jì)師來說,考慮“威脅建模”的原理非常有用。威脅建模是基于一種假設(shè),即每個(gè)系統(tǒng)都有值得保護(hù)的固有價(jià)值。然而,因?yàn)檫@些系統(tǒng)是有價(jià)值的,他們對內(nèi)部或外部威脅也是開放的,這些威脅能夠且經(jīng)常給終端產(chǎn)品帶來損害。設(shè)計(jì)完成后的安全漏洞常常是無法修正的,且危及投入的資金和開發(fā)資源,因此需要在設(shè)計(jì)周期的初始階段增強(qiáng)對安全評估的需求,并在整個(gè)設(shè)計(jì)周期進(jìn)行監(jiān)測和重復(fù)修正。
本質(zhì)上,我們可以把威脅模型定義為:“識(shí)別一組可能的攻擊,以便考慮配合一套徹底的風(fēng)險(xiǎn)評估策略。”有了威脅模型,我們就能評估攻擊的概率、潛在危害和優(yōu)先級。
威脅建模很難,但是很有必要。威脅建模需要考慮系統(tǒng)是怎樣受到攻擊的。若建模成功,它就能解決潛在的系統(tǒng)安全故障隱患,諸如怎樣發(fā)生故障、以及故障時(shí)出現(xiàn)什么情況等問題。通常在市場和成本的壓力下,這個(gè)評估以一種特別的方式來進(jìn)行,即通過集思廣益征集系統(tǒng)有可能受到的所有攻擊(當(dāng)然,潛在的黑客或許比您更超前一步)。對這個(gè)過程來說,一個(gè)更加系統(tǒng)化及可重復(fù)的方法是使用攻擊樹,這個(gè)概念首先是由Bruce Schneier[1,2]提出來的。攻擊樹提供一種將攻擊系統(tǒng)的不同方式進(jìn)行系統(tǒng)性分類的方法。大致來說,就是以一種樹的結(jié)構(gòu)描述系統(tǒng)所受的攻擊,樹結(jié)構(gòu)模型中的節(jié)點(diǎn)代表攻擊。樹的根節(jié)點(diǎn)是攻擊者的總目標(biāo),達(dá)到該目標(biāo)的不同路徑則是葉節(jié)點(diǎn),如圖2所示。
圖2. 代表任何必須保護(hù)知識(shí)產(chǎn)權(quán)(IP)的嵌入式系統(tǒng)的攻擊樹,此類系統(tǒng)包括手機(jī)、VoIP、視頻監(jiān)控系統(tǒng)等
當(dāng)正確完成威脅建模時(shí),真正的威脅就被確定下來了。然而,如果弄錯(cuò)了可能存在的威脅的話,其代價(jià)將是高昂的。設(shè)計(jì)師弄錯(cuò)威脅的一個(gè)案例是DVD的保護(hù)措施。盡管DVD碟片被加密,密鑰也放在播放機(jī)里,只要播放機(jī)里包含抗篡改硬件,這種保護(hù)方式是沒有問題的。但引入軟件播放器時(shí),密鑰會(huì)曝露出來,通過逆向工程就能恢復(fù)密鑰,也使任何人都能隨便復(fù)制和散布任何DVD內(nèi)容。
在這種情況下,它是有缺陷的威脅模型。雖然有安全措施,但是這無法真正解決問題。
風(fēng)險(xiǎn)評估
僅僅列出一堆威脅是不夠的,由于不同威脅的風(fēng)險(xiǎn)不同,因此還需要知道每種威脅的風(fēng)險(xiǎn)。威脅建模的下一個(gè)步驟是風(fēng)險(xiǎn)評估,這是在任何安全系統(tǒng)設(shè)計(jì)中的一個(gè)至關(guān)重要的部分。風(fēng)險(xiǎn)評估的一些基礎(chǔ)問題,即“保護(hù)什么”、“為什么要保護(hù)”和“防范的對象是誰”,應(yīng)在設(shè)計(jì)周期的最初階段厘清。盡早采取表1所示的措施,將有助于您選擇有效、安全的防范技術(shù)和防御策略。
表1. 風(fēng)險(xiǎn)評估
安全策略
識(shí)別出威脅,并權(quán)衡風(fēng)險(xiǎn)后,接下來就該建立安全策略了。安全策略是解決方案背后的戰(zhàn)略,而技術(shù)僅僅是戰(zhàn)術(shù)手段。安全策略描述“為什么”,而不是“如何做”。
例如,基于FPGA設(shè)計(jì)的安全策略目標(biāo)之一也許是“保持配置位流的機(jī)密性”,這是一個(gè)系統(tǒng)目標(biāo)。“如何做”或?qū)Σ叩膶?shí)施可能是采用諸如AES等對稱密鑰加密的方式,對配置位流進(jìn)行加密以便實(shí)現(xiàn)這個(gè)目標(biāo)。
整體的設(shè)計(jì)流程總結(jié)如下:
了解系統(tǒng)的真正威脅,并評估這些威脅的風(fēng)險(xiǎn)。
評論