Тарифы Услуги Сим-карты

Подключение к базе данных Microsoft Access. Защита с модификацией файла. Защита изменением версии БД

И другие. В основном они показывают пароль длиной от 2-16 символов (зависит от версии программы). Можно было ограничиться этим ответом, но так как мы занимаемся детально вопросами программирования и защиты базы данных рассмотрим его более серьезно.
Описание алгоритма пароля для Access 2000 у меня нет, хотя кусочки информации по шифрованию Аccess 97 в англоязычном Интернете есть. Сущность информации в том, что пароль шифруется простейшим алгоритмом XOR и его смещение от начала файла = 67 байт. Но этих данных явно недостаточно для расшифровки. Поэтому, попробуем составить программу, которая сама проанализирует пароль. Сущность предложенного метода заключается в многократном сравнении файлов с паролями и без них, и поиске закономерностей. Все результаты эксперимента сохраняются в таблице и используются для анализа пароля. Примеры программ для определения пароля Access 2000 записаны в 7 примере файла: la_prot.mdb
Таким образом, мы сможем определить а) длину пароля; б) смещение пароля от начала файла; в) позицию меняющихся байтов г) маску пароля (слово для расшифровки). Используя функцию funAnalysisPassword, можно получить следующую информацию.
1. Cмещение пароля от начала файла 67 байт.
2. Маска пароля составляет 40 байт (длина пароля 20 символов)
3. Байты маски:
055 056 212 156 250 163 206
040 230 118 038 138 096 049 004 123 054
144 226 223 177 018 100 019 067 170 063
177 051 081 241 121 091 247 037 124 042
...
Байты Маски меняются в зависимости от даты, установленной на компьютере. Например, на 17.03.2001 = 228,107,236. Проверено, что 67 байт - меняется ежедневно, 68 байт - ежегодно, а 69 байт имеет еще более длительный период изменения. Байты меняются при каждом создании базы данных. Отсюда можно сделать - что это байты, которые сохраняют некоторую информацию по дате создания базы данных.
4. Алгоритм шифрования XOR.
Пример зашифровки: p XOR m = ?.
Пример расшифровки: ? XOR m = p. В примерах используются следующие обозначения: p-байт пароля базы данных, m - байт маски пароля, ? - зашифрованный байт.
5. Символы хранятся в формате UNICODE, т.е 2 байта на символ, поэтому необходимо провести конвертацию строки пароля. Это делается так: password=StrConv(s, vbFromUnicode)
Таким образом, для нахождения пароля достаточно определить байты 67-69, используя информацию из байтов 115-117. Задачка очень интересная и оригинальная, так что подумайте немного сами. В приводимых же примерах la_prot маска пароля определялась по другому, приблизительно. Для этого смотрите функцию funGetMaskPassword. Сущность метода. а) читаем дату создания файла FileDateTime(myDataBase), б) устанавливаем время Time = timeDB, в) создаем незащищенную базу и читаем маску в массив, г) возвращаем текущее время и удаляем лишние файлы.
После того как файл расшифровывался, запускалась программа для тестирования пароля. Используя эту программу, можно находить некоторые байты пароля обычным перебором символов. Код ее приведен ниже:
Public Function funTestPassword(strMdb As String, strPassword As String) As Boolean
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strMdb & ";Mode=Read;Jet OLEDB:Database Password=" & strPassword
cnn.Open
" Далее идет проверка на ошибку
PS. В примере 7 (la_prot.mdb) Вы найдете и другие функции, работающие с паролем. Использование их необязательно, т.к. если Вы знаете пароль, то его можно удалить или изменить, используя Access, но для проверки разных алгоритмов могут пригодиться.

Чтобы предотвратить несанкционированное использование базы данных Access, ее можно зашифровать с помощью пароля. После этого расшифровать базу данных и удалить пароль можно будет, только введя его. В этой статье описано, как зашифровать базу данных с помощью пароля, а также расшифровать ее и удалить из нее пароль.

В более ранних версиях Access можно создать учетные записи пользователей и паролей, используя функцию с именем безопасности на уровне пользователя. В этом разделе рассматривается безопасности на уровне пользователя, который не поддерживается при использовании формате ACCDB.

Зашифрованную базу данных, пароль от которой утерян, невозможно использовать. Если пароль неизвестен, его нельзя удалить.

В этой статье

Обзор

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

    Новая функция шифрования действует только в отношении баз данных в формате ACCDB.

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

    При шифровании баз данных, созданных в более ранних версиях Access (MDB-файлов), или применении к ним паролей используются соответствующие функции из Access 2003.

Шифрование базы данных с помощью пароля

В этом разделе описано, как создать пароль и применить к базе данных Access рабочего стола.

Шифрование базы данных

Шифрование разделенной базы данных

Чтобы зашифровать разделенную базу данных, эту процедуру нужно выполнить для ее интерфейсной и серверной части. При шифровании серверной базы данных изменяются связи с ее таблицами.

Открытие и расшифровка базы данных

Напоминание. Обязательно запомните пароль. Забытый пароль невозможно восстановить.

Файл базы данных Microsoft Access, подобно другим документам Office, можно защитить с помощью пароля на открытие. Скопируйте файл BDTur_firm.mdb, с которым мы работали в первой главе, назовите его "BD_withPassword.mdb". Для установки пароля нам понадобится открыть базу в так называемом монопольном, однопользовательском режиме. Дело в том, что возможность установки пароля при одновременной работе нескольких пользователей 1Microsoft Office Access 2003 поддерживает одновременную работу 255 пользователей. приводила бы к ошибкам, поэтому MS Access не предоставляет ее. Запускаем программу, в главном меню переходим "Файл \ Открыть", переходим в нужную директорию, выделяем файл, из выпадающего списка значений кнопки "Открыть" выбираем "Монопольно" (рис. 3.6):

Появляется окно базы данных. В главном меню переходим "Сервис \ Защита \ Задать пароль базы данных", в окне "Задание пароля базы данных" вводим пароль "12345" и подтверждаем его (рис. 3.7).


Рис. 3.7.

Теперь всякий раз при открытии этого файла на любом компьютере нужно будет вводить указанный пароль (рис. 3.8).


Рис. 3.8.

Для изменения пароля нам потребуется удалить существующий и затем задать новый. Снова открываем базу в монопольном режиме, в главном меню переходим "Сервис \ Защита \ Удалить пароль базы данных". В появившемся окне вводим текущий пароль, после нажатия кнопки "OK" он будет удален. Для ввода нового значения опять переходим к пункту меню "Задать пароль базы данных", на этот раз введем более сложный пароль "q1w2e3r4t5y6u7i8o9p0".

Защита файла с помощью пароля - крайне ненадежный способ, его нельзя применять в реальных приложениях. Пароль хранится в открытом виде, и его очень легко вскрыть. В Интернете множество утилит, предназначенных для этого, например, Access Password Recovery Genie (http://www.lenosoft.com). После запуска этой программы выбираем файл MS Access, пароль к которому нужно подобрать, - и пароль моментально появляется в главном окне (рис. 3.9).


Рис. 3.9.

Далее нам снова понадобится вводить пароль - чтобы не тратить время, установите снова его значение равным "12345". Займемся теперь подключением к файлу базы данных из приложений. Конечно, вы теперь будете сомневаться, применять ли вообще задание пароля как средство безопасности, но нам в любом случае нужно научиться подключаться даже к такой, "ненадежной" базе. Создайте новый Windows-проект и назовите его "VisualBD_withPassword". Из окна Toolbox перетаскиваем на форму элемент управления DataGrid, его свойству Dock устанавливаем значение "Fill". Переходим на вкладку Data дважды щелкаем на объекте OleDbDataAdapter. В появившемся мастере настраиваем подключение к файлу BD_withPassword.mdb. Теперь в окне "Свойства связи с данными" при проверке соединения появляется сообщение об ошибке (рис. 3.10):


Рис. 3.10.

Исходя из текста ошибки, возникает естественное желание снять галочку "Пустой пароль" и в поле пароля ввести "12345". Но и на этот раз возникает ошибка 2Убедитесь также в том, что ваш файл базы данных не открыт в самой программе Microsoft Access. (рис. 3.11):


Рис. 3.11.

Дело в том, что интерфейс вкладки "Подключение" предназначен для ввода параметров учетной записи при защите на уровне пользователей. Далее мы рассмотрим ее. Здесь же снова устанавливаем галочку "Пустой пароль" и переходим на вкладку "Все". Дважды щелкаем на свойстве Jet OLEDB:Database Password (или, выделив его, нажимаем на кнопку "Изменить значение"), в появившемся окне "Изменение значения свойства" вводим пароль "12345" (рис. 3.12).


Рис. 3.12.

Переходим на вкладку "Подключение" - наконец нам удалось получить доступ к базе (рис. 3.13).


Рис. 3.13.

Нажимаем кнопку "OK" для закрытия окна "Свойства связи с данными", в следующих шагах мастера "Data Adapter Configuration Wizard" настраиваем извлечение всех записей из таблицы "Туристы". В последнем шаге мастера - включение пароля в строку connection string - выбираем кнопку "Include password"; мы будем изучать строку, сгенерированную мастером (рис. 3.14):


Рис. 3.14.

На панели компонент формы выделяем объект DataAdapter , переходим в его окно Properties и нажимаем на ссылку Generate dataset. Оставляем название объекта DataSet , предлагаемое по умолчанию. В конструкторе формы заполняем объект DataSet , а также определяем источник данных для элемента DataGrid :

public Form1() { InitializeComponent(); oleDbDataAdapter1.Fill(dataSet11); dataGrid1.DataSource = dataSet11.Tables.DefaultView; }

Здесь мы указываем индекс (равный нулю) единственной таблицы, находящейся в объекте DataSet .

Запускаем приложение. На форму выводятся данные из базы (

Широкое использование ms Access породило целый класс программ, позволяющих узнать "забытые" пароли к базам данных. Не знаю кто был первым, но похожи они друг на друга как близнецы.

Тестирование

Все программы, рассматриваемые в данном обзоре, справляются с паролями типа "may". Но далеко не все позволяют узнать нестандартные пароли. Результаты тестирования представлены в таблице. Подробнее о методах защиты можно прочитать в статье Защита и взлом баз данных Access . Здесь можно отметить, что лидером стал . Файл БД Access, защищённый паролем из 20 непечатных символов и заголовком другой версии так и остался неприступен. К сожалению неприступным остался только пароль, но не база данных. позволяет восстановить содержимое таблиц, а почти полностью воссоздаёт файл, включая таблицы, запросы, формы, макросы, отчеты и код модулей. В тестировании принимали участие зарегистрированные версии программ.

Позволяет открывать пароли базы данных Access. Кроме этого есть возможность удалить или заменить пароль для баз Access 97

Единственная из программ выдающая пароль в шестнадцатеричном виде, что позволяет видеть пароли, использующие непечатные символы. Это я раньше так думал, но на деле в шестнадцатеричный вид переводится строка и в результате толку от неё никакого. Базы Access 97 с паролем в 20 символов считает повреждёнными и не выдаёт никакого результата.

AOPR позволяет определять пароли для многих приложений MS. Применительно к БД Access он умеет определять:

  • Пароль базы данных
  • Владельца базы - имя пользователя (user) и его идентификатор (ID)
  • Информацию о владельцах объектов БД
Открыв в AOPR файл рабочих групп можно увидеть:
  • Имена пользователей и их пароли
  • Принадлежность пользователей к группам

Программа определяет пароли для БД формата 97 - 2000 - 2003. Для баз Access 97 возможно изменение и удаление паролей.

Надо отметить, что программа не стоит на мете в своём развитии. Алгоритмы определения паролей совершенствуются. Если в предыдущей версии (AOXPPR) для Access 97 - только первые 14 символов, а если встречает непечатные символы - говорит, что файл повреждён. Access 2k - нормально читает все 20 символов, но на Unicode выдаёт знаки вопроса. В описываемой версии нормально определены все пароли, и непечатные символы нормально копируются в буфер обмена.

Это набор утилит позволяющих узнавать пароли к очень большому числу приложений. С БД Access работает программа Office Key. Она позволяет определять пароли БД, группы, пользователей и их пароли по файлу рабочих групп. Аналогичные функции и у другой утилиты этого производителя - Access Key. Размер архива - 662 КБ. Она является самостоятельным продуктом, не входящим в состав Passware Kit.

Программа не позволяет узнать идентификаторы (ID) пользователей, хозяина БД и её объектов. Таким образом, по возможностям она уступает . Однако прекрасно справилась с тестами. Копирует в буфер обмена настоящий пароль, а не знаки вопроса. Нормально определяет пароли при замене последовательности в 40 байт, характерных для разных версий БД. Единственная ошибка на файле Access 97 c непечатными символами.

Программа позволяет определить пароль базы данных, хозяина БД - его имя и идентификатор. По файлу рабочих групп определяет имена пользователей и их пароли. Работает с БД ms Access 2.0 - 2003