Страница безопасного входа: функция JavaScript md5 против SSL, если блок входа находится на главной странице - PullRequest
0 голосов
/ 26 ноября 2011

Я думаю о повышении безопасности при переносе логина и пароля со страницы входа.Я нашел в интернете функцию javascript md5, поэтому первый способ отправить пароль - это отправить хэш md5 вместо пароля, используя метод POST.Как я понимаю, с этим еще много проблем, и этот метод должен быть улучшен.Пароли в базе данных не хранятся, сохраняется только хэш md5 (с некоторыми другими функциями, которые немного усложняют его).Но мой вопрос: все ли имеет смысл или лучше предпочесть ssl-шифрование у хостинг-провайдера?Это стоит около $ 100 в год (предположим, что это хорошая цена по моему вопросу) вместо того, чтобы изобретать велосипед.Минус ssl (если я не ошибаюсь): если часть входа находится на главной странице, главная страница будет загружаться медленнее (хотя страница входа в Yahoo! с https загружается довольно быстро), и любой пользователь увидит https в браузерестрока (это не плохо, но хорошо ли это?)

Как использовать идею (без SSL): 1) когда пользователь входит в систему, сервер md5 (пароль) отправляется вместо его реального пароля 2) на серверполучает md5 (пароль), делает его md5 (md5 (пароль) + 'kjhgkjhg') и сравнивает его с хешем, который хранится в БД.db хранит хэши md5 (md5 (пароль) + 'kjhgkjhg') для всех пользователей.В результате, если md5 (пароль) прослушан, это не поможет получить md5 (md5 (пароль) + 'kjhgkjhg'), потому что kjhgkjhg неизвестно.Это достаточно хороший способ сделать страницу входа защищенной?

Спасибо.

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Использовать SSL .Об этом действительно мало что можно сказать.Если вы попытаетесь заново изобрести безопасную аутентификацию, вы получите неправильно.

Две причины, по которым вы предлагаете не использовать SSL, - это стоимость и скорость.

Стоимость: Нет разницы между безопасностью обычного SSL-сертификата и EV-SSL-сертификата.EV означает ( E ) расширенное ( V ) разрешение, и это означает, что центр сертификации тратит немного больше времени, проверяя, кто вы есть.Если стоимость является проблемой, получите более дешевые сертификаты SSL.

Скорость: В наши дни замедление, вызванное переговорами по SSL, довольно мало.Я только что провел быстрый тест, выполняя запросы HEAD на yahoo.com, и я получил в среднем 0,2 секунды на 1000 соединений SSL и 0,1 секунды на 1000 соединений без SSL.Если ваши запросы страницы занимают 0,2 секунды, тогда задержка SSL может иметь для вас значение, но если они занимают целую секунду, то причиной замедления является другая причина.

Если вы ищете способ хранения и передачи паролейна http://security.stackexchange.com вы найдете множество полезных советов о том, как сделать это безопасно.

1 голос
/ 26 ноября 2011

Вам потребуется браузер для создания хеша MD5 (пароль + случайный ()) и отправить его вместо MD5 (пароль), чтобы никто не мог использовать хеш в будущем. Тогда вам нужно будет иметь открытый текст или двусторонний зашифрованный пароль на сервере и сделать то же самое на стороне сервера и сравнить результаты. Вам нужно будет сохранить случайную строку, отправленную в браузер на сервере, чтобы этот случайный случай не мог быть использован снова. Это будет работать, но.

  • Кто-то может захватить сессию в середине. Просто захватите куки-файлы и используйте тот же IP-адрес, и сервер будет совершенно беззащитен.
  • Без SSL пользователь не может знать, что он / она связался с нужным сервером, и его содержимое не изменилось.
  • Адрес веб-сайта пользователя и трафик все еще могут быть прочитаны человеком в середине или троянами на его / ее компьютере.
  • Обычно сбой сохранения пароля браузера.

Но да. SSL имеет тенденцию быть медленным, и эти проклятые сертификаты истекают и разрушают все.

...