Целостность информации
Целостность информации — термин в информатике (криптографии, теории телекоммуникаций, теории информационной безопасности), означающий, что данные не были изменены при выполнении какой-либо операции над ними, будь то передача, хранение или отображение.
В телекоммуникации целостность данных часто проверяют, используя хеш-сумму сообщения, вычисленную алгоритмом MAC (англ. message authentication code).
В криптографии и информационной безопасности целостность данных (в широком смысле) — это состояние информации, при котором отсутствует любое её изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право[1]. Примеры нарушений целостности данных:
- попытка злоумышленника изменить номер аккаунта в банковской транзакции, или попытка подделки документа;
- случайное изменение информации при передаче или при неисправной работе жёсткого диска;
- искажение фактов средствами массовой информации с целью манипуляции общественным мнением.
В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом.
Примеры нарушений целостности данных:
- существование записей-сирот (дочерних записей, не имеющих связи с родительскими записями);
- существование одинаковых первичных ключей.
Для проверки целостности данных в криптографии используются хеш-функции, например, MD5. Хеш-функция преобразует последовательность байт произвольного размера в последовательность байт фиксированного размера (число). Если данные изменятся, то и число, генерируемое хеш-функцией, тоже изменится.
Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённые вид и качество.
Использование термина
Термин используют в следующих областях знаний: информационная безопасность, компьютерная безопасность, защита информации, защита компьютерных сетей и информационных систем, информационные технологии, корпоративные информационные системы.
Понятие «целостность объекта» (англ. integrity) применяют в теории информационной безопасности (ИБ). Под объектом понимают информацию, специализированные данные или ресурсы автоматизированной системы. Целостность информации (как ресурса автоматизированной системы) является одним из трёх основных свойств объекта ИБ.
Свойства объекта ИБ:
- доступность (англ. availability);
- целостность (англ. integrity);
- конфиденциальность (англ. confidentiality).
Иногда в этот список добавляют:
- неотказуемость (англ. non-repudiation);
- подотчётность (англ. accountability);
- аутентичность или подлинность (англ. authenticity);
- достоверность (англ. reliability).
Способы обеспечения целостности
Методы и способы реализации требований, изложенных в определениях термина, подробно описываются в рамках единой схемы обеспечения информационной безопасности объекта (защиты информации).
Основными методами обеспечения целостности информации (данных) при хранении в автоматизированных системах являются:
- обеспечение отказоустойчивости (резервирование, дублирование, зеркалирование оборудования и данных, например через использование RAID-массивов);
- обеспечение безопасного восстановления (резервное копирование и электронное архивирование информации).
Одним из действенных методов реализации требований целостности информации при её передаче по линиям связи является криптографическая защита информации (шифрование, хеширование, электронная цифровая подпись).
При комплексном подходе к защите бизнеса, направление обеспечения целостности и доступности информации (ресурсов бизнес-процессов) перерастает в план мероприятий, направляемых на обеспечение непрерывности бизнеса[2].
Целостность данных в криптографии
Шифрование данных не гарантирует того, что целостность данных не будет нарушена. Поэтому для проверки целостности данных в криптографии используются дополнительные методы.
Под нарушениями целостности данных понимается следующее:
- инверсия битов;
- добавление новых битов (в частности совершенно новых данных) третьей стороной;
- удаление каких-либо битов данных;
- изменение порядка следования бит или групп бит.
В криптографии решение задачи целостности информации предполагает применение мер, позволяющих обнаруживать не столько случайные искажения информации, так как для этой цели вполне подходят методы теории кодирования с обнаружением и исправлением ошибок, сколько целенаправленное изменение информации активным криптоаналитиком.
Процесс контроля целостности обеспечивается введением в передаваемую информацию избыточности. Это достигается добавлением к сообщению некоторой проверочной комбинации байт. Такая комбинация байт вычисляется согласно определённым алгоритмам и позволяет проверить, были ли данные изменены третьей стороной. Вероятность того, что данные были изменены, служит мерой имитостойкости шифра.
Дополнительную избыточную информацию, вносимую в сообщение, называют имитовставкой. Имитовставка может вычисляться до начала или во время шифрования сообщения.
Имитовставки
Число двоичных разрядов (число бит) в имитовставке в общем случае определяется криптографическими требованиями с учётом того, что вероятность навязывания ложных данных равна 1/2p
, где p
— число двоичных разрядов (число бит) в имитовставке.
Имитовставка — число, вычисляемое на основе содержимого сообщения. То есть, имитовставка является функцией сообщения:
M = f( x )
,где:
M
— имитовставка;f
— функция, вычисляющая имитовставку;x
— сообщение.
Имитовставка может использоваться как для проверки подлинности сообщения, так и для проверки его целостности. В зависимости от назначения имитовставки алгоритмы работы функций f
(коды) делят на два класса:
- коды проверки целостности сообщения (MDC, англ. modification detection code). Алгоритмы вычисляют имитовставку, пригодную для проверки целостности (но не подлинности) данных, путём хеширования сообщения;
- коды аутентификации (проверки подлинности) сообщения (MAC, англ. message authentication code). Алгоритмы вычисляют имитовставку, пригодную для защиты данных от фальсификации, путём хеширования сообщения с использованием секретного ключа.
MDC
Хеш-функции для вычисления кода проверки целостности сообщений принадлежат к подклассу бесключевых хеш-функций. В реально существующих криптосистемах эти хеш-функции являются криптографическими, то есть кроме минимальных свойств хеш-функций(сжатие данных, простота вычисления дайджеста (англ. 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
К 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, MD5-MAC;
- на потоковых шифрах. Например, CRC-based MAC.
Получение MAC на основе MDC
Существуют методы получения из MDC кодов аутентификации сообщений включением секретного ключа во входные данные алгоритма MDC. Недостатком такого подхода является то, что фактически на практике большинство алгоритмов MDC разработано так, что они являются либо OWHF, либо CRHF, требования к которым отличаются от требований к MAC алгоритмам.
- secret prefix method : К последовательности блоков данных =x1x2x3..xn в начало приписывается секретный ключ k: k||x. Для данной последовательности данных с помощью итерационной хеш-функции вычисляется MDC, например, такой, что H0=IV (от англ. initial value), Hi=f(Hi-1,xi) 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
От исходного сообщения вычисляется 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)), дает некоторый выигрыш в вычислениях при шифровании(за исключением коротких сообщений). Как и в предыдущем случае, хеш-функция должна быть устойчива к коллизиям второго рода.
Обеспечение целостности данных с использованием шифрации и MAC
По сравнению с предыдущим случаем в канал посылается сообщение следующего вида: Ek(x||hk1(x)). Такая схема обеспечения целостности имеет преимущество над предыдущей схемой с MDC: если шифр будет взломан, MAC все равно будет обеспечивать целостность данных. Недостатком является то, что используется два различных ключа, для криптоалгоритма и для MAC. При использовании подобной схемы, следует быть уверенным, что какие-либо зависимости между алгоритмом MAC и алгоритмом шифрации не приведут к уязвимости системы. Рекомендуется, чтобы эти два алгоритма были независимыми (например, такой недостаток системы может проявляться, когда в качестве алгоритма MAC используется CBC-MAC, и в качестве схемы шифрования CBC).
Вообще говоря, шифрация всего сообщения при использовании кодов аутентификации сообщений не обязательно с точки зрения обеспечения целостности данных, поэтому в простейших случаях в схеме может не происходить шифрация сообщения (x||hk(x)).
Неумышленные нарушения целостности
С точки зрения криптографии, основной интерес представляют задачи обеспечения целостности данных, в которых осуществляются их умышленные изменения. Однако методы обеспечения проверки случайных изменений тоже применяются. К таким методам относят использование кодов обнаружения и исправления ошибок, например, кодов Хемминга, CRC, БЧХ и прочих.
Целостность и подлинность
Проблема проверки целостности данных тесно связана с проблемой проверки их подлинности (то есть — с проблемой определения источника данных). Эти проблемы не могут рассматриваться отдельно. Данные, которые были изменены, фактически имеют новый источник. Если новый источник неизвестен (нет ссылки на источник), вопрос об изменении данных не может быть разрешён. Таким образом, механизмы проверки целостности данных обеспечивают проверку их подлинности и наоборот.
См. также
- Информационная безопасность
- Конфиденциальность
- Доступность информации
- Обнаружение и исправление ошибок
Примечания
- ↑ Хорев А. А. Организация защиты конфиденциальной информации в коммерческой структуре // Защита информации. Инсайд : журнал. — 2015. — № 1. — С. 14—17. — ISSN 2413-3582.
- ↑ Jet Info № 5 (2007) (недоступная ссылка) Непрерывность бизнеса. Подходы и решения.
Ссылки
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Для улучшения этой статьи желательно:
|