Где соль, прикрепленная к паролю, ПОСЛЕ или ДО пароля? - PullRequest
7 голосов
/ 23 мая 2011

Когда вы используете GNU / Linux, пароль (в основном) записывается в MD5 и SHA
Оперативная система прикрепляет СОЛЬ к этому паролю перед его шифрованием, чтобы избежать атак по словарю.

Мой вопрос: где SO присоединяет СОЛЬ, до или после пароля?

Например, мой пароль: peter2011 перед его записью:

saltpeter2011 или peter2011salt

Заранее спасибо.


Я не знаю, неправильно ли вы поняли мой вопрос, но я не спрашиваю, как Linux хранит его пароли, я спрашиваю, как это записывается, я имею в виду:

encrypt_in_md5 (saltpeter2011) или encript_in_md5 (peter2011salt)

Я знаю, что в файле / etc / shadow хранятся как $ salt & encripted_password

Заранее спасибо!

Ответы [ 3 ]

4 голосов
/ 23 мая 2011

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

3 голосов
/ 23 мая 2011

Это не так просто, как вы думаете.

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

Вы должны найти ответ в файле glibc / crypt / md5-crypt.c, в источниках glibc.

Там вы обнаружите, что сначала он делает что-то вроде md5 (KEY $ 1 $ SALT), затем выполняет md5 (KEYSALTKEY) и затем смешивает их странным образом. Затем он делает еще несколько странных итераций, основанных на ключе, соли и предыдущих результатах, и, наконец, после некоторого дополнительного смешивания байтов вы закончите.

0 голосов
/ 23 мая 2011

Если вы внедряете систему, она полностью зависит от вас.Неважно.

Скорее всего, Unix $1$SALTpeter2011.

...