“多大程度的安全才算安全”
引言
本文引用地址:http://cafeforensic.com/article/96995.htm若沒有應用環(huán)境,安全就沒有意義。嵌入式系統(tǒng)設計師經常誤解安全,認為諸如特定的加密算法和安全協(xié)議等安全措施只是系統(tǒng)的附加特性。安全是一個過程,而不是永遠保持不變的一款產品或一種終極狀態(tài)。而且,也不能在產品將永遠保持安全的假設下,把安全措施簡單地加入到一款產品中。設計師應該在設計過程開始的時候,就把安全和其他參數如成本、性能和功耗等一并進行考慮。
在設計的初始階段,利用安全設計檢測威脅
在設計安全解決方案的時候,首先必須做的就是定義一個威脅模型,然后再創(chuàng)建安全策略。一旦評估完成,就能安心地選擇具體的技術來實現安全對策。威脅決定應對策略,策略決定設計。
許多設計師都會犯同一個錯誤,在設計安全系統(tǒng)時沒有首先明確和了解可能遇到的真正威脅、以及這些威脅會為他們的終端產品帶來的重大風險。相反,他們教條地把分類的安全技術堆在一起,并希望能獲得很高的安全性。這樣做代價高昂,沒有系統(tǒng)能防御所有的安全威脅,在設計中囊括那些沒有必要的技術和防御沒有實際威脅的風險毫無意義。
即使威脅建模有價值,它本身也存在風險
對于資源受限的設備,嵌入式系統(tǒng)必須在存儲容量、功耗、處理能力、上市時間及成本等參數和安全需求之間獲取一種平衡。盡管存在資源不足的挑戰(zhàn),通過仔細考慮威脅模型并設計系統(tǒng)使其工作在能滿足該模型的可用計算能力限制之內,仍有可能開發(fā)出使產品在開放環(huán)境中有效工作的系統(tǒng)。
對系統(tǒng)設計師來說,考慮“威脅建模”的原理非常有用。威脅建模是基于一種假設,即每個系統(tǒng)都有值得保護的固有價值。然而,因為這些系統(tǒng)是有價值的,他們對內部或外部威脅也是開放的,這些威脅能夠且經常給終端產品帶來損害。設計完成后的安全漏洞常常是無法修正的,且危及投入的資金和開發(fā)資源,因此需要在設計周期的初始階段增強對安全評估的需求,并在整個設計周期中進行監(jiān)測和重復修正。
本質上,我們可以把威脅模型定義為識別一組可能的攻擊,以便考慮配合一套徹底的風險評估策略。有了威脅模型,您就能估計攻擊的概率、潛在危害和優(yōu)先級。
威脅建模很難,但是很有必要,威脅建模需要考慮系統(tǒng)是怎樣被攻擊的。建模完成后,它解決了潛在的系統(tǒng)安全故障隱患,解決了諸如它是如何產生、以及在出現安全故障時發(fā)生了什么等問題。通常在市場和成本的壓力下,這個評估以一種特別的方式來進行,即通過集思廣益征集系統(tǒng)有可能受到的所有攻擊(當然,潛在的黑客或許比您更超前一步)。對這個過程來說,一個更加系統(tǒng)化及可重復的方法是使用攻擊樹,這個概念首先是由Bruce Schneier [1,2]提出來的。攻擊樹提供一種將攻擊系統(tǒng)的不同方式進行系統(tǒng)性分類的方法。大致來說,就是您以一種樹的結構描述了系統(tǒng)所受的攻擊,在樹結構中節(jié)點代表著攻擊時間。樹的根節(jié)點是攻擊者的總目標,達到該目標的不同路徑則是葉節(jié)點。
當正確完成威脅建模時,真正的威脅就被確定下來了。然而,如果弄錯了可能存在的威脅的話,其代價將是高昂的。設計師弄錯威脅的一個案例是DVD的保護。盡管DVD碟片被加密,密鑰也被放在播放機里,只要播放機里包含抗篡改硬件,這種保護方式是沒有問題的。但當引入軟件播放器時,密鑰就被曝露出來,通過反向工程就能恢復密鑰,也使任何人都能自由復制和散布任何DVD內容。在這種情況下,它是有缺陷的威脅模型。雖然有安全措施,但是這無法真正解決問題。
評論