春季安全
例子1。
VaultBytesKeyGenerator示例VaultOperations operations = …;
VaultBytesKeyGenerator generator = new VaultBytesKeyGenerator(operations);
byte[] key = generator.generateKey();
例子2。
VaultBytes加密器示例VaultTransitOperations transit = …;
VaultBytesEncryptor encryptor = new VaultBytesEncryptor(transit, "my-key-name");
byte[] ciphertext = encryptor.encrypt(plaintext);
byte[] result = encryptor.decrypt(ciphertext);
Vault 封装了一个熵源,与你的 JVM 解耦,同时支持服务器端密钥管理。这减轻了应用开发者在适当加密/解密上的负担,并将责任转嫁给 Vault 的操作员。Vault 的操作员通常包括组织的安全团队,这意味着他们可以确保数据的加密和解密得到正确处理。此外,由于加密/解密作必须进入审计日志,任何解密事件都会被记录下来。
后端还支持密钥轮换,允许生成新版本的命名密钥。所有用密钥加密的数据都将使用最新版本的密钥;之前加密的数据可以用旧版本密钥解密。管理员可以控制哪些旧版本的密钥可供解密,以防止攻击者获得旧密文副本以成功解密。
毕竟,Vault 是一个网络服务,每项作都会有延迟。大量使用加密或随机字节生成的组件可能会在吞吐量和性能上出现差异。