к.т.н. В.Ю. ШАДХІН, Д.С. ЛИННИК, Р.М. ЛУЦЕНКО
Черкаський
державний технологічний університет
ЗАСОБИ ЗАХИСТУ ІНФОРМАЦІЇ В
АВТОМАТИЗОВАНИХ СИСТЕМАХ ДИСТАНЦІЙНОГО НАВЧАННЯ
Останнім часом багато проблем розробникам програмного забезпечення
створюють незаконне копіювання і поширення програм, віруси, які постійно
удосконалюються, спроби зламу хакерами різних мереж і систем. Це змушує
створювати все більш потужні засоби захисту. І це лише частина того, що завдає
сьогодні шкоди розробникам та користувачам програмного забезпечення. На
боротьбу зі шкідливим програмним забезпеченням витрачаються величезні
матеріальні ресурси. Тому захист інформації зараз є однією з найбільш важливих
проблем розвитку інформаційних технологій.
Об'єктами даного дослідження є
процес захисту інформації в системах дистанційного навчання. Для них характерні
такі завдання з інформаційної безпеки:
·
захист
від несанкціонованого копіювання;
·
захист
від модифікації програмного коду на користь користувача;
·
приховування
від користувача частини інформації, тощо.
Багато з цих завдань дуже
актуальні для систем дистанційного навчання і тестування.
Дуже важливою проблемою в
області організації самостійної роботи і, особливо, комп'ютерного зовнішнього
контролю є слабка захищеність освітнього програмного забезпечення від зламу з
метою доступу до відповідей і підробки результатів контролю [1]. Ця проблема
виходить з того, що в основному сучасні контролюючі системи побудовані на
антропоморфному принципі, сутність якого відносно автоматизації навчання
полягає у використанні пам'яті комп'ютера для зберігання еталонних відповідей
разом із завданнями. Як правило, їх шифрують, але, як свідчить практика, їх
завжди можна розшифрувати.
Існує також проблема захисту
навчального програмного забезпечення
від модифікації коду з метою зміни алгоритму оцінювання результатів
тестування. Слабка захищеність будь-яких антропоморфних контролюючих систем
створює труднощі при проведенні контролю в системах дистанційної освіти.
Зовнішній контроль на відстані виключений, оскільки ніхто не може гарантувати,
що контролюючі програми не були модифіковані в процесі виконання контрольної
роботи. У зв'язку з цим, іспит можливий лише за умови виїзду викладача до місця
зустрічі зі студентами. Але і в цьому випадку об'єктивність не гарантується, оскільки
завдяки наявності відповідей в контролюючій програмі, викладач може не лише
користуватися інструкціями по проведенню іспиту, але і проявляти власну
ініціативу, на власний розсуд розпоряджаючись наявною у нього інформацією про
еталонні відповіді.
Таким чином, дослідження методів
створення системи захисту програм дистанційного навчання мають велике практичне
значення.
Основні проблеми захисту систем дистанційного навчання
Сформулюємо основні проблеми,
пов'язані з захистом інформації, а також низку інших питань, які
відносяться до автоматизованих систем дистанційного навчання. На жаль, перші дві проблеми
лежать поза сферою можливостей програмних засобів без застосування додаткового
апаратного забезпечення:
1.
Відсутність можливості достовірно визначити, чи пройшов студент тестування
самостійно. Для цього завдання він міг використовувати іншу людину (наприклад,
більш підготовленого студента).
Це найскладніше завдання.
Неможливо перешкодити студентові запропонувати комусь виконати певну
лабораторну роботу або пройти тестування. Без застосування спеціальної
апаратури це практично нереально. Але застосування апаратних засобів неможливе
в силу хоча б своєї ціни [2]. Отже, такий варіант розглядатися не буде.
Принаймні він нереальний на цьому етапі стану освіти в нашій країні.
Рішенням цієї
проблеми може бути тільки правильна побудова курсу. Процес контролю знань слід
будувати так, щоб ускладнити процес підміни дублером. Знайти дублера на один
тест набагато простіше, ніж на весь період навчання.
2.
Невідомо, скільки разів студент зробив спробу пройти тестування. Студент має
можливість встановлювати систему дистанційного навчання в декількох екземплярах
і/або копіювати її, тим самим зберігаючи її поточний стан. Так студент дістає
можливість необмеженої кількості спроб проходження тестування і можливість
вибрати з них спробу з найкращим результатом.
Це завдання
аналогічне попередньому і також, на жаль, не має програмного рішення.
Розв'язати цю проблему не
просто. У будь-якому випадку неможливо дізнатися, чи встановив студент пакет
програм дистанційного навчання на двох комп'ютерах, а потім використовує один
для тренування і підбору правильних відповідей, а другий вже для тестування.
При чому він може поступити простіше і скористатися програмою для створення
безлічі віртуальних машин на одній фізичній, наприклад, VMWare [3].
Ця проблема
може бути вирішена правильною побудовою системи дистанційного навчання.
Наприклад, при тестуванні доцільно запропонувати досить велику кількість
питань, найбільш оптимальним виходом є їх автоматична генерація. Прикладом може
бути система генерації завдань з фізики, що складається за певними правилами,
яка використовує у якості значень випадкові числа. Іншим методом вирішення цієї
проблеми може стати використання індивідуальної дискети/диску або флеш-драйву
студента. Ідея тут та ж, яка використовувалася при захисті програмного
забезпечення від несанкціонованого копіювання. Але, на жаль, цей метод не може
повністю розв’язати проблему.
3. Існує
можливість створення універсального редактора файлів результатів тестування.
Він може використовуватися студентом для коригування оцінок виставлених
програмою тестування.
Тут можна було б скористатися
ідеєю ключової дискети/диску або флеш-драйву для збереження результату.
Модифікація результату стала б дуже важкою, але цей метод має одне обмеження –
необхідність використання для передачі результату дискети. Тобто замість того,
щоб просто відіслати результат по мережі, доведеться доставляти його на
дискеті.
Але є й інший метод –
використання шифрування з відкритим ключем. Які б не були складні і надійні
криптографічні системи, їх слабке місце при практичній реалізації – проблема
розподілу ключів. Для того, щоб був можливий обмін конфіденційною інформацією
між двома суб'єктами ІС, ключ має бути згенерований одним з них, а потім
якимось чином знову ж таки в конфіденційному порядку переданий іншому. Тобто в
загальному випадку для передачі ключа знову вимагається використання деякої
криптосистеми. Для вирішення цієї проблеми на основі результатів, отриманих класичною
і сучасною алгеброю, були запропоновані системи з відкритим ключем. Зміст їх
полягає в тому, що кожним адресатом ІС генеруються два ключі, пов'язані між
собою за певним правилом. Один ключ оголошується відкритим, а інший закритим.
Відкритий ключ публікується і доступний будь-кому, хто бажає послати
повідомлення адресату, секретний ключ зберігається в таємниці. Початковий текст
шифрують відкритим ключем адресата і передають йому, зашифрований текст в
принципі не може бути розшифрований тим же відкритим ключем. Розшифрування
повідомлення можливе тільки з використанням закритого ключа, який відомий
тільки самому адресатові [1]. Саме такий механізм необхідно
реалізувати в системі захисту. Зазначимо, що використовуватиметься шифрування
за допомогою відкритого ключа не в класичному розумінні. Метод полягає в
генерації поліморфних алгоритмів шифрування/розшифрування. При цьому, одному
алгоритму шифрування відповідатиме один алгоритм розшифрування. Модуль повинен
буде забезпечити побудову складного для аналізу поліморфного коду, що повинно
перешкоджати побудові зворотного алгоритму.
4. Існує
загроза створення універсальної програми перегляду файлів із завданнями і
відповідями. Тим самим, студент має можливість знайти вірні відповіді на
питання в тестах.
Виходом з цієї ситуації є
застосування шифрування даних. Але принципово цю проблему вирішити неможливо.
Студентові необхідно поставити питання і звірити з відповіддю, а для цього
необхідно розшифрувати дані з еталонними відповідями, для чого потрібен ключ,
який у будь-якому випадку необхідно десь зберігати. Отже, за бажанням,
інформацію можна отримати у відкритому виді. Побічною проблемою є можливість
внесення зацікавленою особою несанкціонованої зміни баз учбових систем.
Зберігання даних у навчальній системі передбачає можливість їх перегляду, а,
отже, наявність способу доступу до цих даних.
У деяких
джерелах вважають, що вирішення цієї проблеми полягає не у використанні стійких
криптоалгоритмів, а в засобах зберігання даних. Одна справа, якщо всі дані
зберігатимуться в текстовому вигляді, який потім буде просто піддано
шифруванню. У цьому випадку, розшифрувавши ці дані з використанням знайденого
ключа, зловмисник отримає усе, що йому потрібно. Зовсім інша справа, якщо
написати механізм читання/запису даних, який використовує записи різних типів.
Наприклад, спочатку зберігається блок з назвою роботи, потім ідентифікатор
картинки, потім дані самої картинки, потім дані про правильну відповідь, і т.д.
І тепер знання ключа розшифрування мало що дає, оскільки необхідно ще знати
формат збережених даних. Отримати цю інформацію можна лише провівши глибокий
аналіз внутрішньої роботи ПЗ і навіть тоді, знаючи формат даних, які
записуються або зчитуються, необхідно буде створити програму, яка дозволяє
працювати з ними. Це малоймовірно через складну структуру збережених даних.
Додаткову
складність повинен внести генератор алгоритмів шифрування/розшифрування. Шляхом
шифрування різними алгоритмами даних, які віддаються студентові, досягатиметься
додаткова складність створення універсальної програми перегляду.
5.
Можливість модифікації програмного коду системи тестування з метою зміни
алгоритму виставляння оцінок.
Для систем побудованих з
використанням мережі Internet, цієї проблеми практично не існує, оскільки
контролююча частина знаходиться на стороні сервера. Для систем дистанційного
навчання, призначених для локального режиму використання, ця проблема практично
зводиться до широко відомої проблеми захисту ПЗ від зламу.
Майже кожен студент, що уперше
стикається з новою для нього системою комп'ютерного тестування, прагне
відшукати лазівки, що дозволяють отримувати завищені оцінки. Рано чи пізно
більшість лазівок виявляються і стають надбанням усіх студентів. Боротися з цим
не треба, більш того, корисно заохочувати цей процес, тому що він допомагає
відшукувати недоліки захисту системи комп'ютерного тестування. Для цього,
правда, в неї доводиться вбудовувати
спеціальні механізми, що дозволяють спостерігати за діями студентів, оскільки
не в їх інтересах ділитися з викладачем своїми знахідками.
Як не дивно,
підказати рішення можуть такі програми, як віруси. Точніше, поліморфні віруси.
Поліморфною називається програма, кожен штам (копія) якої відрізняється від
іншого. Два екземпляри такої програми можуть не співпадати жодною послідовністю
байт, але при цьому функціонально вони є копіями [4]. Віруси використовують
поліморфні генератори для ускладнення їх виявлення. Для нас поліморфний код
цікавий з іншої причини – в нього дуже складно внести зміни. Точніше, внести
виправлення до конкретного екземпляру програми не складає великої проблеми, а
ось застосувати цей метод модифікації до іншого екземпляру неможливо.
В результаті
виникає ідея побудови підсистеми за наступним описом. Система представляє з
себе файл, який зберігається у зашифрованому вигляді. Програма-завантажувач
розшифровує його безпосередньо в пам'яті і потім запускає. Кожен файл
зашифрований своїм методом, а отже, і проста модифікація неможлива.
6. Потрібна
легка адаптація існуючих систем дистанційного навчання і тестування. Це, в першу
чергу, пов'язано з тим, що до цих систем вже існують бази лекцій, тестових
завдань і так далі.
Важливим чинником є те, що
існуючі на даний момент різні системи автоматизації процесу навчання написані
на різних мовах. Це Visual C++, Delphi, Visual Basic та інші. Отже, для
взаємодії з ними треба зручний і, головне, підтримуваний усіма цими мовами
механізм взаємодії.
Останнім часом широке
застосування знайшла технологія COM. Багато АСДН розроблено з її використанням
або з використанням таких її різновидів як OLE і ActiveX. Це робить систему
гнучкою, дозволяє легко її модифікувати. Взаємодія модуля захисту з
використанням технології COM дуже гнучко і широко використовується для побудови
модульних програм. Це дуже важливо, оскільки потрібна найлегша інтеграція у вже
існуючі системи. Прикладом простоти роботи з COM-модулями може служити
Visual Basic.
Висновки
У результаті
дослідження було розроблено засоби захисту дистанційної навчальної системи
шляхом шифрування виконуваних ехе-файлів без використання додаткових апаратних
засобів, яке ґрунтується на використанні множини унікальних поліморфних
алгоритмів, та організовано захист інформації та обмін нею з використанням
ідеології відкритого ключа, в основі якої також лежать поліморфні алгоритми.
У розробленому ПЗ використано новітні технології
шифрування даних, розроблено генератор поліморфних алгоритмів шифрування та
розшифрування, повністю виключена необхідність використання апаратних засобів.
Завдяки використанню даного ПЗ у
майбутньому з’явиться можливість зменшити на 80 відсотків несанкціоноване
використання копій навчальних матеріалів та на 90 відсотків зменшити
ймовірність використання “дублерів” під
час здачі контрольних тестів.
ЛІТЕРАТУРА
1.
Шаньгин В.Ф. Информационная безопасность компьютерных
систем и сетей: Уч. пособ. – М.: Форум, 2008. – 416 с.
2. Ложников
П. С. Распознавание пользователей в системах дистанционного образования: обзор
// Educational Technology & Society. – 2001. – № 4, http://ifets.ieee.org/russian/depository/v4_i2/html/4.html
3. Ерижоков
А.А. Использование VMWare 2.0 // Публікація у мережі інтернет на сервері http://www.citforum.ru/operating_systems/vmware/index.shtml
4.
Касперский Е.В. Компьютерные вирусы: что это такое и как
с ними бороться. – М.: СК Пресс, 1998. – 288 с.