Что-то я не пойму. Чем "соль" помогает защитить от взлома? Ну допустим, я к простенькому паролю юзера добавил еще "соль". Юзер логинется, и вводит свой же простенький пароль, а "соль" я уже добавляю. Т.е. если злоумышленник будет пытаться, мой скрипт все равно добавит к тому что он вводит, эту самую, непонятную "соль".
Очень часто бывает так, что при аутентификации пользователю передается хэш пароля, который записывается в куки. Если пароль 123 и соль на сервере не добавляется, то хэш известен любому человеку. Поэтому можно попытаться подставить его в куки и пройти аутентификацию.
ShamahN Это на случай, если злоумышленник сольет себе дамп твоей базы. У него будет хешированный пароль, но не будет соли, поэтому получить исходный пароль будет сложнее. Правда, обычно соль хранят в той же таблице, рядом с паролем, так что на деле это плохо работает...
Тогда предположи, что какой-нибудь чудо-крякер получил доступ к базе и нашел все пароли 123. Только не говори, что ты запретишь короткие пароли
ShamahN Если у тебя сперли таблицу с паролями, а там хранятся пароли тупо md5, то их быстро найдут с помощью метода rainbow-таблиц. Если пароли соленые и соль неизвестна, то не судьба. Все. Если в процессе взлома удалось добыть соль, то пофиг.
Kreker, понял твою идею. А какова вероятность, что таблицу могут спереть? AlexGousev, а если соль везде одна и та же строка, но неизвестная (где-то в коде), легче не станет?
Через дыру в сайте, через подобранный пароль к mysql user. Да. У хакера есть пароли 123, qwerty. Если он занает соль, то спокойно её прибавляет и делает хэши. Потом ищет их в базе. http://ru.wikipedia.org/wiki/Rainbow_table P.S. Интересный ресурс http://www.insidepro.com/rainbow.php?lang=rus
К сожалению, никто не учитывает расчет паролей на группе GPU управляемых через CUDA. Готов спорить, там будет адекватно-приемлемое время.
Определяю соль в конфиге в виде константы, конфиг кладу ниже корня сайта. Для функции шифрования есть ключик, в конфиге, конфиг ниже корня сайта, при заюзывании ключика солю его чем бог пошлёт, в зависимости от того чего шифрую извращаюсь
Инетресно, кому в наше время придет в голову генерировать пол терабайта таблиц на одном компьютере уровня Пентиум-3 1ГГц ?
Vladson, разве PCI обеспечивает такуже пропускную способность и частоту как у SATA, тем более на такой древней материнке?
free-bits Скорость и объём по твоему связаны ? (новые HDD могут работать на старых HDD по сути можно выбирать по разьёму "встанет / не встанет" если встанет то сто пудова будет работать, мамки начиная ещё с PII уже теоретически могли держать 100ТБ диски, только не было их тогда, как в прочем и сейчас)
А при чем тут SATA? RAID ведь =) Вообще можно использовать хоть ленточные накопители http://www.shopbackup.ru/article.php?id=2 При чем технология со времен первых пней не сильно изменилась, следовательно, достаточно ёмкие накопители были доступны и тогда. Хранение данных - не проблема, как и вообщем-то составление таблицы хэшей для слов разумной длины ))
я имел ввиду скорость чтения/записи данных на диск. Имхо на PCI будет медленнее. Вроде SATA это слот a RAID это контроллер
Если хакер получит доступ к БД, то он может затереть поле пароля у всех юзеров и вставить туда хэш от 123. Если соли не будет, он сможет войти под любым аккаунтом, в противном случае он не войдет вообще.