Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

зашифровать пароль

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> зашифровать пароль
Имя
Сообщение << Старые топики   Новые топики >>
зашифровать пароль - 2006-11-17 12:01:46.920000   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
Пишу на Delphi. При коннекте к Firebird нужно передовать пароль в строковом виде. Даже если в проге он будет в зашифрованном виде, то при подключении к Firebird его можно будет вытащить из памяти, а это плохо. Кто что посоветует для защиты.
Post #: 1
RE: зашифровать пароль - 2006-11-17 13:35:56.700000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Из какой памяти?
На рабочей станции или на серваке?
Или снифером перехватить при передаче?

Ну на серваке ты никак не спрячешь
Это головная боль админов.
От снифера защититься можно.
Передавай хэш.
Настройками сервака делай доступ к БД только из-под проги.
ХЭШ перехватил, а пароль не расшифруешь.

Еще можешь трехзвенку соорудить…
Но устроит ли это тебя - от  задачи зависит
Post #: 2
RE: зашифровать пароль - 2006-11-17 14:20:52.996666   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
нужно защитить прогу от просмотра памяти (занимаемой прогой) на стороне клиента, все остальное решаемо.
Post #: 3
RE: зашифровать пароль - 2006-11-17 15:39:27.623333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Опять не въеду
Если пользователь легальный, то теоритически он угрозы не представляет.
Значит доступ к памяти на клиентской машине можно осуществить только по сети.

Это вопросы администрирования.

Если не легальный, то, пока он не залогинится, пароля в памяти не будет


Post #: 4
RE: зашифровать пароль - 2006-11-17 16:18:30.106666   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
quote:

ORIGINAL: alexbozhko
…Если пользователь легальный, то теоритически он угрозы не представляет….

В том то и дело, что представляет и может стянуть пароль к базе, а тут еще и инфу надыбал, что в fbclient.dll он всё равно открыто передаётся [:(]
Post #: 5
RE: зашифровать пароль - 2006-11-17 17:16:44.060000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
А что за неординарная задача такая?
Если юзер знает пароль на программу то какая угроза от него угроза.
Пароль к БД (реальный)  это хэш того пароля который в проге.
Допустим он вычисляет хэш,
но тогда задача звучит совершенно по другому.

Как сделать так, что бы коннект был возможен только из проги, а не из, к примеру, IBExpert'а.
ну это я так… рассуждаю…

Пароль к Бд попадает в память, только тогда, когда осуществлен коннект
Поэтому и увидеть реально его может только юзер, который его знает
В чем проблема?


Post #: 6
RE: зашифровать пароль - 2006-11-17 17:38:26.733333   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
пароль к проге <> пароль к базе
Post #: 7
RE: зашифровать пароль - 2006-11-17 20:03:35.623333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
ну поставь их в зависимость
Post #: 8
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=не зашифрованный пароль"
вопрос: что нужно сделать, чтобы не был виден не зашифрованный пароль
Post #: 9
RE: зашифровать пароль - 2006-11-17 23:02:52.013333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Ну хэш сделай!
Это функция, не имеющая обратной (теоритически).
Из нешифрованного шифрованное получить можешь
А обратную операцию - нет
deshifr - невозможен!

Post #: 10
RE: зашифровать пароль - 2006-11-17 23:14:56.326666   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
в компонент pFIBDatabase1 нужно передавать не зашифрованный пароль.
Post #: 11
RE: зашифровать пароль - 2006-11-18 12:35:28.296666   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Так при запуске проси у юзера пароль.
Генри хэш.
Отдавай его БД в компонент pFIBDatabase1
Если прошел пароль (а реальным паролем БД будет ХЭШ юзерского пароля), то приложение запустится
Не прошел - закрылось.
А дальше тебе нужно сделать так, что бы к БД можно было доступиться только из программы.
(ну, что бы хэш снифером не сорвали и не подставили)
Думаю, что это можно сделать настройками сервака.
В памяти сам пароль не останется.
Останется только хэш.
А хэш ничего не даст.
Так как если ты пытаешься его впялить из другого приложения - сервак не пустит
ну, если твои юзеры раздербанят хэш, то тебе не фаерберд нужен :)

Только все-равно мне не совсем ясна схема распределения прав.
Зачем скрывать от юзера пароль доступа к БД?
Каждый юзер может иметь свои права на БД,
и, соответственно, свой пароль.


Post #: 12
RE: зашифровать пароль - 2006-11-18 21:01:14.170000   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
это прога по тестированию студентов, пароля у них нету
Post #: 13
RE: зашифровать пароль - 2006-11-20 18:00:21.996666   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
А… Ну ясно. Интрудер на интрудере :)

Смотри. Как поступал я.
Во-первых пароли нигде не хранятся.
Факт подключения в БД - является и допуском на запуск программы.
Вводится пароль, от него генерируется хэш. Параметром хэш-функции может быть комбинация пароль+IP+текст окна проге.
Реальным паролем на БД есть хэш.
И именно он проверяется базой.
Соединение установлено-работаем
Нет - выход из программы.
Пароль, кстати, в памяти не останется. Мы его раз ввели, установили соединение и затерли текст.
Опасность в том, что может быть перехвачен хэш.
В программу хэш не запихнешь.
Но можно подставить его в утилиту администрирования.


Тут есть два пути.
1. Делается админка и только админ может пустить машину на сдачу теста (тупо активировать пользователя БД).
2. Создается дополнительная таблица, куда вписываются параметры сессии юзера.
И как только они не совпадают тригер в базе убивает соединение.

А вообще я в свое врямя как СУБД Oracle использовал
Там пользовательскими сессиями проще управлять
Возможностей больше


Post #: 14
RE: зашифровать пароль - 2006-11-21 11:57:01.780000   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
Спасибо за дельные советы. Я решил пойти другим путем. Изменить структуру базы так, что бы знание пароля ничего не давало.
ЗЫ
Кстати, в голове крутился и ваш вариант. ;)
Post #: 15
RE: зашифровать пароль - 2006-11-21 12:03:48.183333   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Но если объем тестируемых достаточно велик (скажем в масштабах всего ВУЗа)
то советую обратить внимание на Oracle (он сейчас бесплатный с некоторыми ограничениями, для этих целей - вполне… а для ВУЗов и платная версия копейки стоит)
Post #: 16
RE: зашифровать пароль - 2006-11-22 00:35:30.746666   
JOHN_PROFF

Сообщений: 9
Оценки: 0
Присоединился: 2006-11-17 11:48:06.683333
У меня единая база в которой не только тесты, уже более 100 таблиц. Если переходить, то очень много переделовать придется. Темболее некоторый софт до сих пор пишется.
Post #: 17
RE: зашифровать пароль - 2006-11-22 00:49:26.890000   
alexbozhko

Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
Понимаю :(
Сам был в такой ситуации.
Post #: 18
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> зашифровать пароль







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.