使用中加密
概述
您可以使用 .NET/C# 驱动程序通过一组称为 使用中加密 的功能来加密特定文档字段。使用中加密允许您的应用程序在将数据发送到 MongoDB 之前加密数据,并查询具有加密字段的文档。
使用中加密阻止未经授权的用户在数据发送到 MongoDB 或在加密数据库中时查看明文数据。要启用应用程序中的使用中加密并授权其解密数据,您必须创建只有您的应用程序才能访问的加密密钥。只有有权访问您的加密密钥的应用程序才能访问解密后的明文数据。如果攻击者获得对数据库的访问权限,他们只能看到加密的密文数据,因为他们缺乏对加密密钥的访问权限。
您可以使用使用中加密来加密包含以下类型敏感数据的 MongoDB 文档字段
信用卡号码
地址
健康信息
财务信息
任何其他敏感或个人可识别信息 (PII)
MongoDB 提供以下功能以启用使用中加密
查询加密
查询加密是下一代使用中加密功能,首次在 MongoDB 服务器版本 6.0 中作为预览功能推出,在 MongoDB 7.0 中作为一般可用 (GA) 功能推出。查询加密支持对加密字段进行等于的搜索,并为每个值提供唯一的加密。
重要
预览功能与 MongoDB 7.0 不兼容
MongoDB 6.0 中查询加密的实现与 MongoDB 7.0 中引入的 GA 版本不兼容。查询加密预览功能不再受支持。
有关查询加密的更多信息,请参阅服务器手册中的 查询加密。
客户端字段级加密
客户端字段级加密(CSFLE)在MongoDB服务器版本4.2中引入,支持对加密字段进行等值搜索。与可查询加密不同,您可以选择确定性的或随机的加密算法来加密字段。在使用CSFLE时,您只能查询使用确定性加密算法的加密字段。当您在CSFLE中使用随机加密算法加密字段时,它们可以被解密,但您不能在这些字段上执行等值查询。当您使用可查询加密时,您不能指定加密算法,但可以查询所有加密字段。
当您确定性加密一个值时,相同的输入值产生相同的输出值。虽然确定性加密允许您对这些加密字段执行查询,但具有低基数的加密数据容易受到频率分析破解。
有关CSFLE的更多信息,请参阅服务器手册中的CSFLE。