На надежных веб-сайтах я всегда вижу такие утверждения, как «Все данные зашифрованы» или «Все пароли зашифрованы с использованием 128-битного шифрования» и т. Д. Однако я никогда не сталкивался с такими утверждениями, как «Все пароли хешируются».
На моем веб-сайте я буду хранить все пароли пользователей в базе данных после использования SHA-512 (скорее всего) хеширования со случайной солью. Я хочу добавить фрагмент, гарантирующий пользователям, что их пароли безопасны, чтобы они не мешали использовать мой веб-сайт, поскольку для него требуется пароль. Я хочу, чтобы пользователи чувствовали себя в безопасности, но я не думаю, что все знают, что такое хеширование.
МОЙ ВОПРОС: Можно ли предоставить сообщение о том, что «все пароли зашифрованы и защищены», поскольку я не думаю, что обычный пользователь будет знать, в чем разница между хешированием и шифрованием, и, скорее всего, он будет чувствовать себя в безопасности только потому, что видит комфортное слово "шифрование"? Или я должен предоставить альтернативное сообщение?
Кстати, я новичок в шифровании и хешировании паролей, и мне было интересно, будет ли это достаточно безопасно, пока я запускаю свой сайт. Я не хочу говорить пользователям, что это безопасно, если это не так. Любая информация будет глубоко цениться. Благодарю.
Ответы:
Пользователям все равно.
Единственное, что их волнует, - это когда кто-то снимает деньги со своего банковского счета, и кажется, что у него есть ссылка, что несколько дней назад кто-то получил полный доступ к вашей базе данных.
Почти во всех случаях, когда я видел такие сообщения, они вводили в заблуждение. Самый веселый был на веб-сайте с ярлыками в стиле «военного уровня» на каждой странице. Было предупреждение о том, что сертификат HTTP недействителен. В форме входа произошла SQL-инъекция. Через несколько недель сайт был взломан, а затем исчез навсегда.
Я перестаю считать количество веб-сайтов, которые утверждают, что они хранят информацию в безопасности, имея при этом форму «Восстановить мой пароль», которая фактически отправляет оригинальный пароль по электронной почте.
Это как те ярлыки "W3C valid XHTML". Почему они обычно размещаются на сайтах, где даже домашняя страница содержит как минимум десятки ошибок и подобный код
<DIV COLOR='red'>
?Если вы все еще хотите успокоить пользователей, вы можете добавить что-то вроде:
Но, честно говоря, форма «Сбросить мой пароль», заменяющая «Я забыл свой пароль; отправьте его мне по электронной почте», гораздо более обнадеживающая, чем любые слова.
Подсказки из разных комментариев:
Не изобретайте велосипед: используйте OpenID. Таким образом, вы даже не храните хэши.
Источник: комментарий Яна Худека .
Поскольку вы студент, откройте исходный код вашего проекта. Поскольку вы беспокоитесь: «Я не хочу, чтобы пользователи думали, что их пароли небезопасны, потому что их разработал какой-то ребенок в школе». нет ничего более обнадеживающего в том, что, читая исходный код, он может проверить, что он написан умелым разработчиком, который заботится о безопасности.
Источник: комментарий Яна Доггена .
источник
Не храните пароли в первую очередь! Следуйте примеру Stack Exchange и позвольте пользователям входить в систему со своей идентификацией на другом сайте, который обеспечивает аутентификацию через OpenID . Реализации свободно доступны для большинства распространенных веб-фреймворков.
Или, возможно, любой другой протокол. Если это внутренний проект для какого-то учреждения (как следует из вашего комментария к другому ответу), то почти наверняка уже есть LDAP, Kerberos (Windows Active Directory также основана на этих двух; apache поддерживает HTTP-аутентификацию против них) или некоторые другие. такой сервис для входа в компьютер. Просто подключитесь к этому.
Это избавляет вас от хранения конфиденциальной информации (вы , скорее всего , все равно придется хранить разрешения, но они не являются , что критично) и пользователей от необходимости запоминать еще один логин и пароль, так что в целом обоюдного выигрыша.
источник
Высказывание:
Это личное суждение, которое вы выносите в отношении определенных технологических фактов или процессов, и оно ограничивается тем, что вы сами знаете о безопасности в то время. Но можете ли вы без сомнения гарантировать, что ваше шифрование, способ хранения и т. Д. Выдержат любые атаки, даже те, о которых вы не знаете или о которых пока не знаете?
Значение: это утверждение может быть устаревшим, возможно, даже без вашего ведома.
Поэтому я склонен согласиться с приведенным выше комментарием @JoachimSauer: просто опишите, что вы делаете, как вы сохраняете информацию о пользователях, и рассказывайте пользователям, как это должно сделать вашу службу безопасной. Тогда пусть пользователи судят сами.
источник
Это действительно зависит от контекста вашего конкретного сайта.
Например, если это потребительский веб-сайт, скорее всего, большинство из них будут заботиться только о своих паролях (возможно), финансовой / медицинской информации (в зависимости от ситуации) и своей личной информации, такой как фотографии (хахаха, да, верно ...) ,
Если это бизнес-приложение, то важен уровень безопасности всего сайта, а не только паролей. Кроме того, это зависит от того, кто является вашими целевыми пользователями - сугубо технический / не очень технический и т. Д.
Весь этот контекст в значительной степени определяет, что вы должны общаться, и какой уровень гарантии требуется.
Например, для нетехнических потребителей достаточно иметь несколько простых, простых комментариев, таких как:
(И, как уже говорили другие, вам лучше даже не имея паролей, используйте какой-то стандарт, такой как OpenId или OAuth.)
Для высокотехнологичных предприятий вы хотели бы иметь полную страницу технических и процедурных деталей, таких как:
Конечно, вы не хотите отдавать слишком много подробной информации, это должно быть больше о процессе, чем сами пароли ... И, конечно, само собой разумеется, что реальность должна действительно соответствовать что вы там пишете В каком бы контексте вы не имели дело.
Как упоминалось в одном из ответов, большинству пользователей все равно, они не поймут, что вы им скажете, и все равно все равно подпишутся, даже если вы скажете, что отправляете данные пользователя в АНБ.
Это не для них.
Они были бы так же счастливы, не имея никаких паролей, просто позвольте мне выбрать свое имя пользователя из списка и войти в систему автоматически.
Очевидно, это для небольшого процента, который заботится - вы должны позволить умным пользователям делать то, что правильно, предоставлять им необходимую информацию и предоставлять им образование, которое они могут просить.
Если вы этого не сделаете, когда это пойдет не так, остальные 98% внезапно проснутся и разозлятся.
(«Конечно, я знал, что мне не нужен пароль для просмотра моих фотографий, но я не думал, что кто - то еще сможет их увидеть!»)
источник
Если вы хотите, чтобы ваша система была защищена, сила алгоритма паролей не имеет смысла - большинство хакеров могут взломать пароли в кратчайшие сроки, особенно если выбранный пароль небольшой или состоит из общих слов, которые хакер уже "взломал и сохранил". "usiong радужные столы и аналогичные. Прочитайте статью ArsTechnica о взломе пароля для большей проницательности.
Что вам нужно сделать, так это заверить пользователей, что плохие парни не смогут получить свои хеши в первую очередь. У одной компании, которая заботилась о безопасности, была трехуровневая веб-система, в которой веб-серверы физически не подключались к серверам баз данных. Когда мой начальник захотел включить свой веб-сайт и иметь прямой доступ к БД (плохо спроектированный код, - сказал Нуфф), ему сказали, что он не может быть, и когда он нажал ... ему сказали, что между ними нет проводов. , Он должен был спроектировать его так, чтобы он передавал все запросы данных через сервис среднего уровня. И эти службы были не только защищены, но и подвергались минимальной атаке и были заблокированы. И БД никогда не открывала для чтения ни одну из своих таблиц, только хранимые процедуры, которые, в свою очередь, были заблокированы, поэтому доступ имел только соответствующий сервис.
Кодировать было не так плохо, как вы могли подумать, когда вы знали архитектуру и разделение каждого уровня, было довольно легко кодировать.
источник
Вы можете разработать самый безопасный сайт на планете и иметь очень плохой пользовательский опыт. Пользователи будут предполагать, что ваш сайт небезопасен.
Вы можете создать наименее безопасный сайт на планете и иметь удивительный пользовательский опыт. Пользователи будут предполагать, что ваш сайт в безопасности. По крайней мере, пока не появится в вечерних новостях.
источник