【问题标题】:Keytool's -storepass vs. -keypass -- Why 2 passwords?Keytool 的 -storepass 与 -keypass —— 为什么是 2 个密码?
【发布时间】:2011-08-22 16:55:49
【问题描述】:

我了解-keypass 选项用于“密钥的密码”,-storepass 选项用于“密钥库的密码”。

不过,我不明白为什么需要两个密码。

在哪些情况下需要 2 个密码:一个用于存储(在我的情况下为文件),另一个用于密钥。

【问题讨论】:

  • 您的storepass 密码用于验证密钥库/信任库的完整性。您的keypass 密码实际上是用于解密私钥或密钥。是的,您仍然可以在不输入任何密码的情况下“查看”​​公共证书,但是......您将无法验证它们的完整性。那有什么意义呢?
  • 另一种看法就像storepass 就像一个隐藏的对称密钥,用于“keystore/truststore”MAC(消息认证),而keypass 就像实际的解密密钥本身。所以后者实际上保护了存储在里面的私钥/密钥。

标签: android security keytool


【解决方案1】:

Keytool 将 storepass 和 keypass 用于不同的目的。

storepass 用于访问密钥库

keypass 用于访问特定密钥对的私钥。

但是,不应在命令行或脚本中指定密码,除非用于测试目的,或者您使用的是安全系统。

【讨论】:

    【解决方案2】:

    这是由于 Java 处理密钥库的方式造成的,因此这不是 Android 特定的问题。原因是因为访问存储(例如添加/查看信任关系)是与创建和签署密钥/证书不同的任务。

    简而言之,您可以信任某人查看/更新您的密钥库,但不会使用您存储在密钥库中的密钥对事物进行签名。此外,密钥可以存储在多个密钥库中,并且您希望单独锁定您的密钥。

    【讨论】:

    • 谢谢。起初我认为 2 个密码的这个功能对团队非常有用,但对单人开发“团队”并没有什么不同。然后我阅读了您答案中的最后一句话,并意识到它也可能对单个开发人员有用。谢谢++(很快就会接受)。
    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2021-06-04
    相关资源
    最近更新 更多