Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Контроль цілісності програмної структури в процесі експлуатації.




Контроль цілісності програм і даних виконується одними і тими ж методами. Виконувані програми змінюються вкрай рідко на етапі їх експлуатації. Існує досить широкий клас програм, для яких всі вихідні дані або їх частина також змінюються рідко. Тому контроль цілісності таких файлів виконується так само, як і контроль програм. Контроль цілісності програмних засобів і даних здійснюється шляхом отримання (обчислення) характеристик і порівняння їх з контрольними характеристиками. Контрольні характеристики обчислюються при кожній зміні відповідного файлу. Характеристики обчислюються за певними алгоритмами. Найбільш простим алгоритмом є контрольне підсумовування. Контрольований файл в двійковому вигляді розбивається на слова, що зазвичай складаються з парного числа байт. Всі виконавчі слова поразрядно підсумовуються з накопиченням по mod2, утворюючи в результаті контрольну суму. Розрядність контрольної суми дорівнює розрядності двійкового слова. Алгоритм отримання контрольної суми може відрізнятися від наведеного, але, як правило, не є складним і може бути отриманий за наявною контрольній сумі і відповідного файлу. Інший підхід до отримання характеристик цілісності пов'язаний з використанням циклічних кодів [63]. Суть методу полягає в наступному. Вихідна двійкова послідовність представляється у вигляді полінома F(x) ступеня n-1, де n - число біт послідовності. Для вибраного породжуючого поліному Р(х) можна записати рівність:

 

 

де m - ступінь породжує полінома, G(x) - приватне, a R(x) -| залишок від ділення F(x)xm на Р (х). З наведеного співвідношення можна отримати новий вираз:

 

 

З останнього виразу можна зробити висновок: якщо вихідний поліном збільшити на xm (зрушити в сторону старших розрядів на m розрядів) і скласти із залишком R (x) по модулю 2, то отриманий многочлен розділиться без залишку на породжує поліном Р (х). При контролі цілісності інформації контрольована послідовність (сектор на диску, файл і т. д.), зрушена на m розрядів, ділиться на обраний породжує поліном, і запам'ятовується отриманий залишок, який називають синдромом. Синдром зберігається як еталон. При контролі цілісності до полиному контрольованої послідовності додається синдром і здійснюється розподіл на породжує поліном. Якщо залишок від ділення дорівнює нулю, то вважається, що цілісність контрольованої послідовності не порушена. Виявляє здатність методу залежить від ступеня породжує полінома і не залежить від довжини контрольованої послідовності. Чим вище ступінь полінома, тим вище ймовірність визначення змін d, яка визначається із співвідношення: d = l/2m.

Використання контрольних сум і циклічних кодів, як і інших подібних методів, має істотний недолік. Алгоритм отримання контрольних характеристик добре відомий, і тому зловмисник може провести зміни таким чином, щоб контрольна характеристика не змінилася (наприклад, додавши коди). Завдання зловмисника ускладниться, якщо використовувати зміннуменную довжину двійкової послідовності при підрахунку контрольних характеристики, а характеристику зберігати в зашифроваваному вигляді або поза КС (наприклад, в ЗУ Touch Memory). Розглянемо приклад використання циклічних кодів для контролю цілісності двійковій послідовності. Нехай потрібно проконтролювати цілісність двійковій послідовності А = 1010010. Використовується породжуваний поліном виду: P(x)=x3+x+1.

 

А. Отримання контрольної характеристики.

При обчисленні синдрому RA (X) дії виконуються за правилами ділення поліномів, замінюючи операцію віднімання операцією складання по модулю:

Двійкова послідовність з синдромом має вигляд: А* = 1010010011 (синдром підкреслений). Послідовність А* зберігається та (або) передається в КС.

 

Б. Контроль цілісності інформації.

Якщо змін послідовності А* = 1010010011 не відбулося, то відповідний їй поліном повинен розділитися на породжує поліном без залишку: Результат вироблених обчислень свідчить про цілісність інформації. Якщо синдром відмінний від нуля, то це означає, що сталася помилка при зберіганні (передачі) двійкової послідовності. Помилка визначається і в контрольних розрядах (у синдромі). Існує метод, який дозволяє практично виключити можливість неконтрольованого зміни інформації в КС. Для цього необхідно використовувати хеш-функцію. Під хеш-функцією розуміється процедура отримання контрольної характеристики двійковій послідовності, заснована на контрольному підсумовуванні та криптографічних перетвореннях. Алгоритм хеш-функції наведено в ГОСТ Р34.11-94. Алгоритм не є секретним, так само як і алгоритм використовуваного при отриманні хеш-функції криптографічного перетворення, викладеного в ГОСТ 28147-89 [9]. Вихідними даними для обчислення хеш-функції є вихідна двійкова послідовність і стартовий вектор хешування. Стартовий вектор хешування є двійкову послідовність довжиною 256 біт. Він повинен бути недоступний зловмисникові. Вектор або піддається шифруванню, або зберігається поза КС. Ітераційний процес обчислення хеш-функції Н передбачає:

• генерацію чотирьох ключів (слів довжиною 256 біт);

• шифрувальне перетворення за допомогою ключів поточного значення Н методом простої заміни (ГОСТ 28147-89);

• перемішування результатів;

• поразрядное підсумовування по mod2 слів довжиною 256 біт вихідної послідовності;

• обчислення функції Н. У результаті виходить хеш-функція довжиною 256 біт.

Значення хеш-функції можна зберігати разом з контрольованою інформацією, тому що, не маючи стартового вектора хешування, зловмисник не може отримати нову правильну функцію хешування після внесення змін у вихідну послідовність. А отримати стартовий вектор по функції хешування практично неможливо. Для кожної двійковій послідовності використовуються дві контрольні характеристики: стартовий вектор і хеш-функція. При контролі за стартовим вектору і контрольованою послідовності обчислюється значення хеш-функції і порівнюється з контрольним значенням.

 

Контрольні питання

 

1. Назвіть основні принципи розробки алгоритмів, програм і технічних засобів.

2. У чому полягає суть сучасних технологій програмування?

3. Дайте характеристику автоматизованої системи розробки програмних засобів.

 

4. Яким чином досягається захист від несанкціонованого зміни структур КС на етапах розробки та експлуатації?

5. Як здійснюється контроль цілісності інформації?

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...