【问题标题】:Security considerations when hosting signed jars托管签名 jar 时的安全注意事项
【发布时间】:2010-09-24 01:03:11
【问题描述】:

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

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

【问题讨论】:

  • 您需要澄清您是如何使用托管 jar 的 - 这是用于小程序还是其他?
  • 做了一些澄清。我如何使用签名的 jar 不是我的问题,而是我的签名 jar 可用后其他人如何使用它。

标签: java security jar applet jar-signing


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 2011-01-07
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多