我有一个数据库,其中包含采用明文密码的存储过程。它对它们进行哈希处理并将它们插入数据库。
如果攻击者有权访问 DB 连接,则可以使用 SQL Server Profiler 拦截对 DB 的调用并查看传递的明文密码。我知道 SSL 将加密到数据库的网络流量,但它不会阻止攻击者嗅探存储过程参数。
通过未加密的方式发送这些密码是否存在安全风险?
我有一个数据库,其中包含采用明文密码的存储过程。它对它们进行哈希处理并将它们插入数据库。
如果攻击者有权访问 DB 连接,则可以使用 SQL Server Profiler 拦截对 DB 的调用并查看传递的明文密码。我知道 SSL 将加密到数据库的网络流量,但它不会阻止攻击者嗅探存储过程参数。
通过未加密的方式发送这些密码是否存在安全风险?
SQL Server可以选择加密应用程序和数据库之间的连接。当您在不受信任的环境中操作 SQL Server 时,建议您启用它。当您这样做时,只要您信任您的数据库管理员,就不需要在将密码发送到数据库之前对其进行哈希处理。
此外,大多数 SQL Server 部署将在 DMZ 中拥有一个应用程序服务器,在 LAN 上拥有一个 SQL Server,这意味着您在受信任的环境中运行。除非你有一个非常高的安全标准,否则没有加密不会有很大的安全风险。
没有人相信。使用安全字符串保存纯文本密码并立即对其进行哈希处理。希望您的系统安全的时代已经一去不复返了。它不是。一个坚定的攻击者可以访问您的系统只是时间/金钱的问题。
即使流量使用 SSL/TLS 加密,我也可以提出几种情况,例如,每种情况都会导致密码泄露
是的,这里有各种风险或风险增加。
首先,无论您的 DBA 是否值得信任,他们都应该能够诚实地告诉任何审计员(或监管调查员或律师),不,他们不可能冒充用户 X,因为他们从来没有能力即使他们想要查看用户 X 的密码,即使他们使用了服务器私钥的副本和数据包嗅探器。
其次,如果您在服务器上散列密码,您应该:
请注意,我的 Github 存储库中有各种 PBKDF2 实现,包括基于 Jither 工作的 C# 变体,它是 Jither 在 MIT 许可下发布的。
所以这取决于环境的可信度。如果你对它的信任度为零,也许一些加密会很好。此外,配置的低分支集可能仅限于需要 SQL 连接的主机,尽管有许多不同的原因导致您希望打开它以进行访问。