Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Шифрование паролей, сессий, куков...
Дальше вопрос по кукам.
Что если и имя и значение куки тоже будут какими-то вот такими хешами? В куки уже хешировать какие-то поля из БД.
Теперь сессии. На основе чего генерируется id сессии? Можно же ведь вместо имени сессии записывать такой хеш? Ну и значение тоже хеш чего-то там... юзер агент, ip (любые значения, за которыми не нужно лазить в БД)
Ну и самое главное - везде ли поддерживается sha512? (Добавление)
PS
Ну к примеру вот так (образно)
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
caballero пишет:
смысл шифровать пароль есть в БД чтобы потом сравнивать при авторизации
Я имею ввиду при регистрации нового пользователя, его пароль шифровать как-то так.
caballero пишет:
а зачем в это вообще лезть? как работает сессия не имеет значения - вы можете зранить там что угодно включая пароли
Многие пишут, что украв куку сессии можно как-то что-то нехорошее наделать. В общих чертах - сессии не совершенны. Это не мое мнение. Ну да ладно, пусть будет PHPSESSID, но парочка хешей там не помешает.
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
Vaio
Отправлено: 30 Июля, 2013 - 09:10:50
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Дек. 2012
Многие пишут, что украв куку сессии можно как-то что-то нехорошее наделать. В общих чертах - сессии не совершенны.
Украв куку сессии, он не сможет увидеть ни содержание сессии ни изменить ее.
Можешь еще добавить какие-то дополнительные хэши в сессию/куку и затем сверять их.
Понятно, мануал я читал.
Я так понял, что нет смысла извращаться с шифрованием, но и ограничиваться однократным md5 без соли тоже нельзя.
Уникальная соль пользователя хранится всегда рядом с паролем, так как нет смысла ее скрывать, если она действительно для каждого уникальна. Методы шифрования в алгоритме тоже по большому счету не имеют значения. Если алгоритм украден, то все.
То есть не важно, прогнал я пароль 5 раз через md5 или по разу через разные методы. Пусть я даже несколько раз порезал и склеил разные хеши и еще раз все захешировал - плевать.
Я так понял, важно время выполнения хеширования. Пусть это даже будет прогон через md5 100000раз. Потом по словарю проверять будет уже долго.
Из этого я делаю вывод, что нужно увеличить время хеширования, что немного увеличит безопасность, даже если украли алгоритм.
Вопрос: какое время оптимально для шифрования. Выше я привел пример, который выполняется примерно 0,3 сек. Но на время влияет и железо, так ведь? У меня на ноуте 1.6 ГГц.
И еще, немного я непонял про crypt(). Вроде как механизм шифрования имеет зависимость от системы. То есть при переносе сайта алгоритм может просто отказаться работать или будет работать не так и все хеши можно будет выбросить.
А что насчет hash(). К примеру если я буду использовать hash() и sha512, на всех ли системах это будет работать.
Но самое главное, каково оптимальное время шифрования. Можно ведь и на md5 запустить цикл.А в цикле можно много чего делать со строкой. В последствии взломщик для подбора будет вынужден использовать именно мой - долгий алгоритм.
PS
Конечно же, это не главное. Главное то, нужен ли кому-то мой сайт. Если нужен очень, то поломают. Вопрос в том, как максимально затруднить процесс, чтобы не ломали все кому не лень.
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
caballero
Отправлено: 30 Июля, 2013 - 17:49:21
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
если доступа к Бд нет то достаточно простого MD5
а если есть то никакое шифрование не поможет.
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
caballero пишет:
если доступа к Бд нет то достаточно простого MD5
а если есть то никакое шифрование не поможет.
не заморачиватесь с проблемами которых нет
Я тоже так думаю. Но вопрос в том, стоит ли повышать время шифрования. Усложнится ли задача взломщика, если у него есть БД, хеши, соли и мой алгоритм. То есть он будет делать банальный перебор. Но перебор будет долгим за счет алгоритма. Вот мне и интересно, как долго нужно шифровать - 0.3, 0.5, 1... сек
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
caballero
Отправлено: 30 Июля, 2013 - 18:12:08
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
Усложнится ли задача взломщика, если у него есть БД, хеши, соли и мой алгоритм. То есть он будет делать банальный перебор
никто не будет взламывать шифр перебором
а если подбирают входной пароль то тут никаке шифроание не поможет - система не отличит взломщика от хозяина
в любом случае способ шифровния всегда можно поменять - это локальные изменения а не переделка сайта
так какой смысл с этим сейчас заморачиватся.
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
caballero пишет:
в любом случае способ шифровния всегда можно поменять
Кстати...
К примеру я использую md5($pass) - уже есть 100 пользователей в БД. И тут я решил использовать hash("sha512", $pass) - как проверять те хеши, которые генерировал md5?
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
makar3000
Отправлено: 30 Июля, 2013 - 18:50:52
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
[+]
Hapson В форме авторизации после $_POST используете:
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
makar3000
Ну это понятно - двойная проверка. Я имею ввиду, что я буду вынужден после смены алгоритма юзать двойную проверку. И после смены я смогу лишь попросить пользователей сменить пароли. А если я к примеру буду вырезать из sha512 32 символа и их писать в БД, то я даже не узнаю, где хеш md5, а где sha512.
Вот поэтому я и хочу сейчас определить метод хеширования.
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
makar3000
Отправлено: 30 Июля, 2013 - 19:04:00
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
[+]
Могли бы сделать так что бы при вводе старого пароля в md5, выводилась форма смены пароля, а там уже обновляли базу загоняя в нее новый пасс.
Да и не могу понять зачем оно вам? md5 не расшифровывается, ну только в тех случаях если пароли: 123456, 123321, qwerty
Hapson
Отправлено: 30 Июля, 2013 - 19:10:03
Посетитель
Покинул форум
Сообщений всего: 356
Дата рег-ции: Июнь 2013 Откуда: Ставропольский край
Помог: 10 раз(а)
[+]
makar3000 пишет:
Да и не могу понять зачем оно вам? md5 не расшифровывается, ну только в тех случаях если пароли: 123456, 123321, qwerty
Ну да)))
Ладно, но главное-то: hash("sha512", $pass) - будет работать на всех системах?
----- ПЫХ тут - ходи туда, прежде чем писать сюда (толку больше будет)
makar3000
Отправлено: 30 Июля, 2013 - 19:12:50
Гость
Покинул форум
Сообщений всего: 107
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
[+]
Hapson Всмысле на всех? На всех версиях php? (Добавление)
PHP 5 >= 5.1.2,
teddy
Отправлено: 30 Июля, 2013 - 19:21:57
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.