А почему бред (2tny2001)

Yurik

/dev/null
А почему бред (2tny2001)

2 tony2001
Совсем не понятно ваше замечание на статью
http://prosto.pp.ru/Docum/?NamePRG=DocumShow&DocumID=335
про мд5() - дикий бред
сравниваться буду уже шифрованные строки - значит никакого смысла в передаче мд5()-шифрованного пароля нет.

Напомню суть:
1. в мускуле хранится md5 хеш
2. при авторизации клиенту передается случайная строка
3. вычисляется md5(md5(ввод пользователя)+случайная строка)
4. на сервере проверяется полученное значение с md5(<хеш из мускула>+случайная строка из сессии)

Если этого не делать:
можно перехватить пароль или его md5 и авторизоваться под чужим логином.
 

tony2001

TeaM PHPClub
а в чем тут смысл?
я не понимаю чем лучше передавать шифрованный МД5 пароль по открытому каналу, вместо передачи самого пароля.
так или иначе - сравнивается именно хэш.
 

tony2001

TeaM PHPClub
>Если этого не делать:
>можно перехватить пароль или его md5 и авторизоваться под чужим логином.
вот это имхо и есть ключевое заблуждение.
на сервере сравнивается МД5.
и передаешь ты МД5.
следовательно - вполне хватит перехватить сам МД5.
 

Yurik

/dev/null
1. Перехватил ты мд5
2. Подсунул его серверу
3. Он взял из сессии ту строку которую тебе посылал (если ты не открывал страничку login.php, то строка - пустая)
4. Взял хеш из базы и соединил с этой (пустой или совсем другой) строкой
5. вычислил md5 из п.4
6. Сравнил с тем, что ты прислал
7. Результат сравнения отрицательный (то что перехватил ты было сгенерировано с совсем другой случайной строки)
8. Вас выбрасывает
 

Yurik

/dev/null
чем лучше передавать шифрованный МД5 пароль по открытому каналу, вместо передачи самого пароля.
Передается НЕ md5(пароль) а md5(md5(пароль)+СЛУЧАЙНАЯ СТРОКА)
 

shingrus

Guest
Автор оригинала: Yurik
Передается НЕ md5(пароль) а md5(md5(пароль)+СЛУЧАЙНАЯ СТРОКА)
может я что не понимаю... но тебе не важно, ты перехватываешь хеш и отдаешь его серверу... а сервер сравнивает полученный хеш со своим хешем... и всё ок... ты же перехватываешь чужой хеш.... нормальный...
а если у тебя сессии, то смысл мутить все эти хеши, если ты так им доверяешь...
 

tony2001

TeaM PHPClub
>Передается НЕ md5(пароль) а md5(md5(пароль)+СЛУЧАЙНАЯ СТРОКА)
ДА ХОТЬ ТРИ СЛУЧАЙНЫХ СТРОКИ.
только я этот кусок текста могу перехватить ТОЧНО ТАК ЖЕ, как и все остальное и передать на сервер.
 

Yurik

/dev/null
только я этот кусок текста могу перехватить ТОЧНО ТАК ЖЕ, как и все остальное и передать на сервер.
1. Передается ТОЛЬКО md5(md5(пароль)+СЛУЧАЙНАЯ СТРОКА) и больше НИЧЕГО (кроме логина)
2. Если ты это перехватиш и засунеш на сервер, это тебе ничего НЕ даст, этот хеш уже НЕДЕЙСТВИТЕЛЕН (ту строку из которой он был сгенерирован уже и в помине НЕТ).
а если у тебя сессии, то смысл мутить все
Небезопасность сессий это совсем другой сабж. Да, сессию перехватить можно, но для этого есть проверка IP с которого логинились и время жизни сессии. Если пользователь и хакер не сидят за двумя прокси, то фиг вы что сделаете.
 

Ямерт

The Old One
Я, конечно, дико извиняюсь, но, имхо, использовать JavaScript для такой цели - изврат :cool:
Хотя бы потому, что его можно отключить.

З.Ы. Имхо, этот метод - калька с основы принципа работы протокола CHAP, но не включает некоторые важные нюансы.
 

tony2001

TeaM PHPClub
>1. Передается ТОЛЬКО md5(md5(пароль)+СЛУЧАЙНАЯ СТРОКА) и больше НИЧЕГО (кроме логина)
и что ?
а мне ТОЛЬКО это и надо.

>2. Если ты это перехватиш и засунеш на сервер, это тебе
>ничего НЕ даст, этот хеш уже НЕДЕЙСТВИТЕЛЕН (ту строку
>из которой он был сгенерирован уже и в помине НЕТ).
интересно как тогда ты собираешься нормальных юзеров авторизовать.

объясни мне:
я клиент.
хочу зайти на сайт.
что ты мне шлешь?
и что я буду слать в ответ?
 

Yurik

/dev/null
Имхо, этот метод - калька с основы принципа работы протокола CHAP.
Так работает много протоколов, в т.ч сетевые протоколы винды
интересно как тогда ты собираешься нормальных юзеров авторизовать.
1. Генерю случайную строку
2. Запоминаю ее в сессии
3. Шлю ее в форму авторизации
4. Из ввода пользователя и п.3 леплю хеш
5. Ввод пользователя и п.3 обнуляю
6. Засылаю п.4 на сервер
7. Проверяю if (мускул+п.2 == п.6)
8. п.2 обнуляю

какие-либо попытки хакера эмулировать п.6 после п.8 заведомо неудачны
 

shingrus

Guest
Автор оригинала: Yurik
Небезопасность сессий это совсем другой сабж. Да, сессию перехватить можно, но для этого есть проверка IP с которого логинились и время жизни сессии. Если пользователь и хакер не сидят за двумя прокси, то фиг вы что сделаете.
дык и IP подделать можна..., пойми, что всё, что идет в открытом канале - ВСЁ можно подделать в разумные трудозатрату в разумные временные пределы, вот в чем дело
 

tony2001

TeaM PHPClub
>какие-либо попытки хакера эмулировать п.6 после п.8 заведомо неудачны
зато стоит только ему поймать п.3 и все уже становится бесполезным.
я надеюсь, ты серъезно не думаешь, что выцепить значение строки в hidden (или куках) - это очень сложно?

теперь ключевой вопрос:
Yurik, если бы все было так просто, то зачем выдумали RSA, PGP и другие алгоритмы шифрования?
 

Yurik

/dev/null
не включает некоторые важные нюансы.
поделитесь, но imho больше ничего не нужно
использовать JavaScript для такой цели - изврат
SSL тоже можно отключить, как и куки, ActiveX и прочее, можно даже броузер закрыть. Статья называлась "Авторизация средствами PHP и JS" а кому она подходит, а кому нет - решать читателям.
 

Barlone

Guest
shingrus - подделать IP можно только имея контроль над каким-либо маршрутизатором между юзером и сервером.
 

shingrus

Guest
Автор оригинала: Barlone
shingrus - подделать IP можно только имея контроль над каким-либо маршрутизатором между юзером и сервером.
а я и не спорю...
интерсно, а как, по твоему, можна перехватить поток tcp/ip ?
 

Barlone

Guest
tony2001 - для этого хакеру нужно подделать сессию.
 

Barlone

Guest
Автор оригинала: shingrus
а я и не спорю...
инетерсно, а как по твоему можна перехватить поток tcp/ip ?
Чтобы перехватить tcp/ip, достаточно запустить сниффер на на компе в том же ethernet-сегменте, что и комп пользователя или маршрутизатор или сервер. Это не то же самое, что контроль над маршрутизатором (рутовые права на нем).
 

tony2001

TeaM PHPClub
Barlone:
я в курсе.

Yurik:
в чем смысл этих действий?
скрывается в конце концов контент, а не возможность залогиниться.
если контент будет идти по открытому каналу, а для авторизации мы будем использовать супер--алгоритм с сессионным ключом, то в чем смысл ?
 

shingrus

Guest
Автор оригинала: shingrus
а я и не спорю...
интерсно, а как, по твоему, можна перехватить поток tcp/ip ?
в смысле, кончено нет!!!! не только над маршрутизатором, можно быть в 1 физ сегменте...
 
Сверху