Java jar可以使用JDK jarsigner工具簽名。這與policytool相結合,似乎只允許您在運行時向jar添加權限。我想要一個默認的「撤銷訪問權限」。是否有可能讓java以白名單的方式進行白名單的操作,只允許一定數量的證書籤名的jar文件運行?限制java只執行簽名罐子?
回答
據我所知,這是在你的計算機上,你可以控制。使用
java -Djava.security.manager YourApplication
當啓動應用程序。這將安裝可通過policy files進行配置的默認安全管理器。策略文件允許沿線
grant signedBy "me" {
permission java.io.FilePermission "/home/me/*", "read,write";
};
各種可能的權限之間配置每個簽名人或者每個代碼庫的權限,我目前還沒有看到一個權限「跑在所有」,但似乎可以完全禁用這兩個網絡和文件系統訪問。
如果您有可能運行作爲決策者的自己的外部應用程序(啓動或不啓動),則可以驗證代碼中的簽名爲already discussed。
此外,你可以寫與周圍的-verify開關的jarsigner的包裝,如記錄here:
jarsigner -verify -keystore mystore hackerApplication.jar
,並捕獲「SMK」的輸出,使用一些bash類似的包裝。
這也是我的結論。我正在尋找可能能夠執行此操作的外部應用程序。理想情況下,對於Windows。 – 0xdabbad00
我已編輯答案,爲此提供解決方案。 – h22
對於自7u10起的Oracle JRE上的Java PlugIn和WebStart,Java控制面板中存在相關的自定義安全設置。在「對安全JRE版本的不可信應用程序採取行動」下,選擇「不要運行」。請參閱Setting the Security Level of the Java Client。
我不僅要限制未簽名的java代碼,還要限制所有未使用公司證書籤名的java代碼。 – 0xdabbad00
- 1. Java服務器證書籤名罐子
- 2. 使用signtool簽名罐子
- 3. 用多個罐子執行執行
- 4. 異常在執行罐子
- 5. 從命令行執行罐子裏面的罐子
- 6. Java的罐子運行
- 7. 防止Java驗證具有多個簽名算法的簽名罐子
- 8. 下載已簽名的log4j罐子
- 9. 如何驗證罐子簽名
- 10. 運行可執行在罐子的ProcessBuilder
- 11. 錯誤與Java WebStart簽名罐子上1.7.0_40
- 12. Java小程序 - 簽名Applet類,而不是小程序罐子
- 13. Java中,罐子
- 14. 取出一罐的相對路徑,只保留罐子名
- 15. 繼續在控制檯執行運行罐子
- 16. 執行Java函數的時間限制
- 17. 執行類時未找到罐子
- 18. Android SDK中:執行外部罐子
- 19. 2.9的HtmlUnit罐子執行JavaScript
- 20. Wildfly羣罐子執行在啓動
- 21. 執行xp_cmdshell的「WMIC ......‘Java的罐子......’」當哪個帳戶用於
- 22. 未能執行使用Java的罐子命令
- 23. 爲toString強制執行類型簽名
- 24. 發送可執行罐子Hadoop集羣和運行爲「的hadoop罐子」
- 25. Groovy中不執行Java的方法(簽名包括仿製藥)
- 26. 簽署具有相同簽名的多個罐子
- 27. 錯誤運行Java的罐子命令
- 28. Java,我該如何製作一個罐子來編輯另一個罐子
- 29. Java - 電子郵件簽名
- 30. 可以Tomcat的配置爲只加載簽訂罐子
安裝自己的安全管理器。 –
在瀏覽器中或使用java命令啓動它的應用程序中? – bmargulies
@bmargulies偉大的問題。請參閱[由@TomHawtin回答](http://stackoverflow.com/a/14309129/418556)對此進行擴展。 –