在Internet上托管签名的jar会对安全产生什么影响?
据我了解jar签名,一旦用户选择自动接受证书,签名的jar便来自您的域,来自另一个域的链接还是托管在另一个域上都没有关系.例如,Sun通过提供链接到驱动程序的(托管)签名的jar,使用此方法提供applet OpenGL支持.那么,作为我提供的Java代码的开发者和证书签名者,我应该采取一些预防措施吗?
解决方法:
根据上下文,您将依靠安全管理器和关联的安全策略来执行正确的操作.通常,除非您正在做自己的类加载器魔术,否则您不需要做任何特殊的事情.如果可以控制安全策略(例如,在Java应用程序中而不是在applet中),则可以授予仅调用某些其他代码的权限.如果您依靠代码库来区分代码,则https URL更好.如果您知道访问应该来自哪里/谁,限制对Web服务器上jar的访问也没有害处,但是可能比它值得的麻烦更多.
但是,您应始终牢记,API的调用者可能不是您的代码,并且可能是恶意的.因此,在威胁建模中,您应该考虑恶意用户如果以某种方式可以访问您的代码公开的API提供的功能,他们可能会做什么.安全经理应该检查呼叫堆栈以防止这种情况.但是,例如,如果您签名的jar有一个方法LaunchMissiles()…,您可能想问用户是否确定.并且您可能也想验证用户.
您也不必依赖用户在任何安全警告上单击右键,尤其是当它涉及证书和URL等时-大多数用户属于以下两种类别之一:那些在单击任何警告时都单击“确定”,因为他们不理解以及由于不了解警告而单击“取消”的用户.