对于最新稳定版本,请使用 Spring Vault 4.0.1spring-doc.cadn.net.cn

Spring Security

Spring Vault 通过提供 BytesKeyGeneratorBytesEncryptor 的实现与 Spring Security 集成。这两种实现都使用了 Vault 的 transit 后端。spring-doc.cadn.net.cn

示例 1. VaultBytesKeyGenerator 示例
VaultOperations operations = …;
VaultBytesKeyGenerator generator = new VaultBytesKeyGenerator(operations);

byte[] key = generator.generateKey();
示例 2. VaultBytesEncryptor 示例
VaultTransitOperations transit = …;

VaultBytesEncryptor encryptor = new VaultBytesEncryptor(transit, "my-key-name");

byte[] ciphertext = encryptor.encrypt(plaintext);

byte[] result = encryptor.decrypt(ciphertext);

Vault 封装了一个与您的 JVM 解耦的熵源以及服务器端密钥管理。这减轻了应用程序开发人员正确进行加密/解密的负担,并将此责任转移给 Vault 的运维人员。Vault 的运维人员通常包括组织中的安全团队,这意味着他们可以确保数据被正确地加密/解密。此外,由于加密/解密操作必须进入审计日志,任何解密事件都会被记录下来。spring-doc.cadn.net.cn

后端还支持密钥轮换,这允许生成命名密钥的新版本。使用该密钥加密的所有数据都将使用最新版本的密钥;先前加密的数据可以使用旧版本的密钥进行解密。管理员可以控制哪些密钥的旧版本可用于解密,以防止攻击者获取旧的密文副本并能够成功解密。spring-doc.cadn.net.cn

Vault 是一个网络服务,每次操作都会产生延迟。大量使用加密或随机字节生成的组件可能会在吞吐量和性能上出现差异。spring-doc.cadn.net.cn