![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| 3D-Dragon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
Я в шоке
Пишу прогу использую базу FireBird, для доступа на форме лежит TpFIBDatabase. В параметрах подключения к базе естественно прописываю логин и пароль SYSDBA|masterkey Сижу ломаю голову как защитить базу, ответ известен - сменить пароль. и в этот момент возникает мысль посмотреть файл скомпилированной проги по обычному F3 Увиденное вводит меня в столбнячное состояние жму F3 -> F7 -> в поле ввода ввожу "password=" и жму искать, получаю фрагмент: _ctype=WIN1251password=masterkeyuser_name=SYSDBAsql_role_name= DefaultTransactionTransactionRead SQLDialectTimeout LeftуTop TpFIB Ну и как мне ЭТО спрятать ? Ведь поменяю я пароль на базу, а он тоже будет виден невооруженным глазом !!! Прикол №2 Есть у меня прога и мне нужно было посмотреть структуру базы (Access) для изучения но никак я не мог до неё добраться. Нашел чудную прогу "Passware Password Recovery Kit" и с её помощью добрался до пароля. Сегодня жму F3 на файле это проги, ввожу строку поиска "password=", жму искать и получаю: WidthZ TADOConnectionADOConnection1ConnectionStringN Provider=MSDASQL.1;Password=Herj<kelbt;Persist Security Info=True;User ID=Admin;Data Source=База данных MS Access;Extended Properties="DSN=База данных MS Access;DBQ Это что получается ? Все пароли к базам просто так доступны и нафик не нужны навороченные креки ? Разъясните, пож-та ! |
|||
|
||||
| Wowa |
|
|||
|
Эксперт Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Но это ведь вроде шифрованный пароль? или нет? |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
Ну это не совсем так. Дело в том, что как я понял ты смотрел бинарники самих программ, которые подключаються с каким-то(не известным тебе) паролем к базе данных. А ты не пробовал получить этот пароль из самой базы данных? (как получиться не забодь меня оповестить) То, что пароль к базе данных в чистом виде лежит в бинарнике это уже серьёзные проблемы с безопастностью у разработчиков самой программы, а не у тех, кто проектировал и писал соответвующие драйвера и программы для работы с конкретной бд, хотя если это один и тот же человек, то думаю пора призадуматься стоит ли использовать такое ПО и такую бд у себя на работе. |
|||
|
||||
| 3D-Dragon |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
Нет это не шифрованный пароль, просто набор символов такой. Точно такой же пароль я получал и программой Passware |
||||
|
|||||
| 3D-Dragon |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
Admin
Ну понятное дело, что из самой базы я не смогу получить пароль, но ведь в бинарнике то он доступен !!! И доступен не только в проге, использующую FireBird, а и с базой Access те же грабли Вот что меня удивляет ...
Так я же за этим и пришел на форум, чтобы научиться этой безопасности Объясните, пож-та, как мне зашифровать-скрыть в бинарнике данные на вход в базу. |
||||
|
|||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
1) Обычно такие данные хранят не в бинарнике а во внешнем файле естественно в зашифрованном виде
2) Пароль всегда можно выяснить оттрассировав экзешник, как бы Вы его не шифровали всегда можно отследить чтО именно посылается в базу данных, поэтому это делается не так. Если нужен хороший уровень защиты то надо сделать так: - все данные в БД достаются через Stored Procedures - пользователь имеет право только запускать Stored Procedures, но не может читать таблицы или смотреть/редактирвать Stored Procedures - Для каждого пользователя создаётся свой массив Stored Procedures, которые обеспечивают доступ только к его данным. Тогда даже если пользователь и узнает пароль, он не сможет вытащить ничего что ему не положено. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| 3D-Dragon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
Vit
Большое человеческое СПАСИБО ! А какие еще есть варианты или указанный наиболее приемлемый ? Слабо я знаю еще как создавать эти Stored Procedures и как ими пользоваться Ссылочкой не кинешь где бы я мог восполнить этот пробел ? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Я других способов не знаю. Первый способ простой - метод шифрования можно взять в нашем FAQ, надёжность способа очень низкая при любом методе шифрования - от чайника защитит, но не от взломщика. (теоретически можно и файл прикрепить к исполняемому модулю как ресурс-тоже есть в нашем FAQ)
Второй способ весьма надёжен и считается в настоящее время стандартом защиты баз данных. Stored Procedure - это процедура (считай кверя в особом формате) сохранённая на сервере, вызов её можно произвести через обычную кверю (Exec) или при помощи специальных компонентов. Я с Вашей базой данных не работал, не знаю... Попробуйте поискать в инете инфу по ключевым словам... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| 3D-Dragon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
Vit
Спасибо, буду просвещаться Еще такой вопрос: Создам я пользователя, дам ему ограниченные права и т.д. Как мне потом все эти привилегии создать при инсталяции программы. Я вижу путь такой. Есть сама прога, файл с базой (*.gdb) и инсталяшка самого сервера (FireBird) Беру прогу для создания инсталяционного пакета, запихиваю туда эти файлы, определяю порядок установки, запуска и т.д. - это всё понятно. А вот как мне прописать в инсталяхе создание юзера с определенными правами, да и поменять дефолтовые настройки (SYSDBA-masterkey) ? И каким лучше пакетом для создания инсталяшек пользоваться ? Их развелось сейчас очень много (InstallShield, InnoSetup, CreateInstall, etc.) |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Обычно во всех базах данных есть готовые Stored Procedure или специальные запросы которые могут создавать пользователей, менять пароли, и т.п. - читай документацию по свое базе данных. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| XpyDi |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 25.11.2002 Где: USSR Репутация: нет Всего: 2 |
2Vit
А что мешает мне, как взломшику не имея пароль к базе данных просто использовать эти же Stored Procedure для достижения своих целей. Или это просто вариант ограничить возможности взломщика правами доступными самой подопытной программе? |
|||
|
||||
| 3D-Dragon |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 7.1.2003 Где: Днепропетровск, U A Репутация: нет Всего: нет |
XpyDi
О, свежая струя Приветствую, и можно подробнее о "вероломных планах" ? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Именно так! Процедуры на то и процедуры, что они вовсе не дают возможность делать что хочешь в отличие от доступа к базе с администраторскими правами. Обычно сами процедуры составлены так, что в них жёстко прошиты права доступа - если процедура сделана для юзера "Вася" то как её ни вызывай, она не выдаст ни строчки информации о юзере "Петя". (Это так называемое "горизонтальное" ограничение). Кроме того процедура может не давать доступа к любым данным, например у тебя в таблице хранится "имя"-"адрес"-"номер кредитки" - твоя процедура возвращает только имя и адрес и юзер просто физически через эту процедуру не может узнать номер кредитки (Это так называемое "вертикальное" ограничение). Кроме того работая только с процедурами (текст которых пользователю тоже не доступен) пользователь не имеет ни малейшего понятия о структуре базы данных - ни о названиях таблиц, полей, ни о взаимоотношениях и т.п., что очень затрудняет взлом. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Пусть пользуется. При правильно написанных процедурах ничего нового он не узнает, кроме того, что ему доступно через программу. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| SmaLL |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 557 Регистрация: 17.12.2002 Где: Voronezh Репутация: 1 Всего: 2 |
Я что-то не совсем понял - что мешает "Пете" вызвать хранимку для "Васи" ? -------------------- Что ни делается - всЁ к лучшему! SmallWeb Мой адрес не дом и не улица, мой адрес родной пивзавод! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |