我有一个Java桌面应用程序。我正在下载并动态运行JAR文件。JAR签名可以防止有人修改我下载的JAR文件。但是,我如何验证我的应用程序只运行我签名的JAR?如果不确保我正在运行的所有JAR都由我签名,那么JAR签名对于桌面使用来说不是仍然不安全吗?
a5g8bdjr1#
JAR签名是由运行应用程序的人验证它自签名以来没有被修改过。此外,基于证书,您可以检查 * 谁 * 签署了它。它不能防止运行应用程序的人进行修改:他们可以去掉签名,也可以自己签名,如果您的应用程序中有代码来验证签名,他们还可以替换该代码以不执行验证或根据其证书进行验证。换句话说,是的,你是对的,它不能保护你免受你所想的场景的影响,它也不是为那种场景设计的(因为它不是DRM的一种形式)。您是否认为它在桌面上使用是安全的,同样,取决于运行应用程序的人/公司。他们可以通过这种方式配置其安全策略,以仅接受某些签名证书。您可能还想阅读Java教程Signing and Verifying JAR Files,特别是Understanding Signing and Verification一章。
1条答案
按热度按时间a5g8bdjr1#
JAR签名是由运行应用程序的人验证它自签名以来没有被修改过。此外,基于证书,您可以检查 * 谁 * 签署了它。
它不能防止运行应用程序的人进行修改:他们可以去掉签名,也可以自己签名,如果您的应用程序中有代码来验证签名,他们还可以替换该代码以不执行验证或根据其证书进行验证。
换句话说,是的,你是对的,它不能保护你免受你所想的场景的影响,它也不是为那种场景设计的(因为它不是DRM的一种形式)。
您是否认为它在桌面上使用是安全的,同样,取决于运行应用程序的人/公司。他们可以通过这种方式配置其安全策略,以仅接受某些签名证书。
您可能还想阅读Java教程Signing and Verifying JAR Files,特别是Understanding Signing and Verification一章。