我们有大量的 SVN 服务器,为多个团队保存应用程序。我们收到了一项要求,即配置文件不得将数据库连接字符串以纯文本形式存储在 SVN 存储库中。也就是说,只有团队成员才能看到纯文本的连接字符串。由于我们使用 .net 加密配置部分并不是什么大不了的事。但是我读过的大多数方法都需要使用特定于机器或特定于用户的密钥。由于机器和用户会有所不同,这似乎不起作用。其他人如何与用户/开发人员团队一起管理加密密钥?我们确实有自己的 RSA 密钥服务器。这是要走的路吗?
谢谢,
杰瑞
我们有大量的 SVN 服务器,为多个团队保存应用程序。我们收到了一项要求,即配置文件不得将数据库连接字符串以纯文本形式存储在 SVN 存储库中。也就是说,只有团队成员才能看到纯文本的连接字符串。由于我们使用 .net 加密配置部分并不是什么大不了的事。但是我读过的大多数方法都需要使用特定于机器或特定于用户的密钥。由于机器和用户会有所不同,这似乎不起作用。其他人如何与用户/开发人员团队一起管理加密密钥?我们确实有自己的 RSA 密钥服务器。这是要走的路吗?
谢谢,
杰瑞
好吧,基本上你不应该将配置与源一起存储。
配置使用公钥加密,私钥在资源中或单独配置。它还由私有“代码/配置签名”密钥签名,验证所需的公钥再次单独存储或配置。有时还会部署额外的验证和混淆技术。解密和签名密钥应该用于特定项目,或者您可能会交换配置文件(或在交换它们时遇到可怕的异常)。
在代码中存储普通密钥称为混淆,任何有权访问源代码或二进制代码的人都能够找到它们。密钥最好不要存储在代码中。
当然,如果您使用公钥/私钥,您需要拥有 PKI 基础设施和必要的密钥管理。我不会(也不能/可能不会)对此进行讨论,但我想 RSA 密钥服务器可以为您提供正确的环境。