Зашифровать пароль
Модератор: kdv
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
Зашифровать пароль
Нужно подключиться к FB так, что бы невозможно было перехватить пароль (не снифиром, не анализируя память и т.п.)
Дело в том, что в проге он зашифрован, но в памяти лежит в открытом виде, т.к. в компонент TpFIBDatabase должна передоваться строка password=***
Дело в том, что в проге он зашифрован, но в памяти лежит в открытом виде, т.к. в компонент TpFIBDatabase должна передоваться строка password=***
Re: Зашифровать пароль
1. Не подлкючаться по сети, использовать Embedded + комплекс мер по локальному сокрытию пароля и кода подключения.JOHN_PROFF писал(а):что бы невозможно было перехватить пароль (не снифиром, не анализируя память и т.п.)
2. Embedded не использовать, оставить комплекс мер из п.1 + дополнительный комплекс мер по шифрованию трафика, ZeBeDee например. Плюс, конечно, защита сервера.
3. При чём тут FB ?
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
Re: Зашифровать пароль
Нужно именно по сетиWildSery писал(а):1. Не подлкючаться по сети
все естьWildSery писал(а):оставить комплекс мер из п.1 + дополнительный комплекс мер по шифрованию трафика, ZeBeDee например. Плюс, конечно, защита сервера.
короче нужно передать пароль в fbclient.dll в зашифрованном виде (на локальной машине)
Re: Зашифровать пароль
Ы?JOHN_PROFF писал(а):Нужно именно по сети...
...(на локальной машине)
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
Тогда подскажите пожалуйста как подключиться из Delphi к FB что бы в оперативной памяти клиента не светился пароль.kdv писал(а):клиент передает серверу пароль в зашифрованном виде. затем сервер шифрует его еще раз и сравнивает с тем что лежит в isc4.gdb/admin.ib/security.fdb.
Для доступа использую компоненты FIBPlus.
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
Вот пример кода
после запуска программы в оперативной памяти можно найти это: "password=не зашифрованный пароль"
вопрос: что нужно сделать, чтобы не был виден не зашифрованный пароль
Код: Выделить всё
pFIBDatabase1.DBParams.Add('password=' + deshifr('зашифрованный пароль'))
вопрос: что нужно сделать, чтобы не был виден не зашифрованный пароль
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
-
- Сообщения: 15
- Зарегистрирован: 17 ноя 2006, 13:11
1. сделать dllку с функцией автогенерации пароля по к-либо алгоритму (я делал от времени), туда же запихнуть API потроха для работы с пользователями isc_add_user и т. д.
2. на основе dllки сделать UDF->ХП с созданием пользователя и размещением инфо о нем в таблице например SEC$USERS
3. в коде клиента предоставить пользователю задавать данные о себе, в т. ч. user_name (для маньяков можно автоматически генерировать) и пароль (ненастоящий)
4. юзер вводит инфу она передается в ХП, та обращается к UDF dllки, dllка генерит настоящий пасс, регистрирует юзера, отдает пасс в UDF->ХП, та заносит всю инфу в т. ч. пользовательский пароль (ненастоящий), пароль (настоящий), user_name и прочее в табличку SEC$USERS
5. при авторизации инфа (имя, пользовательский пароль) передается в ХП авторизации, та сравнивает пароль с настоящим паролем и авторизует пользователя (средствами API)
Способ конечно еще тот, но, по крайней мере, обычный юзер не войдет напрямую в БД (при помощи админ утилит) под своим "ненастоящим" паролем, настоящий пароль можно конечно поймать, но сложнее, чем когда он напрямую передается от клиента к серверу.
Есть одно НО, если злоумышленник получает физический доступ к БД, все пользователи у него как на ладони:) но это вопрос защиты БД
2. на основе dllки сделать UDF->ХП с созданием пользователя и размещением инфо о нем в таблице например SEC$USERS
3. в коде клиента предоставить пользователю задавать данные о себе, в т. ч. user_name (для маньяков можно автоматически генерировать) и пароль (ненастоящий)
4. юзер вводит инфу она передается в ХП, та обращается к UDF dllки, dllка генерит настоящий пасс, регистрирует юзера, отдает пасс в UDF->ХП, та заносит всю инфу в т. ч. пользовательский пароль (ненастоящий), пароль (настоящий), user_name и прочее в табличку SEC$USERS
5. при авторизации инфа (имя, пользовательский пароль) передается в ХП авторизации, та сравнивает пароль с настоящим паролем и авторизует пользователя (средствами API)
Способ конечно еще тот, но, по крайней мере, обычный юзер не войдет напрямую в БД (при помощи админ утилит) под своим "ненастоящим" паролем, настоящий пароль можно конечно поймать, но сложнее, чем когда он напрямую передается от клиента к серверу.
Есть одно НО, если злоумышленник получает физический доступ к БД, все пользователи у него как на ладони:) но это вопрос защиты БД
-
- Сообщения: 6
- Зарегистрирован: 11 мар 2008, 13:26