安全模式是在給定的場景中,為控制、阻止或消減一組特定的威脅而采取的通用解決方案。在信息系統和軟件設計中使用安全模式,可以有效地增強信息系統和軟件的架構安全性,降低其安全風險。
安全模式最常見的使用場景是幫助(那些不是安全專家的)軟件開發人員,增加他們設計的安全性。安全模式可以作為對系統安全需求的良好描述。需求不應該包含任何實現細節,并且抽象模式定義了概念上的所需要的安全,而不需要關心特定的實現。
安全模式將安全性與軟件體系結構聯系起來。由于采用了“提出問題→分析問題→解決問題→總結”的思路,即使讀者對安全模式知之甚少,只要有一定的架構設計和信息安全基礎,都能很快理解某一安全模式并加以應用。
安全模式的最終目標是建立安全的系統。為了這個目標,國外安全專家研究了使用模式創建安全系統的方法論。嚴格意義上來說,安全模式的方法是一種工程方法。
有多種視角看待安全模式:
作為一種架構模式。可將安全模式看作一類架構模式,因為它們經常用來描述全局性的軟件架構概念;例如,“在兩個分離的功能單元之間是否需要認證功能?”我們傾向于這種解釋,因為安全是全局屬性。
作為一種設計模式。安全是軟件系統的組成部分,所以有些人把安全看作一種設計模式。我們認為設計模式是面向代碼的,而安全則是一個架構屬性。不過這種視角對于分析代碼結構對安全的影響是有用的。
作為一種分析模式。安全約束條件應該盡可能定義在系統的最高層,也就是說,在應用系統的概念模型層上。例如,我們定義哪些用戶擁有什么樣的角色,以及他們為了完成任務所需要的權限。一個概念上的、無關實現細節的安全機制,實際上就是分析模式。
需要注意的是,模式通常不宜用來描述安全原則,因為安全原則(例如分權原則)通常過于寬泛。模式應該做的是:把一個確定的解決方案描述好。