А сделай по принципу CHAP: сервер посылает клиенту большое случайное число, клиент его шифрует своим паролем, и отдает серверу, тот тоже шифрует и сравнивает. Для шифрования можно использовать тот же crypt или md5, ну, или сам какой-нибудь простой алгоритм напиши, тока не используй только перестановку, только xor или только сложение, они очень легко ломаются статистически. А вообще, про это дело очень много написано, на том же opennet.ru.
А сделай по принципу CHAP: сервер посылает клиенту большое случайное число, клиент его шифрует своим паролем, и отдает серверу, тот тоже шифрует и сравнивает. Для шифрования можно использовать тот же crypt или md5, ну, или сам какой-нибудь простой алгоритм напиши, тока не используй только перестановку, только xor или только сложение, они очень легко ломаются статистически. А вообще, про это дело очень много написано, на том же opennet.ru.
Всего доброго.
Эт надо для веб сервиса.11.12.01 14:10 Автор: GorynYch Статус: Member
> А сделай по принципу CHAP: сервер посылает клиенту большое > случайное число, клиент его шифрует своим паролем, и отдает > серверу, тот тоже шифрует и сравнивает. Для шифрования > можно использовать тот же crypt или md5, ну, или сам > какой-нибудь простой алгоритм напиши, тока не используй > только перестановку, только xor или только сложение, они > очень легко ломаются статистически. А вообще, про это дело > очень много написано, на том же opennet.ru. > > Всего доброго. Привет!
Помоему это нельзя(оч сложно) реализовать для веб сервиса...
Были мысли как нить зашифровать пароль и логин юзера JavaScript'ом.
Эт надо для веб сервиса.11.12.01 14:29 Автор: iddqd <Юрий> Статус: Member
Ну да, я понял, что это для веба. У меня была такая же идея сделать авторизацию (правда, руки не дошли), так чтоб пароль не гонять по сети. Кроме Java и JavaScript ничего толкового не придумал. На самом деле, не понимаю, чем тебе не нравится этот способ. Написал на Javascript'е простенькую хэш-функцию, и всего делов-то, IMHO. Главное, чтоб перемешивала как положено.
Эт надо для веб сервиса.11.12.01 15:07 Автор: paganoid Статус: Member
> Ну да, я понял, что это для веба. У меня была такая же идея > сделать авторизацию (правда, руки не дошли), так чтоб > пароль не гонять по сети. Кроме Java и JavaScript ничего > толкового не придумал. На самом деле, не понимаю, чем тебе > не нравится этот способ. Написал на Javascript'е > простенькую хэш-функцию, и всего делов-то, IMHO. Главное, > чтоб перемешивала как положено.
ничего сложного и правда нет. разжевать если только...
Такая авторизация, к примеру, на dostavka.ru . Вставляется жабаскрипт md5.js ,
вставляется hidden поле challenge в форму логина, в которую сервер пишет случайное число и запоминает его в таблице . Когда идет отсылка формы, ловишь onSubmit , в другое скрытое поле формы responce пишешь (жабаскриптом ессна) responce.value = md5(challenge + md5(password.value)) . Password стираешь. Форма отправляется. Когда приходит ответ серверу, он ищет challenge в табличке выданных challenge'й , получаешь пароль в базе, выполняешь те же преобразования, сравниваешь, что получилось в рез-те вычислений, с тем, что послала форма.
простенькую хеш ф-ю советую не использовать, этот md5.js везде валяется..
Другими словами11.12.01 15:45 Автор: PS <PS> Статус: Elderman
спокойно вклиниваешся между ними и посылаешь запросы от имени клиента.
ИМХО, делать какую либо защиту на вебе - пустая трата времени. Только если начальству отрапортовать надо.
> ничего сложного и правда нет. разжевать если только... > Такая авторизация, к примеру, на dostavka.ru . Вставляется > жабаскрипт md5.js , > вставляется hidden поле challenge в форму логина, в > которую сервер пишет случайное число и запоминает его в > таблице . Когда идет отсылка формы, ловишь onSubmit , в > другое скрытое поле формы responce пишешь (жабаскриптом > ессна) responce.value = md5(challenge + > md5(password.value)) . Password стираешь. Форма > отправляется. Когда приходит ответ серверу, он ищет > challenge в табличке выданных challenge'й , получаешь > пароль в базе, выполняешь те же преобразования, > сравниваешь, что получилось в рез-те вычислений, с тем, что > послала форма. > > простенькую хеш ф-ю советую не использовать, этот md5.js > везде валяется.. >
Другими словами11.12.01 15:59 Автор: iddqd <Юрий> Статус: Member
> спокойно вклиниваешся между ними и посылаешь запросы от > имени клиента. > ИМХО, делать какую либо защиту на вебе - пустая трата > времени. Только если начальству отрапортовать надо.
таким макаром можно и в SSL вклиниться ;) и никто не заметит, там же временный пароль открытым ключем шифруется, если я не ошибаюсь.
а тут речь идет о защите от снифера, наскока я понял.
> а тут речь идет о защите от снифера, наскока я понял.
У тебя обычно пароль сколько символов ?
md5(challenge + md5(password.value))
challenge - голое гуляет по сети, осталось только подобрать от 3х до 7и символов, причем это символы a-z, A-Z, 0-9, [пробел].
ИМХО, веб защита - это защита от ленивых.
Ну что ? пофлеймим ? :)11.12.01 16:44 Автор: iddqd <Юрий> Статус: Member
> Ну что ? пофлеймим ? :) ну давай, пока рабочий день не закончился ;))))
> > а тут речь идет о защите от снифера, наскока я понял. > > У тебя обычно пароль сколько символов ? у меня обычно 8-10, беру из отрывка "head -n44 < /dev/urandom | uuencode -m x", потом запоминаю ;)
думаю, этого достаточно, чтоб отбить желание подбирать пароль с мд5
> md5(challenge + md5(password.value)) > challenge - голое гуляет по сети, осталось только подобрать тут согласен, на том же перле будет генериться гораздо быстрее при простом переборе
> от 3х до 7и символов, причем это символы a-z, A-Z, 0-9, > [пробел]. за то их много ;)
> ИМХО, веб защита - это защита от ленивых. не согласен, смотря как сделать
я бы сказал, это бесполезно для короткого пароля
Ну что ? пофлеймим ? :)11.12.01 16:51 Автор: iddqd <Юрий> Статус: Member
забыл добавить:
по моему мнению, 8-7ми символов вполне достаточно, т.к. даже при полном переборе пароля,
будет очень много совпадений, а все их нужно проверять, что, в свою очередь, хорошо заметно на сервере (лоджин один и тот же, но пароли совершенно разные)
Нет, ты не понял :)11.12.01 17:08 Автор: PS <PS> Статус: Elderman
На сервере ничего не выйдет проверить. Подбор будет происходить между клиентом и сервером. И подыскиватся правильный (совпадающий) хеш. Но это все относится к коротким паролям (как уже было сказано).
> забыл добавить: > по моему мнению, 8-7ми символов вполне достаточно, т.к. > даже при полном переборе пароля, > будет очень много совпадений, а все их нужно проверять, > что, в свою очередь, хорошо заметно на сервере (лоджин один > и тот же, но пароли совершенно разные)
Нет, ты не понял :)11.12.01 17:22 Автор: iddqd <Юрий> Статус: Member
> На сервере ничего не выйдет проверить. Подбор будет > происходить между клиентом и сервером. И подыскиватся > правильный (совпадающий) хеш. Но это все относится к ну да, тут полностью согласен, если вклиниться между клиентом и сервером, то тут уже ничего не поможет, даже SSL (тоже было сказано выше) ;)
> коротким паролям (как уже было сказано).
походу, тема исчерпана, не получилось пофлеймить :((
Эт надо для веб сервиса.11.12.01 15:16 Автор: iddqd <Юрий> Статус: Member