关于本地主机回购中私钥的安全相关问题
Security-related question regarding private key in repo for localhost
安全套接字对接受或连接域的信任集合中的证书使用 CN 检查。对于我自己,我为 localhost 创建了一个 private 和 public 集,这有助于我在本地进行调试。如果我想提供一个 SDK,为这个本地主机调试用例分发 .key 和 .cer X509 是否被认为是安全的?或者在任何打开的 space 中拥有 .key 总是不被认为是安全的,因为它可能被滥用?
抱歉,如果在其他地方讨论过这个问题,但我找不到明确的答案。
这可能有些自以为是,并且在某种程度上也取决于您的项目,但我认为主要风险是人们将如何实际使用它们。他们中的一些人肯定会在生产中使用它,因为它更容易,或者他们不理解密钥对,只是想让它工作等等。
默认情况下,任何项目都应该是安全的,对于所有相关人员,包括最终用户和开发人员,如果您的项目类似于库或组件,也应如此。在这种情况下,默认情况下的安全意味着不提供实际的密钥对,因为在至少某些用途的情况下,这可能是一个后门——即使它不打算那样使用。
另一件需要考虑的事情是你的项目的声誉。如果您包含一个密钥并且用户在 Internet 上滥用它,那么使用 Shodan 等工具很容易找到并可能利用您项目的易受攻击实例。没有人会关心开发人员是否做错了 - 被发现易受攻击的将是您的项目。
更好的考虑方法是提供类似于初始化脚本的东西,它会为特定实例生成密钥和证书。它对用户和开发人员来说仍然很容易,而且对每个人来说都是安全的。如果是 linux 包,这甚至可以通过大多数打包解决方案的安装程序脚本来完成,因此它对用户来说是完全透明的。
安全套接字对接受或连接域的信任集合中的证书使用 CN 检查。对于我自己,我为 localhost 创建了一个 private 和 public 集,这有助于我在本地进行调试。如果我想提供一个 SDK,为这个本地主机调试用例分发 .key 和 .cer X509 是否被认为是安全的?或者在任何打开的 space 中拥有 .key 总是不被认为是安全的,因为它可能被滥用?
抱歉,如果在其他地方讨论过这个问题,但我找不到明确的答案。
这可能有些自以为是,并且在某种程度上也取决于您的项目,但我认为主要风险是人们将如何实际使用它们。他们中的一些人肯定会在生产中使用它,因为它更容易,或者他们不理解密钥对,只是想让它工作等等。
默认情况下,任何项目都应该是安全的,对于所有相关人员,包括最终用户和开发人员,如果您的项目类似于库或组件,也应如此。在这种情况下,默认情况下的安全意味着不提供实际的密钥对,因为在至少某些用途的情况下,这可能是一个后门——即使它不打算那样使用。
另一件需要考虑的事情是你的项目的声誉。如果您包含一个密钥并且用户在 Internet 上滥用它,那么使用 Shodan 等工具很容易找到并可能利用您项目的易受攻击实例。没有人会关心开发人员是否做错了 - 被发现易受攻击的将是您的项目。
更好的考虑方法是提供类似于初始化脚本的东西,它会为特定实例生成密钥和证书。它对用户和开发人员来说仍然很容易,而且对每个人来说都是安全的。如果是 linux 包,这甚至可以通过大多数打包解决方案的安装程序脚本来完成,因此它对用户来说是完全透明的。