Протокол входа - PullRequest
       25

Протокол входа

1 голос
/ 04 марта 2009

Как мне спроектировать протокол входа в систему, чтобы быть более безопасным, как у меня сейчас?

  1. клиент подключается и отправляет свое имя пользователя
  2. сервер отправляет соль (всегда одно и то же) пользователю
  3. клиент добавляет соль к паролю, хеширует его и отправляет на сервер

Таким образом, пароль все время скрыт, но это не мешает хакеру просто скопировать хеш, если он может перебрать его и отправить после получения пароля ...

Ответы [ 4 ]

5 голосов
/ 04 марта 2009

Оставьте безопасность на протоколе более высокого уровня (SSH, SSL) и сохраняйте простоту.

2 голосов
/ 04 марта 2009

Если сервер принимает только засоленный пароль на соединении, которое первоначально вызывалось с этой солью , то хакер должен будет продолжать соединение, пока не получит ту же соль, что и та, для которой он видел хеш. Я не говорю, что это идеально (и обмен ключами Диффи-Хеллмана с последующей полностью зашифрованной аутентификацией может быть более безопасным, хотя все еще подвержен атаке "человек посередине", если вы не будете осторожны), но я думаю, что простой твик, по крайней мере, будет полезен.

Опять же, я не эксперт по безопасности, и вы, вероятно, не должны принимать советы по безопасности от неэкспертов.

1 голос
/ 04 марта 2009

Безопасность это сложно.

Не сверните свой собственный протокол входа в систему, либо используйте существующий проверенный или сделайте что-нибудь тривиальное и надежное по зашифрованному (SSH, SSL ...) соединению. Существует так много надежных внедренных проверенных протоколов, и так много примеров сбоя систем из-за ошибочного переизобретения колес - если вход в систему защищает что-либо хоть сколько-нибудь важное, то просто нет оправдания.

Тем не менее, если ваша цель состоит в том, чтобы научиться разрабатывать такие алгоритмы, я настоятельно рекомендую Брюс Шнайер " Прикладная криптография ".

0 голосов
/ 04 марта 2009

Шаг 2 кажется большей слабостью. Если вы можете быть уверены, что сервер отправляет «достаточно большую» соль и НИКОГДА не одну и ту же соль, дважды (я подозреваю, что небольшая часть приличных случайных чисел плюс инкрементный счетчик, то хэша МОЖЕТ быть достаточно, но я не могу доказать, что это это), этого, вероятно, будет достаточно. В качестве альтернативы, следуйте указаниям ssg и инкапсулируйте все это в сеанс SSL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...