Репликация security2.fdb

Методы, механизмы и инструментарий для репликации

Модератор: kdv

Ответить
VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Репликация security2.fdb

Сообщение VerLeon » 13 янв 2009, 09:24

При переходе с IB на FB возникла проблема с репликацией паролей пользователей. На IB мы просто делали запрос к admin.ib, вытаскивали логины и пароли (в том виде, в каком они там лежат, т.е. уже хешированые) и потом их так же вкатывали напрямую в admin.ib. Понятно, что такая фишка с security2.fdb в FB не прокатит. Но как тогда реплицировать пароли?
Единственное, что приходит в голову - хранить их в самой базе в зашифрованном виде и передавать их так же, как и остальные данные из базы, но это же новая дыра в безопасности. Т.е. если стандартной дырой раньше было то, что если удалось получить файл базы данных, то открыть ее, используя свою admin.ib или security2.fdb - не проблема, то с такой реализацией открыв ее, можно узнать и реальные пароли (то, что они зашифрованные все-таки не такая большая проблема для взломщиков, что один зашифровал, другой всегда расшифрует) и влезть с этим паролем уже на боевую базу с нехорошими намерениями.
В принципе у нас конечно не база Пентагона и вряд ли ее кто-то серьезно будет ломать, да и если мы допускаем, что можно стянуть файл базы, то логично допустить и то, что можно стянуть и security2, но все-таки как-то это неприятно..
Может есть другой выход?

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Репликация security2.fdb

Сообщение WildSery » 14 янв 2009, 08:43

Много вопросов.
Почему не прокатит?
С чего взято, что "зашифрованные данные не такая большая проблема для взломщиков"?
Для чего вообще нужна "репликация паролей пользователей"?

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: Репликация security2.fdb

Сообщение VerLeon » 14 янв 2009, 09:38

1. Не прокатит, потому что пароли вытащить из security2.fdb я не могу - сервер не дает к ней прямого доступа, а API не дает паролей. Можно, конечно, в момент собирания пакета для репликации делать копию security2 и обращаться напрямую к ней, но по-моему это еще больший изврат.
2. Зашифрованные данные не проблема, потому что при наличии времени и желания любые методы шифрования вскрываются, если имеются в распоряжении все элементы зашифрованного объекта. Впрочем, на этом не хотелось бы заострять дискуссию. Я не утверждаю, что этот метод с хранением паролей в базе будет какой-то огромной дырой в безопасности, просто хотелось бы по возможности этого избежать.
3. Репликация паролей и вообще репликация у нас используется в так называемом "почтовом модуле". Т.е. одно предприятие работает на нескольких серверах с несколькими базами, которые синхронизируются посредством репликации. Стандартная схема при этом офис-филиалы, т.е. в офисе формируется политика, на местах ее выполняют, ну и потом результаты работы опять собираются в офисе для аналитики. И в том числе в офисе принимают на работу персонал, которому выдают доступ на работу с данными в том числе и на работу в филиалах. Проще говоря админ (ну или некий ответственный за такие вещи человек) в офисе выдал пароль новому оператору, которого приняли на работу в филиал, этот пароль посредством репликации "приехал" в филиальную базу (ну точнее в филиальный сервер) и оператор начал там работать. Во-первых это просто удобно, а во-вторых в филиалах бывает что и вообще нет своего постоянного админа, т.е. оперативно завести нового юзера просто некому.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Re: Репликация security2.fdb

Сообщение WildSery » 14 янв 2009, 12:01

Не приходилось решать такую задачу, как прямая работа с базой паролей файрбёрда, с ходу каких-то приемлемых путей не вижу.
Возникнула бы предо мной сейчас такая задача, я решал бы её именно способом ведения паролей в БД и репликации штатными методами.

Как человек без глубоких знаний в криптографии, но разбирающийся в ней, я скажу, что упереть вместе с основной БД ещё и security2 значительно легче, чем вскрыть даже самую простую "зашифровку" пароля.
Поверьте, даже такие "дырявые" алгоритмы шифровки, как скажем, в ZIP-файле, где зная примерное содержимое, можно разбить ключи на группы и ускорить подбор на пару порядков по сравнению с "брутфорсом", при стойком пароле (более 12 символов, скажем) на обычном компьютере будут ломаться месяцами, а то и годами.
Дискредитированы только самые слабые и старые алгоритмы шифрования.

Вообще, в криптографии гораздо больше внимания уделяется не стойкости алгоритмов - они-то как раз "ого-го!", а защите памяти от дампа, защите канала передачи, и т.д., т.е. вещам, связанным с ловлей паролей и данных, когда они используются (в расшифрованном виде, разумеется), а не когда хранятся.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Re: Репликация security2.fdb

Сообщение hvlad » 14 янв 2009, 12:03

VerLeon писал(а):И в том числе в офисе принимают на работу персонал, которому выдают доступ на работу с данными в том числе и на работу в филиалах. Проще говоря админ (ну или некий ответственный за такие вещи человек) в офисе выдал пароль новому оператору, которого приняли на работу в филиал, этот пароль посредством репликации "приехал" в филиальную базу (ну точнее в филиальный сервер) и оператор начал там работать.
Ну так и "реплицируй" пароли а не неизвестные тебе подробности реализации их хранения, которые могут меняться со сменой версии сервера...

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: Репликация security2.fdb

Сообщение VerLeon » 14 янв 2009, 12:24

Т.е. без хранения где-то паролей все-таки не обойтись.
В общем-то не так уж это и пугает, просто подумал, может я чего не знаю и как-то можно это по-другому разрулить.

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

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Репликация security2.fdb

Сообщение Dimitry Sibiryakov » 14 янв 2009, 19:38

А репликация происходит телепатически или филиалы всё-таки как-то связаны? Что мешает админу в офисе добавить пользователя на филиальный сервер используя эту связь?

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: Репликация security2.fdb

Сообщение VerLeon » 14 янв 2009, 20:16

Dimitry Sibiryakov писал(а):А репликация происходит телепатически или филиалы всё-таки как-то связаны? Что мешает админу в офисе добавить пользователя на филиальный сервер используя эту связь?
Транспорт реплик может быть какой угодно. У нас реализованы варианты через e-mail или FTP, но возможно использование стороннего транспорта.
Т.е. онлайн не гарантирован. Собственно изначально этот почтовый модуль у нас и появился как средство организации работы с удаленными подразделениями, которые не имеют качественных линий связи. С тех пор много времени прошло, конечно, сейчас уже не все наверное и знают, что такое диалап, но тем не менее выставлять онлайн в системные требования не хотелось бы... Да и не очень это удобно. У нас был клиент, у которого было больше 40 филиалов. В текущей схеме при появлении нового пользователя админ завел бы его в офисной базе и все, этот юзер уехал на все филиалы (список юзеров общий на всю систему). А так админу пришлось бы лезть на конкретный филиал, а может и не на один, например, если этот новый юзер - DBA, то вообще на все филиалы пришлось бы лезть.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Репликация security2.fdb

Сообщение Dimitry Sibiryakov » 15 янв 2009, 13:46

Ну вот и отлично. Запоминайте заведение нового пользователя и рассылайте эти данные по филиалам вместе со всеми остальными данными. Если эти файлы обрабатывает ваша собственная софтина - научите её добавлять пользователя через Services API. Если рассылаются простые скрипты, которые обрабатываются isql-ем - примените ту же схему для gsec. Работы на неделю максимум.

VerLeon
Сообщения: 44
Зарегистрирован: 24 ноя 2007, 08:43

Re: Репликация security2.fdb

Сообщение VerLeon » 15 янв 2009, 13:53

Dimitry Sibiryakov писал(а):Ну вот и отлично. Запоминайте заведение нового пользователя и рассылайте эти данные по филиалам вместе со всеми остальными данными. Если эти файлы обрабатывает ваша собственная софтина - научите её добавлять пользователя через Services API. Если рассылаются простые скрипты, которые обрабатываются isql-ем - примените ту же схему для gsec. Работы на неделю максимум.
Да на день даже, уже заканчиваю :)
Просто не хотелось хранить пароли пользователей в самой базе, ну да меня тут убедили, что это совсем не страшно :)

Ответить