標籤:jsse 通訊端 架構 網路
郭嘉
郵箱:[email protected]
部落格:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell
在網路通訊中,保護所交換資料的完整性和機密性是網路安全面臨的重要挑戰之一。在通訊過程中,潛在的威脅是所交換的資料可能會受到惡意攻擊者或非預期接收方訪問或修改。安全通訊端層(SecureSocket Layer, SSL)和傳輸層安全(Transport Layer Security, TLS)是IETF開發的獨立於應用的協議,它們通過保護所交換資料的隱私性和完整性,為端到端應用通訊提供重要的安全特性,並在通訊方之間建立真實性、可信性和可靠性。SSL/ILS在TCP/IP協議棧之上運行,通過資料加密、伺服器認證、訊息完整性和可選的用戶端認證來保護通訊的安全。對於資料加密,SSL支援使用公開祕密金鑰加密演算法和秘密祕密金鑰加密演算法,其中祕密金鑰加密演算法用於對兩個應用間交換的大量資料進行加密。
由於JSSE為客戶一伺服器通訊提供標準API架構和機制,從而為基於客戶用及務器的網路通訊提供了端到端安全。JSSE支援SSL和TLS協議,並提供與資料加密、訊息完整性和對等體認證等相關功能。
由JSSE可以開發出使用以下安全傳輸協議的用戶端和伺服器應用:
- 安全HTTP協議(HTTP over SSL)
- 安全Shell協議(Telnet over SSL)
- 安全SMTP協議(SMTP~SSL)
- IPSEC協議(安全IP協議)
- 安全RMI或RMI/IIOP(RMI over SSL)
基於jSSE的用戶端應用和服務端應用安全通訊流程如所示:
JSSE同樣也是基於提供者體系的架構,可以使用預設的SunJCE來滿足其所有的密碼編譯演算法需求,也可以使用位於JAVA_HOME/jre/lib/security/java.serurity檔案中靜態註冊其他廠商的JCA/JCE提供者,將其置於SunJCE提供者前面,從而使用它們。
預設的SunJCE提供者提供以下功能:
- 實現SSL3.0和TLS1.0協議。
- 實現SSL/I’LS狀態機器(SSLEngine ),從而允許通過處理緩衝區資料以產生SSL/I’LS編碼資料
(J2SE 5.0及更高版本)。
- 實現用於支援RSA演算法的密鑰工廠和金鑰產生器。
- 實現最常用的SSL和TLS密碼編譯演算法套件,以支援認證、密鑰協商、加密和完整性保護。
- 實現基於X.509的密鑰管理器,用來管理為SiuJSSE提供支援的JCA密鑰庫的密鑰。
- 實現基於X.509的信任管理器,從而支援對憑證鏈結的核實和驗證。
- 支援Kerberos密碼編譯演算法套件,條件是底層作業系統可以提供該套件(J2SE 5.0及更高版本)。
- 用JCE PKCS # 11提供者支援硬體加速器和智慧卡令牌(J2SE 5.0及更高版本)。
【Java安全技術探索之路系列:Java可擴充安全架構】之十一:JSSE(一):JSSE架構介紹