我们的数据库使用TDE(透明数据加密)进行了加密。数据库中的所有数据均已加密。但是,当您以域中的批准用户身份登录时访问数据库(例如SQL Server Management Studio)时,看不到加密的字符串,而是将数据视为纯文本。
现在,即使所有这些数据都已加密,我们仍然不会在数据库中存储原始密码。我们存储密码的哈希值。
我的想法是,我们应该对敏感信息(如SSN)执行类似的操作。问题在于我们无法对SSN进行哈希处理,因为我们必须能够将其视为纯文本。也就是说,它必须是双向的。我们必须能够解密它。因此,我没有存储SSN的哈希,而是对SSN进行了加密,然后将加密的字符串添加到数据库中。因此,SSN本质上被加密了两次(我对其进行了加密,然后该加密的字符串再次被TDE加密)。我的想法是,即使有人通过破坏Windows域帐户来访问数据库,除非他们拥有密钥,否则他们将无法获得SSN。
这是没用的吗?