Деякі особливості реалізації алгоритму захисту програмного
забезпечення від нелегального використання h2>
(На прикладі програми "генератор тестів 2.0") h2>
асп. Волошин С. Б. [1]
p>
Кафедра теорії та
автоматизації металургійних процесів та печей. p>
Північно-Кавказький
гірничо-металургійний інститут (державний технологічний університет) p>
Розглянуто
деякі особливості реалізації алгоритму захисту програмного забезпечення від
нелегального використання. Наведено принципову схему алгоритму і частина
вихідного коду мовою програмування Microsoft Visual Basic 2005. p>
При
проектуванні сучасного програмного продукту розробники все частіше приділяють
увагу тієї частини програми, яка відповідає за захист від нелегального
використання. p>
Застосування
для написання програмного продукту платформи Microsoft. NET Framework [1]
дозволяє досить просто реалізувати в програмі різні криптографічні
алгоритми: як симетричні (DES, Triple-DES, RC2, Rijndael) і асиметричні
(DSA/DSS, RSA) алгоритми шифрування, так і алгоритми хешування (HMACSHA-1,
MACTripleDES, MD5, SHA-1, SHA-256, SHA-384, SHA-512) [2, 3]. P>
В
. NET Framework за криптографію відповідає простір імен p>
System.Security.Cryptography p>
В
цей простір входять три класи високого рівня: p>
System.Security.Cryptography.SymmetricAlgorithm p>
System.Security.Cryptography.AsymmetricAlgorithm p>
System.Security.Cryptography.HashAlgorithm p>
Найбільш
перспективною для організації захисту представляється комбінація асиметричного
алгоритму RSA, розробленого Р. Рівестом, А. Шамір і Л. Адлеманом, і
алгоритму дайджесту повідомлення MD5 [3]. p>
Реалізація
алгоритму RSA і алгоритму MD5 на мові високого рівня Microsoft Visual Basic
2005 виглядає таким чином: p>
'підключаємо
простір імен p>
Imports
System.Security.Cryptography p>
Imports
System.Text p>
Imports
System.Xml p>
Public
Class myCrypt p>
'I.
Генеруємо ключі RSA. P>
Dim
rsaProvider0 As New RSACryptoServiceProvider () p>
Dim
EK As String = rsaProvider0.ToXmlString (False) p>
Dim
DK As String = rsaProvider0.ToXmlString (True) p>
'II.
Створюємо та налаштовуємо екземпляр класу p>
'RSACryptoServiceProvider
перед шифруванням. p>
3 Праці молодих учених № 4, 2007 p>
Dim cspParam As New CspParameters () p>
cspParam.KeyContainerName
= "SecretKey" p>
Dim
rsaProvider1 As New RSACryptoServiceProvider (cspParam) p>
'III.
Шифруємо дані. P>
rsaProvider1.FromXmlString (EK) p>
Dim
cipheredText As Byte () = rsaProvider1.Encrypt _ p>
(UTF8Encoding.UTF8.GetBytes ( "Дані
користувача "), True) p>
Dim
EncodingText As String = Convert.ToBase64String (cipheredText) p>
'IV.
Дешіфруем дані. P>
Dim
rsaProvider2 As New RSACryptoServiceProvider () p>
rsaProvider2.FromXmlString (DK) p>
Dim
DecodingText As String = UTF8Encoding.UTF8.GetString _
(rsaProvider2.Decrypt (Convert.FromBase64String (EncodingText), True)) p>
'V.
Отримуємо хеш-функцію розшифровує ключа. P>
Dim
md5Provider As New MD5CryptoServiceProvider p>
Dim
MD5Hash As String = Convert.ToBase64String _ p>
(md5Provider.ComputeHash (UTF8Encoding.UTF8.GetBytes (DK ))) p>
End
Class. P>
Використовуючи
асиметричний алгоритм RSA і алгоритм обчислення хеш-функції MD5, автор статті
розробив принципову схему алгоритму захисту програмного забезпечення від
нелегального використання. Дана схема була успішно застосована при розробці
програмного комплексу "Генератор тестів 2.0". p>
Кожен
легальний дистрибутив програми "Генератор тестів 2.0" забезпечується ключовим
файлом. Ключовий файл підтверджує легальність встановленого програмного
продукту і може служити для ідентифікації користувача, обмеження часу
роботи програмного продукту і т.д. p>
Ключовий
файл складається з трьох блоків даних: інформації про користувача у відкритому вигляді,
інформації про користувача в зашифрованому вигляді і розшифровує ключа
асиметричного алгоритму шифрування RSA. p>
Принципова
схема роботи алгоритму захисту показана на малюнку. p>
p>
Принципова
схема роботи алгоритму захисту. p>
Порядок
роботи алгоритму: p>
В
процесі створення програмного забезпечення: p>
Інформація
користувача у відкритому вигляді записується в ключовий файл (вона служить для
швидкого отримання відомостей про користувача). p>
Інформація
користувача передається асиметричному алгоритму шифрування. p>
зашифровуються
ключ передається алгоритму шифрування. p>
Зашифрована
за допомогою зашифровують ключа інформація про користувача додається в
ключовий файл. p>
розшифровують
ключ асиметричного алгоритму шифрування додається в ключовий файл. p>
розшифровують
ключ асиметричного алгоритму шифрування передається в алгоритм хешування. p>
Хеш-функція
розшифровує ключа поміщається перед компіляцією в захищається бінарний файл
(*. exe, *. dll і т.д.). p>
В
процесі експлуатації програмного забезпечення: p>
розшифровують
ключ асиметричного алгоритму шифрування, записаний в ключовий файл,
передається в алгоритм хешування. p>
Значення
хеш-функції розшифровує ключа з ключового файлу порівнюється з
значенням хеш-функції розшифровує ключа вміщеній у захищається файл. У
разі рівності значень двох хеш-функцій зашифровані дані користувача,
записані у ключовому фото вважаються достовірними. У разі розбіжності,
дані з ключового файлу вважаються недостовірними, сам ключовий файл
блокується, а що захищається файл відмовляється працювати з ключовим файлом. p>
Висновки p>
Розроблено
принципова схема алгоритму захисту програмного забезпечення від нелегального
використання. p>
Реалізований
алгоритм захисту на мові високого рівня Microsoft Visual Basic 2005. Даний
алгоритм увійшов в програмний продукт "Генератор тестів 2.0", розроблений в 2007 р. для Міністерства
освіти і науки Республіки Північна Осетія-Аланія. p>
Список літератури h2>
Кларк
Д. Об'єктно-орієнтоване програмування в Visual Basic. NET. СПб.: Питер,
2003. P>
Блек
У. Інтернет: протоколи безпеки. СПб.: Питер, 2001. P>
Кровчек
Е., Кумар В. та ін. NET. Мережеве програмування для професіоналів. М.: Лорі,
2005. p>
Для
підготовки даної роботи були використані матеріали з сайту http://www.skgtu.ru/
p>
[1]
Науковий керівник к.т.н.,
доц. Мамонтов Д. В. p>