安全數據通信:究竟什麼是JSSE?

在網絡上,信息在由源主機到目標主機的傳輸過程中會經過其他計算機。一般情況下,中間的計算機不會監聽路過的信息。但在使用網上銀行或者進行信用卡交易時,網絡上的信息有可能被非法分子監聽,從而導致個人隱私的泄露。

由於Internet和Intranet體系結構存在一些安全漏洞,總有某些人能夠截獲並替換用戶發出的原始信息。

隨着電子商務的不斷髮展,人們對信息安全的要求越來越高,於是Netscape公司提出了SSL協議,目的爲了能在開放網絡上安全保密地傳輸信息。

Java安全套接字擴展(JSSE,Java Secure Socket Extension)爲基於SSL和TLS協議的Java網絡應用程序提供了Java API以及參考實現。

JSSE支持數據加密、服務器端身份驗證、數據完整性以及可選的客戶端身份驗證。使用JSSE,能保證採用各種應用層協議(比如HTTP、Telnet和FTP等)的客戶程序與服務器程序安全地交換數據。

JSSE封裝了底層複雜的安全通信細節,使得開發人員能方便地利用它來開發安全的網絡應用程序。

下文參考了《Java網絡編程核心技術詳解》一書的第15章,將結合具體範例來向大家介紹JSSE的用法。

JSSE API 簡介

JSSE封裝了底層複雜的安全通信細節,使得開發人員能方便地都它來開發安全的網絡應用程序。JSSE主要包括四個包:

  • javax.net.ssl包:包括進行安全通信的類,比如SSLServerSocket和SSLSocket類。

  • javax.net包:包括安全套接字的工廠類,比如SSLServerSocketFactory和SSLSocketFactory類。 

  • java.security.cert包:包括處理安全證書的類,如X509Certificate類。X.509是由國際電信聯盟(ITU-T)制定的安全證書的標準。

  • com.sun.net.ssl包:包括Oracle公司提供的JSSE的實現類。

JSSE具有以下重要特徵:

  • 純粹用Java語言編寫。

  • 可以出口到大多數國家。

  • 提供了支持SSL的JSSE API和JSSE實現。

  • 提供了支持TLS的JSSE API和JSSE實現。

  • 提供了用於創建安全連接的類,如SSLSocket、 SSLServerSocket 和 SSLEngine。

  • 支持加密通信。

  • 支持客戶端和服務器端的身份驗證。

  • 支持SSL會話。

  • JSSE的具體實現會支持一些常用的加密算法,比如RSA(加密長度2048位)、RC4(密鑰長度128位)和DH(密鑰長度1024位)。

下面展示了JSSE API的主要類框圖。 

JSSE中負責安全通信的最核心的類是 SSLServerSocket 類與SSLSocket 類,它們分別是 ServerSocket 與 Socket 類的子類。SSLSocket 對象由 SSLSocketFactory 創建,此外, SSLServerSocket 的 accept() 方法也會創建 SSLSocket。SSLServerSocket 對象由 SSLServerSocketFactory 創建。SSLSocketFactory 、 SSLServerSocketFactory 以及 SSLEngine 對象都由 SSLContext 對象創建。SSLEngine 類用於支持非阻塞的安全通信。


更多科技資訊請見微信公衆號:博文視點Broadview(微信號:bvbooks)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章