СПОСОБ КОНТРОЛЯ И ОБЕСПЕЧЕНИЯ ЦЕЛОСТНОСТИ ДАННЫХ
DATA INTEGRITY MONITORING AND ENSURING METHOD

Область техники, к которой относится изобретение
Предлагаемое изобретение относится к области защиты данных, записанных в память для хранения, и может быть использовано для контроля и обеспечения их целостности в условиях преднамеренных воздействий злоумышленника.
Уровень техники
В настоящее время перед пользователями различных информационных систем стоят задачи по защите содержащихся и обрабатываемых в них данных. Одной из мер обеспечения защищенности данных, содержащихся и обрабатываемых в информационных системах, является защита их целостности (Методический документ. Меры зашиты информации в государственных информационных системах: утв. директором ФСТЭК 11.02.2014 // ФСТЭК России, 2014. - 176 с.).
Особую актуальность решение задачи защиты целостности данных приобретает в процессе функционирования повсеместно создаваемых за рубежом и в нашей стране центров обработки данных при использовании в их составе различных средств обработки с отличающимися структурами построения и принципами работы. Поэтому под термином «средство обработки данных» будем понимать любое электронное устройство, содержащее память для хранения данных, в которую можно загружать данные из внешней среды (источника).
Задача защиты целостности данных является сложной, ввиду своей комплексности, так как включает в себя не только контроль целостности данных, но и ее обеспечение, что подразумевает восстановление данных, целостность которых была нарушена по каким-либо причинам.
Целостность данных нарушается обычно в результате преднамеренного несанкционированного изменения данных (например, посредством действия вредоносного кода) или выхода из строя части носителя (например, отдельных ячеек, секторов).
Как правило, задача защиты целостности данных решается с помощью различных способов. Далее для раскрытия сути изобретения приводится краткое описание существующих способов защиты целостности данных.
а) Описание аналогов
Известны способы контроля целостности данных за счет вычисления контрольных сумм и сравнения их с эталонными (Патент РФ №2145727 публ. 20.02.2000; Патент РФ №2467495 публ. 20.11.2012; Патент РФ №2628894 публ. 06.09.2016), а также способы, основанные на применении криптографических методов: ключевое и бесключевое хеширование, средства электронной подписи (Патент РФ №2408071 публ. 27.12.2010; Патент РФ №2500027 публ. 27.11.2013; Заявка на патент РФ №2005113932 публ. 20.01.2007; Заявка на патент РФ №2004110622 публ. 10.10.2007; Заявка на патент РФ №2006116797 публ. 27.01.2008; Заявка на патент РФ №2007141753 публ. 10.09.2010; Заявка на патент РФ №2012107193 публ. 10.10.2013; Заявка на патент РФ №2013149120 публ. 10.05.2015; Заявка на патент РФ №2015152423 публ. 14.06.2017; Кнут, Д.Э. Искусство программирования для ЭВМ. Том 3 сортировка и поиск [Текст] / Д.Э.Кнут. - М.: «Мир», 1978. - 824 с.; Menezes, A.J. Handbook of Applied Cryptography [Текст] / A.J. Menezes, Paul C. van Oorschot, Scott A.Vanstone. - M.: CRC Press, Inc., 1996. - 816 c.; Biham, E. A framework for iterative hash functions. - HAIFA [Текст] / E. Biham, O. Dunkelman. - M.: HAIFA, ePrint Archive, Report 2007/278. - 20 с.; To же [Электронный ресурс]. - Режим доступа: eprint.iacr.org/2007/278.pdf (July, 2007); Wang, X. How to break MD5 and Other Hash Function [Текст] / X.Wang, H.Yu. - M.: EUROCRYPT 2005, LNCS 3494, Springer-Verlag 2005. - C. 19-35; Bellare, M. New Proofs for NMAC and HMAC: Security without Collision-Resistance [Текст] / M. Bellare. - M.: CRYPTO 2006, ePrint Archive, Report 2006/043. - 31 с.; To же [Электронный ресурс]. - Режим доступа: eprint.iacr.org/2006/043.pdf (2006)).
Недостатком данных способов является отсутствие возможности без ввода дополнительного механизма восстановления данных обеспечить их целостность.
Известны способы обеспечения целостности данных за счет применения различных видов резервирования (с использованием программно-аппаратной или программной реализации технологии RAID (Redundant Array of Independent Disks) (RAID-массивы), методы дублирования, методы избыточного кодирования) (Патент РФ №2406118 публ. 10.04.2007; Патент РФ №2481632 публ. 10.05.2013; Патент РФ №2513725 публ. 20.04.2014; Патент РФ №2598991 публ. 10.10.2016; Патент США №7392458 публ. 24.06.2008; Патент США №7437658 публ. 14.10.2008; Патент США №7600176 публ. 06.10.2009; Заявка на патент США №20090132851 публ. 21.05.2009; Заявка на патент США №20100229033 публ. 09.09.2010; Заявка на патент США №20110114567 публ. 16.06.2011; Заявка на патент США №20110167294 публ. 07.07.2011; Заявка на патент США №20110264949 публ. 27.10.2011; Уоррен, Г. Подсчет битов: алгоритмические трюки для программистов (Hacker's Delight) [Текст] / Г. Уоррен, мл. - М.: «Вильямc», 2007. - 512 с.; Морелос-Сарагоса, Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение [Текст] / Р. Морелос-Сарагоса; перевод с англ. В.Б. Афанасьев. - М.: Техносфера, 2006. - 320 с.; Хемминг, Р.В. Теория кодирования и теория информации [Текст] / Р.В. Хемминг; перевод с англ. - М.: «Радио и связь», 1983. - 176 с.).
Недостатками данных способов являются:
- высокая избыточность;
- большое количество криптографических преобразований.
Представленные решения показывают, что часть способов позволяет осуществить контроль целостности данных путем сравнения эталонных и вычисляемых сигнатур хэш-функций (контрольных сумм) при запросе на использование хранящихся в памяти данных (фиг. 1), однако в них отсутствует механизм их восстановления в случае несанкционированного изменения, что не обеспечивает их целостность. Другие способы, напротив, позволяют обеспечить целостность данных путем их восстановления, к примеру, из резервной копии (фиг. 2), однако практическое их использование без возможности осуществления контроля целостности данных является неэффективным. Отдельные способы позволяют осуществить контроль и обеспечить целостность данных, однако ценной высокой избыточности (фиг. 3). Наиболее популярными являются решения комплексной защиты целостности данных, связанной с одновременным решением задач контроля и обеспечения целостности данных, что достигается за счет последовательного применения сначала криптографического преобразования к данным, а затем применения технологии резервного копирования данных (фиг. 4). При этом, защита целостности данных актуальна как для систем типа RAID, где все носители размещены в одном конструктивном блоке, так и для распределенных систем хранения, то есть для сетевых хранилищ.
Так в Заявке на патент США №20050081048 публ. 14.04.2005 предложен способ защиты данных в RAID-массивах, согласно которому перед записью на RAID-массив (после чтения с RAID-массива) данные шифруются (расшифровываются) специально выделенным устройством, подключенным к PCI-шине. Ключ шифрования/расшифрования считывается с внешнего запоминающего устройства и/или запрашивается у пользователя.
В Патенте США №7752676 публ. 06.07.2010 предложен способ защиты данных в сетевом хранилище, согласно которому, пользовательский запрос на чтение (запись) данных сначала проходит процедуру авторизации, и только в случае разрешения операции выполняется соответственно расшифрование (шифрование) данных на сетевом хранилище. Ключи шифрования/расшифрования хранятся на стороне клиента.
Другой вариант комбинированной защиты предложен в Заявке на патент США №20110107103 публ. 05.05.2011, согласно которому данные хранятся в облаке, а модуль шифрования хранится не на стороне клиента, а на стороне провайдера облачного хранилища. Это решение предназначено, как правило, для защиты резервных копий данных в облаке, хотя оригинальные данные хранятся на стороне клиента в исходном виде. При этом для обеспечения защиты данных файл с данными сначала разбивается на части, а затем каждая часть преобразуется с помощью криптографического алгоритма и записывается на один или несколько носителей в облаке. Защита обеспечивается в случае, когда данные утрачиваются на стороне клиента. В этом случае резервная копия восстанавливается из облака.
Недостатком данных способов является отсутствие возможности без ввода дополнительного механизма контроля осуществить проверку достоверности данных после их восстановления при обеспечении их целостности в случае ее нарушения.
Анализ предшествующего уровня техники и возможностей показывает, что для защиты целостности данных при рассмотрении этого понятия в комплексе необходимо осуществить интегрирование существующих решений. Комбинирование известных способов в одном позволяет осуществить контроль и обеспечить целостность данных.
б) Описание ближайшего аналога (прототипа)
Наиболее близким по технической сущности к заявленному изобретению (прототипом) является способ защиты информации для RAID-массивов, согласно которому перед записью в массив данные разбиваются на несколько сегментов, после чего от данных из каждого сегмента отдельно вычисляются контрольные суммы. Сегменты данных и контрольные суммы далее распределяются по дискам RAID-массива (Патент США №8209551 публ. 26.06.2012).
Недостатком известного способа является отсутствие процедуры проверки достоверности данных после их восстановления при обеспечении их целостности в случае ее нарушения.
Раскрытие изобретения
а) Технический результат, на достижение которого направлено изобретение
Целью настоящего изобретения является разработка способа контроля и обеспечения целостности данных с возможностью проверки их достоверности после восстановления в случае нарушения их целостности в условиях преднамеренных воздействий злоумышленника.
б) Совокупность существенных признаков
1
n
1
n
1
2
n
n+1
k
Поставленная цель достигается тем, что в известном способе защиты информации, заключающемся в том, что целостность данных обеспечивается за счет их резервирования с использованием технологии RAID, при которой для осуществления контроля целостности данных перед записью в массив блок данных М разбивается на несколько подблоков m, …, m; часть из которых шифруется, а часть остается в открытом виде, после чего от шифрованных и нешифрованных подблоков данных вычисляются контрольные суммы, которые вместе с подблоками m, …, m распределяются по дискам RAID-массива, в представленном же способе для осуществления контроля целостности данных от первоначального блока данных М предварительно вычисляется эталонная сигнатура S хеш-функции h(M), которая в последующем сравнивается с сигнатурой S* хэш-функции h(M*), вычисляемой уже от проверяемого блока данных М*, подблоки которого для обеспечения целостности данных в случае ее нарушения формируются по правилам, аналогичным правилам построения модулярных кодов, обеспечивая при этом для подблоков m, m, …, m, которые являются информационной группой n подблоков, предназначенной для однозначного восстановления блока данных М* при нарушении его целостности, вычисление контрольной группы k-n подблоков m, …, m, дополнительно вводимой для коррекции ошибки, возникающей в условиях преднамеренных воздействий злоумышленника, в случае возникновения которой восстановление блока данных М*, без ущерба для однозначности его представления осуществляется посредством реконфигурации системы путем исключения одного или нескольких подблоков  где i=1, 2, …, k, с возникшей ошибкой, затем осуществляется проверка достоверности данных после их восстановления при обеспечении их целостности в случае ее нарушения путем сравнения вычисленной сигнатуры S** хэш-функции h(M**) уже от восстановленного блока данных М** с предварительно вычисленной эталонной сигнатурой S хэш-функции h(M) от первоначального блока данных М.
Сопоставительный анализ заявленного решения с прототипом показывает, что предлагаемый способ отличается от известного тем, что поставленная цель достигается за счет контроля целостности данных путем сравнения предварительно вычисленной эталонной сигнатуры хэш-функции от первоначального блока данных с вычисленной сигнатурой хэш-функции от проверяемого блока данных, подблоки которого для обеспечения целостности данных в случае ее нарушения формируются по правилам, аналогичным правилам построения модулярных кодов, что позволяет восстановить данные, то есть обеспечить их целостность в условиях преднамеренных воздействий злоумышленника, для проверки достоверности данных после их восстановления осуществляется сравнение сигнатуры хэш-функции уже от восстановленного блока данных с предварительно вычисленной эталонной сигнатурой хэш-функции от первоначального блока данных.
,
1
2
n
n+1
k
1
2
n
n+1
k
min
k
Контроль целостности первоначального блока данных М будет осуществляться путем сравнения предварительно вычисленной от него эталонной сигнатуры S хеш-функции h(M) с сигнатурой S* хэш-функции h(M*) вычисленной уже от проверяемого блока данных М*. При нарушении целостности данных в условиях преднамеренных воздействий злоумышленника в момент времени t будет осуществляться восстановление блока данных М*, то есть обеспечение его целостности за счет особого построения его подблоков m, m, …, m, m, …, m, которые на подготовительном этапе были сформированы по правилам, аналогичным правилам построения модулярных кодов. Коррекция возникающей ошибки будет осуществляться по известным правилам, применяемым при использовании кодов в модулярной арифметики (МА) (Акушский, И.Я. Машинная арифметика в остаточных классах [Текст] / И.Я. Акушский, Д.И. Юдицкий. - М.: Советское радио, 1968. - 440 с.). Проверка достоверности данных после их восстановления будет осуществляться путем сравнения предварительно вычисленной эталонной сигнатуры S хеш-функции h(M) от первоначального блока данных М с сигнатурой S** хэш-функции h(M**) уже от восстановленного блока данных М**. Новым является то, что в предлагаемом способе получение совокупностей подблоков m, m, …, m, m, …, m интерпретируется как построение избыточного модулярного кода, что позволяет восстановить блок данных М* в случае нарушения его целостности с возможностью коррекции возникающей ошибки на любой стадии его обработки (при условии, что минимальное кодовое расстояние d и кратность t гарантированно исправляемой ошибки удовлетворяют неравенству:  Новым является то, что восстановление блока данных М* в случае нарушения его целостности возможно путем исключения из процесса восстановления любых r подблоков без ущерба для однозначности его представления (где r=k-n - количество дополнительных подблоков), вследствие чего система подблоков блока данных М* будет интерпретироваться как несистематический или неразделимый код (где каждая разрядная цифра несет часть информации о числе, включая и избыточные символы, а также любые из r разрядных цифр можно считать избыточными символами). Новым является то, что сравнение предварительно вычисленной эталонной сигнатуры S хэш-функции h(M) от первоначального блока данных М в отличие от способа-прототипа позволяет не только осуществить контроль целостности данных при ее сравнении с сигнатурой S* хэш-функции h(M*) от проверяемого блока данных М*, но и выполнить проверку достоверности данных после их восстановления при обеспечении их целостности при ее сравнении с сигнатурой S** хэш-функции h(M**) уже от восстановленного блока данных М**.
в) Причинно-следственная связь между признаками и техническим результатом Благодаря новой совокупности существенных признаков в способе реализована возможность:
- обнаружения возникающей ошибки в условиях преднамеренных воздействие злоумышленника;
- коррекции обнаруженной ошибки;
- восстановления первоначального блока данных в случае нарушения его целостности посредством осуществления реконфигурации системы путем исключения подблока с возникшей ошибкой;
- проверки достоверности данных после их восстановления при обеспечении их целостности в случае ее нарушения.
Доказательства соответствия заявленного изобретения условиям патентоспособности «новизна» и «изобретательский уровень»
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обуславливающих тот же технический результат, который достигнут в заявленном способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Краткое описание чертежей
Заявленный способ поясняется чертежами, на которых показано:
фиг. 1 - схема, поясняющая процедуру контроля целостности данных;
фиг. 2 - схема, поясняющая процедуру восстановления данных из резервной копии;
фиг. 3 - схема, поясняющая процедуру контроля и обеспечения целостности данных (ценной высокой избыточности);
фиг. 4 - схема, поясняющая процедуру контроля и обеспечения целостности данных за счет комбинирования известных способов;
фиг. 5 - схема, поясняющая первый (подготовительный) этап осуществления разработанного способа;
фиг. 6 - схема, поясняющая второй (основной) этап осуществления разработанного способа;
фиг. 7 - общая схема разработанного способа контроля и обеспечения целостности данных.
Осуществление изобретения
Возможность реализации заявленного способа объясняется следующим.
1
2
n
1
2
n
n+1
k
1
2
n
n+1
k
На первом этапе (подготовительном) вычисляется эталонная сигнатура S хэш-функции h(M) от первоначального блока данных М. Первоначальный блок данных М по правилам, аналогичным правилам построения модулярных кодов, представляется подблоками m, m, …, m, которые будут являться информационной группой n подблоков, предназначенной для однозначного восстановления блока данных М*, для которого с учетом информационной группы n подблоков m, m, …, m по правилам, аналогичным правилам построения избыточных модулярных кодов, формируется контрольная группа k-n подблоков m, …, m, дополнительно вводимая для коррекции обнаруживаемой ошибки. Полученная совокупность подблоков m, m, …, m, m, …, m образует блок данных М*, который поступает на хранение совместно с предварительно вычисленной эталонной сигнатурой S хэш-функции h(M) от первоначального блока данных М (фиг. 5).
1
2
n
n+1
k
На втором этапе (основном) при запросе на использование хранящихся в памяти данных осуществляется контроль их целостности за счет сравнения предварительно вычисленной эталонной сигнатуры S хэш-функции h(M) от первоначального блока данных М с вычисленной сигнатурой S* хэш-функции h(M*) уже от проверяемого блока данных М*. При несоответствии значений сравниваемых между собой сигнатур, что будет характеризоваться возникновением ошибки в хранящихся данных (нарушением целостности), производится ее локализация, после чего выполняется реконфигурация системы (восстановление блока данных М*) в соответствии с математическим аппаратом МА, при котором проверяемый блок данных М* будет интерпретироваться как целое неотрицательное число А, однозначно представленное набором остатков по основаниям MA p, p, …, p<p<…<p:
1
2
n
n+1
k
MA
А=(α, α, …, α, α, …, α),
n
1
2
n
j
pj
р
1
2
n
n+1
k
где P=pp…p>A; α=|A|; |⋅| - наименьший неотрицательный вычет числа «⋅» по модулю р; p, p, …, p<p<…<p - попарно простые; j=1, 2, …, n, n+1, …, k (Акушский, И.Я. Машинная арифметика в остаточных классах [Текст] / И.Я. Акушский, Д.И. Юдицкий. - М.: Советское радио, 1968. - 440 с.; Торгашев, В.А. Система остаточных классов и надежность ЦВМ [Текст] / В.А. Торгашев. - М.: Советское радио, 1973. - 120 с.).
j
j
1
2
n
1
2
n
n+1
k
n+1
k
k
n
n+1
k
k
n
n
1
2…
n
1
2
n
n
k
n+1
k
k
n
Полученные остатки α будут интерпретироваться как подблоки m, блока данных М*, то есть остатки MA α, α, …, α будут интерпретироваться как подблоки m, m, …, m и считаться информационной группой n подблоков, a α, …, α - интерпретироваться как подблоки m, …, m и считаться контрольной группой k-n подблоков. Сама МА является в этом случае расширенной, где P=Pp…p, и охватывает полное множество состояний, представляемых всеми k вычетами. Эта область будет являться полным диапазоном МА [0, P) и состоять из рабочего диапазона [0, P), где P=ррp, определяемого неизбыточными основаниями МА (подблоками m, m, …, m), и диапазона [P, P), определяемого избыточными основаниями МА (подблоками m, …, m) и представляющего недопустимую область. Это означает, что операции над числом А выполняются в диапазоне [0, P). Поэтому правильность коррекции обнаруженной ошибки будет подтверждаться результатом операции МА, входящим в пределы P.
Математический аппарат модулярных кодов основывается на фундаментальных положениях Китайской теоремы об остатках, поэтому коррекция возникающей ошибки будет осуществляться на основании следующих теорем:
1
2
n
n+1
i
n+1
1
2
i
n
n+1
i
i
Теорема 1. Пусть основания р, р, …, p, p МА удовлетворяют условию p<p (i=1, 2, …, n) и пусть А = (α, α, …, α, …, α, α) - правильное число. Тогда величина числа А не изменится, если представлять его в системе оснований, из которой изъято основание p (то есть если в представлении А зачеркнуть цифру α).
1
2
i-1
i+1
n+1
Доказательство. Неравенство  тождественно следующему неравенству А<рр, …, p p, …, P, и, следовательно, число А может быть единственным образом представлено своими остатками по этим основаниям.
i
Определение 1. Число  полученное из А зачеркиванием цифры  называется проекцией числа А по основанию p.
1
2
n
n+1
1
2
n
n+1
Определение 2. Система оснований p, p, …, p, p, удовлетворяющая условию p<р<…<p<p, называется упорядоченной системой оснований.
1
2
i
…
n
n+1
Теорема 2. Если в упорядоченной системе оснований задано правильное число А=(α, α, …, α,, α, α), то проекции этого числа по всем основаниям совпадают, то есть .
Доказательство. Для правильного числа при условии теоремы имеют место неравенства  в соответствии с предыдущей теоремой величину А сохранит его проекция по каждому основанию (Акушский, И.Я. Машинная арифметика в остаточных классах [Текст] / И.Я. Акушский, Д.И. Юдицкий. - М.: Советское радио, 1968. - 440 с.).
Таким образом, после локализации подблока  с возникшей ошибкой операция реконфигурации выполняется вычислением А* из системы
по «правильным» основаниям МА:
i,j
где  - ошибочный остаток; B - ортогональные базисы; i, j=1, …, n, …, k; i≠j;
i,j
μ подбирается так, чтобы имело место следующее сравнение:
Составляется таблица 1, содержащая значения ортогональных базисов и модулей системы при условии возникновения однократной ошибки по каждому основанию МА.
Пример
1
2
3
4
4
1
2
3
4
5
6
6
4
5
6
Выберем систему оснований р=2, р=3, р=5, р=7, для которой рабочий диапазон равен Р=pppp=2⋅3⋅5⋅7=210. Введем контрольные основания р=11, р=13, тогда полный диапазон определяется как Р=Ррр=210⋅11⋅13=30030.
Вычислим ортогональные базисы системы:
Дано число  Вместо него при обработке данных получили  Для локализации ошибки вычисляем величину числа
Полученное число является неправильным  что свидетельствует об ошибке при обработке данных.
Вычислим проекции числа  по каждому из оснований.
1
По основанию р=2:
2
3
4
5
6
для оснований МА р=3, р=5, р=7, р=11, р=13 вычислим ортогональные базисы  Тогда
2
По основанию р=3:
1
3
4
5
6
для оснований МА р=2, р=5, р=7, р=11, р=13 вычислим ортогональные базисы  Тогда
3
По основанию р=5:
1
2
4
5
6
для оснований МА р=2, р=3, p=7, р=11, р=13 вычислим ортогональные базисы  Тогда
4
По основанию р=7:
1
2
3
5
6
для оснований МА р=2, р=3, р=5, р=11, р=13 вычислим ортогональные базисы  Тогда
5
По основанию р=11:
1
2
3
4
6
для оснований МА p=2, р=3, р=5, р=7, р=13 вычислим ортогональные базисы  Тогда
6
По основанию р=13:
1
2
3
4
5
для оснований МА: р=2, р=3, р=5, р=7, р=11 вычислим ортогональные базисы  Тогда
5
Итак, все проекции числа  кроме  неправильные. Следовательно, ошибочна цифра  по основанию р=11.
После локализации ошибки производим реконфигурацию системы за счет исключения подблока  с возникшей ошибкой, что позволит восстановить первоначальный блок дан-ных. Восстановленный блок данных обозначим как М**.
В соответствии с (1) вычислим А*, используя таблицу 1. Получим
Восстановление блока данных М* в случае нарушения его целостности обеспечивается посредством реконфигурации системы путем исключения подблока с возникшей ошибкой.
Выполнение проверки достоверности данных после их восстановления при обеспечении их целостности в случае ее нарушения осуществляется путем сравнения предварительно вычисленной эталонной сигнатурой S хэш-функции h(M) от первоначального блока данных М с вычисленной сигнатурой S** хэш-функции h(M**) уже от восстановленного блока данных М** (фиг. 6).
Общая схема разработанного способа контроля и обеспечения целостности данных представлен на рисунке (фиг. 7).