可以破坏ssl属性“ passPhrase”的Spring Rabbitmq XML配置吗?

时间:2018-07-25 07:43:19

标签: spring-amqp spring-rabbit spring-rabbitmq

我在项目中使用了Spring Rabbitmq XML配置。要创建RabbitConnectionFactoryBean,我们为ssl.properties文件资源提供以下属性

keyStore=file:/secret/keycert.p12
trustStore=file:/secret/trustStore
keyStore.passPhrase=secret
trustStore.passPhrase=secret

passPhrases是硬编码的值。我们担心任何获得该系统访问权限的人都可以读取该文件并滥用它。确实,系统管理员和OS应该保护这些文件,但是当不受信任的用户登录时,这可以被视为安全威胁。

this链接中,Gary建议使用Java配置,我们可以使用它来创建RabbitConnectionFactoryBean,也许可以从系统中读取加密的密码,然后使用setter在bean中进行设置。 但是,由于我们已经在使用XML配置,是否还有其他方法可以保护属性文件中的passPhrases? 相同的配置会在PRODUCTION环境中引起类似的安全问题吗? 请帮助我在上面实现安全性。

1 个答案:

答案 0 :(得分:1)

不确定在公众场合说这是否合法,但是我会尽力的。

有一些security token方法,当您启动项目时,它会请求这样的令牌。管理员(或安全代表)来了,插入了一些特殊的驱动器,输入密码。您的项目从该设备读取属性,填充所有属性并正确启动。那个管理员从USB拉肉驱动器,然后消失了。没有人看到您的应用程序密码!

您可以考虑的另一种解决方案是Config Server。因此,您的属性存储在当前计算机之外的某个地方。

您还可以真正遵循加密方式:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/multi/multi__spring_cloud_context_application_context_services.html#_encryption_and_decryption