Цілісність інформації
Цілісність даних (англ. data integrity) — підтримка та забезпечення точності та цілісності даних протягом всього життєвого циклу[en], що є критично важливим аспектом при проектуванні, впровадженні та експлуатації систем, які зберігають, обробляють та постачають дані. Термін має широке значення і може означати різне в залежності від контексту і розділу комп'ютерних наук (криптографія, теорія електричного зв'язку, теорія інформації, безпека).
В телекомунікації цілісність даних часто перевіряють, використовуючи хеш-суму повідомлення, обчислену алгоритмом MAC (Message authentication code).
У криптографії та інформаційній безпеці цілісність даних (в загальному) — це дані в тому вигляді, в якому вони були створені. Приклади порушень цілісності даних:
- спроба зловмисника змінити номер аккаунта в банківській транзакції, або спроба підробки документа;
- випадкове зміна інформації при передачі або при несправної роботі жорсткого диска;
- перекручування фактів засобами масової інформації з метою маніпуляції громадською думкою.
У теорії баз даних, цілісність даних означає коректність даних та їх несуперечність. Зазвичай вона також включає цілісність зв'язків, що виключає помилки зв'язків між первинним і вторинним ключем. Приміром, коли існують дочірні записи-сироти, які не мають зв'язку з батьківськими записами. Приклади порушень цілісності даних:
- існування записів-сиріт (дочірніх записів, які не мають зв'язку з батьківськими записами);
- існування однакових первинних ключів.
Для перевірки цілісності даних в криптографії використовуються геш-функції, наприклад, MD5. Хеш-функція перетворює сукупність електронних даних довільного розміру в електронні данні фіксованого розміру (число). Якщо дані зміняться, то і число, що генерується хеш-функцією, теж зміниться.
Цілісність даних — властивість, при виконанні якого дані зберігають заздалегідь певний вид і якість.
В Рекомендаціях по стандартизації Р 50.1.053-2005[1] дається наступне визначення:
|
В Рекомендаціях по стандартизації Р 50.1.056-2005[2] уточнено визначення і рознесені по об'єктах додатка:
|
У деяких спеціалізованих стандарти використовуються власні визначення даного поняття:
|
Термін використовується в наступних галузях знань: інформаційна безпека, комп'ютерна безпека, захист інформації, захист комп'ютерних мереж та інформаційних систем, інформаційні технології, корпоративні інформаційні системи. Поняття «цілісність об'єкта»(англ. integrity) використовується як термін в теорії інформаційної безпеки (ІБ). Під об'єктом розуміють інформацію, спеціалізовані дані або ресурси автоматизованої системи. Цілісність інформації (як ресурсу автоматизованої системи) є одним з трьох основних властивостей об'єкта ІБ. Властивості об'єкта ІБ:
- доступність (англ. availability);
- цілісність (англ. integrity);
- конфіденційність (англ. confidentiality).
Іноді в цей список додають:
- неспростовності (англ. non-repudiation);
- підзвітність (англ. accountability);
- автентичність або справжність (англ. authenticity);
- достовірність (англ. reliability).
Методи і способи реалізації вимог, викладених у визначенні терміна, докладно описуються в рамках єдиної схеми забезпечення інформаційної безпеки об'єкта (захисту інформації).
Основними методами забезпечення цілісності інформації (даних) при зберіганні в автоматизованих системах є:
- забезпечення відмовостійкості (резервування, дублювання, дзеркалювання обладнання і даних, наприклад через використання RAID-масивів);
- забезпечення безпечного відновлення (резервне копіювання і електронне архівування інформації).
Одним з дієвих методів реалізації вимог цілісності інформації при її передачі лініями зв'язку є криптографічний захист інформації (шифрування, хешування, електронний цифровий підпис).
При комплексному підході до захисту бізнесу, напрям забезпечення цілісності та доступності інформації (ресурсів бізнес-процесів) переростає в план заходів, що спрямовані на забезпечення безперервності бізнесу.
Шифрування даних саме по собі, не гарантує, що цілісність даних не буде порушена, тому в криптографії використовуються додаткові методи для гарантування цілісності даних. Під порушенням цілісності розуміється наступне:
- інверсія бітів;
- додавання нових бітів (зокрема абсолютно нових даних) третьою стороною;
- видалення яких-небудь бітів даних;
- зміна порядку слідування біт або груп біт.
У криптографії рішення задачі цілісності інформації передбачає застосування заходів, що дозволяють виявляти не стільки випадкові викривлення інформації, так як для цієї мети цілком підходять методи теорії кодування з виявленням і виправленням помилок, скільки цілеспрямоване зміна інформації активним криптоаналітиком. Процес контролю цілісності забезпечується введенням в передану інформацію надмірності. Це досягається додаванням до повідомлення деякої перевірочної комбінації. Така комбінація обчислюється згідно з певним алгоритмом і відіграє роль індикатора, за допомогою якого перевіряється цілісність повідомлення. Саме цей момент дає можливість перевірити, чи були змінені дані третьою стороною. Ймовірність того, що дані були змінені, служить мірою імітостійкості шифру.
Додаткову надлишкову інформацію, внесену до повідомлення, називають імітовставкою. Вироблятися імітовставка може як до початку, так і одночасно з шифруванням повідомлення.
Число двійкових розрядів (число біт у імітовставці у загальному випадку визначається криптографічними вимог з урахуванням того, що ймовірність нав'язування помилкових даних дорівнює 1/2p
, p
— число двійкових розрядів (число біт) в імітовставці.
Імітовставка — число, обчислюване на основі вмісту повідомлення. Тобто, імітовставка є функцією повідомлення:
де:
M
— імітовставка;f
— функція, що обчислює імітовставку;x
— повідомлення.
Імітовставка може використовуватися як для перевірки аутентичності повідомлення, так і для перевірки його цілісності. В залежності від призначення імітовставки алгоритми роботи функцій f
(коди) ділять на два класи:
- коди перевірки цілісності повідомлень (MDC, англ. modification detection code). Алгоритми обчислюють імітовставку, придатну для перевірки цілісності (але не достовірності) даних, шляхом хешування повідомлення;
- коди аутентифікації (перевірки достовірності) повідомлення (MAC, англ. message authentication code). Алгоритми обчислюють імітовставку, придатну для захисту даних від фальсифікації, шляхом хешування повідомлення з використанням секретного ключа.
Хеш-функції для обчислення коду перевірки цілісності повідомлень належать до підкласу безключових хеш-функцій. В реально існуючих криптосистемах ці хеш-функції - криптографічні, тобто крім мінімальних властивостей хеш-функцій (стиснення даних, простота обчислення дайджесту (англ. digest) від повідомлення) задовольняють таким властивостям:
- безповоротність (англ. 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;
- спеціальні (англ. customized) алгоритми хешування, в яких робиться наголос на швидкість, і які незалежні від інших компонент системи (в тому числі блочних шифрів або компонент модульного множення, які можуть бути використані для інших цілей). Наприклад: MD4, MD5, SHA-1, SHA-2, RIPEMD-128, RIPEMD-160;
- на модульної арифметики; наприклад: MASH-1, MASH-2.
До MAC хеш-функцій для обчислення кодів аутентифікації повідомлень, підродини ключових хеш-функцій, відносять сімейство функцій, що задовольняють наступним властивостям:
- простота обчислення дайджесту (англ. digest) від повідомлення;
- стиснення даних — вхідне повідомлення довільної бітової довжини перетворюється в дайджест фіксованої довжини;
- стійкість до злому — маючи одну і більше пар повідомлення-дайджест (
x[i], h(x[i])
), обчислювально неможливо отримати нову пару повідомлення-дайджест (x, h(x)
), для якого-небудь нового повідомленняx
.
Якщо не виконується остання властивість, то MAC може бути підроблений. Також остання властивість означає, що ключ неможливо обчислити, тобто, маючи одну або більше пар (x[i], h(x[i])
) з ключем k
, обчислювально неможливо отримати цей ключ.
Алгоритми отримання коду аутентифікації повідомлення можуть бути розділені на наступні групи за їх типом:
- на блокових шифрах. Наприклад, CBC-MAC, RIPE-MAC1, RIPE-MAC3;
- отримання MAC з MDC;
- спеціальні (англ. customized) алгоритми. Наприклад, MAA(Message authentication algorithm), MD5-MAC;
- на потокових шифрах. Наприклад, CRC-based MAC.
Існують методи отримання з MDC кодів автентифікації повідомлень включенням секретного ключа у вхідні дані алгоритму MDC. Недоліком такого підходу є те, що фактично на практиці більшість алгоритмів MDC розроблено так, що вони є або OWHF, або CRHF, вимоги до яких відрізняються від вимог до MAC алгоритмів.
- secret prefix method: До послідовності блоків даних =x1x2x3..xn в початок приписується секретний ключ k: k||x. Для даної послідовності даних за допомогою ітераційної хеш-функції обчислюється MDC, наприклад, такий, що H0=IV (англ. initial value), Hі=f(Hi-1,xі) h(x) = Hn. Таким чином, MAC = h(k||x). Недоліком такого підходу є те, що третя сторона може дописати в кінець послідовності блоків додаткові дані y: k||x||y. Новий MAC може бути обчислений без знання ключа k: 1 = f(,y).
- secret suffix method: Секретний ключ приписується в кінець послідовності даних: x||k. У цьому випадку MAC =h(x||k). В цьому випадку може бути застосована атака методом днів народження. При довжині дайджесту n біт. Третій стороні знадобиться близько 2n/2 операцій, щоб для повідомлення x знайти повідомлення x’ таке, що h (x)= h (x'). При цьому знання ключа k буде не обов'язково. Дізнавшись значення MAC повідомлення x, третя сторона зможе згенерувати коректну пару (x',).
- envelope method with padding: Для ключа k і MDC h MAC обчислюється від повідомлення hk(x)=(k||p||x||k), де p — рядок, що доповнює ключ k до довжини блоку даних, для того, щоб гарантувати, що буде зроблено як мінімум 2 ітерації. Наприклад, для MD5 k — 128 біт, а p — 384 біта.
- HMAC: Для ключа k і MDC h MAC обчислюється від повідомлення hk(x)=(k||p1||h(k||p2||x)), де p1,p2 — різні рядки, доповнюють k до довжини блоку даних. Така конструкція досить ефективна, незважаючи на подвійне використання h.
Фактично, у загальному вигляді, процес передачі даних і їх перевірки на цілісність виглядає наступним чином: користувач A додає до свого повідомлення дайджест. Ця пара буде передана другій стороні B. Там виділяється повідомлення, обчислюється для нього дайджест і дайджести порівнюються. У разі збігу значень повідомлення буде вважатися достовірним. Розбіжність буде говорити про те, що дані були змінені.
Від вихідного повідомлення обчислюється MDC, =h(x). Цей дайджест додається до повідомлення С=(x||h(x)). Потім розширене таким чином повідомлення шифрується якимось криптоалгоритмом E з загальним ключем k. Після шифрування отримане повідомлення Cencripted передається другій стороні, яка використовуючи ключ, виділяє з шифрованого повідомлення дані x обчислює значення дайджесту '. Якщо він збігається з отриманим , то вважається, що цілісність повідомлення було збережено.
Метою цього шифрування є захист доданого MDC, щоб третя сторона не могла змінити повідомлення без порушення відповідності між розшифрованим текстом і відновленим кодом перевірки цілісності даних
Якщо при передачі даних конфіденційність не є суттєвою, крім як для забезпечення цілісності даних, то можливі схеми, в яких будуть зашифровані або повідомлення x, або MDC.
- Використання схеми з шифруванням тільки MDC, (x, Ek(h(x))), фактично призводить до окремого випадку MAC. Але в даному випадку, що нетипово для MAC, колізія для даних x, x' може бути знайдена без знання ключа k. Таким чином, хеш-функція має задовольняти вимогу стійкості до колізій другого роду. Так само треба відзначити, що існують такі проблеми: якщо колізія знайдена для двох значень вхідних даних при якому-небудь ключі, то вона збережеться і при зміні цього ключа; якщо довжина блоку шифру менше, ніж довжина дайджесту, то розбиття дайджесту може призвести до уразливості схеми.
- Шифрування тільки даних, (Ek(x), h(x)), дає певний виграш в обчисленнях при шифруванні (за винятком коротких повідомлень). Як і в попередньому випадку, хеш-функція повинна бути стійка до колізій другого роду.
Порівняно з попереднім випадком в канал надсилається повідомлення наступного вигляду: Ek(x||hk1(x)). Така схема забезпечення цілісності має перевагу над попередньою схемою з MDC: якщо шифр буде зламаний, MAC все одно буде забезпечувати цілісність даних. Недоліком є те, що використовується два різних ключі, для криптоалгоритма і для MAC. При використанні такої схеми, слід бути впевненим, що будь-які залежності між алгоритмом MAC і алгоритмом шифрування не призведуть до уразливості системи. Рекомендується, щоб ці два алгоритми були незалежними (наприклад, такий недолік системи може проявлятися, коли як алгоритм MAC використовується CBC-MAC, і як схема шифрування CBC).
Взагалі кажучи, шифрування повідомлення при використанні кодів аутентифікації повідомлень не обов'язково з точки зору забезпечення цілісності даних тому в найпростіших випадках у схемі може не відбуватися шифрування повідомлення (x||hk(x)).
З точки зору криптографії основний інтерес представляють завдання забезпечення цілісності даних, в яких здійснюються їх навмисні зміни. Однак методи забезпечення перевірки випадкових змін теж застосовуються. До таких методів відносять використання кодів виявлення і виправлення помилок. До таких, наприклад, належать: коди Хеммінга, коди CRC, коди БЧХ та інші.
Проблема перевірки цілісності даних тісно пов'язана з проблемою перевірки їх автентичності (тобто з проблемою визначення джерела даних). Ці проблеми не можуть розглядатися окремо. Дані, які були змінені, фактично мають нове джерело. Якщо нове джерело невідоме (немає посилання на джерело), питання про зміну даних не може бути дозволено. Таким чином, механізми перевірки цілісності даних забезпечують перевірку їх автентичності і навпаки.
- ↑ Рекомендації по стандартизації. «Технічний захист інформації. Основні терміни і визначення». Р 50.1.053-2005..
- ↑ Рекомендації по стандартизації. «Технічний захист інформації. Основні терміни і визначення». Р 50.1.056-2005..
- ↑ Национальный стандарт РФ. «Методы и средства обеспечения безопасности. Часть 1. Концепция и модели менеджмента безопасности информационных и телекоммуникационных технологий». ГОСТ Р ИСО/МЭК 13335-1 — 2006.
- ↑ Национальный стандарт Российской федерации. «Информационная технология. Практические правила управления информационной безопасностью» (ГОСТ Р ИСО/МЭК 17799—2005).
- ↑ Национальный стандарт Российской федерации. «Информационная технология. Электронный обмен информацией. Термины и определения». ГОСТ Р 52292-2004.
↑ Національний стандарт РФ. «Методи та засоби забезпечення безпеки. Частина 1. Концепція та моделі менеджменту безпеки інформаційних і телекомунікаційних технологій». ГОСТ Р ІСО/МЕК 13335-1 — 2006. (рос.)
↑ Національний стандарт Російської федерації. «Інформаційна технологія. Практичні правила управління безпекою інформації» (ГОСТ Р ІСО/МЕК 17799-2005). (рос.)
↑ Національний стандарт Російської федерації. «Інформаційна технологія. Електронний обмін інформацією. Терміни та визначення». ГОСТ Р 52292-2004. (рос.)
↑ Jet Info № 5 (2007) Безперервність бізнесу. Підходи і рішення (англ.)
- http://otherreferats.allbest.ru/radio/00024745_0.html [Архівовано 6 листопада 2009 у Wayback Machine.]