Spring Cloud Config 在客户端解密期间是否使用具有强 RSA 的 AES 密钥
Does Spring Cloud Config use AES key with strong RSA during client side decryption
设置
我配置了一个由本地 Git 存储库支持的 Spring 云配置服务器,并创建了一个 Spring 启动应用程序来使用来自 SCC 的配置。 Git 中的配置文件 scc-client.yml
有两个纯文本属性和一个加密的属性,app.secret
:
app:
name: client-app
port: 8085
secret: '{cipher}AgCGh ... X3pTW'
解密在客户端完成:SCC 服务器上的 bootstrap.properties
有 spring.cloud.config.server.encrypt.enabled=false
和我的 Spring 启动应用程序的 bootstrap.yml
包含:
...
encrypt:
keystore:
location: classpath:keystore.p12
password: kspass
alias: client-key
secret: kspass
key: client-key
rsa:
strong: true
...
keystore.p12 包含用于加密 app.secret
值的密钥。我使用 keytool 生成了密钥:
keytool -genkeypair -alias client-key -keyalg RSA -deststoretype pkcs12 -keystore src/main/resources/keystore.p12 -keysize 4096 -storepass kspass -keypass kspass
问题
在上面的设置中,在客户端解密值时,Spring是否使用混合 RSA 加密方法?
根据代码判断,在 o.s.s.r.c.RsaSecretEncryptor.decrypt()
方法中调用了一些 AES 相关组件,但我不太确定这是否表示完整的 hybrid encryption 以及正在使用的自生成 AES 密钥顺便。
Spring Cloud 确实采用了维基百科 link 中描述的那种类型的混合算法。服务器或命令行客户端对数据进行加密。服务器、命令行客户端或客户端应用程序可以解密它们。请注意,客户端解密通常是最弱的,因为您必须使用与加密器相同的私钥配置它。
设置
我配置了一个由本地 Git 存储库支持的 Spring 云配置服务器,并创建了一个 Spring 启动应用程序来使用来自 SCC 的配置。 Git 中的配置文件 scc-client.yml
有两个纯文本属性和一个加密的属性,app.secret
:
app:
name: client-app
port: 8085
secret: '{cipher}AgCGh ... X3pTW'
解密在客户端完成:SCC 服务器上的 bootstrap.properties
有 spring.cloud.config.server.encrypt.enabled=false
和我的 Spring 启动应用程序的 bootstrap.yml
包含:
...
encrypt:
keystore:
location: classpath:keystore.p12
password: kspass
alias: client-key
secret: kspass
key: client-key
rsa:
strong: true
...
keystore.p12 包含用于加密 app.secret
值的密钥。我使用 keytool 生成了密钥:
keytool -genkeypair -alias client-key -keyalg RSA -deststoretype pkcs12 -keystore src/main/resources/keystore.p12 -keysize 4096 -storepass kspass -keypass kspass
问题
在上面的设置中,在客户端解密值时,Spring是否使用混合 RSA 加密方法?
根据代码判断,在 o.s.s.r.c.RsaSecretEncryptor.decrypt()
方法中调用了一些 AES 相关组件,但我不太确定这是否表示完整的 hybrid encryption 以及正在使用的自生成 AES 密钥顺便。
Spring Cloud 确实采用了维基百科 link 中描述的那种类型的混合算法。服务器或命令行客户端对数据进行加密。服务器、命令行客户端或客户端应用程序可以解密它们。请注意,客户端解密通常是最弱的,因为您必须使用与加密器相同的私钥配置它。