0

我在我的 Java 项目中使用 Google Tink 库来加密两个文本,一个使用对称密钥加密 (SKE),另一个使用确定性对称密钥加密 (DSKE)。

这是一个后端应用程序,我没有用于存储主密钥的远程存储(谷歌可以,aws,...)。

生成我需要加密这两个文件的秘密材料的正确方法是什么?我想我需要使用 'tinkey' 来完成这项任务,但我并不真正理解密钥和密钥集之间的区别。我的 SKE 密钥和 DSKE 密钥可以在同一个密钥集中吗?如何生成它们?我可以拥有一个用于密钥轮换的主密钥吗?

谢谢

4

1 回答 1

1

您需要生成两个密钥集,一个 AEAD 和另一个 Deterministic AEAD。

tinkey create-keyset --key-template AES128_GCM --out aead-keyset.json
tinkey create-keyset --key-template AES256_SIV --out deterministic-aead-keyset.json

您希望将密钥集文件存储在后端服务器的安全位置。不要将它们提交到您的 git 服务器。

CleartextKeysetHandle在 Java 中,您可以使用其他语言的 API 或等效 API来加载密钥集。有关更多信息,请参阅该语言的 HOWTO。

于 2020-08-25T08:47:26.340 回答