Используя хеш пароля с SSL

Хорошо это могло бы походить на странный вопрос. Читайте тщательно перед вскакиванием на меня хорошо?;-)

Вообразите эту ситуацию:

  1. У нас есть сервер и клиент.
  2. Они соединяют использование SSL.
  3. Клиент создает учетную запись на сервере с паролем.
  4. Но, то, что он на самом деле передает серверу по проводу, является хешем (+salt) пароля (НЕ пароль)
  5. Сервер сохраняет этот полученный хеш пароля в DB (хешированный СНОВА с солью)
  6. Во время входа в систему, для аутентификации пользователь снова посылает хеш пароля (НЕ пароль!).

Хорошо, таким образом, да, я понимаю, что это звучит странным. Да целый разговор находится на SSL, таким образом, Вы МОГЛИ просто отправить простой текст пароля. И да, я понимаю, что можно сохранить незашифрованный пароль безопасно в хешированной форме.

Вот точка, в которой я являюсь ведущим: для нашего бизнеса полезно действительно сказать, что "Мы никогда не будем знать Вашего пароля".

Обратите внимание, что я НЕ говорю, что "мы не храним Ваш пароль в простом тексте", но что мы действительно, никогда не знайте это; Вы никогда не даете его нам.

(Причина желания этого не релевантна, удовлетворенная, чтобы сказать, что пароль пользователя используется для другого материала, например, шифрования файлов).

Да, я понимаю, что Вы могли бы сказать, что с нормальным способом сделать это "хорошо пароль будет только в простом тексте в памяти для 5 мс, в то время как Вы делаете хеширование", но это больше об отрицании. т.е. Мы можем сказать, что 100% даже не получаем Ваш пароль.

Хорошо, таким образом, вот вопрос:

  • Кто-либо сделал или услышал о такого рода вещи прежде?

  • Какова важность безопасности выполнения этого?

Я изо всех сил пытаюсь видеть оборотную сторону. Например:

  • Никакие атаки с повторением пакетов (так как разговор шифруется с помощью SSL взломщик, не видят хеш),
  • Не может посмотреть в DB, потому что хеш самостоятельно, erm..., хеширован

Хорошо можно теперь вскочить на меня :)

Мысли, комментирует приветствующийся.

Спасибо,

John

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

Я полностью удовлетворен в моих причинах желания этого, вопрос состоит в том, является ли это помехой для безопасности процесса аутентификации.

5
задан John 27 January 2010 в 17:55
поделиться

5 ответов

Так что на данный момент, на самом деле это не помогает вообще. Давайте предположим, что как-то ваше SSL было скомпрометировано. Они нюхают hashed + соленый пароль. Затем они могут просто отправить, что ваш сервер принимает Hashed + соленый пароль в качестве пароля. То, что вы делаете, просто добавляют один слой сложности (не в состоянии ввести пароль в вашем пароле), в этом случае они могут вручную опубликовать его на свой сервер.

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

Резюме: Не имея большую выгоду в моем уме, я могу ошибаться, хотя.

Я лично реализую хеширование + соловая сторона сервера и силы SSLV3 / TLSV1 на страницах входа в систему.

0
ответ дан 13 December 2019 в 22:07
поделиться
[11446388-

Другая проблема в дополнение к тем, которые упомянуты выше: если вы еще не хэша и соли получаемого значения снова, вы по существу сохраняете все ваши пароли в четкости. Любой злоумышленник, который получает доступ для чтения к вашей базе данных, может триветично аутентифицироваться как любой пользователь вообще.

1
ответ дан 13 December 2019 в 22:07
поделиться

Рассмотрим несколько вещей:

  1. Что-то на стороне клиента должна решить соль и хеш.
  2. Все, что создает хэш в (1), вероятно, будет легко для злоумышленника обнаружить
  3. , что соль и хеш должны быть последовательными. Если соль изменяется, так что будет хэш, а затем ваш сервер не сможет вернуться к оригиналу.
  4. Эта соль + хеш по сути стала новым паролем пользователя.
  5. Если их оригинальный пароль был длиннее, чем соль + хеш, вы, возможно, просто сократили безопасность своего пароля (при условии хорошего пароля и игнорируя хэш-столкновения).
  6. Но, если у них есть плохой пароль, вы, возможно, просто увеличили качество своего пароля (игнорируя хеш-столкновения и 1 и 2 выше), вроде.

Конечный результат заключается в том, что соль + пароль стал их новым паролем. В целом, я согласен с большинством людей, при этом мало пользуется.

4
ответ дан 13 December 2019 в 22:07
поделиться

Мне кажется, что есть одна выгода этой схеме, что я не видел упомянул (может быть, я пропустил ее). Можно, безусловно, утверждает, что соль HASH + становится настоящим паролем. Однако с точки зрения безопасности для людей, которые повторно используют пароли, он добавляет значение. Если я использую свой пароль «ASDFASDF» с вашим сайтом, и кто-то подходит для компромиты вашего сервера, они не смогут извлечь свой пароль, который я использую в Dubdubdub.superfinance.com.

3
ответ дан 13 December 2019 в 22:07
поделиться

Это именно то, что Password Hashers делает для веб-браузеров.

Проблема, которую каждый имеет с вашей идеей, не так ли это плохое представление; Это просто, так как вы разработчик для как клиент и сервер, доверяющий компьютеру клиента, но не сервер не дает вам никакой реальной выгоды (клиент, в конце концов, может иметь кейлоггер или что-то ). Итак, чтобы ответить на ваш вопрос: это только помеха для вас.

2
ответ дан 13 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: