在 MongoDB 客户端字段级别加密中,当我们加密记录并在密钥库中有多个数据加密密钥(请不要将其与主密钥混淆)时,如果我们在单个查询中获取多条记录,例如 X 记录有 1 个字段使用 Y 个不同的数据加密密钥加密,我想了解驱动程序如何处理这些数据加密密钥的获取。我可以想到下面列出的几种方法来处理它,但想了解确切的行为以最终确定我们的方法。
- 它获取 X 条记录并在解密每条记录时调用以获取用于加密该特定记录的数据加密密钥。因此,一起进行 X db 调用以获取密钥。
- 与上面相同,但当它获取数据加密密钥时,它会将其存储在内存中,以便在任何其他未重新加密的记录使用相同的数据加密密钥时重复使用。在这种方法中,它会调用 Y db 来获取密钥。
- 它获取 X 条记录并列出所有使用的不同键标识符。进行单个数据库调用以获取所有这些不同的数据加密密钥。在这种方法中,它会进行一次 db 调用来获取所有键。
- 别的办法。
如果有人知道它是如何实现的,请分享。
TIA