Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Как спрятать пароли в программе?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.055 c
2-1132760042
Lexa1111
2005-11-23 18:34
2005.12.18
Как при помощи Delphi открыть файл


4-1129396275
g-l-u-k
2005-10-15 21:11
2005.12.18
Очистка контрола


1-1132769272
Silica
2005-11-23 21:07
2005.12.18
Линейная интерполяция


2-1133336077
julai
2005-11-30 10:34
2005.12.18
DLL


2-1133721142
LordPZ
2005-12-04 21:32
2005.12.18
Хочу сделать, но не знаю как.