Целостность информации

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Целостность информации (также целостность данных) — термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.

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

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

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

В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом. К примеру, когда существуют дочерние записи-сироты, которые не имеют связи с родительскими записями.

Для проверки целостности данных в криптографии используются хеш-функции, к примеру, MD5. Такая функция преобразует совокупность данных в число. Если данные изменятся, то и число, генерируемое хеш-функцией, тоже изменится.

Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённый вид и качество.

Область использования[править | править вики-текст]

Понятие «целостность объекта» (англ. integrity) используется в контексте терминологии информационной безопасности (объектом может быть информация, специализированные данные, ресурсы автоматизированной системы). В частности, свойство целостности информации (ресурсов автоматизированной системы) — является одним из трех основных критериев информационной безопасности объекта.

Обычно свойство целостности требуется наряду с конфиденциальностью (confidentiality) и доступностью (availability). Иногда к списку необходимых свойств информационной безопасности объекта добавляют неотказуемость (non-repudiation), подотчётность (accountability), аутентичность или подлинность (authenticity), достоверность (reliability).

Определения понятия[править | править вики-текст]

В Рекомендациях по стандартизации Р 50.1.053-2005[1] дается следующее определение:

Целостность информации (ресурсов автоматизированной информационной системы) — состояние информации (ресурсов автоматизированной информационной системы), при котором ее (их) изменение осуществляется только преднамеренно субъектами, имеющими на него право.

В Рекомендациях по стандартизации Р 50.1.056-2005[2] определения уточнены и разнесены по объектам приложения:

Целостность информации — состояние информации, при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.

Целостность ресурсов информационной системы — состояние ресурсов информационной системы, при котором их изменение осуществляется только преднамеренно субъектами, имеющими на него право, при этом сохраняются их состав, содержание и организация взаимодействия.

В некоторых специализированных стандартах используются собственные определения данного понятия:

Целостность (integrity)[3] — свойство сохранения правильности и полноты активов.

Целостность информации[4] — обеспечение достоверности и полноты информации и методов ее обработки.

Целостность документа[5] — свойство документа, состоящее в том, что при любой демонстрации документа заданные значения параметров демонстрируемого представления документа соответствуют специфицированным требованиям.

Использование термина[править | править вики-текст]

Термин используется в следующих областях знаний: информационная безопасность, компьютерная безопасность, защита информации, защита компьютерных сетей и информационных систем, информационные технологии, корпоративные информационные системы.

Реализация содержания[править | править вики-текст]

Методы и способы реализации требований, изложенных в определении термина, подробно описываются в рамках единой схемы обеспечения информационной безопасности объекта (защиты информации).

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

Одним из действенных методов реализации требований целостности информации при ее передаче по линиям связи является криптографическая защита информации (шифрование, хеширование, электронная цифровая подпись).

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

Целостность данных в криптографии[править | править вики-текст]

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

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

Процесс контроля целостности обеспечивается введением в передаваемую информацию избыточности. Это достигается добавлением к сообщению некоторой проверочной комбинации. Такая комбинация вычисляется согласно определенным алгоритмам и играет роль индикатора, с помощью которого проверяется целостность сообщения. Именно этот момент дает возможность проверить, были ли изменены данные третьей стороной. Вероятность того, что данные были изменены, служит мерой имитостойкости шифра.

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

Имитовставки[править | править вики-текст]

Число двоичных разрядов в имитовставке в общем случае определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных данных равна 1/2p, где p — число двоичных разрядов в имитовставке.

Имитовставка, является функцией сообщения x, M=f(x). Она может служить для целей аутентификации сообщения и проверки его целостности. Поэтому имитовставки можно разделить на два класса:

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

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.

MAC[править | править вики-текст]

К MAC хэш-функциям для вычислений кодов аутентификации сообщений, подсемейству ключевых хэш-функций, относят семейство функций удовлетворяющих следующим свойствам:

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

Если не выполняется последнее свойство, то MAC может быть подделан. Также последнее свойство подразумевает, что ключ невозможно вычислить, то есть, имея одну или более пар (x[i], h(x[i])) с ключом k, вычислительно невозможно получить этот ключ.

Алгоритмы получения кода аутентификации сообщения могут быть разделены на следующие группы по их типу:

Получение MAC на основе MDC[править | править вики-текст]

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

  1. secret prefix method : К последовательности блоков данных x=x1x2x3..xn в начало приписывается секретный ключ k: k||x. Для данной последовательности данных с помощью итерационной хэш-функции вычисляется MDC, например, такой, что H0=IV (от англ. initial value), Hi=f(Hi-1,xi) h(x) = Hn. Таким образом, MAC M=h(k||x). Минусом такого подхода является то, что третья сторона может дописать в конец последовательности блоков дополнительные данные y: k||x||y. Новый MAC может быть вычислен без знания ключа k: M1 = f(M,y).
  2. secret suffix method : Секретный ключ приписывается в конец последовательности данных: x||k. В этом случае MAC M=h(x||k). В этом случае может быть применена атака методом дней рождений. При длине дайджеста в n бит. Третьей стороне понадобится порядка 2n/2 операций, чтобы для сообщения x найти сообщение x’ такое, что h(x)= h(x’). При этом знание ключа k будет не обязательно. Узнав значение MAC M для сообщения x, третья сторона сможет сгенерировать корректную пару (x’,M).
  3. envelope method with padding : Для ключа k и MDC h вычисляется MAC от сообщения hk(x)=(k||p||x||k), где p — строка, дополняющая ключ k до длины блока данных, для того, чтобы гарантировать, что будет произведено как минимум 2 итерации. Например, для MD5 k — 128 бит, а p — 384 бита.
  4. HMAC : Для ключа k и MDC h вычисляется MAC от сообщения hk(x)=(k||p1||h(k||p2||x)), где p1,p2 — различные строки, дополняющие k до длины блока данных. Такая конструкция довольно эффективна, несмотря на двойное использование h.

Схемы использования[править | править вики-текст]

Фактически, в общем виде, процесс передачи данных и их проверки на целостность выглядит следующим образом: пользователь A добавляет к своему сообщению дайджест. Эта пара будет передана второй стороне B. Там выделяется сообщение, вычисляется для него дайджест и дайджесты сравниваются. В случае совпадения значений сообщение будет считаться достоверным. Несовпадение будет говорить о том, что данные были изменены.

Обеспечение целостности данных с использованием шифрования и MDC[править | править вики-текст]

От исходного сообщения вычисляется MDC, M=h(x). Этот дайджест добавляется к сообщению С=(x||h(x)). Затем расширенное таким образом сообщение шифруется каким-то криптоалгоритмом E с общим ключом k. После шифрования полученное сообщение Cencripted передается второй стороне, которая используя ключ, выделяет из шифрованного сообщения данные x’ вычисляет для него значение дайджеста M’. Если он совпадает с полученным M, то считается, что целостность сообщения была сохранена. Целью этого шифрования является защита добавленного MDC, чтобы третья сторона не могла изменить сообщение без нарушения соответствия между расшифрованным текстом и восстановленным кодом проверки целостности данных. Если при передаче данных конфиденциальность не является существенной, кроме как для обеспечения целостности данных, то возможны схемы, в которых будут зашифрованы только либо сообщение x, либо MDC.

  • Использование схемы с шифрованием только MDC, (x, Ek(h(x))), фактически приводит к частному случаю MAC. Но в данном случае, что нетипично для MAC, коллизия для данных x, x’ может быть найдена без знания ключа k. Таким образом, хэш-функция должна удовлетворять требованию стойкости к коллизиям второго рода. Так же надо отметить, что существуют такие проблемы: если коллизия найдена для двух значений входных данных при каком-либо ключе, то она сохранится и при изменении этого ключа; если длина блока шифра меньше, чем длина дайджеста, то разбиение дайджеста может привести к уязвимости схемы.
  • Шифрование только данных, (Ek(x), h(x)), дает некоторый выигрыш в вычислениях при шифровании(за исключением коротких сообщений). Как и в предыдущем случае, хэш-функция должна быть устойчива к коллизиям второго рода.

Обеспечение целостности данных с использованием шифрации и MAC[править | править вики-текст]

По сравнению с предыдущим случаем в канал посылается сообщение следующего вида: Ek(x||hk1(x)). Такая схема обеспечения целостности имеет преимущество над предыдущей схемой с MDC: если шифр будет взломан, MAC все равно будет обеспечивать целостность данных. Недостатком является то, что используется два различных ключа, для криптоалгоритма и для MAC. При использовании подобной схемы, следует быть уверенным, что какие-либо зависимости между алгоритмом MAC и алгоритмом шифрации не приведут к уязвимости системы. Рекомендуется, чтобы эти два алгоритма были независимыми (например, такой недостаток системы может проявляться, когда в качестве алгоритма MAC используется CBC-MAC, и в качестве схемы шифрования CBC).

Вообще говоря, шифрация всего сообщения при использовании кодов аутентификации сообщений не обязательно с точки зрения обеспечения целостности данных, поэтому в простейших случаях в схеме может не происходить шифрация сообщения (x||hk(x)).

Неумышленные нарушения целостности[править | править вики-текст]

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

Аутентификация и целостность[править | править вики-текст]

Проблема целостности данных плотно связанно и с проблемой аутентификации данных, то есть установлением источника данных. Эти проблемы не могут быть отделены одна от другой. Данные, которые были изменены, имеют фактически новый источник. Также если не известен источник данных, то вопрос об их изменении не может быть разрешен (без ссылки на источник). Таким образом, механизмы проверки целостности данных обеспечивают аутентификацию данных, и наоборот.

Использование ГОСТ 28147-89[править | править вики-текст]

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

  1. Исходный текст делится на блоки Ti длиной в 64 бита.
  2. Блоки Ti последовательно подвергаются преобразованию, соответствующему первым 16 раундам работы ГОСТ в режиме простой замены.
  3. После 16 раундов полученное 64-разрядное число прибавляется по модулю 2 к следующему блоку Ti+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) Непрерывность бизнеса. Подходы и решения.

Ссылки[править | править вики-текст]

См. также[править | править вики-текст]

Логотип Викисловаря
В Викисловаре есть статья «целостность»