【问题标题】:Java Web Start Sign library JarsJava Web Start Sign 库罐子
【发布时间】:2015-02-07 17:54:21
【问题描述】:

我有一个包含多个 JAR 库的 Java Web Start 应用程序。现在我需要签署 JAR 以使其通过浏览器工作。

我的问题是:除了主 Jar 签名之外,我还需要对应用程序内的每个库 JAR 进行签名吗?

【问题讨论】:

    标签: java security java-web-start sign jar-signing


    【解决方案1】:

    想象一下,如果您有一个农场并饲养着珍贵的鸵鸟。为了防止鸵鸟四处游荡并被狮子吃掉,你在农场周围竖起了栅栏。但不幸的是,您只有足够的围栏线来在农场 4 个侧面中的 3 个周围设置围栏。鸵鸟(以及您的投资)会安全吗?当然不是。

    安全的原理是一样的。 任何没有数字签名的库 Jar 都是潜在的安全漏洞来源。导致底线..

    应用中的每个 Jar。必须在应用程序之前进行数字签名。可以被认为是安全和值得信赖的。

    ..如果我对已经签名的库进行签名,新签名会覆盖旧签名吗?

    不一定。从jarsigner docs: Multiple Signatures for a JAR File我们看到..

    JAR 文件的多重签名

    一个 JAR 文件可以由多个人通过对文件运行 jarsigner 命令来签名 多次,每次都为不同的人指定别名,如下:

    jarsigner myBundle.jar susan
    jarsigner myBundle.jar kevin
    

    当一个 JAR 文件被多次签名时,生成的 JAR 文件中有多个 .SF 和 .DSA 文件,每个签名一对。在前面的示例中,输出 JAR 文件包含具有以下名称的文件:

    SUSAN.SF
    SUSAN.DSA
    KEVIN.SF
    KEVIN.DSA
    

    【讨论】:

    • 很好的描述 :) 谢谢!
    • 还有一个问题:如果我对已经签名的库进行签名,新签名会覆盖旧签名吗?
    • 即使不是我创建的旧签名也会被替换吗?
    • 想象一个罐子里有两个签名,一个没问题,另一个已经过时了。在运行时它只会被认为是“好”的签名,应用程序会正常运行吗?
    • 我没试过,但我怀疑过时的签名会导致问题。找出答案的最好方法是尝试一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多