Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.012 c
2-1133723656
De1uxe
2005-12-04 22:14
2005.12.18
Компонент для деления изображения на ленты


2-1133188572
psa247
2005-11-28 17:36
2005.12.18
GetTickCount


14-1133179570
Fl@sh
2005-11-28 15:06
2005.12.18
Выбор джойстика


1-1132732615
Ega23
2005-11-23 10:56
2005.12.18
override-функция, она уже virual?


14-1132737161
TUser
2005-11-23 12:12
2005.12.18
Тюнинг компьютера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский