java - 托管签名 jar 时的安全注意事项

标签 java security jar applet jar-signing

在互联网上托管签名的 jar 有哪些安全隐患?

据我了解 jar 签名,一旦用户选择自动接受证书,签名的 jar 是来自您的域、从另一个域链接还是托管在另一个域上都没有关系。例如,Sun 使用此方法通过提供链接到驱动程序的(托管)签名 jar 来为小程序提供 OpenGL 支持。那么,作为我提供的 Java 代码的开发人员和证书签署者,我应该采取什么预防措施吗?

最佳答案

根据上下文,您依靠安全管理器和相关的安全策略来做正确的事情。一般来说,除非你正在做自己的类加载器魔术,否则你不需要做任何特别的事情。如果您可以控制安全策略(例如在 java 应用程序中而不是 applet 中),您可以授予仅调用您的 jar 到某些其他代码的权限。如果您依赖代码库来区分代码,则 https URL 更好。如果您知道访问应该来自哪里/谁,那么限制对网络服务器上的 jar 的访问也没有什么坏处,但可能比它值得的麻烦更多。

但是,您应该始终牢记,API 的调用者可能不是您的代码,而且可能是恶意的。因此,在您的威胁建模中,您应该考虑如果恶意用户以某种方式访问​​了您的代码公开的 API 提供的功能,他们可能会做什么。安全经理应该检查调用堆栈以防止这种事情发生。但是,例如,如果您签名的 jar 有一个方法 LaunchMissiles() ...您可能想询问用户是否确定。您可能还想对用户进行身份验证。

您也不应该依赖于用户在任何安全警告上单击右键,尤其是当它涉及证书和 URL 等时 - 大多数用户属于两类之一:那些在任何警告上单击“确定”的人,因为他们没有不理解,以及那些因为不理解而在任何警告上单击“取消”的人。

关于java - 托管签名 jar 时的安全注意事项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/318781/

相关文章:

java - 如何通过包名启动多个intent

Java循环链表

security - 如何为我的 golang 应用程序获取 SSL 证书?

java - Selenium - Maven/TestNG : How to add "testng.xml" and log4j2. pom.xml 中的 xml 路径,因此可执行的 .jar 文件也可以在其他计算机上执行?

java - 如何访问 Java 调用程序的资源目录

java - 导出为JAR后如何使JAVA接口(interface)被其他类设为 "implements"?

java - 如何获得管理权限以在java中打开Windows vista/7 C盘中的目录

java - 通过 ActiveMQ 将字节数组作为属性发送

windows - Windows中是否可以将部分内存用作虚拟文件

ruby-on-rails - Ruby on Rails 私有(private)链接共享 : Google Docs Style