我的系统如何理解数据是否被屏蔽?

kud*_*ger 3 sql-server data-masking

我试图理解之间的区别encryptionmasking

下面的声明说real data replaced and gone

屏蔽通过将数据转换为任何窃取数据的人都无用的可读格式来保护您的数据。实际数据被虚构信息取代。没有加密解决方案可以将数据恢复到其原始状态。真实数据被替换并且永远消失了。

这是什么意思?如果真实数据消失了,那么我如何在我的系统中使用它?

例如:

我可能被屏蔽了EMAILID,我的系统想要根据电子邮件 ID 做一些逻辑,那么我如何在代码中比较电子邮件 ID?

基本上,如果我不使用敏感数据,为什么我首先将它存储在我的数据库中?

Jos*_*ell 8

数据屏蔽发生在将数据发送到客户端(您的程序、SSMS 等)之前。从这个意义上说,当它到达请求数据以查看它的客户端时,它被“替换并消失”(假设访问数据的用户没有UNMASK特权)。因此,您可以在查询中对其执行逻辑(对其应用 where 子句,更新它等)。但是,如果将其包含在SELECT语句中,您将看不到真实数据。

但是,数据仍然未加密地存储在服务器上。事实上,您可以使用这些知识来准确找出表中的数据 - 即使您没有UNMASK特权。请在此处查看 Joe Obbish 关于该主题的精彩帖子:动态数据揭露

这与“始终加密”之类的区别在于,仅存储数据的加密版本,并且必须使用密钥来解密和使用/查看数据。


Tib*_*szi 6

除了 Josh 的回复外,我还补充说:

在某些情况下,将数据存储为掩码是有意义的。这与在 SQL Server 中使用“动态数据屏蔽”功能(如 Josh 所述)形成对比。

例如,您将数据从生产数据库导出到开发数据库。有些信息不应该提供给开发人员。因此,在数据到达开发服务器之前,我们将信用卡号码系列中的一组数字替换为星号。

当然,在开发服务器上获取“真实”数据是不可能的,因为它从一开始就不存在——这就是我们的目的!

  • 我对你们俩都表示支持,因为这是我目前正在松散地探索可能在我的工作环境中实施的东西,所以你们的帖子都很有帮助。 (2认同)