與企業級應用安全相關的技術主要有加密技術、認證、授權和通道安全等——可能還不夠全面。
(1)加密技術
出于安全性原因而保護對信息的訪問仍是使用加密技術的主要原因。但是,它也正越來越多地用于個人的標識、認證和不可抵賴性。隨著因特網、全球貿易和其它活動的增長,這一點尤為重要。電子郵件和 Web 用戶的身份非常容易隱藏或偽造,而安全認證可以向那些用戶提供遠程交互的可信度。
加密技術是任何安全性策略的一個重要組成部分,廣泛使用的兩種加密形式是傳統(或對稱)加密和公鑰(或非對稱)加密。
對稱加密,也稱傳統加密或單鑰加密,是公鑰產生之前的一種加密技術。通常使用分組密碼(Block Cipher)或序列密碼(Stream Cipher)實現對稱密碼。對稱加密方案中的五個基本成分是:明文、加密算法、密鑰、密文和解密算法。
公鑰加密或非對稱加密是繼加密之后的又一個加密方法,它是對安全具有革命性的意思。非對稱密碼學的概念是 1976 年由 Whitfield Diffie和 Martin Hellman在 New Directions in Cryptography一文中公開提出的,它是密碼學中的一個驚人的成就。公鑰算法依賴于一個加密密鑰和一個與之相關的不同的解密密鑰。公鑰密碼體系主要由明文、加密算法、公鑰和私鑰、密文和解密算法六個部分組成。
(2)認證
認證就是校驗一個用戶擁有使用已經被企業用戶注冊機構證明了的身份鑒定的權限的處理過程。用戶在訪問被保護的資源前必須首先通過認證。根據用戶提交的憑證信息的種類的不同,主要分為以下兩種認證方式。
在用戶名/口令認證方式中,用戶把用戶標識和口令發送給服務器。服務器檢查信息的正確性,如果正確就賦予用戶對受限資源的訪問權。安全套接層(Secure Socket Layer, SSL)協議可以為用戶名/口令認證提供額外的安全。在SSL中不僅在客戶端和服務器端的數據傳輸都被加密,SSL對整個連接會話加密。
在數字證書認證中,當一個SSL和客戶端建立一個申請時,服務器端給客戶端一個數字證書,在客戶端確認這個數字證后,對應的SSL連接就建立了。也可以使用雙通道SSL認證一種互相認證的形式。在雙通道SSL認證中,在客戶端和服務器端之間的連接線程建立之前,客戶端和服務器端都同時必須提供給對方一個數字證書。
(3)授權
授權是決定認證的用戶是否可以執行一些動作的工作,例如訪問一處資源。授權包括聲明性授權和程序性授權:
聲明性授權可以由系統管理員執行,可以配置系統的訪問權,聲明可以訪問系統中應用程序的主體。通過聲明性授權,可以添加、更改或取消用戶訪問特權,而不影響底層應用程序代碼。聲明的安全性通過安全結構描述的方式來代表應用程序的安全需求,安全結構一般包括安全角色,訪問控制和驗證要求等。在J2EE平臺中部署描述符充當了聲明的安全性的主要工具。部署描述符是組件開發者和應用程序部署者或應用程序組裝者之間的交流工具。應用程序的開發者用它來表示應用中的安全需求,應用程序部署者或應用程序組裝者將安全角色與部署環境中的用戶和組映射起來。在程序運行時容器從部署描述符中提取出相應的安全策略,然后容器根據安全策略執行安全驗證。聲明的安全性不需要開發人員編寫任何安全相關的代碼,一切都是通過配置部署描述符來完成的。
程序性授權使用Java應用程序代碼進行授權。當授權決定需要更復雜的邏輯和決定(超出了聲明性授權的能力范圍)時,程序性授權是必需的。因為程序性授權被構建到應用程序代碼中,所以更改程序性授權時可以重寫應用程序的部分代碼。可編程的安全性在聲明的安全性的基礎上,使安全敏感的應用可以通過調用被容器提供的API來對安全做出決斷。這在聲明性的安全性不足以滿足企業的安全模型的情況是非常有用的。
(4)通道安全
為了保證通信通道的安全,可以用SSL和其它特殊的加密通信的辦法,SSL是用于對TCP/IP數據流進行加密的協議,同時還包括了身份認證和數據完整性驗證等內容。SSL的最新版本有時候被認為是TLS(Transport Layer Security)協議。SSL運行于TCP/IP之上,幾乎可以被應用于任何類型的面向連接的通信。SSL安全協議主要提供三方面的服務:用戶和服務器的合法性認證,加密數據以隱藏被傳送的數據和保護數據的完整性。
①用戶和服務器的合法性認證
認證用戶和服務器的合法性,使得它們能夠確信數據將被發送到正確的客戶機和服務器上。客戶機和服務器都是有各自的識別號,這些識別號用公開密鑰進行編號,為了驗證用戶是否合法,SSL要求用握手交換數據進行數字認證,以此來確保用戶的合法性。
②加密數據以隱藏被傳送的數據
SSL協議所采用的加密技術既有對稱密鑰技術,也有公開密鑰技術。在客戶機與服務器進行數據交換之前,交換SSL初始握手信息,在SSL握手中采用了各種加密技術對其加密,以保證其機密性和數據的完整性,并且用數字證書進行鑒別。這樣就可以防止非法用戶進行破譯。
③保護數據的完整性
SSL協議采用Hash函數和機密共享的方法來提供信息的完整性服務,建立客戶機與服務器之間的安全通道,使所有經過SSL協議處理的業務在傳輸過程中能全部完整準確無誤地到達目的地。
SSL 的另一個非常有用的場合是使用應用服務器的網絡通信。使用了SSL,連接可以保證不被竊消息不被修改。當使用了客戶端和服務器的身份認證,一個未授權的用戶很難登錄到你的應用服務,他們需要竊取一個用戶端的密鑰,而不是簡單的口令,才能達到目的。
posted on 2005-12-28 23:25
Swift 閱讀(1276)
評論(0) 編輯 收藏 所屬分類:
Java安全