【问题标题】:Impacts of changing Java default truststore password更改 Java 默认信任库密码的影响
【发布时间】:2017-04-12 14:57:06
【问题描述】:

我最近不得不将我的公司根 CA(基于 AD CS)添加到 JRE 默认信任库($JAVA_HOME/lib/security/cacerts 文件)中。然后我发现(因为我是新手)默认密码是changeit

我找到了各种解释如何更改它的帖子,但有两个问题我找不到答案:

  1. 保留默认密码是否存在安全风险?我猜攻击者可能会导入受损证书,以便客户信任它们
  2. 更改此信任库密码有什么影响?我也猜想 JRE 可以在里面寻找根 CA,因为它知道默认密码。更改后,是否必须在某处提供(配置文件,...)?

我们主要在有小程序的网站上使用 Windows 上的 Java,所以我们不会从命令行启动任何东西(我知道可以提供密码)。

【问题讨论】:

  • 您无需知道密码即可读取信任库。您只需要知道密码即可读取 KeyStore 中的密钥条目。
  • 那我有点糊涂了。当我发出命令keytool -list -alias mycorpCA -keystore $JAVA_HOME/lib/security/cacerts 时,我被要求提供密码。

标签: java security passwords truststore


【解决方案1】:

关于您的第二个问题,有一些系统属性可以指定默认信任库和默认密钥库的密码。信任库的一个是: javax.net.ssl.trustStorePassword

我在https://stackoverflow.com/a/5871352/5629418找到了该信息

如果攻击者可以读取您的 Java 系统属性,无论是在配置文件中还是通过运行 Java 程序,那么更改密码几乎都是徒劳的。

【讨论】:

    【解决方案2】:

    关于您的第二个问题:“更改此信任库密码有什么影响?”

    更改该密码的一个含义是保存新密码值的内存位更好地分配和存储在某个地方以供后续检索,为相应的访问提供准备。如果没有存储该密码,最好有一个关于如何恢复它的过程。

    那篇文章包含更改密码的代码:

    thetechawesomeness.ideasmatter.info

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 2014-08-24
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      相关资源
      最近更新 更多