Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Пароль для доступа к приложению


Автор: maxnoskov 19.2.2007, 10:04
Подскажите, кто где хранит пароль?

Автор: ivashkanet 19.2.2007, 10:10
maxnoskov, эта тема уже обсуждалась. Поищи по форуму.

Вроде решили, что хранить лучше хэш пароля (его хоть на сайт вешай). А потом сравнивать с ним хэш введенного пароля.

Автор: Naum 19.2.2007, 10:11
Сталкивался с таким только один раз. Пароль хранил в реестре Винды. ИМХО, это не лучшая идея.

Автор: Idsa 19.2.2007, 10:29
Цитата(Naum @  19.2.2007,  10:11 Найти цитируемый пост)
ИМХО, это не лучшая идея.

Однозначно smile

Цитата(ivashkanet @  19.2.2007,  10:10 Найти цитируемый пост)
хранить лучше хэш пароля

Именно так все и делают

Автор: maxnoskov 19.2.2007, 10:35
Естественно, сам пароль хранить не буду. smile  Но где хранить хэш - согласен, что реестр не лучший вариант. В поиске пошукал - нашел тему о хранении настроек, но и там единых мнений нет. Есть вариант хранения в XML файле, ну типа что-то своего app.config. Но как с защищенностью?

Автор: Naum 19.2.2007, 10:41
Цитата(maxnoskov @  19.2.2007,  11:35 Найти цитируемый пост)
Но как с защищенностью? 

Защищенность, ИМХО, зависит от самого пароля. Где бы ты не хранил пароль, "злобные" хакеры все равно узнают где. Хэшированные пароли раскодировать нельзя никак. Можно только подобрать. Поэтому, мне кажется, все-таки надежным должен быть пароль.

Автор: maxnoskov 19.2.2007, 10:46
Цитата

Защищенность, ИМХО, зависит от самого пароля. Где бы ты не хранил пароль, "злобные" хакеры все равно узнают где. Хэшированные пароли раскодировать нельзя никак. Можно только подобрать. Поэтому, мне кажется, все-таки надежным должен быть пароль.

Возможно, неправильно вопрос сформулировал: Предположим есть xml файл в котором хранится хэш пароля. Перед "злобным хакером" не стоит задача узнать пароль. Он просто удаляет хэш из файла и капут - нормальный юзер работать не сможет. Вот я о чем. 

Автор: ivashkanet 19.2.2007, 10:47
Цитата(Naum @  19.2.2007,  09:41 Найти цитируемый пост)
Хэшированные пароли раскодировать нельзя никак. Можно только подобрать.
 
Цитата(ivashkanet @  19.2.2007,  09:10 Найти цитируемый пост)
 хэш пароля (его хоть на сайт вешай)


Автор: Yama 19.2.2007, 11:53
Есть идея хранить пароль как ресурс внутри exe-шника программы. Но это только идея..... smile

Добавлено @ 11:54 
Точне, хеш пароля )))

Автор: -Mikle- 19.2.2007, 16:34
Если прога не особенно подвержена взломам, то есть не представляет особого интереса для хакера, то тут идея должна быть такой, чтобы затруднить поиск самой ссылки на пароль. То есть чтоб потенциальный злоумышленник не смог найти его и отредактировать. Например спрятать пароль внутри мнимого некоего файла .dat. В котором много случайных байтов, но среди них есть 16 байт пароля. Прога всегда знает, где лижит пароль и постоянно меняет его расположение в файле. Все ф-ии работающие с паролем, можно сделать с мнимыми именами. То есть вместо ф-ии ComparePasswords() сделать ApplyChanges например. Еще можно сделать простой класс-интерпретатор, который ты сам можешь написать. Он будет читать некий файл-сценарий, в котором будет реализован некий ход проверки пароля, и программа будет вызывать ф-ии из твоего сценария. После написания такого-класса, его код можно заменить на код, который будет через рефлекшн создавать такой класс. Короче все нужно сделать так, чтобы максимально запутать злоумышленника. Все должно выглядеть так, чтобы ты сам запутался при поптке проверки всего алгоритма. И не забывай еще про народную мудрость: "Хорошо спрятанная вещь - всегда лежит перед глазами". smile

Этот вариант естественно не гарантирует надежности, но очень затрудняет поиск места расположения пароля и для серьезных не годиться.

Автор: Exception 19.2.2007, 20:07
Создаёшь файл blabla.dat.
В него кладёшь хэш пароля.
Создаёшь файл blabla2.dat.
В него кладёшь контрольную сумму первого файла.
Создаёшь файл blabla3.dat.
В него кладёшь контрольную сумму второго файла с контрольной суммой первого файла.

Шучу smile .

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)