當計算機將我們包圍、當網(wǎng)絡無處不在時,安全問題也成為我們?nèi)找骊P心的問題。我們依賴于網(wǎng)絡,同時又受限于網(wǎng)絡,而網(wǎng)絡本身卻是不安全的!如今越來越多的應用都架設在網(wǎng)絡平臺之上,雖然能為用戶提供更快捷和便利的服務支持,但這些服務支持也越來越龐大。與此同時,為了滿足用戶日益增長的服務需求,企業(yè)應用不斷在如何提供更好的服務支持和更大信息量的傳輸方面加大技術投入。而與此失衡的是,企業(yè)應用的安全性卻未能受到足夠的重視。單憑用戶名和口令鑒別用戶身份,繼而授權用戶使用的方式難以確保數(shù)據(jù)的安全性。
我們身邊的安全問題
安全,似乎是個問題。但是,我們覺得這個話題似乎不是那么關鍵!通常情況下,我們?yōu)橛脩籼峁┯脩裘涂诹铗炞C的方式就可以避免這個問題,但這不是最佳答案,因為這樣做是遠遠不夠的。安全隱患無處不在,還是先來我們所處環(huán)境的安全狀況吧!
問題
閃存的快速革命使得移動存儲行業(yè)發(fā)生了質(zhì)的變化,各種數(shù)據(jù)存儲在各種不同的移動存儲設備上。當一部優(yōu)盤塞滿了公司的年度報表、下一年企劃策略等各種商業(yè)機密后,突然不翼而飛時,我們才會猛然驚醒—優(yōu)盤中的數(shù)據(jù)沒有任何安全措施,甚至連口令都沒有!
問題
我們習慣于通過IM工具與好友聊天、交換心情、透漏隱私,甚至通過IM工具與合作公司交換公司私密數(shù)據(jù)!當你的隱私成為公共話題,當你的公司的商業(yè)數(shù)據(jù)被曝光,你突然發(fā)現(xiàn)原來IM工具是不安全的!沒錯,不管是哪一種IM工具,都在不遺余力地告誡用戶聊天信息可能被盜取,“安全提示:不要將銀行卡號暴露在您的聊天信息中!”相信大家都不會對這條提示信息感到陌生。
B2C、交易問題
到郵局排隊匯款的日子已經(jīng)一去不復返了,取而代之的是網(wǎng)上銀行,輕松地點擊一下按鈕就能順利完成轉賬的操作。網(wǎng)上銀行的確為我們的生活帶來了便利,但是,如果我們有被騙取銀行卡號和密碼的不幸遭遇,現(xiàn)在想起來是不是仍然心有余悸難道沒有一種辦法能確保我們輸入的信息被發(fā)送到安全的地方嗎 服務交互問題隨著大型應用對交互性的需求越來越高,這些應用之間的數(shù)據(jù)交互也越來越頻繁,甚至是大批量、高負荷的數(shù)據(jù)交互。當你公司的應用通過Web Service接口與合作伙伴交互數(shù)據(jù)的時候,你該如何確定對方就是你所信賴的合作伙伴呢你的Web Service接口安全嗎
移動問題
時代已經(jīng)來臨,在不遠的某一天,你將完全可以通過完成現(xiàn)在只能通過PC完成的事情。視頻聊天、B2C購物、銀行轉賬,等等。3G時代預示著將無所不能!其實手機也是計算機,只不過它與你熟悉的PC在體積上有較大的差別而已。3G手機一樣要通過網(wǎng)絡完成你要執(zhí)行的操作,將平臺由PC轉換為手機,并不能保證手機平臺就能比PC平臺有著更高的安全性!
用手機在網(wǎng)站上下載一款軟件,是再平常不過的事情了。但是,如何避免用戶因不夠信任該軟件而取消下載呢下載后,手機如何鑒別這個軟件是安全的呢如何避免發(fā)布的軟件在被客戶成功下載之前被篡改呢
內(nèi)部人為問題
前面列舉的問題都來源于外部,我們往往忽略了內(nèi)部人為問題?,F(xiàn)在的企業(yè)應用都能為用戶提供用戶名和口令來確保用戶的數(shù)據(jù)安全,但很多時候用戶名和口令在中卻一目了然,甚至有的是以明文方式存儲的!企業(yè)內(nèi)部任何能訪問數(shù)據(jù)庫的員工都能輕而易舉地盜取用戶的用戶名口令,冒充用戶的身份完成各種合乎用戶行為的操作,侵害用戶的利益。企業(yè)因此被用戶投訴之后,卻又找不到任何蛛絲馬跡。
當我們的利益受到侵犯時我們才會想起安全問題,安全原來如此重要!一不小心,你的企業(yè)應用就會因為數(shù)據(jù)泄露而喪失良機、引發(fā)投訴,甚至是巨額賠款!安全問題關系著企業(yè)的生死存亡!
拿什么來拯救你,我的應用
“拿什么來保護你,我的應用”這幾乎是每一位架構師和安全工作者所關注的問題??戳松厦婺敲炊嘧屓瞬缓醯陌踩珕栴},免不了讓我們心里發(fā)怵。道高一尺,魔高一丈,我們先來看看有什么武器可以應對企業(yè)應用的安全問題。接下來會討論安全技術目標、OSI安全體系結構與安全體系結構這三方面的內(nèi)容。
安全技術目標
國際標準化組織()對“計算機安全”的定義為:“為數(shù)據(jù)處理系統(tǒng)建立和采取的技術和管理的安全保護,保護計算機硬件、軟件數(shù)據(jù)不因偶然和惡意的原因而遭到破壞、更改和泄露?!备鶕?jù)美國國家信息基礎設施(NII)提供的文獻,安全技術目標包含保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)、可靠性(Reliability)和抗否認性(Non-Repudiation)。
保密性:也稱做機密性。保密性確保數(shù)據(jù)僅能被合法的用戶訪問,即數(shù)據(jù)不能被未授權的第三方使用。
完整性:主要確保數(shù)據(jù)只能由授權方或以授權的方式進行修改,即數(shù)據(jù)在傳輸過程中不能被未授權方修改。
可用性:主要確保所有數(shù)據(jù)僅在適當?shù)臅r候可以由授權方訪問。
可靠性:主要確保系統(tǒng)能在規(guī)定條件下、規(guī)定時間內(nèi)、完成規(guī)定功能時具有穩(wěn)定的概率。
抗否認性:也稱做抗抵賴性,主要確保發(fā)送方與接收方在執(zhí)行各自操作后,對所做的操作不可否認。
除此之外,計算機網(wǎng)絡信息系統(tǒng)的其他安全技術目標還包括:
可控性:主要是對信息及信息系統(tǒng)實施安全監(jiān)控。
可審查性:主要是通過審計、監(jiān)控、抗否認性等安全機制,確保數(shù)據(jù)訪問者(包括合法用戶、攻擊者、破壞者、抵賴者)的行為有證可查,當網(wǎng)絡出現(xiàn)安全問題時,提供調(diào)查依據(jù)和手段。
認證(鑒別):主要確保數(shù)據(jù)訪問者和信息服務者的身份真實有效。
訪問控制:主要確保數(shù)據(jù)不被非授權方或以未授權方式使用。
安全技術目標制定的主旨在于預防安全隱患的發(fā)生。安全技術目標是構建安全體系結構的基礎。
OSI安全體系結構
OSI參考模型是由國際標準化組織制定的開放式通信系統(tǒng)互聯(lián)參考模型( Open SystemInterconnection Reference Model,OSI/RM)。OSI參考模型包括網(wǎng)絡通信、和安全機制。網(wǎng)絡通信共分七層,按照由下至上的次序分別由物理層(Physical Layer)、數(shù)據(jù)鏈路層(Data Link Layer)、網(wǎng)絡層(Network Layer)、傳輸層(Transport Layer)、會話層(SessionLayer)、表示層(Presentation Layer)和應用層(Application Layer)構成。其中,數(shù)據(jù)鏈路層通常簡稱為鏈路層。國際標準化組織于1989年在原有網(wǎng)絡通信協(xié)議七層模型的基礎上擴充了OSI參考模型,確立了體系結構,并于1995年再次在技術上進行了修正。OSI安全體系結構包括五類安全服務以及八類安全機制。
五類安全服務包括認證(鑒別)服務、訪問控制服務、數(shù)據(jù)保密性服務、數(shù)據(jù)完整性服務和抗否認性服務。
認證(鑒別)服務:在網(wǎng)絡交互過程中,對收發(fā)雙方的身份及數(shù)據(jù)來源進行驗證。
訪問控制服務:防止未授權用戶非法訪問資源,包括用戶身份認證和用戶權限確認。
數(shù)據(jù)保密性服務:防止數(shù)據(jù)在傳輸過程中被破解、泄露。
數(shù)據(jù)完整性服務:防止數(shù)據(jù)在傳輸過程中被篡改。
抗否認性服務:也稱為抗抵賴服務或確認服務。防止發(fā)送方與接收方雙方在執(zhí)行各自操作后,否認各自所做的操作。
從上述對安全服務的詳細描述中我們不難看出,OSI參考模型安全服務緊扣安全技術目標。八類安全機制包括加密機制、數(shù)字簽名機制、訪問控制機制、數(shù)據(jù)完整性機制、認證機制、業(yè)務流填充機制、路由控制機制和公證機制。
加密機制:加密機制對應數(shù)據(jù)保密性服務。加密是提高數(shù)據(jù)安全性的最簡便方法。通過對數(shù)據(jù)進行加密,有效提高了數(shù)據(jù)的保密性,能防止數(shù)據(jù)在傳輸過程中被竊取。常用的加密算法有對稱加密算法(如DES算法)和非對稱加密算法(如RSA算法)。
數(shù)字簽名機制:數(shù)字簽名機制對應認證(鑒別)服務。數(shù)字簽名是有效的鑒別方法,利用數(shù)字簽名技術可以實施用戶身份認證和消息認證,它具有解決收發(fā)雙方糾紛的能力,是認證(鑒別)服務最核心的技術。在數(shù)字簽名技術的基礎上,為了鑒別軟件的有效性,又產(chǎn)生了代碼簽名技術。常用的簽名算法有RSA算法和DSA算法等。
訪問控制機制:訪問控制機制對應訪問控制服務。通過預先設定的規(guī)則對用戶所訪問的數(shù)據(jù)進行限制。通常,首先是通過用戶的用戶名和口令進行驗證,其次是通過用戶角色、用戶組等規(guī)則進行驗證,最后用戶才能訪問相應的限制資源。一般的應用常使用基于用戶角色的訪問控制方式,如RBAC(Role Basic Control,基于用戶角色的訪問控制)。
數(shù)據(jù)完整性機制:數(shù)據(jù)完整性機制對應數(shù)據(jù)完整性服務。數(shù)據(jù)完整性的作用是為了避免數(shù)據(jù)在傳輸過程中受到干擾,同時防止數(shù)據(jù)在傳輸過程中被篡改,以提高數(shù)據(jù)傳輸完整性。通??梢允褂脝蜗蚣用芩惴▽?shù)據(jù)加密,生成唯一驗證碼,用以校驗數(shù)據(jù)完整性。常用的加密算法有MD5算法和SHA算法等。
認證機制:認證機制對應認證(鑒別)服務。認證的目的在于驗證接收方所接收到的數(shù)據(jù)是否來源于所期望的發(fā)送方,通??墒褂脭?shù)字簽名來進行認證。常用算法有RSA算法和DSA算法等。
業(yè)務流填充機制:也稱為傳輸流填充機制。業(yè)務流填充機制對應數(shù)據(jù)保密性服務。業(yè)務流填充機制通過在數(shù)據(jù)傳輸過程中傳送隨機數(shù)的方式,混淆真實的數(shù)據(jù),加破解的難度,提高數(shù)據(jù)的保密性。
路由控制機制:路由控制機制對應訪問控制服務。路由控制機制為數(shù)據(jù)發(fā)送方選擇安通信路徑,避免發(fā)送方使用不安全路徑發(fā)送數(shù)據(jù),提高數(shù)據(jù)的安全性。
公證機制:公正機制對應抗否認性服務。公證機制的作用在于解決收發(fā)雙方的糾紛問題,確保兩方利益不受損害。類似于現(xiàn)實生活中,合同雙方簽署合同的同時,需要將合同的第三份交由第三方公證機構進行公證。
安全機制對安全服務做了詳盡的補充,針對各種服務選擇相應的安全機制可以有效地提高應用安全性。隨著技術的不斷發(fā)展,各項安全機制相關的技術不斷提高,尤其是結合加密理論之后,應用安全性得到了顯著提高。本書的后續(xù)章節(jié)將以加密理論及其相應實現(xiàn)為基礎,逐步闡述如何通過加密技術確保企業(yè)應用的安全。
TCP/IP安全體系結構
OSI參考模型為解決網(wǎng)絡問題提供了行之有效的方法,但是衛(wèi)星和網(wǎng)絡的出現(xiàn),使得現(xiàn)有的協(xié)議在與衛(wèi)星和無線網(wǎng)絡互聯(lián)時出現(xiàn)了問題,由此產(chǎn)生了TCP/IP參考模型。TCP/IP從字面上看是兩個Internet上的網(wǎng)絡協(xié)議(TCP是傳輸控制協(xié)議,IP是網(wǎng)際協(xié)議),但實際上TCP/IP是一組網(wǎng)絡協(xié)議,通常包括TCP、IP、UDP、ICMP、RIP、TELNET、、SMTP、、TFTP等協(xié)議。TCP/IP參考模型由下至上分為層、網(wǎng)絡層、傳輸層和應用層。
捍衛(wèi)企業(yè)應用安全的銀彈
通過對1.2節(jié)的學習,我們已經(jīng)找到了處理安全問題的武器。但是,我們還缺少一枚解決安全問題的銀彈—密碼學。的確,密碼學是企業(yè)應用安全問題領域的一枚銀彈,是解決安全問題的核心所在。
密碼學在安全領域中的身影
安全領域離不開密碼學的支持。例如,在OSI安全體系結構中通過數(shù)據(jù)加密確保數(shù)據(jù)的保密性,在TCP/IP安全體系結構中以加密算法為基礎構建/TLS協(xié)議,這些都說明密碼學與安全問題密不可分。