зашифровать пароль
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
зашифровать пароль - 2006-11-17 12:01:46.920000
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
Пишу на Delphi. При коннекте к Firebird нужно передовать пароль в строковом виде. Даже если в проге он будет в зашифрованном виде, то при подключении к Firebird его можно будет вытащить из памяти, а это плохо. Кто что посоветует для защиты.
|
|
|
RE: зашифровать пароль - 2006-11-17 13:35:56.700000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Из какой памяти? На рабочей станции или на серваке? Или снифером перехватить при передаче? Ну на серваке ты никак не спрячешь Это головная боль админов. От снифера защититься можно. Передавай хэш. Настройками сервака делай доступ к БД только из-под проги. ХЭШ перехватил, а пароль не расшифруешь. — Еще можешь трехзвенку соорудить… Но устроит ли это тебя - от задачи зависит
|
|
|
RE: зашифровать пароль - 2006-11-17 14:20:52.996666
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
нужно защитить прогу от просмотра памяти (занимаемой прогой) на стороне клиента, все остальное решаемо.
|
|
|
RE: зашифровать пароль - 2006-11-17 15:39:27.623333
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Опять не въеду Если пользователь легальный, то теоритически он угрозы не представляет. Значит доступ к памяти на клиентской машине можно осуществить только по сети. Это вопросы администрирования. Если не легальный, то, пока он не залогинится, пароля в памяти не будет
|
|
|
RE: зашифровать пароль - 2006-11-17 16:18:30.106666
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
quote:
ORIGINAL: alexbozhko …Если пользователь легальный, то теоритически он угрозы не представляет…. В том то и дело, что представляет и может стянуть пароль к базе, а тут еще и инфу надыбал, что в fbclient.dll он всё равно открыто передаётся [:(]
|
|
|
RE: зашифровать пароль - 2006-11-17 17:16:44.060000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
А что за неординарная задача такая? Если юзер знает пароль на программу то какая угроза от него угроза. Пароль к БД (реальный) это хэш того пароля который в проге. Допустим он вычисляет хэш, но тогда задача звучит совершенно по другому. Как сделать так, что бы коннект был возможен только из проги, а не из, к примеру, IBExpert'а. ну это я так… рассуждаю… Пароль к Бд попадает в память, только тогда, когда осуществлен коннект Поэтому и увидеть реально его может только юзер, который его знает В чем проблема?
|
|
|
RE: зашифровать пароль - 2006-11-17 17:38:26.733333
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
пароль к проге <> пароль к базе
|
|
|
RE: зашифровать пароль - 2006-11-17 20:03:35.623333
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
ну поставь их в зависимость
|
|
|
RE: зашифровать пароль - 2006-11-17 20:46:53.373333
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
quote:
ORIGINAL: alexbozhko ну поставь их в зависимость Да нельзя пользуну знать пароль к базе. Тем более есть софт, где нельзя испоьзовать пароль. Вот пример кода pFIBDatabase1.DBParams.Add('password=' + deshifr('зашифрованный пароль')) после запуска программы в оперативной памяти можно найти это: "password=не зашифрованный пароль" вопрос: что нужно сделать, чтобы не был виден не зашифрованный пароль
|
|
|
RE: зашифровать пароль - 2006-11-17 23:02:52.013333
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Ну хэш сделай! Это функция, не имеющая обратной (теоритически). Из нешифрованного шифрованное получить можешь А обратную операцию - нет deshifr - невозможен!
|
|
|
RE: зашифровать пароль - 2006-11-17 23:14:56.326666
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
в компонент pFIBDatabase1 нужно передавать не зашифрованный пароль.
|
|
|
RE: зашифровать пароль - 2006-11-18 12:35:28.296666
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Так при запуске проси у юзера пароль. Генри хэш. Отдавай его БД в компонент pFIBDatabase1 Если прошел пароль (а реальным паролем БД будет ХЭШ юзерского пароля), то приложение запустится Не прошел - закрылось. А дальше тебе нужно сделать так, что бы к БД можно было доступиться только из программы. (ну, что бы хэш снифером не сорвали и не подставили) Думаю, что это можно сделать настройками сервака. В памяти сам пароль не останется. Останется только хэш. А хэш ничего не даст. Так как если ты пытаешься его впялить из другого приложения - сервак не пустит ну, если твои юзеры раздербанят хэш, то тебе не фаерберд нужен :) Только все-равно мне не совсем ясна схема распределения прав. Зачем скрывать от юзера пароль доступа к БД? Каждый юзер может иметь свои права на БД, и, соответственно, свой пароль.
|
|
|
RE: зашифровать пароль - 2006-11-18 21:01:14.170000
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
это прога по тестированию студентов, пароля у них нету
|
|
|
RE: зашифровать пароль - 2006-11-20 18:00:21.996666
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
А… Ну ясно. Интрудер на интрудере :) Смотри. Как поступал я. Во-первых пароли нигде не хранятся. Факт подключения в БД - является и допуском на запуск программы. Вводится пароль, от него генерируется хэш. Параметром хэш-функции может быть комбинация пароль+IP+текст окна проге. Реальным паролем на БД есть хэш. И именно он проверяется базой. Соединение установлено-работаем Нет - выход из программы. Пароль, кстати, в памяти не останется. Мы его раз ввели, установили соединение и затерли текст. Опасность в том, что может быть перехвачен хэш. В программу хэш не запихнешь. Но можно подставить его в утилиту администрирования. Тут есть два пути. 1. Делается админка и только админ может пустить машину на сдачу теста (тупо активировать пользователя БД). 2. Создается дополнительная таблица, куда вписываются параметры сессии юзера. И как только они не совпадают тригер в базе убивает соединение. А вообще я в свое врямя как СУБД Oracle использовал Там пользовательскими сессиями проще управлять Возможностей больше
|
|
|
RE: зашифровать пароль - 2006-11-21 11:57:01.780000
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
Спасибо за дельные советы. Я решил пойти другим путем. Изменить структуру базы так, что бы знание пароля ничего не давало. ЗЫ Кстати, в голове крутился и ваш вариант. ;)
|
|
|
RE: зашифровать пароль - 2006-11-21 12:03:48.183333
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Но если объем тестируемых достаточно велик (скажем в масштабах всего ВУЗа) то советую обратить внимание на Oracle (он сейчас бесплатный с некоторыми ограничениями, для этих целей - вполне… а для ВУЗов и платная версия копейки стоит)
|
|
|
RE: зашифровать пароль - 2006-11-22 00:35:30.746666
|
|
|
JOHN_PROFF
Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
|
У меня единая база в которой не только тесты, уже более 100 таблиц. Если переходить, то очень много переделовать придется. Темболее некоторый софт до сих пор пишется.
|
|
|
RE: зашифровать пароль - 2006-11-22 00:49:26.890000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Понимаю :( Сам был в такой ситуации.
|
|
|
|
|