3

在 Internet 上托管签名 jar 的安全隐患是什么?

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

4

1 回答 1

3

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

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

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

于 2008-12-17T12:07:46.397 回答