-->

在ASP.NET网页散列用户密码VS SQL CLR(Hashing web user passwo

2019-10-18 21:44发布

是否有选择哈希在ASP.NET应用水平与在SQL CLR数据库级别的用户密码的安全问题? 我看到了这两种方式。

我的想法是,在应用层面上,密码只有从浏览器向Web服务器发送一次。 在数据库实现,密码发送第二次到数据库的散列。

在后一种情况下,有人运行SQL Server事件探查器将能够看到发送到明文的过程或函数的密码。 我不是太熟悉SQL Server的审计,但是如果不得不捕获类似的信息的能力,它会带来风险为好。

Answer 1:

你应该在你的应用程序散列密码,而不是在你的数据库。 这意味着:

  • 浏览器应用程序 - >密码在受SSL保护的发送纯文本
  • 应用数据库 - >密码散列永诺

现在你有一个人跑一个分析器,因为密码被散列没有问题。 此外,如果有人可以运行探查,他大概可以做更多的伤害,然后读取密码...



Answer 2:

散列在使用所述应用层scrypt或bcrypt ,不依赖于通用的散列算法(MD5,SHA1,SHA512,等)的,因为这些原因 。

以下是.NET实现scrypt和bcrypt 。



文章来源: Hashing web user password in ASP.NET vs SQL CLR