- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
function makehash($str,$salt='',$strength='08'){
if (!$salt):
$salt = "";
for ($i = 0; $i < 22; $i++) {
$salt .= substr("./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", mt_rand(0, 63), 1);
}
endif;
return crypt($str, "$2a$".$strength."$".$salt);
}
wvxvw 09.10.2013 17:32 # 0
Любой нормальный человек пошлет таких умников шифровать что-нибудь другое.
brainstorm 09.10.2013 17:45 # 0
anonimb84a2f6fd141 09.10.2013 18:37 # 0
wvxvw 09.10.2013 19:03 # 0
Смысл же использования пропадает. Как бы бкрипт может получив существующий хеш и пароль вернуть новый хеш, который, если совпадет с существующим хешем будет свидетельстовать о том, что исходный пароль был таким же. Но для этого нужно чтобы бкрипт выполнялся в условии запроса.
Можно сделать по-другому, и хранить хеш, например, в базе, или в коде ПХП, но тогда весь смысл задумки теряется, и бкрипт превращается в обычный мдп5 примененный Х раз, или что-то типа того.
anonimb84a2f6fd141 09.10.2013 19:48 # +1
Эээ по логину?
Я чот нифига не понял, что ты имеешь в виду. Ты хочешь хранить в базе плейнтекст, а потом его бкриптить?
>Можно сделать по-другому, и хранить хеш, например, в базе, или в коде ПХП, но тогда весь смысл задумки теряется, и бкрипт превращается в обычный мдп5 примененный Х раз, или что-то типа того.
Ну в этом и есть смысл бкрипта :)
wvxvw 09.10.2013 20:11 # −1
Т.е. хеш генерируемый бкриптом выглядит так:
мэджик, сколько раз запускать алгоритм, соль, результат.
Когда мы хотим узнать совпадает ли пароль, мы берем готовых хеш, вытаскиваем из него соль, хешируем новый пароль с той же солью, и если сошлость, то все круто. Но соль эту не имея хеша нам не получить. Или можно забить на эту уникальную возможность, и использовать соль одну на всех. Но тогда это скорее повышает уязвимость.
anonimb84a2f6fd141 09.10.2013 20:23 # +1
1. SELECT hash FROM db WHERE username=%username%
2. Вычленяем соль.
3. Хешируем введенный пароль с солью из п.2.
4. Сравниваем хеши.
wvxvw 09.10.2013 20:35 # 0
Кроме того, это значит, что восстановление информации об учетке по паролю таки потребует выгрести все пароли из базы.
bormand 09.10.2013 20:40 # +1
Можно хоть один сайт, который такое умеет? Обычно же наоборот, все сбрасывают пароль, зная что-то об учетке ;)
> если не хочется людей желающих чтобы их звали koljan77 ограничивать в выборе юзернеймов
А если они внезапно установят одинаковый пароль, то писать "извините, у другого Василия Пупкина уже используется такой пароль"? Нахуй, нахуй, такие наркоманские схемы... Имхо в таких случаях проще сделать уникальное поле login + неуникальное поле display name, чем заставлять юзера использовать только сгенеренные сервером пароли.
wvxvw 09.10.2013 20:53 # −1
Время от времени появляется какая-нибудь однокласница, которой срочно нужно показать свои фотографии, вот и приходится вспоминать то ник, то пароль...
Гмаил тоже так умеет. И ФБук тоже.
Про пароль - я бы кстати тоже что-нибудь такое придумал, чтобы разрешать использовать одинаковые пароли. Например, дату добавлял в соль, и с ней генерировал запись. Просто если человек потом выяснит, что с его именем никто не зарегистрирован - тоже некомильфо получтися.
В Скайпе как правило с одним и тем же ником по 100500 человек.
anonimb84a2f6fd141 09.10.2013 20:57 # +1
Искать юзера по паролю?
bormand 09.10.2013 21:17 # +1
Ну вылогинился, нажал кнопочку "забыли свое имя пользователя?", предлагает ввести запасное мыло или фио, указанное при регистрации. Ткните носом, где можно узнать учетку по паролю...
P.S. Поиск учеток по паролю это не просто дыра в безопасности, это самое настоящее goatse. Вводим 123456 и другие простые пароли и имеем учетки ;) А если не дают выбрать конкретную учетку - то имеем отличный способ завалить кучу людей спамом от сервака ;)
> В Скайпе как правило с одним и тем же ником по 100500 человек.
Ну так display name != login.
anonimb84a2f6fd141 09.10.2013 21:18 # 0
А то. Нормально спроектированная система просто не в состоянии найти двух пользователей с одним паролем.
wvxvw 09.10.2013 21:24 # 0
anonimb84a2f6fd141 09.10.2013 21:26 # 0
wvxvw 09.10.2013 21:34 # 0
anonimb84a2f6fd141 09.10.2013 21:49 # 0
bormand 09.10.2013 21:58 # +1
В идеале пароли в плейнтексте вообще должны быть только на стороне клиента во время их ввода ;)
wvxvw 09.10.2013 23:01 # 0
bormand 09.10.2013 23:07 # 0
anonimb84a2f6fd141 10.10.2013 02:43 # +1
bormand 10.10.2013 06:14 # −1
Для взаимной аутентификации клиента и сервера - да. В общем случае - нет, всех задач PKI оно не решает.
- Как с помощью SRP ты сможешь проверить, что сервер того же paypal это именно сервер paypal, а не китайская подделка, если ты на нем еще не зареган?
- Как ты будешь использовать SRP для цифровой подписи?
- Как сервер сможет проверить, что ты Вася Пупкин, а не просто некто, зерегистрировавшийя с верификатором b84a2f6fd141?
anonimb84a2f6fd141 12.10.2013 22:02 # −1
3. Вылезти из монитора и посмотреть на меня?
anonimb84a2f6fd141 12.10.2013 22:09 # −1
2. А кому она нужна, по крайней мере, при аутентификации (какое слово хреновое) юзера?
Кстати, кто-нибудь в курсе - почему его упорно не добавляют в реализации SSL? Есть какая-то полуебошная реализация в OpenSSL, которую я толком и не смог настроить.
bormand 13.10.2013 08:30 # 0
Да причем тут утечка... Кому нахуй сдался мой пароль в духе xK#6nB9Rt, уникальный для каждого сайта? Проблема в том, что можно залететь и зарегаться на фейковом сервере и работать с ним даже не узнав об этом (и в результате просрать кредитку, персональные данные и т.п.). Эту проблему SRP не решает. Зато сейчас ее более-менее решает PKI.
> А кому она нужна, по крайней мере, при аутентификации
При аутентификации не нужна. Для заверения всяких доков и писем нужна. Если тебе что-то нинужно, это не означает, что это не нужно никому.
> 3. Вылезти из монитора и посмотреть на меня?
Сходишь в ближайший к тебе филиал какого-нибудь УЦ, получишь сертификат. И его будут принимать все серваки, которые доверяют данному УЦ.
Так что не надо так категорично выпиливать PKI отовсюду ("Заодно и PKI станет ненужно"). Парольная аутентификация юзера это ж далеко не единственная задача криптографии...
> Кстати, кто-нибудь в курсе - почему его упорно не добавляют в реализации SSL?
Х.з. если честно. Вроде и бы не патентовано, и алгоритм простейший.
anonimb84a2f6fd141 13.10.2013 21:26 # +1
У SRP есть еще один неприятный момент - он не работает с эллиптическими кривыми.
bormand 13.10.2013 21:34 # 0
Да там вроде только возведения в степень, умножения да сложения... Все эти операции вполне выполнимы и над точками эллиптических кривых, так что, мне кажется, можно портануть.
Или есть статьи, в которых доказывается, что нельзя?
bormand 13.10.2013 22:29 # 0
Вот тебе ECSRP :)
http://grouper.ieee.org/groups/1363/passwdPK/submissions/p1363ecsrp.pdf
anonimb84a2f6fd141 13.10.2013 23:04 # 0
На кривые портируется DH, а в SRP есть сложение/вычитание по модулю простого числа.
ECSRP разве стал стандартом? На SSL-SRP есть RFC и то его не реализовывают, а это еще лет 100 мутить будут. http://crypto.stackexchange.com/questions/6519/can-srp-be-used-with-elliptic-curves (синего цвета нет, как бебекот панель добавить в прыщелисе или в userjs?)
https://groups.google.com/forum/#!msg/sci.crypt/DVSWBTKSVsg/nCGrwSnejuAJ тут какая-то дискуссия 97 года.
bormand 14.10.2013 05:21 # 0
Да нет не преподавали, сам учил... И судя по тому, что спутал поле с группой - выучил криво ;) Спасибо за ссылку.
> ECSRP разве стал стандартом?
Да на него я даже RFC не нашел.
kegdan 14.10.2013 05:33 # 0
>спутал поле с группой
и криктографию с алгемом
anonimb84a2f6fd141 14.10.2013 05:38 # 0
kegdan 14.10.2013 08:52 # 0
Мне физически больно это читать.
1024-- 14.10.2013 15:17 # +2
Конечно, ведь там как минимум одной запятой нет.
anonimb84a2f6fd141 14.10.2013 18:59 # 0
Юзать готовые алгоритмы и протоколы, понимая в общих чертах как это все работает мне это не мешает.
bormand 14.10.2013 09:45 # 0
А я когда-то знал, что из них что (в институте проходили), но уже забыл. Все что не юзаешь быстро забывается...
wvxvw 09.10.2013 21:21 # 0
Про Гмаил знаю, потому что так восстанавливал.
Гмаил разный в разных странах, так что тут я не помощник. У нас теперь регистрация без номера телефона вообще не возможна (у меня раритетный акк, в котором телефон не требуют).
anonimb84a2f6fd141 09.10.2013 21:26 # 0
wvxvw 09.10.2013 21:32 # 0
anonimb84a2f6fd141 09.10.2013 21:48 # 0
Я про это.
wvxvw 09.10.2013 23:14 # 0
http://postimg.org/image/wyb68h7ct/
http://postimg.org/image/5jbbv5uu9/
anonimb84a2f6fd141 10.10.2013 02:41 # +1
wvxvw 10.10.2013 03:07 # −1
anonimb84a2f6fd141 10.10.2013 03:55 # 0
wvxvw 10.10.2013 09:23 # 0
wvxvw 09.10.2013 21:27 # −1
Именно, логин. Опять же, я скайпом пользуюсь раз в пару месяцев, и использование всегда начинается с восстановления пароля.
bormand 09.10.2013 21:44 # 0
wvxvw 09.10.2013 23:03 # 0
Фейсбук - точно так можно, у меня есть несколько аккаунтов с одним именем, еще со времен когда чат для него делали.
bormand 09.10.2013 23:10 # +1
Как теперь должен поступать сервер в момент входа одного из этих юзеров? ;)
wvxvw 09.10.2013 23:55 # 0
bormand 09.10.2013 23:59 # +1
anonimb84a2f6fd141 10.10.2013 02:41 # 0
bormand 10.10.2013 12:37 # 0
Я раньше :)
http://govnokod.ru/13916#comment199026
anonimb84a2f6fd141 09.10.2013 20:55 # +3
>Кроме того, это значит, что восстановление информации об учетке по паролю
Вы не можете выбрать этот пароль, т.к. его уже выбрал пользователь vasya127. Выберите другой.
wvxvw 09.10.2013 19:10 # 0
Lure Of Chaos 11.10.2013 22:05 # +1
anonimb84a2f6fd141 12.10.2013 01:41 # 0
Lure Of Chaos 12.10.2013 01:44 # 0