JAVA 和.NET在安全功能的比較(ZZ)

來源:互聯網
上載者:User

本文根據Denis Piliptchouk的文章翻譯、摘錄而來,有些術語翻譯不太好理解,還請參考原文。

第一部分 安全配置和代碼封裝

安全配置

兩個平台的配置都是通過XML或純文字檔案,兩個平台最大的區別在於處理安全配置體系的方式不同。

在.NET平台,有圖形介面和命令列二種方式來修改安全配置參數。Mscorcfg.msc是圖形介面方式,Caspol.exe提供了命令列方式,適用於批處理或配置文本。

JAVA平台只提供了圖形介面的工具policytool.exe。和.NET不同的是,它的目標對象(設定檔)的名字和位置不是固定的。

.NET定義了不同範圍的安全設定檔:系統範圍,本機範圍,本使用者範圍。在配置有衝突時,原則上小範圍的參數有優先權。

JAVA和J2EE的核心設定檔都儲存在固定位置,但擴充設定檔隨廠家不同而不同。

代碼封裝:檢驗

JAVA 和.NET 的Common Library Runtime (CLR) 都實行記憶體安全或型別安全的保護機制,在這些平台開發的應用的安全性也是可以檢驗的。他們的實現機制有很大的不同。

在.NET, CLR總是執行編譯好的代碼,它不解釋代碼。但是在中繼語言(IL)被編譯之前,編譯器會有驗證和檢驗的步驟。第一步是檢查檔案的結構和代碼完整性;第二步包括一些擴充的檢查,記憶體安全、堆疊追蹤、資料流分析、類型檢查等。在運行階段,由VES (Virtual Execution System) 來負責安全性檢查和出錯意外情況處理。

在JAVA平台,JAVA虛擬機器(JVM)負責類的載入、連結、檢驗和執行。對於已經編譯和最佳化的代碼,JVM也用二個無條件呼叫堆疊來保留最初的位元組代碼資訊。

小結:和.NET不同,JVM的預設設定是不檢驗本地代碼。另外,JVM保留最初的位元組代碼供運行時檢查,而.NET把靜態分析和運行時插入檢驗代碼相結合。

代碼封裝:應用隔離

在.NET, 域隔離建立在記憶體安全機制的基礎上,不同的域不能直接存取彼此的地址空間,只能通過.NET遠程通訊機制訪問。

在JAVA平台,應用隔離是通過ClassLoaders 和 ProtectionDomains 相結合來實現的,安全類載入是JVM安全機制的基石。

小結:.NET的 AppDomains 就象作業系統的進程一樣,使用起來比JAVA的 ProtectionDomains 更直接、容易一些。

代碼封裝: 語言特徵

兩個平台基本上差不多,.NET在靈活性上稍微好一點。

總結:

JAVA在安全配置上有較多的優勢,.NET在代碼封裝的選擇性和易用性好一些。

第二部分 加密和通訊

加密法:概論

.NET的加密法主要基於CryptoAPI 和相關擴充。大多數有關加密的類都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基於流的模型來完成加密傳輸,所有的演算法都被預設為最高的安全層級。.NET也允許使用者自己在 machine.config 中定義自己的演算法。

JAVA平台的密碼編譯演算法分二個部分:Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE)。 JCE的出口受到有關法律的限制。如果要使用使用者自己的密碼編譯演算法,必須得到認證機構(SUN 或 IBM)的認證。

加密法:演算法

.NET主要提供了下面幾大類密碼編譯演算法:非對稱演算法、HASH演算法、對稱演算法、隨機數產生法。

JAVA提供的密碼編譯演算法更多,但是較少第三方廠商可以在JAVA中提供自己的演算法。

安全通訊

SSL已經是事實的傳輸安全的工業標準了。JAVA和.NET都支援最新版本 SSL 3.0。

安全通訊:平台

.NET只在基於IIS的應用中使用SSL來保護HTTP傳輸,對於非IIS應用,.NET不能保護傳輸中的資料。

在JAVA中,JSSE (Java Secure Socket Extensions) 提供了平台級的服務,保證基於TCP/IP的通訊安全。

除了IIS,.NET沒有提供任何其它平台級的通訊保護的標準方案,但是JAVA在這方面提供了全套的解決方案。

安全通訊:應用

.NET通過WSA (Web Service Architecture)和 WSE (Web Service Extension) 包來提供最新的WEB服務安全保證,JAVA目前還沒有提供這方面的支援。

總結: 在加密方法上,JAVA和.NET基本沒有太大的差別;在通訊保護方面,JAVA 比.NET提供了更多的選擇方案;但是在WEB服務安全性上,JAVA明顯比.NET落後一些。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.