你应该加密数据库中的LogonId / LoginId / Username吗?

时间:2014-05-11 21:44:16

标签: database database-design encryption

是否有人建议您是否应在数据库中加密logonid / loginid / username(无论您可能将其称为)。

到目前为止,我们总是加密密码,这是有道理的,但我们从未对loginid进行加密,但我的一些同事强调,要识别他们只是删除密码(或将其复制到剪贴板)并以特定用户身份登录。

我们的数据库是安全的。它只能由NETWORK服务,应用程序池和/或数据库所有者访问,因此唯一可能执行此操作的人将是管理员或dba。

所以我的论点是,如果你对这些人没有一定程度的信任,你就会遇到更大的问题,但我觉得它并不需要你的登录密码加密。

我对此是对还是错?你有什么想法?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以加密用户名/ logonid,但我不认为这会在您的上下文中添加比不加密它们更多的安全性。如果您的目标是阻止管理员/ dba以及有权访问后端数据库的人冒充用户(通过重置密码等),最好的方法可能是实施多因素身份验证

在这种情况下,您的用户将提供多个身份验证参数,例如:

  • 在数据库中进行散列或加密的密码,以及例如可以生成时间的令牌密钥代码(通过他们将持有的令牌),或
  • 密码和个人信息的元素,例如安全问题的第一个/第三个/最后一个(这些位置更改)字母,这些字母将在您的数据库中加密。

此外,您可能需要考虑实施强大的登录/注销审计跟踪,以便可以追溯可疑登录。此数据库应保持其完整性(即,管理员不应轻易修改其内容),您可以通过使用校验和和/或将审计表存储在可由不同管理员组访问的数据库中来实现。