正在使用的加密
Overview
您可以使用 Java 驱动程序通过一组称为“正在使用的加密”的功能来加密特定文档字段。正在使用的加密允许应用程序在将数据发送到 MongoDB之前对数据进行加密,并使用加密字段查询文档。
重要
兼容的加密库版本
Java驱动程序使用 mongodb-crypt加密库进行正在使用的加密。此驾驶员版本与 mongodb-crypt
v 1 兼容。 6。 1。
从以下 Maven和Gradle标签页中选择,查看如何使用指定管理器将mongodb-crypt
依赖项添加到项目中:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-crypt</artifactId> <version>1.6.1</version> </dependency> </dependencies>
dependencies { implementation 'org.mongodb:mongodb-crypt:1.6.1' }
正在使用的加密可以防止未经授权的用户查看发送到 MongoDB 或位于加密数据库中的明文数据。要在应用程序中启用正在使用的加密并授权其解密数据,必须创建只有应用程序才能访问的加密密钥。只有有权访问加密密钥的应用程序才能访问解密的明文数据。如果攻击者获得对数据库的访问权限,他们只能看到加密的密文数据,因为他们无法访问加密密钥。
您可以使用正在使用的加密来加密 MongoDB 文档中包含以下类型敏感数据的字段:
信用卡号码
地址
健康信息
财务信息
任何其他敏感信息或个人身份信息 (PII)
MongoDB 提供以下功能来启用正在使用的加密:
可查询加密
可查询加密是下一代正在使用的加密功能,首先在 MongoDB Server 6.0 版中作为预览功能引入,然后在 MongoDB 7.0 中作为普遍可用 (GA) 功能引入。可查询加密支持在加密字段中搜索是否相等,并对每个值进行唯一加密。
重要
预览功能与 MongoDB 7.0 不兼容
MongoDB 6.0 中 Queryable Encryption 的实现与 MongoDB 7.0 中引入的 GA 版本不兼容。不再支持 Queryable Encryption 预览功能。
要了解有关可查询加密的更多信息,请参阅服务器手册中有关可查询加密的内容。
客户端字段级加密 (Client-Side Field Level Encryption)
在 MongoDB Server 4.2 版中引入客户端字段级加密 (CSFLE),支持搜索加密字段的相等性。CSFLE 与 Queryable Encryption 的不同之处在于,您可以选择确定性或随机加密算法来加密字段。 使用 CSFLE 时只能查询使用确定性加密算法的加密字段。当使用随机加密算法对 CSFLE 的字段进行加密时,可以解密这些字段,但不能对这些字段进行相等性查询。使用 Queryable Encryption 时,不能指定加密算法,但可以查询所有加密字段。
当您确定性地加密一个值时,相同的输入值会产生相同的输出值。虽然确定性的加密允许您对这些加密字段执行查询,但关联基数较低的加密数据很容易因频率分析而遭遇密码破解。
要了解有关 CSFLE 的更多信息,请参阅服务器手册中的 CSFLE。