Итак на обсуждение выносится давно замучавший меня вопрос.
Бредисловие: Сущ. программа типа ICQ для собственного пользования внутри локальной сети. Когда я писал ее, то проблема неавторизованного доступа остро не стояла, но со временем стала достаточно актуальной. А имеено с выходом движка программы в Инет.
Проблема в следующем, сам сервер висит удаленно на чужом серваке и глядит своим портом в Инет, кто хочет тот и подключается.НЕобходимо повесить на нее парольную защиту, чтобы подключаться могли только Личности с паролем и логином. Есс-но для создания парольной защиты необходимо добавить в программу несколько ф-ий связанных с РЕГИСТРАЦИЕЙ нового человека, занесением его в базу данных паролей, работа с этой базой и(или) удаления человека из базы. Все это не очень геморойно, НО, с точки зрения защиты, возможность взломать становится даже больше :) Почему? Да потому что добавление удаление и работа с базой, это дополнительный анализ команд, а дополнительный анализ текста это возможность провести или DoS или вообще взлом :)
Плюс еще к тому же эту самую базу паролей могут посмотреть те кому это нужно (это 2).
Тогда я решил сделать вход не по соответствию пароля, а по ПРОВЕРКЕ генерации пароля.
О чем я? Предположим, что у нас есть ник "MOSEL"
Теперь возьмем битовую маску для данного слова и прокрутим это все через мясорубку из нескольких циклических сдвигов
ror eax,5
shl eax,3
теперь разобьем их на группы из 6 бит (недостающие добьем нулями)
и каждую группу проксорим числом которым являлся eax после ror увеличенным на единицу для каждой группы.
Полученные группы опять преобразуем в char(что не влезло то впихиваем добавлением 32) и получим примерно следующее "x#1s+"
Теперь скажите мне! Если этот алгоритм заранее неизвестен ТЕОРЕТИЧЕСКОМУ злоумышленнику, то сколько времени у него займет поиск Алгоритма преобразования НИК-ПАРОЛЬ если вообще-то по паролю ник НЕ ВОССТАНАВЛИВАЕТСЯ (shl дает потери бит слева. да и еще можно маской обнулять биты напрмиер обнулить 0,1,4,7 биты), и если алгоритм содержит скажем шагов 15 разных?
Я просто не большой спец в Криптографии, и поэтому мне интересно, есть ли смысл заморачиваться с базой если такой алгоритм я напишу за пол часа????? А взлом такого алгоритма займет столько времени, что мне потом проще будет поменять несколько шагов местами и взломщик опять останется НИ С ЧЕМ?
Прошу не наезжать по поводу ламерского вопроса, но уж очень долго я спорю со всеми по этому поводу: Я считаю что в данном случае ГЕНЕРАЦИЯ паролей входа является БОЛЕЕ УДОБНЫМ ПО ВРЕМЕНИ ИСПОЛНЕНИЯ и ПО НАДЕЖНОСТИ УДОВЛЕТВОРЯЕТ минимальным требованиям.
Если же вы считаете по-другому, то обьясните ПОЧЕМУ?
Много-ли народу решится потратить несколько дней(недель(месяцев))) на взлом такого алгоритма??? ОСОБЕННО если Хакер и не знает что пароль генерированный. А такое преобразование я думаю на глаз заметить невозможно.(если еще расширять длину пароля то вообще НЕРЕАЛЬНО)
Что удобнее? БАЗА паролей или проверка по генерации?30.11.01 22:22 Автор: ^Scorpio^ Статус: Незарегистрированный пользователь
не очень хорошо тебя понял, но имхо единственный НОРМАЛЬНЫЙ вариант - база с хешами паролей. Твои замуты с генерением пароля по логину (если я тебя правильно понял) не спасут от:
а) взломщика, зарегавшего много аккаунтов => имеющего нормальную статистику
б) от взломщика (или крысы среди своих) получившего read-only доступ к серверу
в) человека, сперевшего у тебя исходники
г) просто грамотного крякера
варьянт с базой спасает от всего этого на ура, сервер будет стоять и врагов не подпустит.
ну ты загнул29.11.01 04:03 Автор: RHoST Статус: Незарегистрированный пользователь
> не очень хорошо тебя понял, но имхо единственный НОРМАЛЬНЫЙ > вариант - база с хешами паролей. Твои замуты с генерением > пароля по логину (если я тебя правильно понял) не спасут > от: > > а) взломщика, зарегавшего много аккаунтов => имеющего > нормальную статистику Это система для своих, выдавать пароли буду я сам.
> > б) от взломщика (или крысы среди своих) получившего > read-only доступ к серверу рид-онли к серверу даст ему огромную возможность узнать где именно хранится база, и второе он сможет спокойно найти дырку и таким же образом СНЕСТИ ВСЮ систему.
> > в) человека, сперевшего у тебя исходники Ну это тоже самое что и ридонли :)
> > г) просто грамотного крякера Попробуй сам провернуть что-то вроде того что я сказал (сдвинь несколько раз по кругу ROR а потом SHL свой пароль и проксорь парочкой чисел до и после всего этого), и дай кому-нить кого считаешь самым крутым кракером и погляди сколько по времени это займет у него (при условии что у него будет только ЛОГИН и ПАРОЛЬ полученный из этого логина и он не знает что именно за операции были проделаны и сколько было операций). Пусть человек найдет алгоритм генерации пароля и скажет сколько это по времени займет у него. Мне самому просто очень интересно и важно так как мне все-таки эту вещь надо написать :))
> конструктивную критику на RHoST@pisem.net
ну ты разогнул ;)29.11.01 10:56 Автор: paganoid Статус: Member
> > а) взломщика, зарегавшего много аккаунтов => > имеющего > > нормальную статистику > Это система для своих, выдавать пароли буду я сам.
если для своих, зачем пароли ;) ?
> > б) от взломщика (или крысы среди своих) получившего > > read-only доступ к серверу > рид-онли к серверу даст ему огромную возможность узнать где > именно хранится база, и второе он сможет спокойно найти > дырку и таким же образом СНЕСТИ ВСЮ систему.
это совсем из другой оперы. Что сказать. "не давайте кариесу не малейшего шанса". Я понимаю, что без дырок писать невозможно, но надо стараться ;) Притом дырку искать, тоже талант нужон (теперь я загнул хехе) .
Доступ readonly при взломе вобщем часто получается. И если это есть, в грамотной системе это не должно давать никаких дополнительных прав.
> > в) человека, сперевшего у тебя исходники > Ну это тоже самое что и ридонли :)
ну нет, тут уж действительно грех дырку не найти
> > г) просто грамотного крякера > Попробуй сам провернуть что-то вроде того что я сказал > (сдвинь несколько раз по кругу ROR а потом SHL свой пароль > и проксорь парочкой чисел до и после всего этого), и дай > кому-нить кого считаешь самым крутым кракером и погляди > сколько по времени это займет у него (при условии что у > него будет только ЛОГИН и ПАРОЛЬ полученный из этого логина > и он не знает что именно за операции были проделаны и > сколько было операций).
Если будет 5 таких пар, я тебя уверяю, все эти заморочки с таким шифрованием как гаммирование, XOR фиксированными числами, сдвиги побайтовые и т.п. - все ломается за приемлемое время. Если хочешь лучше защитять, используй хотя бы необратимое шифрование md5, crypt , хотя это тоже не сильно меняет ситуацию...
Пусть человек найдет алгоритм
> генерации пароля и скажет сколько это по времени займет у > него. Мне самому просто очень интересно и важно так как мне > все-таки эту вещь надо написать :)) > > > конструктивную критику на RHoST@pisem.net