1. 程式人生 > >JDK中Applet的安全性策略探究

JDK中Applet的安全性策略探究

眾所周知,通過瀏覽器訪問Applet存在安全漏洞,jdk1.6及更早的一些版本一直存在這些問題,為了解決Applet的安全漏洞問題,在jdk1.7陸續釋出了幾個用於修補安全漏洞的jdk版本。相關版本更新簡圖如下:

一、 jdk1.7 update21版本

詳情連結

Java 7 Update 21引入了對 Java 瀏覽器外掛行為的更改,使您可以在瀏覽器中執行 Java 小應用程式之前做出更知情的決策。將出現安全提示,要求先確認,然後才允許在瀏覽器中執行 Java 內容。

此版本修補的安全漏洞內容包括:

(1)JAR黑名單和證書:甲骨文公司現在管理著一個jar黑名單和證書庫,該資料會在客戶端上首次執行Java applet或啟動web應用時進行更新。

(2)更改了Java控制面板中的安全設定,確保本地applet執行在一個安全的JRE上。自簽名或未簽名的jar不在被允許

(3)安全對話方塊:在該版本中,在特權applet內部呼叫程式碼的JavaScript程式碼將被為混合程式碼,並會在JAR檔案沒有被標上Trusted-Library(受信任庫)屬性時彈出警告對話方塊。該版本中,RMI屬性java.rmi.server.useCodebaseOnly預設為true,之前版本為false。

4)新增了一個Server JRE包,包含了用於伺服器部署的常用工具,專門針對在伺服器環境中部署Java執行時。

(5)支援Linux on ARM,處理器包括ARMv6和ARMv7。但目前不支援Java WebStart、Java Plug-In、Garbage First (G1) Collector、JavaFX SDK或JavaFX執行時等特性。

(6)更改了Runtime.exec

在jdk7u21及更高版本情況下,當執行僅僅自簽名的jar時候會彈出一下對話方塊。此時對【不再對來自以上發行者和位置的應用程式顯示此訊息】打鉤後,之後再瀏覽將不再彈出該提示框。


另外當客戶端java control panel未匯入【簽名者 CA】證書或當使用證書頒發機構 (CA) 無法驗證的證書執行應用程式時,會顯示此對話方塊。

二、jdk1.7 update45版本

詳情連結

英文: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

中文:

自 Java 版本 7 Update 45 起,增加了針對 Java 應用程式執行的安全增強功能。當web頁面發起LiveConnect對RIA的呼叫時,如果沒有正確簽名或配置,會出現一個新的安全警告。安全警告框可能如下:


從7u45開始,應用程式開發者可以指定新的JAR manifest檔案屬性包括:

  • Application-Name:該屬性為RIA提供了一個安全標題
  • Caller-Allowable-Codebase:該屬性指定了允許JavaScript呼叫Applet類的程式碼庫/位置

只要滿足如下條件,即可進行JavaScriptto Java呼叫:

  • JAR由一個【可信任的證書】簽署,有Caller-Allowable-Codebase manifest入口,且JavaScript執行在相匹配的域中
  • JAR未簽名,JavaScript呼叫發生在與JAR相同的域中

可通過以下方式消除或避免該彈出框:

1.在入口jar中設定manifest 屬性:Caller-Allowable-Codebase和Permissions 。


官網摘抄:
2.在Java Control Panel中匯入【可信任的證書】。


3.在Java Co ntrol Panel中設定【混合程式碼(沙箱程式碼與可信程式碼)安全驗證】為【啟用-隱藏警告並在保護下執行】。


三、dk1.7 update51版本

詳情連結:

英文:

中文:

自 Java 版本 7 Update 45 起,增加了針對 Java 應用程式執行的安全增強功能。對富 Internet 應用程式(RIA,也稱為小應用程式和 Web Start 應用程式)的增強功能主要包括以下:

(1)來自可信頒發機構的程式碼簽名。小應用程式和 Web Start 應用程式的所有程式碼必須進行簽名,不論其許可權屬性如何。

(2)清單屬性

  • 許可權 - 在 7u25 中引入,從 7u51 開始是必需的。指示 RIA 應在沙盒中執行還是需要完整許可權。
  • ·程式碼庫 - 在 7u25 中引入,從 7u51 開始是可選/推薦的。指向託管程式碼的已知位置。

自 Java 版本 7 Update 51 起,未對RIA簽名時候,客戶端將彈出對話方塊阻止jar的執行,如下圖(不容版本的阻止框可能有所不同):


另外,在 Java 7 Update 51 發行版中引入了“例外站點”列表功能。通過將應用程式 URL 新增到例外列表中,使用者可以執行通常被安全檢查阻止的 Rich Internet Application (RIA)。

下面列出了可通過將應用程式 URL 新增到“例外站點”列表以允許應用程式執行的情況:

  • ·未使用可信證書頒發機構釋出的證書對應用程式進行簽名。
  • ·應用程式在本地託管。
  • ·Jar 檔案不具有“許可權”清單屬性。
  • ·使用過期證書對應用程式進行了簽名。
  • ·無法檢查用於對應用程式進行簽名的證書是否已撤銷。

因此,在Java 7 Update 51以後的版本中可以通過新增例外站點的方式來執行缺少相關許可權的jar執行,也是一種權宜之計。

原創整理,轉載請註明原地址!!!