Цілісність інформації

Цілісність інформації (також цілісність даних) - термін у інформатиці та теорії телекомунікацій, який означає, що дані повні, умова того, що дані не були змінені при виконанні будь-якої операції над ними, будь то передача, зберігання або подання.

В телекомунікації цілісність даних часто перевіряють, використовуючи MAC-код повідомлення ( Message authentication code).

В криптографії та інформаційної безпеки цілісність даних в загальному - це дані в тому вигляді, в якому вони були створені. Приклади порушення цілісності даних:

  • зловмисник намагається змінити номер аккаунта в банківській транзакції, або намагається підробити документ.
  • випадкове зміна при передачі інформації або при несправній роботі жорсткого диска.
  • перекручування фактів засобами масової інформації з метою маніпуляції громадською думкою.

У теорії баз даних цілісність даних означає коректність даних і їх несуперечність. Зазвичай вона також включає цілісність зв'язків, яка виключає помилки зв'язків між первинним і вторинним ключем. До прикладу, коли існують дочірні записи-сироти, які не мають зв'язку з батьківськими записами.

Приклад перевірки цілісності даних в криптографії - це використання хеш-функції, наприклад MD5. Така функція перетворює сукупність даних в послідовність чисел. Якщо дані зміняться, то і послідовність чисел, що генерується хеш-функцією теж зміниться.

Цілісність даних - властивість, при виконанні якого дані зберігають заздалегідь певний вигляд і якість.


1. Область використання

Поняття "цілісність об'єкта" ( англ. integrity ) Використовується в контексті термінології інформаційної безпеки (об'єктом може бути інформація, спеціалізовані дані, ресурси автоматизованої системи). Зокрема, властивість цілісності інформації (ресурсів автоматизованої системи) - є одним з трьох основних критеріїв інформаційної безпеки об'єкта.

Зазвичай властивість цілісності вимагається поряд з конфіденційністю (confidentiality) і доступністю (availability). Іноді до списку необхідних властивостей інформаційної безпеки об'єкта додають неспростовності (non-repudiation), підзвітність (accountability), автентичність або справжність (authenticity), достовірність (reliability).


2. Визначення поняття

У Рекомендаціях по стандартизації Р 50.1.053-2005 [1] дається наступне визначення:

Цілісність інформації (ресурсів автоматизованої інформаційної системи) - стан інформації (ресурсів автоматизованої інформаційної системи), при якому її (їх) зміна здійснюється тільки умисно суб'єктами, що мають на нього право.

У Рекомендаціях по стандартизації Р 50.1.056-2005 [2] визначення уточнені і рознесені по об'єктах програми:

Цілісність інформації - стан інформації, при якому відсутня будь-яке її зміна або зміна здійснюється тільки умисно суб'єктами, що мають на нього право.

Цілісність ресурсів інформаційної системи - стан ресурсів інформаційної системи, при якому їх зміна здійснюється тільки умисно суб'єктами, що мають на нього право, при цьому зберігаються їх склад, зміст та організація взаємодії.

У деяких спеціалізованих стандартах використовуються власні визначення даного поняття:

Цілісність (integrity) [3] - властивість збереження правильності та повноти активів.

Цілісність інформації [4] - забезпечення достовірності і повноти інформації та методів її обробки.

Цілісність документа [5] - Властивість документа, що складається в тому, що при будь демонстрації документа задані значення параметрів демонстрованого подання документа відповідають специфіковані вимогам.


3. Використання терміну

Термін використовується в наступних галузях знань: інформаційна безпека, комп'ютерна безпека, захист інформації, захист комп'ютерних мереж і інформаційних систем, інформаційні технології, корпоративні інформаційні системи.


4. Реалізація змісту

Методи і способи реалізації вимог, викладених у визначенні терміна, докладно описуються в рамках єдиної схеми забезпечення інформаційної безпеки об'єкта ( захисту інформації).

Основними методами забезпечення цілісності інформації (даних) при зберіганні в автоматизованих системах є:

Одним з дієвих методів реалізації вимог цілісності інформації при її передачі по лініях зв'язку є криптографічний захист інформації ( шифрування, хеширование, електронний цифровий підпис).

При комплексному підході до захисту бізнесу, напрям забезпечення цілісності та доступності інформації (ресурсів бізнес-процесів) переростає в план заходів, спрямованих на забезпечення безперервності бізнесу [6].


5. Цілісність даних в криптографії

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

В криптографії рішення задачі цілісності інформації передбачає застосування заходів, що дозволяють виявляти не стільки випадкові спотворення інформації, так як для цієї мети цілком підходять методи теорії кодування з виявленням і виправленням помилок, скільки цілеспрямована зміна інформації активним криптоаналітика.

Процес контролю цілісності забезпечується введенням в передану інформацію надмірності. Це досягається додаванням до повідомлення деякої перевірочної комбінації. Така комбінація обчислюється згідно певними алгоритмами і відіграє роль індикатора, за допомогою якого перевіряється цілісність повідомлення. Саме цей момент дає можливість перевірити, чи були змінені дані третьою стороною. Імовірність того, що дані були змінені, служить мірою імітостойкость шифру.

Додаткову надлишкову інформацію, внесену в повідомлення, називають імітовставки. Вироблятися Імітовставка може як до початку, так і одночасно з шифруванням повідомлення.


6. Імітовставки

Число двійкових розрядів у імітовставки в загальному випадку визначається криптографічними вимог з урахуванням того, що ймовірність нав'язування помилкових даних дорівнює 1/2 p, де p - число двійкових розрядів у імітовставки.

Имитовставка, є функцією повідомлення x, M = F (x). Вона може служити для цілей аутентифікації повідомлення та перевірки його цілісності. Тому імітовставки можна розділити на два класи:

  • код перевірки цілісності повідомлення (MDC, англ. modification detection code ), Для перевірки цілісності даних (але не аутентифікації), обчислюється шляхом хешування повідомлення;
  • код аутентифікації повідомлення ( MAC, англ. message authentication code ), Для захисту даних від фальсифікації, обчислюється за допомогою хешування повідомлення з використанням секретного ключа.

6.1. MDC

Хеш-функції для обчислення коду перевірки цілісності повідомлень належать до підкласу безключового хеш-функцій. У реально існуючих криптосистемах ці хеш-функції є криптографічними, тобто крім мінімальних властивостей хеш-функцій (стиснення даних, простота обчислення дайджесту від повідомлення) задовольняють наступним властивостям:

  • незворотність ( англ. preimage resistance );
  • стійкість до колізій першого роду ( англ. weak collision resistance );
  • стійкість до колізій другого роду ( англ. strong collision resistance ).

В залежності від того, яким з цих властивостей задовольняють MDC хеш-функції, можна виділити два їх підкласи:

  • односпрямовані хеш-функції (OWHF, від англ. one-way hash function ), Які задовольняють властивості незворотності і стійкі до колізій першого роду;
  • стійкі до колізій хеш-функції (CRHF, від англ. collision resistant hash function ), Які стійкі до колізій першого і другого роду (взагалі кажучи, на практиці CRHF хеш-функції задовольняють і властивості незворотності).

Існує три основних типи MDC алгоритмів хеш-функцій, за способом їх побудови:

  • на блокових шифри - наприклад: алгоритм Matyas-Meyer-Oseas, алгоритм Davies-Meyer, алгоритм Miyaguchi-Preneel, MDC-2, MDC-4;
  • кастомизировать - спеціально створені для хешування алгоритми, в яких робиться наголос на швидкість, і які незалежні від інших компонент системи (у тому числі блокових шифрів або компонент модульного множення, які можуть бути вже використані для інших цілей). Наприклад: MD4, MD5, SHA-1, SHA-2, RIPEMD-128, RIPEMD-160;
  • на модульній арифметиці - наприклад: MASH-1, MASH-2.

6.2. MAC

До MAC хеш-функцій для обчислень кодів автентифікації повідомлень, підродини ключових хеш-функцій, відносять сімейство функцій задовольняють наступним властивостям:

  • простота обчислення дайджесту від сполучення;
  • стиснення даних - вхідне повідомлення довільної бітової довжини перетвориться в дайджест фіксованої довжини;
  • стійкість до злому - маючи одну і більше пар повідомлення-дайджест, (x [i], h (x [i])), обчислювально неможливо отримати нову пару повідомлення-дайджест (x, h (x)), для якого нового повідомлення x.

Якщо не виконується остання властивість, то MAC може бути підроблений. Також останнім властивість увазі, що ключ неможливо обчислити, тобто, маючи одну або більше пар (x [i], h (x [i])) з ключем k, обчислювально неможливо отримати цей ключ.

Алгоритми отримання коду аутентифікації повідомлення можуть бути розділені на наступні групи за їх типом:

  • на блокових шифри - наприклад: CBC-MAC, RIPE-MAC1, RIPE-MAC3;
  • отримання MAC з MDC;
  • кастомизировать алгоритми - наприклад: MAA, MD5-MAC;
  • на потокових шифри - наприклад: CRC-based MAC.

6.2.1. Отримання MAC на основі MDC

Існують методи отримання з MDC кодів аутентифікації повідомлень включенням секретного ключа у вхідні дані алгоритму MDC. Недоліком такого підходу є те, що фактично на практиці більшість алгоритмів MDC розроблено так, що вони є або OWHF, або CRHF, вимоги до яких відрізняються від вимог до MAC алгоритмам.

  1. secret prefix method: До послідовності блоків даних x = X 1 x 2 x 3.. x n в початок приписується секретний ключ k: k | | x. Для даної послідовності даних за допомогою ітераційної хеш-функції обчислюється MDC, наприклад, такий, що H 0 = IV (від англ. initial value ), H i = f (H i-1, x i) h (x) = H n. Таким чином, MAC M = H (k | | x). Мінусом такого підходу є те, що третя сторона може дописати в кінець послідовності блоків додаткові дані y: k | | x | | y. Новий MAC може бути обчислений без знання ключа k: M 1 = f ( M , Y).
  2. secret suffix method: Секретний ключ приписується в кінець послідовності даних: x | | k. У цьому випадку MAC M = H (x | | k). У цьому випадку може бути застосована атака методом днів народжень. При довжині дайджесту в n біт. Третій стороні знадобиться близько 2 n / 2 операцій, щоб для повідомлення x знайти повідомлення x 'таке, що h (x) = h (x'). При цьому знання ключа k буде не обов'язково. Дізнавшись значення MAC M для повідомлення x, третя сторона зможе згенерувати коректну пару (x ', M ).
  3. envelope method with padding: Для ключа k і MDC h обчислюється MAC від повідомлення h k (x) = (k | | p | | x | | k), де p - рядок, доповнююча ключ k до довжини блоку даних, для того, щоб гарантувати, що буде вироблено як мінімум 2 ітерації. Наприклад, для MD5 K - 128 біт, а p - 384 біта.
  4. HMAC: Для ключа k і MDC h обчислюється MAC від повідомлення h k (x) = (k | | p 1 | | h (k | | p 2 | | x)), де p 1, p 2 - різні рядки, що доповнюють k до довжини блоку даних. Така конструкція досить ефективна, незважаючи на подвійне використання h.

7. Схеми використання

Фактично, в загальному вигляді, процес передачі даних і їх перевірки на цілісність виглядає наступним чином: користувач A додає до свого повідомлення дайджест. Ця пара буде передана другій стороні B. Там виділяється повідомлення, обчислюється для нього дайджест і дайджести порівнюються. У разі збігу значень повідомлення буде вважатися достовірним. Розбіжність буде говорити про те, що дані були змінені.

7.1. Забезпечення цілісності даних з використанням шифрування і MDC

Від вихідного повідомлення обчислюється MDC, M = H (x). Цей дайджест додається до повідомлення С = (x | | h (x)). Потім розширене таким чином повідомлення шифрується якимось криптоалгоритмом E із загальним ключем k. Після шифрування отримане повідомлення C encripted передається другій стороні, яка використовуючи ключ, виділяє з шифрованого повідомлення дані x 'обчислює для нього значення дайджесту M '. Якщо він збігається з отриманим M , То вважається, що цілісність повідомлення було збережено. Метою цього шифрування є захист доданого MDC, щоб третя сторона не могла змінити повідомлення без порушення відповідності між розшифрованим текстом і відновленим кодом перевірки цілісності даних. Якщо при передачі даних конфіденційність перестав істотною, окрім як для забезпечення цілісності даних, то можливі схеми, в яких будуть зашифровані тільки або повідомлення x, або MDC.

  • Використання схеми з шифруванням тільки MDC, (x, E k (h (x))), фактично призводить до окремого випадку MAC. Але в даному випадку, що нетипово для MAC, колізія для даних x, x 'може бути знайдена без знання ключа k. Таким чином, хеш-функція повинна задовольняти вимогу стійкості до колізій другого роду. Так само треба відзначити, що існують такі проблеми: якщо колізія знайдена для двох значень вхідних даних при якомусь ключі, то вона збережеться і при зміні цього ключа; якщо довжина блоку шифру менше, ніж довжина дайджесту, то розбивка дайджесту може призвести до вразливості схеми.
  • Шифрування тільки даних, (E k (x), h (x)), дає певний виграш в обчисленнях при шифруванні (за винятком коротких повідомлень). Як і в попередньому випадку, хеш-функція повинна бути стійка до колізій другого роду.

7.2. Забезпечення цілісності даних з використанням шифрування і MAC

У порівнянні з попереднім випадком в канал посилається повідомлення наступного вигляду: E k (x | | h k1 (x)). Така схема забезпечення цілісності має перевагу над попередньою схемою з MDC: якщо шифр буде зламаний, MAC все одно буде забезпечувати цілісність даних. Недоліком є ​​те, що використовується два різних ключа, для криптоалгоритму і для MAC. При використанні подібної схеми, слід бути впевненим, що будь залежності між алгоритмом MAC і алгоритмом шифрування не призведуть до уразливості системи. Рекомендується, щоб ці два алгоритми були незалежними (наприклад, такий недолік системи може виявлятися, коли в якості алгоритму MAC використовується CBC-MAC, і в якості схеми шифрування CBC).

Взагалі кажучи, шифрация всього повідомлення при використанні кодів аутентифікації повідомлень не обов'язково з точки зору забезпечення цілісності даних, тому в найпростіших випадках в схемі може не відбуватися шифрация повідомлення (x | | h k (x)).


8. Ненавмисні порушення цілісності

З точки зору криптографії основний інтерес представляють завдання забезпечення цілісності даних, в яких здійснюються їх умисні зміни. Однак методи забезпечення перевірки випадкових змін теж застосовуються. До таких методів відносять використання кодів виявлення та виправлення помилок. До таких, наприклад, відносяться: коди Хеммінга, коди CRC, коди БЧХ та інші.


9. Аутентифікація і цілісність

Проблема цілісності даних щільно пов'язане і з проблемою аутентифікації даних, тобто визначенням джерела даних. Ці проблеми не можуть бути відокремлені одна від одної. Дані, які були змінені, мають фактично новий джерело. Також якщо не відомий джерело даних, то питання про їх зміну не може бути дозволений (без посилання на джерело). Таким чином, механізми перевірки цілісності даних забезпечують аутентифікацію даних, і навпаки.


10. Використання ГОСТ 28147-89

ГОСТ 28147-89 може використовуватися в якості одного з методів по обчисленню кодів аутентифікації повідомлень. Для ГОСТ 28147-89 режим вироблення імітовставки виглядає наступним чином:

  1. Оригінальний текст ділиться на блоки T i довжиною в 64 біта.
  2. Блоки T i послідовно піддаються перетворенню, що відповідає першим 16 раундів роботи ГОСТ у режимі простої заміни.
  3. Після 16 раундів отримане 64-розрядне число додається по модулю 2 до наступного блоку T i +1 і процедура повторюється.
  4. Останній блок, при необхідності доповнюється до 64-біт нулями, до нього додається 64-розрядне число, отримане на попередньому циклі, і після цього останній блок піддається перетворенню.
  5. З отримав в кінці роботи кінцевого 64-бітного числа вибирається відрізок в p біт, де p - вибрана довжина імітовставки.

Примітки

  1. Рекомендації по стандартизації "Інформаційні технології. Основні терміни і визначення в галузі технічного захисту інформації" (Р 50.1.053-2005).
  2. Рекомендації по стандартизації "Технічний захист інформації. Основні терміни і визначення" (Р 50.1.056-2005).
  3. Національний стандарт РФ "Методи і засоби забезпечення безпеки. Частина 1. Концепція і моделі менеджменту безпеки інформаційних і телекомунікаційних технологій" (ГОСТ Р ІСО / МЕК 13335-1 - 2006).
  4. Національний стандарт РФ "Інформаційна технологія. Практичні правила управління інформаційною безпекою" (ГОСТ Р ІСО / МЕК 17799-2005).
  5. Національний стандарт РФ "Інформаційна технологія. Електронний обмін інформацією. Терміни та визначення" (ГОСТ Р 52292-2004).
  6. Jet Info № 5 (2007) - Безперервність бізнесу. Підходи та рішення.