人性這根曲木,絕對(duì)造不出任何筆直的東西。
——Immanuel Kant
世界永遠(yuǎn)不會(huì)盡善盡美,無論在線還是離線,因此,我們對(duì)在線的要求不要太高。
——Esther Dyson
1.1 簡(jiǎn)介
安全工程研究如何構(gòu)建安全的系統(tǒng),使系統(tǒng)在面對(duì)惡意攻擊、錯(cuò)誤以及災(zāi)難時(shí)仍保持可靠性。作為一門學(xué)科,安全工程著重研究一些工具、過程和方法——?在設(shè)計(jì)、實(shí)現(xiàn)與測(cè)試完備的系統(tǒng),并且隨著外部環(huán)境的改變而自適應(yīng)地調(diào)整現(xiàn)有系統(tǒng)時(shí),這些都是必需的。
安全工程需要跨學(xué)科的專業(yè)知識(shí)——?從密碼學(xué)與計(jì)算機(jī)安全,到硬件防篡改與正式方法,以及經(jīng)濟(jì)學(xué)、應(yīng)用心理學(xué)、組織行為學(xué)、法律等廣泛的學(xué)科領(lǐng)域。系統(tǒng)工程技能,如業(yè)務(wù)流程分析、軟件工程以及評(píng)估與測(cè)試也都是很重要的組成部分,但僅有這些還不夠,因?yàn)樗鼈冎粦?yīng)對(duì)錯(cuò)誤和災(zāi)難,并不包括惡意攻擊。
很多安全系統(tǒng)有嚴(yán)格的保證要求,其失效可能會(huì)危及人類生活與環(huán)境(比如核安全與控制系統(tǒng)),對(duì)主要的經(jīng)濟(jì)基礎(chǔ)結(jié)構(gòu)造成嚴(yán)重危害(自動(dòng)取款機(jī)及其他銀行信息系統(tǒng)),危及個(gè)人隱私(醫(yī)療記錄系統(tǒng)),破壞整個(gè)行業(yè)的生存能力(付費(fèi)電視),促進(jìn)犯罪行為(防盜報(bào)警和汽車報(bào)警)。甚至將系統(tǒng)看得比實(shí)際情況更加脆弱(通過Internet用信用卡支付)也會(huì)顯著阻礙經(jīng)濟(jì)的發(fā)展。
一般認(rèn)為,軟件工程旨在確保某些事情能夠發(fā)生(“約翰可以閱讀這份文件”),而安全工程則確保某些事情不能發(fā)生,而現(xiàn)實(shí)更加復(fù)雜。不同系統(tǒng)的安全要求差別很大。典型系統(tǒng)的安全要求包括用戶身份驗(yàn)證、事務(wù)完整性與問責(zé)制、容錯(cuò)、消息保密以及隱蔽性等安全機(jī)制的某些組合,但很多系統(tǒng)都會(huì)失效,這或者是因?yàn)樵O(shè)計(jì)者對(duì)錯(cuò)誤的目標(biāo)實(shí)施保護(hù),或者因?yàn)橐藻e(cuò)誤的方式對(duì)正確的目標(biāo)進(jìn)行保護(hù)而導(dǎo)致的。
要對(duì)正確的目標(biāo)實(shí)施正確的保護(hù),需要幾個(gè)不同類型的過程。需要規(guī)劃保護(hù)哪些內(nèi)容,以及如何對(duì)其進(jìn)行保護(hù)。還需要確保對(duì)系統(tǒng)進(jìn)行保護(hù)和維護(hù)的人員有正確的動(dòng)機(jī)。下一節(jié)將給出一個(gè)框架。之后,為舉例說明安全系統(tǒng)必須處理的不同事物的范疇,我們將快速瀏覽四個(gè)應(yīng)用領(lǐng)域:銀行、空軍基地、醫(yī)院和家庭。在展示了安全工程師必須理解和構(gòu)建的某些具體實(shí)例之后,我們將嘗試給出一些相關(guān)的定義。