Компоненты для Delphi и С++Builder: защита и шифрование данных
В данной статье приведены некоторые типичные примеры компонентов для Delphi и утилит, назначением которых является защита данных. Условно подобное программное обеспечение можно разделить на следующие категории:
- Программное обеспечение, сопровождающее аппаратные средства защиты (API для использования электронных ключей и т.д.) и компоненты, инкапсулирующие вышеупомянутый API.
- Программное обеспечение для защиты кода от дизассемблирования (в данном обзоре рассмотрена утилита Shrinker 3.4 корпорации Blink, Inc, выполняющая подобные функции).
- Библиотеки, содержащие API, используемый для защиты тех или иных функциональных возможностей приложений с помощью ключей, в том числе сгенерированных на основании данных об аппаратном обеспечении компьютера, и компоненты, инкапсулирующие подобный API (в данном обзоре рассмотрены библиотека CyberBolt и компонент TSecurity, выполняющие данные функции).
- Библиотеки, содержащие реализацию различных алгоритмов шифрования (в данном обзоре рассмотрены относящиеся к этой категории программного обеспечения библиотеки CopyCrypt, Delphi Encryption Compedium,AMNSoft Crypt Library).
Отметим, однако, что подобных утилит, библиотек и компонентов создано немало. Интересующиеся данным вопросом могут обратиться к странице http://www.inprise.com/programs/esp/tcb, на которой содержится список разработчиков компонентов и утилит для Delphi и С++Builder, в том числе компонентов и утилит для защиты и шифрования данных.Большая коллекцияусловнобесплатных и свободно распространяемых компонентов и библиотек содержится также на сайте Torrry's Delphi Pages (http://www.torry.ru/).
Shrinker 3.4
http://www.blinkinc.com/ftp/pub/demos/shrdemen.exe
Разработчик — Blink, Inc (CША), http://www.blinkinc.com/
Существуют версии для DOS, Windows 3.x, Windows 95/98/NT
Последние версии доступны по адресу http://www.blinkinc.com/shrinker.htm
Эта утилита предназначена для сжатия исполняемых файлов и библиотек (*.EXE, *..DLL, *.BPL,*.OCXи др.), созданных с помощью широкого спектра средств разработки, включая Delphi, Visual Basic, VisualC++, C++Builder, что уменьшает время их загрузки и связанный с этим сетевой трафик, а также экономит дисковую память. При запуске сжатые файлы автоматически«разворачиваются» в оперативной памяти без какой бы то ни было потери функциональности и производительности, и этот процесс не требует ни использования дополнительных процедур распаковки, ни применения каких-либо дополнительных библиотек. Одновременно с уменьшением времени загрузки исполняемых файлов этот компонент также защищает исполняемый код от дизассемблирования.
Сжатие данных основано на поиске повторяющихся последовательностей байтов, их кодировании и хранении кодов вместо исходных последовательностей. При декомпрессии исходный файл восстанавливается с помощью таблицы закодированных последовательностей, хранящейся в сжатой версии файла.
Данная утилита позволяет выбирать различные параметры сжатия. Например, существует возможность создавать сжатые файлыдаже для тех случаев, когда результат сжатия незначителен, например, с целью обеспечения защиты от дизассемблирования. Возможно также сохранить дату и время создания сжатой версии файла равной дате и времени исходного файла. В разделе Options/Advancedможно также выбрать, какие именно ресурсы (пиктограммы, графические изображения и др.), содержащиеся в приложении или библиотеке, следует сжимать.
CyberBolt
http://www.torry/vcl/security/cbdemo.zip
Разработчик — EFD Systems (США), efd@mindspring.com/
Последние версии доступны по адресу http://www.torry.ru/vcl/security/cbdemo.zip
CyberBoltпредставляет собой библиотеку для Delphi, содержащую API длязащиты части функциональности приложения от несанкционированного доступас помощью ключей и кодов.
Ключ представляет собой цифровую последовательность,позволяющую разрешить использование определенных функциональных возможностей программного продукта на данном компьютере. Обычно он предоставляется разработчиком программного обеспечения после выполнения пользователем тех или иных требований (например, оплаты продукта).В свою очередь, код представляет собой цифровую последовательность, идентифицирующую конкретный компьютер. Обычно пользователь высылает сгенерированный кодавтору программного обеспечения в обмен на ключ.
CyberBolt может быть использован для создания демонстрационных версий продуктов с ограниченным временем действия, shareware-продуктов, продуктов, распространяемых в электронном виде.
Ключи, генерируемые CyberBolt, имеют защиту отнаиболее распространенных способов несанкционированного доступа к программному обеспечению, таких как изменение значения даты в операционной системе, изменения в исполняемом файле, попытки автоматизированного подбора ключа. При этом, несмотря на «привязку»ключа к конкретному компьютеру, есть возможность замены какого-либо из компонентов его аппаратного или программного обеспечения (операционной системы, материнской платы, видеоадаптера, жесткого диска и др.) с последующим обновлением ключа.
CopyCrypt
http://www.torry/vcl/security/copycrpt.zip
Разработчик — Gordon Bamber, gbamber@mistral.co.uk
Последние версии доступны по адресу http://www.torry.ru/vcl/security/copycrpt.zip
Это библиотека DLL,предназначенная для быстрой шифровки с паролем и дешифровки файлов большого объема (например, баз данных).Может быть использована в любом средстве разработки, поддерживающем вызов функций Windows API.
Библиотека содержит две функции: EncodeSingle и DecodeSingle для шифровки и дешифровки файлов соответственно.
При шифровке файлов исходный файл считывается в оперативную память и расшифровывается перед записью на диск с сохранением исходного файла. Аналогичным образом производится и обратная операция.
В комплект поставки включен PAS-файл, содержащий интерфейс к данной библиотеке.
Использование данного продукта лицами моложе 18 лет не рекомендуется ввиду весьма специфического тексталицензионного соглашения.
TSecurity
http://www.torry.ru/vcl/security/pbsecurity.zip
Разработчик — Petar Banicevic, Petar.Banicevic@usa.net
Стоимость: 40 долл.
Стоимость исходного текста: 60 долл.
Последние версии доступны по адресу http://www.torry.ru/vcl/security/pbsecurity.zip
Этот компонент предназначен для защиты программного обеспечения от незарегистрированных пользователей с помощью «привязки» к конкретному жесткому диску. Любое другое аппаратное обеспечение данного компьютера может быть изменено.
Компонент TSecurity помещается на форму, в которой пользователю предлагается зарегистрироваться. Одним из свойств этого компонента является код, сгенерированный на основании данных о жестком диске, и именно его пользователь должен выслать автору программного продукта, получив взамен номер лицензии, который должен быть сгенерирован автором защищаемого продукта с использованием того же компонента TSecurity. В дальнейшем при вводе пользователем полученного номера лицензии он сравнивается со значением, сгенерированным компонентом TSecurity.
Примечание. Данный компонент не работает со SCSI-дисками. Не рекомендуется использование его со съемными носителями типа Iomega ZIP.
Delphi Encryption Compedium
http://www.torry.ru/vcl/security/chipher.zip
Разработчик— Hagen Reddmann, HaReddmann@AOL.COM
Freeware; поставляется с исходными текстами
Последние версии доступны по адресу http://www.torry.ru/vcl/security/chipher.zip
Delphi Encryption Compedium представляет собой библиотеку классов Delphi, реализующую сорок различных алгоритмов шифрования (Gost, Cast128, Cast256, Blowfish, IDEA Mars, Misty 1, RC2, RC4, RC5, RC6, FROG, Rijndael,SAFER, SAFER-K40, SAFER-SK40, SAFER-K64, SAFER-SK64, SAFER-K128, SAFER-SK128, TEA, TEAN,Skipjack, SCOP, Q128, 3Way, Twofish, Shark, Square, Single DES, Double DES, Triple DES, Double DES16, Triple DES16,TripleDES24, DESX, NewDES, Diamond II, Diamond II Lite,Sapphire II), пять алгоритмов проверки контрольных сумм (XOR16, XOR32, CRC32, CRC16-CCITT, CRC16-Standard), двадцать три алгоритма хэширования (MD4, MD5, SHA, SHA1, Haval (128-256), RipeMD (160-320), Snefru, Tiger, Square, SapphireII (128-320) ).
При использовании следует обратить внимание на то, разрешено ли применение того или иного алгоритма шифрования в данной стране или странах, импортирующих созданный продукт.
AMNSoft Crypt Library
http://www.torry.ru/vcl/security/amncrpt.zip
Разработчик — Алексей Новоселов, support@savecontrols.com
Shareware
Возможно свободное использование в некоммерческих целях
Стоимость — 19 долл.
Последние версии доступны по адресу http://www.torry.ru/vcl/security/amncrpt.zip, http://www.savecontrols.com
AMNSoft Crypt Libraryпредставляет собой динамически загружаемую библиотеку amncrypt.dll.Библиотека содержитфункции для шифрования строк и файлов с помощью нескольких различных алгоритмов. Удобна для шифрования паролей.
Координаты автора:
http://www.geocities.com/SiliconValley/Way/9281
КомпьютерПресс 8'1999