Overview
您可以使用Ruby驱动程序通过一组称为 正在使用的加密 的功能来加密特定文档字段。正在使用的加密允许您的应用程序在将数据发送到MongoDB之前对数据进行加密,并使用加密字段查询文档。
警告
MongoDB 8.2已知问题
正在使用的加密可防止未经授权的用户查看发送到MongoDB或位于加密数据库中的明文数据。 要在应用程序中启用正在使用的加密并授权其解密数据,您必须创建只有您的应用程序才能访问权限的加密密钥。 只有有权访问权限加密密钥的应用程序才能访问权限解密的明文数据。 如果攻击者访问权限对数据库的访问权限,他们只能看到加密的密文数据,因为他们无法访问权限加密密钥。
您可以使用正在使用的加密来加密MongoDB文档中包含以下类型敏感数据的字段:
信用卡号码
地址
健康信息
财务信息
任何其他敏感信息或个人身份信息 (PII)
MongoDB 提供以下功能来启用正在使用的加密:
可查询加密
Queryable Encryption(QE) 是一项正在使用的加密功能,可让您对加密的字段值运行查询。 MongoDB Server 7.0 或更高版本支持 QE 相等查询。 MongoDB Server 8.0 或更高版本也支持 QE范围查询。
要学习;了解有关Queryable Encryption的更多信息,请参阅MongoDB Server手册中的Queryable Encryption 。
客户端字段级加密 (Client-Side Field Level Encryption)
客户端字段级加密(CSFLE) 支持搜索加密字段的相等性。CSFLE 与Queryable Encryption的不同之处在于,您可以选择确定性或随机加密算法来加密字段。使用 CSFLE 时,只能查询使用确定性加密算法的加密字段。当使用随机加密算法对 CSFLE 中的字段进行加密时,可以解密这些字段,但不能对这些字段进行相等性查询。使用Queryable Encryption时,不能指定加密算法,但可以查询所有加密字段。
当您确定性地加密一个值时,相同的输入值会产生相同的输出值。虽然确定性的加密允许您对这些加密字段执行查询,但关联基数较低的加密数据很容易因频率分析而遭遇密码破解。
要学习;了解有关 CSFLE 的更多信息,请参阅MongoDB Server手册中的CSFLE 。