/ / Hashing потребителска парола за уеб в ASP.NET срещу SQL CLR - asp.net, sql-server, sqlclr

Hashing парола за уеб потребител в ASP.NET срещу SQL CLR - asp.net, sql-server, sqlclr

Има ли някакви опасения по отношение на сигурността при избора на потребителска парола на ниво приложение в ASP.NET срещу ниво на базата данни в SQL CLR? Виждал съм го и в двете посоки.

Моето мислене е, че в нивото на приложениетопаролата се изпраща само веднъж от браузъра към уеб сървъра. При изпълнението на базата данни паролата се изпраща втори път към базата данни за хеширане.

В последния случай някой използва SQL ServerProfiler ще може да вижда паролата, изпратена към процедурата или функцията в обикновен текст. Не съм твърде запознат с одита на SQL Server, но ако имаше възможност да улови подобна информация, това би представлявало и риск.

Отговори:

2 за отговор № 1

Трябва да хеш паролата във вашето приложение, а не във вашата база данни. Това означава, че:

  • Браузър за приложение -> парола се изпраща в обикновен текст, защитен от ssl
  • Приложението към базата данни -> паролата винаги се хешира

Сега вече нямате проблем с някой, който изпълнява профилиране, защото паролите се хешират. Освен това, ако някой може да стартира профилиране, той вероятно може да направи много повече щети, след като прочете паролите ...


1 за отговор № 2

Хеш в приложния слой, използвайки scrypt или bcrypt, Не зависете от алгоритми за хеширане с общо предназначение (MD5, SHA1, SHA512 и т.н.), защото тези причини.

Тук са .Net реализации за scrypt и bcrypt.