15

我正在学习使用maven 密码加密功能,我想知道如何选择参数<password>。有两点我不明白:

1)mvn --encrypt-master-password foobar总会给出不同的encrypted master password

由于encrypted master password总是不同,我只看到两种可能性:

  1. encrypted master password本地属性存储在某处,以便可以用来解密master password. 这意味着我们encrypted server passwords只能在本地使用。
  2. 什么都没有存储,master password没有用,根本不重要。

所以,我的问题是:

本地存储什么?我的master password安全吗?还有第三种我没有想到的可能性吗?

2)在maven网站上是这样写的:

另请注意,加密密码可以由拥有主密码和设置安全文件的人解密。如果您预计可能会检索到 settings.xml 文件,请确保此文件安全(或单独存储)。

如果这settings security file是要保护的东西,我为什么要费心选择一个强大的主密码?我不能只使用 foobar 并确保我的settings security file安全吗?

此外,看起来拥有两个文件(settings security filesettings file)的人不需要master password连接到 Maven 服务器。他可以在不知道密码的情况下使用我们的身份。这master password是“仅”需要解密servers passwords(以获取纯文本)。但是话又说回来,保护settings security file应该是要走的路,而这master password将毫无用处。

我的问题:

有多重要master password?我必须记住它吗?我可以使用一个很长的随机短语并永远忘记它吗?

PS:我在这里找不到我的答案。

4

1 回答 1

11

第一个密码仅用于生成主密码,然后您可以忘记它。它是使用加密机制和伪随机组件生成的。因此,应该无法破译它。除了您的安全设置文件中的主密码外,没有其他任何内容存储在本地,并且不会再次提示或询问。

此主密码用于加密和解密设置文件中的密码。它与用户输入的密码具有相同的值,但几乎不可能推断出它。

然后:

  1. 除了您的安全设置文件中的主密码外,没有其他任何内容存储在本地,并且不会再次提示或询问。所有的安全都存在于安全设置文件的安全中。

  2. 主密码并不重要,您可以立即忘记。你可以使用任何你想要的东西。

我不喜欢这种方法来保护我的密码,我想要一个真正的密码加密机制,而不是存储真正的主密码。带有密码策略的公私钥似乎更好。

于 2014-01-09T08:58:58.530 回答