- Java加密與解密的藝術(第2版)
- 梁棟
- 3615字
- 2018-12-31 23:24:38
1.2 拿什么來拯救你,我的應用
“拿什么來拯救你,我的應用?”這幾乎是每一位架構師和安全工作者都會關注的問題。看了上面那么多讓人不寒而栗的安全問題,免不了讓我們心里發怵。魔高一尺,道高一丈,我們先來看看有什么武器可以應對企業應用的安全問題。接下來會討論安全技術目標、OSI安全體系結構與TCP/IP安全體系結構這三方面的內容。
1.2.1 安全技術目標
國際標準化組織(ISO)對“計算機安全”的定義為:“為數據處理系統建立和采取的技術和管理的安全保護,保護計算機硬件、軟件數據不因偶然和惡意的原因而遭到破壞、更改和泄露。”根據美國國家信息基礎設施(NII)提供的文獻,安全技術目標包含保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)、可靠性(Reliability)和抗否認性(Non-Repudiation)。
? 保密性:又稱機密性。保密性確保數據僅能被合法的用戶訪問,即數據不能被未授權的第三方使用。
? 完整性:主要確保數據只能由授權方或以授權的方式進行修改,即數據在傳輸過程中不能被未授權方修改。
? 可用性:主要確保所有數據僅在適當的時候可以由授權方訪問。
? 可靠性:主要確保系統能在規定條件下、規定時間內、完成規定功能時具有穩定的概率。
? 抗否認性:又稱抗抵賴性,主要確保發送方與接收方在執行各自操作后,對所做的操作不可否認。
除此之外,計算機網絡信息系統的其他安全技術目標還包括:
? 可控性:主要是對信息及信息系統實施安全監控。
? 可審查性:主要是通過審計、監控、抗否認性等安全機制,確保數據訪問者(包括合法用戶、攻擊者、破壞者、抵賴者)的行為有證可查,當網絡出現安全問題時,提供調查依據和手段。
? 認證(鑒別):主要確保數據訪問者和信息服務者的身份真實有效。
? 訪問控制:主要確保數據不被非授權方或以未授權方式使用。
安全技術目標制定的主旨在于預防安全隱患的發生。安全技術目標是構建安全體系結構的基礎。
1.2.2 OSI安全體系結構
OSI參考模型是由國際標準化組織制定的開放式通信系統互聯參考模型(Open System Interconnection Reference Model,OSI/RM)。OSI參考模型包括網絡通信、安全服務和安全機制。網絡通信共分七層,按照由下至上的次序分別由物理層(Physical Layer)、數據鏈路層(Data Link Layer)、網絡層(Network Layer)、傳輸層(Transport Layer)、會話層(Session Layer)、表示層(Presentation Layer)和應用層(Application Layer)構成。其中,數據鏈路層通常簡稱鏈路層。國際標準化組織于1989年在原有網絡通信協議七層模型的基礎上擴充了OSI參考模型,確立了信息安全體系結構,并于1995年再次在技術上進行了修正。OSI安全體系結構包括五類安全服務以及八類安全機制。
OSI參考模型結構如圖1-1所示。
五類安全服務包括認證(鑒別)服務、訪問控制服務、數據保密性服務、數據完整性服務和抗否認性服務。
? 認證(鑒別)服務:在網絡交互過程中,對收發雙方的身份及數據來源進行驗證。
? 訪問控制服務:防止未授權用戶非法訪問資源,包括用戶身份認證和用戶權限確認。
? 數據保密性服務:防止數據在傳輸過程中被破解、泄露。
? 數據完整性服務:防止數據在傳輸過程中被篡改。
? 抗否認性服務:也稱為抗抵賴服務或確認服務。防止發送方與接收方雙方在執行各自操作后,否認各自所做的操作。
從上述對安全服務的詳細描述中我們不難看出,OSI參考模型安全服務緊扣安全技術目標。

圖1-1 OSI參考模型
安全機制是對安全服務的詳盡補充。安全服務和安全機制的對應關系如圖1-2所示。

圖1-2 OSI參考模型安全服務和安全機制的對應關系
八類安全機制包括加密機制、數字簽名機制、訪問控制機制、數據完整性機制、認證機制、業務流填充機制、路由控制機制和公證機制。
? 加密機制:加密機制對應數據保密性服務。加密是提高數據安全性最簡便的方法。通過對數據進行加密,有效提高了數據的保密性,能防止數據在傳輸過程中被竊取。常用的加密算法有對稱加密算法(如DES算法)和非對稱加密算法(如RSA算法)。
? 數字簽名機制:數字簽名機制對應認證(鑒別)服務。數字簽名是有效的鑒別方法,利用數字簽名技術可以實施用戶身份認證和消息認證,它具有解決收發雙方糾紛的能力,是認證(鑒別)服務最核心的技術。在數字簽名技術的基礎上,為了鑒別軟件的有效性,又產生了代碼簽名技術。常用的簽名算法有RSA算法和DSA算法等。
? 訪問控制機制:訪問控制機制對應訪問控制服務。通過預先設定的規則對用戶所訪問的數據進行限制。通常,首先是通過用戶的用戶名和口令進行驗證,其次是通過用戶角色、用戶組等規則進行驗證,最后用戶才能訪問相應的限制資源。一般的應用常使用基于用戶角色的訪問控制方式,如RBAC(Role Basic Access Control,基于用戶角色的訪問控制)。
? 數據完整性機制:數據完整性機制對應數據完整性服務。數據完整性的作用是為了避免數據在傳輸過程中受到干擾,同時防止數據在傳輸過程中被篡改,以提高數據傳輸完整性。通常可以使用單向加密算法對數據加密,生成唯一驗證碼,用以校驗數據完整性。常用的加密算法有MD5算法和SHA算法等。
? 認證機制:認證機制對應認證(鑒別)服務。認證的目的在于驗證接收方所接收到的數據是否來源于所期望的發送方,通常可使用數字簽名來進行認證。常用算法有RSA算法和DSA算法等。
? 業務流填充機制:又稱傳輸流填充機制。業務流填充機制對應數據保密性服務。業務流填充機制通過在數據傳輸過程中傳送隨機數的方式,混淆真實的數據,加大數據破解的難度,提高數據的保密性。
? 路由控制機制:路由控制機制對應訪問控制服務。路由控制機制為數據發送方選擇安全網絡通信路徑,避免發送方使用不安全路徑發送數據,提高數據的安全性。
? 公證機制:公證機制對應抗否認性服務。公證機制的作用在于解決收發雙方的糾紛問題,確保兩方利益不受損害。類似于現實生活中,合同雙方簽署合同的同時,需要將合同的第三份交由第三方公證機構進行公證。
安全機制對安全服務做了詳盡的補充,針對各種服務選擇相應的安全機制可以有效地提高應用安全性。隨著技術的不斷發展,各項安全機制相關的技術不斷提高,尤其是結合加密理論之后,應用的安全性得到了顯著提高。本書的后續章節將以加密理論及其相應實現為基礎,逐步闡述如何通過加密技術確保企業應用的安全。
1.2.3 TCP/IP安全體系結構
OSI參考模型為解決網絡問題提供了行之有效的方法,但是衛星和無線網絡的出現,使得現有的協議在與衛星和無線網絡互聯時出現了問題,由此產生了TCP/IP參考模型。TCP/IP從字面上看是兩個Internet上的網絡協議(TCP是傳輸控制協議,IP是網際協議),但實際上TCP/IP是一組網絡協議,通常包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等協議。TCP/IP參考模型由下至上分為網絡接口層、網絡層、傳輸層和應用層。
OSI參考模型和TCP/IP參考模型的對比如圖1-3所示。

圖1-3 OSI參考模型和TCP/IP參考模型對比
OSI參考模型中的物理層和鏈路層對應TCP/IP參考模型中的網絡接口層,網絡層和傳輸層分別對應TCP/IP參考模型中的網絡層和傳輸層,會話層、表示層和應用層對應TCP/IP參考模型中的應用層。
對應TCP/IP參考模型,TCP/IP安全體系結構如圖1-4所示。
TCP/IP安全體系結構包括網絡接口層安全、網絡層安全、傳輸層安全和應用層安全。

圖1-4 TCP/IP安全體系結構
? 網絡接口層安全:通常指的是鏈路層的安全,可以通過加密方式確保數據不被竊聽,通常依靠物理層加密實現。一般在通信的鏈路兩端架設加密機,對傳輸的電器符號進行位流加密。
? 網絡層安全:網絡層的功能是負責數據包的路由選擇,網絡層安全就是要確保數據包能順利到達指定的目的地。一般通過路由器硬件提高相應的安全性。
? 傳輸層安全:傳輸層的功能是解決端到端的數據傳輸問題。傳輸層提供TCP與UDP兩種服務,其中TCP是可靠的、面向連接的服務;UDP是無鏈接的數據包服務。確保傳輸層安全有相應的協議,如SSL(Security Socket Layer,安全套接層協議)和TLS(Transport Layer Security,傳輸層安全協議)。SSL是網景(Netscape)公司設計的主要用于Web的安全傳輸協議,由IETF(The Internet Engineering Task Force,互聯網工程任務組,詳見http://www.ietf.org/)將其標準化,進而產生了TLS,TLS是SSL的繼任者。SSL 3.0與TLS 1.0差別不大,兩種規范大致相同。SSL/TLS協議依賴于加密算法,使用SSL/TLS協議可使通信過程極難被竊聽,保證了通信過程有較高的安全性。因此,SSL/TLS協議成為網絡上最常用的安全保密通信協議,眾多電子郵件、網銀、電子商務、網上傳真都通過SSL/TLS協議確保數據傳輸安全。隨著衛星和無線網絡的發展,WAP安全逐漸得到重視。受限于手機及手持設備的處理和存儲能力,WAP論壇(http://www.wapforum.org/)在TLS的基礎上進行了簡化,制定了WTLS協議(Wireless Transport Layer Security,無線傳輸層安全)。
? 應用層安全:應用層是與應用結合最緊密的一層,負責與應用交互,以實現不同系統的應用之間的相互通信,完成各種業務處理、提供相應服務。為確保應用層的安全,可在應用層建立相應的安全機制,HTTPS協議的應用就是其中的一種。HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)協議是Web上最為常用的安全訪問協議,簡單地說就是HTTP安全版,從HTTPS全稱不難看出它是基于SSL/TLS的HTTP協議,或者說是HTTPS=SSL/TLS+HTTP。同時,得益于SSL/TLS的高度安全性,HTTPS廣泛應用于互聯網上的敏感數據交互,例如B2C、網上銀行、企業應用之間的數據傳遞等。本書將在后續章節講解如何通過HTTPS確保企業應用的安全。
TCP/IP安全體系中,網絡接口層安全、網絡層安全部分主要通過相應的硬件設施來完成,傳輸層安全和應用層安全通過HTTPS協議以軟件方式完成。
- 手機安全和可信應用開發指南:TrustZone與OP-TEE技術詳解
- 解構產品經理:互聯網產品策劃入門寶典
- CentOS 7 Linux Server Cookbook(Second Edition)
- 從程序員到架構師:大數據量、緩存、高并發、微服務、多團隊協同等核心場景實戰
- Learning Apache Kafka(Second Edition)
- 3D少兒游戲編程(原書第2版)
- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- 零基礎學單片機C語言程序設計
- Learning Continuous Integration with TeamCity
- Lift Application Development Cookbook
- Magento 2 Beginners Guide
- Hands-On Robotics Programming with C++
- Mastering Concurrency in Python
- LabVIEW數據采集(第2版)
- Swift 2 Blueprints