Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
ВнизКак спрятать пароли в программе? Найти похожие ветки
← →
Progger (2005-12-03 22:48) [0]Делаю программу в которой будет работать юзер (оператор). Его работу будет контролировать второй юзер (админ) Этот админ может закрыть своим паролем некоторые функции программы чтобы оператор ими не мог воспользоваться. Где и как сохранить пароль админа? Как подстраховаться от того что оператор просто не стерет пароль админа, например ключ в реестре в которой он сохранен, что бы программа думала что пароль админа не был установлен. Как сделать посложнее? Может есть какие-то решения?
← →
Eraser © (2005-12-03 23:06) [1]
> Progger (03.12.05 22:48)
пароль хранить не надо, храни хэш пароля.
← →
Eraser © (2005-12-03 23:07) [2]
> Делаю программу в которой будет работать юзер (оператор)
в свою очередь когда за машиной работает оператор, у него должны быть ограничения на доступ к нужному ключу реестра.
← →
Progger (2005-12-03 23:24) [3]
> пароль хранить не надо, храни хэш пароля.
Что хеш, что пароль, смысл тот же. Хеш тоже нужно где-то хранить, значит его можно удалить?
> работает оператор, у него должны быть ограничения на доступ
> к нужному ключу реестра.
А можно подробнее? Оператор должен иметь права администратора на этой машине. При этом условии реально ограничить доступ к ключу?
Думаю сделать что-то типа этого. Программа при первом запуске записывает в реестр зашифрованую зашитым в нее ключем строку. Когда устанавливается пароль админа, эта строка перешифровывается при помощи этого пароля. А потом проверять каким паролем она зашифрована. Если дефолтным, то пароля админа нет.
Но пока как это все реализовать еще не придумал. Может Еще какие-нибудь варианты можно попробовать?
← →
Eraser © (2005-12-04 00:17) [4]
> Progger (03.12.05 23:24) [3]
> Оператор должен иметь права администратора на этой машине.
> При этом условии реально ограничить доступ к ключу?
практически не реально.
В данном случае по-настоящему защититься очень сложно.
← →
palva © (2005-12-04 10:30) [5]Если оператор имеет возможность анализировать код программы и делать в него вставки, то тогда защититься можно при помощи ключевой дискеты, которую админ вынимает из кармана, когда хочет поработать с программой в административном режиме. На этой дискете может находиться, к примеру, небольшая dll с нужным куском программы.
Если юзер только читает программу, но не рискнет менять в ней ни байта, то критические куски программы, запрещенные для выполнения юзером, можно просто вставить в программу и защитить их паролем, хэш которого будет также находиться в программе. Если пароль требуется время от времени менять, то хэш можно хранить в небольшом файле, расположенном в той же директории, что и программа. Использование реестра, по-моему, никаких дополнительных преимуществ не дает.
← →
Progger (2005-12-04 14:57) [6]
> palva © (04.12.05 10:30) [5]
C дискетой - хорошая мысль. Наверное даже лучше позволить админу выбрать через диалог место куда сохранить пароль. Флешка, дискета, а хранить путь к паролю.
Надо обдумать.
← →
makvell (2005-12-04 18:03) [7]А зачем все так усложнять?
Может просто хранить пароли в файле, в
шифрованном виде естественно, а если
файл стерт, то востанавливать пароли
по-умолчанию, заданные в самой
программе? Просто каждый раз проверять
сначало наличие файла, а затем уже
правилоьность пароля...
← →
Progger (2005-12-04 19:34) [8]
> makvell (04.12.05 18:03) [7]
Пароли которые по умолчанию будут известны оператору. Следовательно что бы юзать настройки закрытые паролем админа оператору достаточно стереть файл с паролями и использовать дефолтные. А этого и надо избежать.
← →
Gydvin © (2005-12-05 06:12) [9]А такой вопрос, результаты работы будут хранится в файлах закрытого (тоесть как бы не в текстовом виде) формата или открытого? Потом файлы с результатами перебегать с компа на комп будут или будут использоваться стационарно?
Навеено ASProtec (new stain)
Короче такая идея (зашифрованые) пороли хранить в файлах-результатах + просто дорисовывать пороль в конце вашей ехе ну и для верности можно еще в реестр закинуть. При пропаже одного из этих поролей можно создать лог и заблокировать прогу до разборок.
← →
Saimon (2005-12-05 11:16) [10]А почему бы не впихнуть пароль прямиком в exe-шник твоей проги?? Или ДЛЛ??
Вдобавок в зашифрованном-захешированном виде... Плюсс сверху мона повесить UPX, ASProtect и т.п.
Я сомневаюсь, что юзер (оператор) сможет их снять... При том если будешь шифровать пароли по алгоритму PGP.
← →
Gydvin © (2005-12-05 12:07) [11]Saimon (05.12.05 11:16) [10]
Ну и я о том же, только я говорю о поролях дописываемые уже к готовому ехе в динамическом порядке
← →
Progger (2005-12-05 12:37) [12]
> А почему бы не впихнуть пароль прямиком в exe-шник твоей
> проги??
Нужно чтобы и оператор и админ могли пароли менять.
Думаю сделать примерно так. Админ устанавливает пароль и через диалог сохраняет его где хочет, например на дискете. В реестр пишу хеш этого пароля и путь к нему. При проверке по этому пути сравниваю хеши. Получается что узнать пароль админа оператор не сможет, есть только хеш, осталось придумать как программа узнает что пароль админа установлен. Наверное все-таки до кучи шифровать этим паролем какую-то строку и при проверке пытаться расшифровать дефолтным паролем, если неудача, то искать пароль по сохраненному пути?
Запутанно как-то.
← →
Saimon (2005-12-05 15:04) [13]Не знаю... Просто сам не вребаюсь в то, что ты написал... :(
> Админ устанавливает пароль и через диалог сохраняет его
> где хочет, например на дискете. В реестр пишу хеш этого
> пароля и путь к нему.
Хех... Ты упускаешь из виду, что путь из реестра и хеш опять-же мона просто убить!!!
А то про что говорю я, делается так...
Просто пиши в свой-же exe во время выполнения проги (в дельфи есть функции, правда не помню какие) как ресурс в RCData с непонятным именем и юзер, как правило, подумает, что это двоичные данные или еще что-то... главное шифруй...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.014 c