Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Защита с использованием электронного ключа




Защита изменением версии БД

Защита с модификацией файла

Способ защиты основан на модификации первых байт файла. Таким образом, перед открытием БД в её файл записывается правильный заголовок, хранимый в программе, а после закрытия возвращается неправильный. При попытке открыть файл БД с помощью ms Access появляется сообщение об ошибке. Не плохо совместить этот способ с изменением расширения файла. Например, можно взять заголовок dbf файла и записать его в начало mdb файла. Далее меняем расширение файла на dbf и наслаждаемся результатом. БД теперь можно открыть в Excel, Access или другой программой, позволяющей читать dbf файлы. Вот пример такого преобразования:

'модификация заголовка файла БД
'Ex: Call BaseProtect("C:\01.mdb", True)

Public Sub BaseProtect(sPath As String, bLock As Boolean)
Dim iFn As Integer
iFn = FreeFile()
Open sPath For Binary Access Write As #iFn
Put #iFn, 5, CStr(IIf(bLock, _
"ProtectDataBase", "Standard Jet DB"))
Close #iFn
End Sub

Метод не достаточно эффективен, так как программу, работающую с БД, можно прервать искусственно и на диске останется не защищённая БД. Поэтому стоит его использовать только в сочетании с другими способами.

Этот способ - дальнейшее развитие идеи модификации заголовка файла с целью противодействия программам, читающим пароли. Метод основан на том, что для работы с БД Access 97 и 2k программы используют разные алгоритмы чтения пароля и при этом пытаются самостоятельно определить версию mdb файла.

Для определения версии можно использовать последовательность из 40 байт, начиная с 122 от начала файла. Если в БД Access 97 вписать эту последовательность от Access 2k, то получим интересный результат. Программа ms Access, ADO и DAO нормально работают с этим файлом, а большинство взламывающих пароли программ попадаются на эту уловку. Аналогичный результат может быть получен при пересадке байтовой последовательности из Access 97 в Access 2k

заголовок файла Access 2k
зелёным выделен фрагмент пароля БД
синим - фрагмент характерный для версии БД
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
00000010 20 44 42 00 01 00 00 00 B5 6E 03 62 60 09 C2 55
00000020 E9 A9 67 72 40 3F 00 9C 7E 9F 90 FF 85 9A 31 C5
00000030 79 BA ED 30 BC DF CC 9D 63 D9 E4 C3 9F 46 FB 8A
00000040 BC 4E 9B 6D EC 37 40 D2 9C FA DB C8 28 E6 0E 20
00000050 8A 60 49 02 7B 36 E8 E4 DF B1 6A 62 13 43 D2 39
00000060 B1 33 29 F7 79 5B 8F 23 7C 2A 4F E9 7C 99 08 1F
00000070 98 FD DC 75 0C FF D8 FD 82 66 5F 95 F8 D0 89 24
00000080 85 67 C6 1F 27 44 D2 EE CF 65 ED FF 07 C7 46 A1
00000090 78 16 0C ED E9 2D 62 D4 54 06 00 00 34 2E 30 00

Это ещё одно подтверждение, того, что стандартные способы защиты, даже от сторонних производителей уязвимы. Речь идёт о ключах HASP. С помощью утилиты HASP Envelope можно зашифровать файл (в данном случае БД) и разрешить к нему доступ только из защищённого приложения. Используется механизм "прозрачного" шифрования. Со стартом операционной системы запускается некий процесс, который отслеживает все обращения к защищённому файлу БД. Если это обращение исходит от обычного приложения, например от ms Access - файл читается и выводится сообщение о "нераспознаваемом формате базы данных". Но если с файлом работает указанное при шифровании приложение, то данные передаются ему в дешифрованном виде. В результате, сама программа, не подозревает о наличии защиты. Да, сложность взлома такой базы возрастает в разы. Но при этом надо помнить, что с приложением должен поставляться электронный ключ, ценой N у.е. и что скорость доступа к данным падает в два - три раза.

Взлом защиты.

Было найдено два способа получить БД своё полное распоряжение.

  • Во-первых, уязвим оказался код программы. Обращение к базе шло с использованием запросов. С начала в отладчике был найден запрос, вызываемый в ответ на нажатие кнопки в программе. Далее этот запрос был подменён текстом запроса на создание таблицы в другой БД. После нажатия кнопки запрос выбрал данные таблицы из защищённой БД и сохранил их в другом файле.
  • Во-вторых, была написана программка, которая используя хук внедрила свой код в адресное пространство защищённого HASP'ом процесса и от его имени просто скопирована файл базы данных.

Шифрование значений таблиц

Этот способ не плох. Во всяком случае появляется реальная надежда что то спасти. Однако есть ряд ограничений. Перед отображением данных их необходимо дешифровать. Нет возможности поиска по части строки в зашифрованном поле. Алгоритм шифрования и ключ содержатся в программе, а значит, есть потенциальная уязвимость. В данном случае надёжность зависит от устойчивости к взлому программы, работающей с БД. Можно сочетать приятное с полезным: не шифровать, а сжимать содержимое memo полей. Разбираться с алгоритмом сжатия в коде программы занятие скучное.

Заключение

Перед тем как ставить вопрос о способе защиты БД стоит задуматься о её необходимости. Не стоит полагаться на стандартные методы, но это не повод для отказа от использования Access. Специалист взломает что угодно, но можно сделать, чтобы это было не так просто.

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

 




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 503; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.006 сек.