客户端解密期间,Spring Cloud Config是否使用具有强RSA的AES密钥

时间:2018-09-14 16:22:39

标签: spring-security aes rsa spring-cloud spring-cloud-config

设置

我配置了一个由本地Git存储库支持的Spring Cloud Config服务器,并创建了一个Spring Boot应用程序以使用来自SCC的配置。 Git中的配置文件scc-client.yml具有两个纯文本属性和一个加密的app.secret

app:
  name: client-app
  port: 8085
  secret: '{cipher}AgCGh ... X3pTW'

解密是在客户端完成的:SCC服务器上的bootstrap.properties的{​​{1}}和spring.cloud.config.server.encrypt.enabled=false我的Spring Boot应用程序包含:

bootstrap.yml

keystore.p12包含用于加密... encrypt: keystore: location: classpath:keystore.p12 password: kspass alias: client-key secret: kspass key: client-key rsa: strong: true ... 值的密钥。我使用keytool生成了密钥:

app.secret


问题

Spring在上述设置中在客户端解密值时是否使用混合RSA加密方法?

通过代码判断,一些keytool -genkeypair -alias client-key -keyalg RSA -deststoretype pkcs12 -keystore src/main/resources/keystore.p12 -keysize 4096 -storepass kspass -keypass kspass 方法中正在调用与AES相关的组件,但是我不确定这是否代表完整的hybrid encryption以及在此过程中使用了自己生成的AES密钥

1 个答案:

答案 0 :(得分:1)

Spring Cloud确实采用了Wikipedia链接中描述的混合算法。服务器或命令行客户端对数据进行加密。服务器,命令行客户端或客户端应用可以解密它们。请注意,客户端解密通常是最弱的,因为您必须使用与encyptor相同的私钥对其进行配置。