RU2774098C1 - Method of protecting relational database descriptors - Google Patents
Method of protecting relational database descriptors Download PDFInfo
- Publication number
- RU2774098C1 RU2774098C1 RU2021109601A RU2021109601A RU2774098C1 RU 2774098 C1 RU2774098 C1 RU 2774098C1 RU 2021109601 A RU2021109601 A RU 2021109601A RU 2021109601 A RU2021109601 A RU 2021109601A RU 2774098 C1 RU2774098 C1 RU 2774098C1
- Authority
- RU
- Russia
- Prior art keywords
- value
- condition
- acc
- marker
- buffer
- Prior art date
Links
- 239000003550 marker Substances 0.000 claims description 120
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 claims description 94
- 238000000034 method Methods 0.000 claims description 31
- 230000001131 transforming Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 abstract description 13
- 230000004807 localization Effects 0.000 abstract description 13
- 239000000126 substance Substances 0.000 abstract 1
- 239000002699 waste material Substances 0.000 abstract 1
- 238000009825 accumulation Methods 0.000 description 3
- 230000001965 increased Effects 0.000 description 3
- 230000000875 corresponding Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 102200091804 AMELX W4S Human genes 0.000 description 1
- 241000289659 Erinaceidae Species 0.000 description 1
- 101700012140 TAB1 Proteins 0.000 description 1
- 101700033911 TAB2 Proteins 0.000 description 1
- 101700012501 TAB3 Proteins 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000002708 enhancing Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention belongs
Заявленное изобретение относится к методам защиты информации в реляционных базах данных с использованием технологий криптографической защиты информации.The claimed invention relates to methods for protecting information in relational databases using cryptographic information protection technologies.
Уровень техникиState of the art
а) Описание аналоговa) Description of analogues
Известен способ восстановления информации в ячейке памяти по патенту SU 1501801 (класс G11C 11/40, заявл. 03.09.1987). В известном способе осуществляют восстановление данных, хранящихся в ячейке памяти, на аппаратном уровне путем изменения номинального напряжения.A known method of restoring information in a memory cell according to patent SU 1501801 (
Недостатком данного способа является:The disadvantage of this method is:
данный способ подходит для решения задачи восстановления информации, изменяемой естественным образом вследствие износа физических ячеек памяти, но не обладает механизмами, обеспечивающими защищенность хранимой информации от несанкционированных изменений.this method is suitable for solving the problem of restoring information that changes naturally due to the wear of physical memory cells, but does not have mechanisms that ensure the protection of stored information from unauthorized changes.
Известен способ обнаружения несанкционированного изменения в отношении хранилища сертификатов по патенту РФ 2715027 (класс G06F 21/64, G06F 21/552, заявл. 29.06.2018). В известном способе осуществляют обнаружение и восстановление данных о хранящихся в системе сертификатах электронной подписи.There is a known method for detecting unauthorized changes in relation to the certificate store according to the patent of the Russian Federation 2715027 (class G06F 21/64, G06F 21/552, declared 06/29/2018). In a known method, the detection and recovery of data on electronic signature certificates stored in the system is carried out.
Недостатком данного способа является:The disadvantage of this method is:
данный способ подходит для решения задачи восстановления сертификатов электронной подписи, но не обладает механизмами взаимодействия с реляционными базами данных, содержащих дескрипторы защиты.this method is suitable for solving the problem of restoring electronic signature certificates, but does not have mechanisms for interacting with relational databases containing security descriptors.
б) Описание ближайшего аналога (прототипа)b) Description of the closest analogue (prototype)
Наиболее близким по своей технической сущности к заявленному является способ защищенного доступа к БД по патенту РФ №2709288 (класс G06F 21/62, заявл. 26.07.2004, опубл. 17.12.2019 бюл. №35). Способ-прототип включает следующую последовательность действий. Технический результат достигается за счет того, что предварительно задают разрешенные IP-адреса, HWID-номера и роли пользователей структурных элементов автоматизированной системы в виде множеств IPразр={IP1, IP2,…, IPn}, Hразр={H1, Н2,…, Hn} и Rразр={R1, R2,…, Rm} для повышенной проверки прав доступа к БД, а после приема информации, включающей в себя запрос и пользовательский контекст, сравнивают значения IP-адресов, HWID-номеров и ролей пользователей из пользовательского контекста с множеством дескрипторов защиты: разрешенных IP-адресов, HWID-номеров и ролей пользователей в запоминающем устройстве. В случае если хотя бы одно из условий не удовлетворяется, то формируют сигнал тревоги и выводят информацию в соответствии с правом доступа, а при удовлетворении всех условий переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при отсутствии строк в таблице БД выполняют преобразование результата запроса в соответствии с заданной функцией преобразования F(x) по ключу X и выводят результат запроса в соответствии с правом доступа в закодированном виде.The closest in its technical essence to the claimed one is the method of secure access to the database according to the patent of the Russian Federation No. 2709288 (class G06F 21/62, declared 26.07.2004, publ. 17.12.2019 Bull. No. 35). The prototype method includes the following sequence of actions. The technical result is achieved due to the fact that allowed IP addresses, HWID numbers and user roles of the structural elements of the automated system are pre-set in the form of sets of IP res ={IP 1 , IP 2 ,..., IP n }, H res ={H 1 , H 2 ,…, H n } and R res ={R 1 , R 2 ,…, R m } for increased checking of access rights to the database, and after receiving the information, including the request and the user context, the values of IP- addresses, HWID numbers, and user roles from a user context with multiple security descriptors: allowed IP addresses, HWID numbers, and user roles in the storage device. If at least one of the conditions is not satisfied, then an alarm is generated and information is displayed in accordance with the access right, and if all conditions are satisfied, they proceed to the selection of the row to be considered when constructing the query result, and if there are no rows in the database table, the conversion is performed the result of the query in accordance with the given transformation function F(x) by the key X and output the result of the query in accordance with the access right in encoded form.
Недостатками прототипа являются:The disadvantages of the prototype are:
1. Отсутствие механизма автоматического обнаружения и локализации несанкционированных нарушений целостности данных таблиц, содержащих значения дескрипторов защиты;1. The absence of a mechanism for automatic detection and localization of unauthorized violations of the data integrity of tables containing the values of protection descriptors;
2. Отсутствие механизма автоматического восстановления несанкционированно измененного блока данных, содержащего дескрипторы защиты;2. Absence of a mechanism for automatic recovery of an unauthorizedly modified data block containing protection descriptors;
3. Отсутствие механизма оповещения о несанкционированных изменениях значений дескрипторов защиты.3. Absence of a notification mechanism about unauthorized changes in the values of security descriptors.
В настоящем изобретении предложен способ, позволяющий устранить выявленные недостатки.The present invention proposes a method to eliminate the identified disadvantages.
Раскрытие изобретения (его сущность)Disclosure of the invention (its essence)
а) технический результат, на достижение которого направлено изобретениеa) the technical result to which the invention is directed
Техническим результатом заявленного решения является разработка способа, повышающего уровень защищенности данных, хранящихся в реляционных базах данных и содержащих дескрипторы защиты. Поставленная цель достигается посредством введения функции хэширования, предназначенной для формирования криптографических контрольных сумм, и операции побитового сложения, благодаря которым появляется возможность обнаружения и локализации несанкционированно измененного блока данных некоторой таблицы и восстановления исходных данных несанкционированно измененного блока без обращения к резервному сетевому хранилищу данных, а также добавления блока формирования сигнала тревоги.The technical result of the claimed solution is the development of a method that increases the level of security of data stored in relational databases and containing security descriptors. This goal is achieved by introducing a hashing function designed to generate cryptographic checksums and bitwise addition operations, thanks to which it becomes possible to detect and localize an unauthorizedly changed data block of a certain table and restore the original data of an unauthorizedly changed block without resorting to a backup network data storage, as well as adding an alarm generating block.
б) совокупность существенных признаковb) a set of essential features
Способ защиты дескрипторов реляционной базы данных заключается в том, что принимают информацию, включающую в себя запрос и пользовательский контекст, выбирают строку, подлежащую рассмотрению при построении результата запроса, сравнивают дескриптор защиты строк с дополнительно заданными списками разрешенных IP-адресов, HWID-номеров и ролей пользователей структурных элементов автоматизированной системы с информацией из пользовательского контекста и в случае их несовпадения проверяют наличие оставшихся строк в таблице базы данных, а при их совпадении проверяют вклад строки базы данных в результат запроса и при его отсутствии переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а в случае его наличия используют упомянутую строку при построении результата запроса и проверяют наличие оставшихся строк в таблице базы данных, в случае их наличия переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при их отсутствии выводят результат запроса в соответствии с правом доступам выполнением преобразования результата запроса методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра.The way to protect relational database descriptors is to receive information including a request and a user context, select a string to be considered when constructing a query result, compare the string protection descriptor with additionally specified lists of allowed IP addresses, HWID numbers and roles users of the structural elements of the automated system with information from the user context, and if they do not match, they check the presence of the remaining rows in the database table, and if they match, they check the contribution of the database row to the query result and, if it is absent, proceed to the selection of the row to be considered when constructing the result query, and if it exists, use the mentioned string when constructing the query result and check the presence of the remaining rows in the database table, if they exist, go to the selection of the row to be considered when constructing the query result, and if they are absent, output the cut The result of the request in accordance with the access right is the transformation of the result of the request by the encoding method in accordance with the specified transformation function F(x) by the key X received from the Certification Authority.
Дополнительно, способ защиты дескрипторов реляционной базы данных основан на выполнении следующих действий: интеграции столбца кортежей CT в таблицу контрольных значений Th, хранящуюся в реляционной базе данных, заключается в том, что изначально имеются таблица контрольных значений Th и таблица T, состоящая из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, в таблицу контрольных значений Th добавляют столбец CT, элементы которого являются кортежами<0, 0>, состоящими из двух элементов, инициализируют маркеры итерации i и j изначально равные 0, а также буферы HHacc, SUMacc и z, изначально равные 0, затем переходят к шагу инкрементации значения маркера итераций i на 1, устанавливают значения маркера итерации j и буферов HHacc, SUMacc равными 0, проверяют выполнение условия превышения значением маркера итераций i значения N, в том случае, если условие выполняется, происходит завершение процесса, а в случае, если условие не выполняется происходит переход к шагу инкрементации значения маркера итераций j на 1 и присвоения буферу z значения j-го элемента кортежа MD, затем проверяют выполнение условия не превышения значением маркера итераций j значения М, в том случае, если условие выполняется, к текущему значению буфера ННасс прибавляют значение ячейки в строке i столбца z таблицы Т (далее Ti(z)), а к текущему значению буфера SUMacc побитово прибавляют значение ячейки Ti(z) и возвращаются к шагу инкрементации значения маркера итераций j на 1, а в случае, если условие не выполняется, заменяют значение ячейки i-ой строки столбца CT таблицы Th кортежем, состоящим из двух элементов, а именно: значение хэш-функции от значения буфера HHacc в качестве первого элемента и значение буфера SUMacc в качестве второго, затем возвращаются к шагу инкрементации значения маркера итераций i на 1, алгоритм интеграции столбца хэш-сумм HVT в таблицу контрольных значений, хранящуюся в реляционной базе данных, заключается в том, что изначально имеются таблица контрольных значений Th и таблица Т, состоящая из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, в таблицу контрольных значений Th добавляют столбец HVT, изначально заполненную пустыми значениями, инициализируют маркеры итераций i и j изначально равные 0, а также буферы HVacc и z, изначально равные 0, затем переходят к шагу инкрементации значения маркера итераций j на 1 и присвоения буферу z значения j-го элемента кортежа MD, устанавливают значения маркера итерации i и буфера HVacc равным 0, проверяют выполнение условия превышения значением маркера итераций у значения М, в том случае, если условие выполняется, происходит завершение процесса, а в случае, если условие не выполняется происходит переход к шагу инкрементации значения маркера итераций i на 1, затем проверяют выполнение условия не превышения значением маркера итераций i значения N, в том случае, если условие выполняется, к текущему значению буфера HVacc прибавляют значение ячейки Ti(z) и возвращаются к шагу инкрементации значения маркера итераций i на 1, а в случае, если условие не выполняется, заменяют значение j-го элемента столбца HVT таблицы Th значением хэш-функции от значения буфера HVacc, затем возвращаются к шагу инкрементации значения маркера итераций j на 1, алгоритм обнаружения и локализации несанкционированно измененного значения дескриптора защиты в строке таблицы реляционной базы данных заключается в том, что изначально имеются таблица контрольных значений Th и таблица Т, состоящая из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, а также получен индекс строки k таблицы Т, проверку которой необходимо осуществить, далее инициализируют маркер итераций у и буфер HHacc, изначально равные 0, затем переходят к шагу инкрементации значения маркера итераций у на 1 и присвоения буферу q значения у-го элемента кортежа MD, после чего проверяют выполнение условия не превышения значением маркера итераций у значения М, в том случае, если условие выполняется, к текущему значению буфера HHacc прибавляют значение ячейки Tk(q) и возвращаются к шагу инкрементации значения маркера итераций у на 1, а в случае, если условие не выполняется, проверяют выполнение условия равенства значения хэш-функции от значения буфера HHacc со значением первого элемента кортежа в столбце CT строке к таблицы Th, в том случае, если условие выполняется, происходит подтверждение легитимности дескрипторов защиты k-ой строки таблицы Т, а затем завершается процесса, а в случае, если условие не выполняется, инициализируют маркеры итерации i и j изначально равные 0, а также буфер HVacc, изначально равный 0, затем переходят к шагу инкрементации значения маркера итераций j на 1 и присвоения буферу z значения j-го элемента кортежа MD, после чего присваивают значение 0 маркеру итераций i и буферу HVacc, затем переходят к шагу инкрементации значения маркера итераций i на 1, после чего проверяют выполнение условия не превышения значением маркера итераций i значения N, в том случае, если условие выполняется, к текущему значению буфера HVacc прибавляют значение ячейки Ti(z), после чего возвращаются к шагу инкрементации значения маркера итераций i на 1, а в случае, если условие не выполняется, проверяют выполнение условия равенства значения хэш-функции от значения буфера HVacc со значением ячейки j-ой строки столбца HVT в таблице Th, в том случае, если условие выполняется, возвращаются к шагу инкрементации значения маркера итераций j на 1, а в случае, если условие не выполняется, формируют выходные данные, состоящие из текущих значений индекса строки к и имени столбца z, определяющих измененную ячейку таблицы Т, после чего происходит завершение процесса, алгоритм восстановления несанкционированно измененного дескриптора защиты в таблице реляционной базы данных заключается в том, что изначально имеются таблица контрольных значений Th и таблица Т, состоящая из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, а также получены индекс строки к и имя столбца z, определяющие ячейку таблицы Т, значение которой необходимо восстановить, далее инициализируют маркер итераций у, изначально равный 0, а также буферы q, изначально равный 0, и SUMacc, равный значению второго элемента кортежа строки к столбца CT таблицы Th, затем переходят к шагу инкрементации значения маркера итераций j на 1 и присвоения буферу q значения j-го элемента кортежа MD, после чего проверяют выполнение условия превышения значением маркера итераций у значения М, в том случае, если условие выполняется, заменяют значение ячейки Tk(z) текущим значением буфера SUMacc, после чего происходит завершение процесса, а в случае, если условие не выполняется, проверяют выполнение условия равенства текущего значения буфера наименования столбца q с наименованием столбца z, в том случае, если условие выполняется, возвращаются к шагу инкрементации маркера итераций j на 1, а в случае, если условие не выполняется, к текущему значению буфера SUMacc побитово прибавляют значение ячейки Tk(q), после чего возвращаются к шагу инкрементации значения маркера итераций j на 1, алгоритм обнаружения и локализации несанкционированно измененного значения дескриптора защиты в таблице реляционной базы данных заключается в том, что изначально имеются таблица контрольных значений Th и таблица Т, состоящая из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, далее инициализируют маркер итераций k, изначально равный 0, после чего переходят к шагу инкрементации значения маркера итераций k на 1, затем проверяют выполнение условия не превышения значением маркера итераций k значения N, в том случае, если условие не выполняется, происходит подтверждение легитимности дескрипторов защиты, хранящихся в таблице Т, после чего происходит завершение процесса, а в случае, если условие выполняется, инициализируют маркер итераций у и буфер HHacc, изначально равные 0, затем переходят к шагу инкрементации значения маркера итераций у на 7 и присвоения буферу q значения у-го элемента кортежа MD, после чего проверяют выполнение условия не превышения значением маркера итераций у значения М, в том случае, если условие выполняется, к текущему значению буфера HHacc прибавляют значение ячейки Tk(q) и возвращаются к шагу инкрементации значения маркера итераций у на 1, а в случае, если условие не выполняется, проверяют выполнение условия равенства значения хэш-функции от значения буфера HHacc со значением первого элемента кортежа строки к столбца CT таблицы Th, в том случае, если условие выполняется, возвращаются к шагу инкрементации значения маркера итераций k на 1, а в случае, если условие не выполняется, инициализируют маркеры итерации j и i, изначально равные 0, а также буферы z и HVacc, изначально равные 0, затем переходят к шагу инкрементации значения маркера итераций j на 1 и присвоения буферу z значения j-го элемента кортежа MD, после чего устанавливают значения маркера итераций i и буфера HVacc равными 0, затем переходят к шагу инкрементации значения маркера итераций i на 1, после чего проверяют выполнение условия не превышения значением маркера итераций i значения N, в том случае, если условие выполняется, к текущему значению буфера HVacc прибавляют значение ячейки Ti(z), после чего возвращаются к шагу инкрементации значения маркера итераций i на 1, а в случае, если условие не выполняется, проверяют выполнение условия равенства значения хэш-функции от значения буфера HVacc со значением ячейки j-ой строки столбца HVT в таблице Th, в том случае, если условие выполняется, возвращаются к шагу инкрементации значения маркера итераций j на 1, а в случае, если условие не выполняется, формируют выходные данные, состоящие из текущих значений индекса строки к и имени столбца z, определяющих измененную ячейку таблицы Т, после чего происходит завершение процесса.Additionally, the way to protect the descriptors of the relational database is based on performing the following actions: integrating a column of tuples C T into the watch table T h stored in the relational database, is that initially there is a watch table T h and a table T consisting of N rows and M columns, where M is equal to the size of the tuple of security descriptors M D , column C T is added to the table of control values T h , the elements of which are tuples<0, 0>, consisting of two elements, iteration markers i and j are initialized to be initially equal to 0, as well as the buffers HH acc , SUM acc and z, initially equal to 0, then go to the step of incrementing the value of the iteration marker i by 1, set the values of the iteration marker j and the buffers HH acc , SUM acc equal to 0, check the condition for exceeding the marker value iterations i of the value N, if the condition is met, the process is terminated, and if the condition is not met, the process is Go to the step of incrementing the value of the iteration marker j by 1 and assigning to the buffer z the value of the j-th element of the tuple M D , then check the fulfillment of the condition that the value of the iteration marker j value does not exceed the value of M, if the condition is met, to the current value of the buffer HH acc add the value of the cell in row i of column z of the table T (hereinafter T i (z)), and add the value of cell T i (z) bit by bit to the current value of the buffer SUM acc and return to the increment step of the iteration marker value j by 1, and in the case , if the condition is not met, replace the value of the cell of the i-th row of the column C T of the table T h with a tuple consisting of two elements, namely: the value of the hash function from the value of the buffer HH acc as the first element and the value of the buffer SUM acc as the second , then return to the step of incrementing the value of the iteration marker i by 1, the algorithm for integrating the hash sum column HV T into the check value table stored in the relational database is that initially there is a table of control values T h and a table T consisting of N rows and M columns, where M is equal to the size of the tuple of security descriptors MD, the column HV T , initially filled with empty values, is added to the table of control values T h , iteration markers i and j are initialized initially equal to 0, as well as the buffers HV acc and z, initially equal to 0, then go to the step of incrementing the value of the iteration marker j by 1 and assigning the value of the j-th element of the tuple M D to the buffer z, set the values of the iteration marker i and the buffer HV acc equal to 0 , check the fulfillment of the condition for exceeding the value of the iteration marker y of the value M, if the condition is met, the process is terminated, and if the condition is not met, the transition to the step of incrementing the value of the iteration marker i by 1 occurs, then check the fulfillment of the condition of not exceeding the value of the iteration marker i of the value N, if the condition is met, the value i is added to the current value of the buffer HV acc cells Ti(z) and return to the step of incrementing the value of the iteration marker i by 1, and if the condition is not met, replace the value of the j-th element of the HV T column of the table T h with the value of the hash function from the value of the buffer HV acc , then return to the step of incrementing the value of the iteration marker j by 1, the algorithm for detecting and localizing an unauthorized changed value of the security descriptor in the row of the relational database table is that initially there is a table of control values T h and a table T consisting of N rows and M columns, where M is equal to the size of the tuple of protection descriptors M D , and the index of the row k of the table T is obtained, which needs to be checked, then the iteration marker y and the buffer HH acc are initialized, initially equal to 0, then go to the step of incrementing the value of the iteration marker y by 1 and assigning buffer q of the value of the y-th element of the MD tuple, after which the condition is checked that the value of the iteration marker y does not exceed the value of M, in if the condition is met, the value of the cell T k (q) is added to the current value of the buffer HH acc and the value of the iteration marker y is incremented by 1, and if the condition is not met, the hash function value equality condition is checked from the value of the buffer HH acc with the value of the first element of the tuple in the column C T row to the table T h , if the condition is met, the legitimacy of the protection descriptors of the kth row of the table T is confirmed, and then the process ends, and if the condition is not met, initialize the iteration markers i and j initially equal to 0, as well as the buffer HV acc , initially equal to 0, then proceed to the step of incrementing the value of the iteration marker j by 1 and assigning the value of the j-th element of the tuple M D to the buffer z, after which assign the
Сопоставительный анализ заявляемого решения с прототипом показывает, что предлагаемый способ отличается от известного:Comparative analysis of the proposed solution with the prototype shows that the proposed method differs from the known:
1. Наличием механизма автоматического обнаружения и локализации несанкционированного изменения значения дескриптора защиты таблицы реляционной базы данных;1. The presence of a mechanism for automatic detection and localization of unauthorized changes in the value of the protection descriptor of a relational database table;
2. Наличием механизма автоматического восстановления исходного значения дескриптора защиты таблицы;2. The presence of a mechanism for automatically restoring the original value of the table protection descriptor;
3. Созданием таблицы контрольных значений, путем добавления в нее пары столбцов на каждую защищаемую таблицу базы данных (пример такой таблицы изображен на фигуре 2). В первых из пары столбцах хранятся хэш-суммы значений столбцов защищаемых таблиц, а во вторых из пары столбцах хранятся кортежи, из двух элементов: хэш-суммы значений строк таблиц и побитовые суммы значений строк таблиц;3. Creating a table of control values by adding a pair of columns to it for each protected database table (an example of such a table is shown in figure 2). The first of the pair of columns stores the hash sums of the values of the columns of the protected tables, and the second of the pair of columns stores the tuples of two elements: the hash sums of the table row values and the bitwise sums of the table row values;
4. Наличием механизма проверки целостности и подлинности дескрипторов защиты в процессе аутентификации пользовательского контекста при обработке запроса, и, при необходимости, автоматического восстановления исходного значения дескриптора защиты;4. The presence of a mechanism for checking the integrity and authenticity of security descriptors in the process of authenticating the user context when processing a request, and, if necessary, automatically restoring the original value of the security descriptor;
5. Наличием механизма формирования сигнала тревоги, оповещающего о несанкционированном изменении дескрипторов защиты.5. The presence of a mechanism for generating an alarm that notifies of an unauthorized change in protection descriptors.
в) причинно-следственная связь между признаками и техническим результатомc) causal relationship between features and technical result
Благодаря новой совокупности существенных признаков в заявленном способе появляется функционал обнаружения факта нарушения целостности данных, представляющих собой дескрипторы защиты информации, хранящейся в реляционной базе данных, который достигается с помощью криптографических средств защиты информации, а именно способа вычисления хэш-сумм, а также функционал восстановления целостности данных посредством вычисления побитовой суммы значений строк защищенных таблиц путем предварительного создания таблицы контрольных значений и добавления в нее пары столбцов на каждую защищаемую таблицу базы данных.Thanks to a new set of essential features in the claimed method, there is a functionality for detecting the fact of data integrity violations, which are descriptors for protecting information stored in a relational database, which is achieved using cryptographic information protection tools, namely the method for calculating hash sums, as well as the functionality for restoring integrity data by calculating the bitwise sum of the row values of protected tables by first creating a table of control values and adding a pair of columns to it for each protected database table.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».The analysis of the prior art made it possible to establish that there are no analogues characterized by a set of features identical to all the features of the claimed technical solution, which indicates the compliance of the claimed method with the condition of patentability "novelty".
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обусловливающих тот же технический результат, который достигнут в заявляемом способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».The results of the search for known solutions in this and related fields of technology in order to identify features that match the distinguishing features of the prototype of the claimed object showed that they do not follow explicitly from the prior art. The prior art also did not reveal the fame of distinctive essential features that determine the same technical result that is achieved in the claimed method. Therefore, the claimed invention meets the condition of patentability "inventive step".
Краткое описание чертежейBrief description of the drawings
Заявленный способ поясняется чертежами, на которых показаны:The claimed method is illustrated by drawings, which show:
фиг. 1 - таблица Т базы данных с защищаемой информацией, содержащая дескрипторы защиты (TP-адреса, HWID-номера и роли пользователей);fig. 1 - table T of the database with protected information containing security descriptors (TP addresses, HWID numbers and user roles);
фиг. 2 - демонстрационная таблица контрольных значений Th с тремя интегрированными таблицами (Tab1, Tab2, Tab3).fig. 2 is a demonstration table of Th control values with three integrated tables (Tab1, Tab2, Tab3).
фиг. 3 - алгоритм автоматического обнаружения и локализации несанкционированного изменения дескрипторов защиты реляционной базы данных и восстановления их исходных значений;fig. 3 - algorithm for automatic detection and localization of unauthorized changes in relational database security descriptors and restoration of their original values;
фиг. 4 - алгоритм интеграции столбца кортежей С в таблицу контрольных значений;fig. 4 - algorithm for integrating a column of tuples C into a table of control values;
фиг. 5 - алгоритм интеграции столбца хэш-сумм HV в таблицу контрольных значений;fig. 5 shows an algorithm for integrating the hash sum column HV into the check value table;
фиг. 6 - алгоритм обнаружения и локализации несанкционированно измененного значения дескриптора защиты в строке таблицы реляционной базы данных;fig. 6 - algorithm for detecting and localizing an unauthorized changed value of the security descriptor in a table row of a relational database;
фиг. 7 - алгоритм восстановления несанкционированно измененного дескриптора защиты в таблице реляционной базы данных;fig. 7 - algorithm for restoring an unauthorizedly changed security descriptor in a relational database table;
фиг. 8 - алгоритм обнаружения и локализации несанкционированно измененного значения дескриптора защиты в таблице реляционной базы данных.fig. 8 - algorithm for detecting and localizing an unauthorized changed value of the security descriptor in a relational database table.
Осуществление изобретенияImplementation of the invention
Реализация заявленного способа осуществляется следующим образом.The implementation of the claimed method is carried out as follows.
При обращении к базе данных пользователем в систему управления базами данных передаются текстовый запрос и пользовательский контекст. Текстовый запрос представляет собой SQL-запрос, а контекст пользователя набор данных, необходимых для осуществления идентификации пользовательского запроса, а именно: IP-адрес пользователя, HWID-номер пользователя и роль пользователя.When a user accesses a database, a text query and user context are passed to the database management system. The text query is a SQL query, and the user context is a set of data necessary to identify the user query, namely: the user's IP address, the user's HWID number, and the user's role.
В процессе аутентификации пользовательского запроса сравнивают значения IP-адресов, HWID-номеров и ролей пользователей из полученного пользовательского контекста с множеством разрешенных IP-адресов, HWID-номеров и ролей пользователей, хранящихся в базе данных.The user request authentication process compares the values of IP addresses, HWID numbers and user roles from the obtained user context with the set of allowed IP addresses, HWID numbers and user roles stored in the database.
Так как хранящиеся в базе данных дескрипторы защиты подчиняются общей политике безопасности, пользователи, не обладающие необходимыми правами доступа к защищаемой ячейке памяти, но допущенными до других разделов базы данных, могут повысить свои права доступа к некоторой закрытой информации.Since the security descriptors stored in the database are subject to a common security policy, users who do not have the necessary access rights to the protected memory location, but are allowed to access other sections of the database, can elevate their access rights to some sensitive information.
Для повышения уровня безопасности дескрипторов защиты, представленных на фигуре 1, необходимо создание таблицы контрольных значений, представленных на фигуре 2, хранящей контрольные и побитовые суммы, и интеграция в нее двух столбцов, связанных со строками и столбцами защищаемой таблицы, хранящими дескрипторы защиты, а также использование механизма расчета и обработки контрольных значений, хранящихся в данной таблице, позволяющего решать следующие задачи:To increase the security level of the protection descriptors shown in figure 1, it is necessary to create a table of control values, shown in figure 2, storing check and bit sums, and integrating into it two columns associated with the rows and columns of the protected table that store the protection descriptors, as well as use of the mechanism for calculating and processing control values stored in this table, which allows solving the following tasks:
1. Обнаружение факта несанкционированного изменения дескрипторов защиты;1. Detection of the fact of unauthorized change of protection descriptors;
2. Локализация несанкционированно измененного дескриптора защиты;2. Localization of an unauthorized changed security descriptor;
3. Восстановление подлинного значения несанкционированно измененного дескриптора защиты.3. Restoring the original value of an unauthorizedly changed security descriptor.
Таблица контрольных значений, изображенная на фигуре 2, имеет следующую структуру:The table of control values shown in figure 2 has the following structure:
1. Пары столбцов, связанные с защищаемыми дескрипторами некоторых таблиц их содержащих, имеют такие названия, как «ИмяТаблщы»_С (от англ. «Cortege» - кортеж) и «ИмяТаблицы»_HV (от англ. «Hash Vertical» - хэш вертикали);1. Pairs of columns associated with the protected descriptors of some tables containing them have names such as "TableName" _C (from the English "Cortege" - a tuple) and "TableName" _HV (from the English "Hash Vertical" - a vertical hash) ;
2. Количество пар столбцов Р определяется количеством защищаемых таблиц базы данных, содержащих дескрипторы защиты, с размерами N строк и М столбцов;2. The number of pairs of columns Р is determined by the number of protected database tables containing protection descriptors, with sizes of N rows and M columns;
3. Количество строк L таблицы контрольных значений определяется наибольшим из двух показателей: либо количеством строк N таблицы Т, содержащих дескрипторы защиты, либо размером кортежа MD (к примеру, в описываемом нами способе кортеж дескрипторов защиты MD = <IP, HWID, Role>, а размер кортежа |MD| = М = 3), содержащего дескрипторы защиты, некоторой защищенной таблицы;3. The number of rows L of the table of control values is determined by the largest of two indicators: either the number of rows N of the table T containing security descriptors, or the size of the tuple MD (for example, in the method described by us, the tuple of security descriptors MD = <IP, HWID, Role>, and the size of the tuple |MD| = M = 3) containing the protection descriptors of some protected table;
4. Столбец «ИмяТаблицы»_ HV содержит значения HVj хэш-функции для каждого j-го дескриптора (из кортежа MD) защищаемой таблицы. Значение HVj рассчитывается от эталонных (неизмененных) значений дескрипторов защищаемой таблицы, путем конкатенации всех элементов столбца, содержащего значения j-го дескриптора защищаемой таблицы, и вычисления хэш-функции от полученной суммы;4. The “TableName”_ HV column contains the HV j values of the hash function for each j-th descriptor (from the M D tuple) of the protected table. The value of HV j is calculated from the reference (unchanged) values of the descriptors of the protected table by concatenating all elements of the column containing the values of the j-th descriptor of the protected table, and calculating the hash function from the resulting sum;
5. Столбец «ИмяТаблицы»_С представляет собой кортежи, состоящие из двух элементов: значения HHi хэш-функции (от англ. «Hash Horizontal» - хэш горизонтали) и значения SUMi побитовой суммы для каждой i-ой строки (из N строк) защищаемой таблицы, содержащей дескрипторы защиты. Значения HHi и SUMi рассчитываются следующим образом:5. The column "TableName" _C is a tuple consisting of two elements: the HH i values of the hash function (from the English "Hash Horizontal" - a hash of the horizontal) and the values of SUM i of the bitwise sum for each i-th row (of N rows ) of the protected table containing the protection descriptors. The values of HH i and SUM i are calculated as follows:
5.1. Значение HHi рассчитывается от исходных (неизмененных) значений дескрипторов защиты, путем сложения всех значений дескрипторов i-ой строки (из N строк) защищаемой таблицы и вычисления хэш-функции от полученной суммы;5.1. The value of HH i is calculated from the original (unchanged) values of the protection descriptors, by adding all the values of the descriptors of the i-th row (out of N rows) of the protected table and calculating the hash function from the resulting sum;
5.2. Значение SUMi рассчитывается от исходных (неизмененных) значений дескрипторов защиты, путем побитового сложения всех значений дескрипторов i-ой строки (из N строк) защищаемой таблицы.5.2. The value of SUM i is calculated from the original (unchanged) values of the protection descriptors, by bitwise addition of all values of the descriptors of the i-th row (out of N rows) of the protected table.
Интеграция в таблицу контрольных значений вышеописанных пар столбцов позволит в дальнейшем производить дополнительную проверку подлинности дескрипторов защиты, предшествующую аутентификации пользовательского запроса, которая исключит вероятность несанкционированного доступа к закрытой информации путем подмены хранимых значений дескрипторов защиты.Integration into the table of control values of the above pairs of columns will allow further authentication of security descriptors prior to authentication of the user request, which will eliminate the possibility of unauthorized access to sensitive information by replacing the stored values of security descriptors.
Обнаружение факта изменения значений дескрипторов защиты реализуется путем сравнения исходных значений хэш-сумм НН первых из пары столбцов таблицы контрольных значений со значениями хэш-сумм соответствующих строк, перерассчитанных в момент обращения пользователя к защищаемой таблице. В том случае, если все сравниваемые пары хэш-сумм равны, подтверждается легитимность дескрипторов защиты, хранящихся в защищаемой таблице, а в ином случае, запоминается индекс строки, для которой перерассчитанное значение хэш-суммы отлично от исходного, для дальнейшего восстановления исходного значения несанкционированно измененного блока данных. Также, после обнаружения факта несанкционированного изменения значений дескрипторов защиты, формируется сигнал тревоги, оповещающий о нарушении целостности дескрипторов защиты таблицы.Detection of the fact of changing the values of security descriptors is implemented by comparing the initial values of the HH hash sums of the first of the pair of columns of the table of control values with the hash sum values of the corresponding rows recalculated at the time the user accessed the protected table. If all compared pairs of hash sums are equal, the legitimacy of the security descriptors stored in the protected table is confirmed; data block. Also, after detecting the fact of unauthorized change of the values of security descriptors, an alarm signal is generated, notifying about the violation of the integrity of the security descriptors of the table.
Локализация несанкционированно измененного дескриптора защиты реализуется путем сравнения исходных значений хэш-сумм со значениями хэш-сумм соответствующих столбцов, перерассчитанных после обнаружения факта несанкционированного изменения значения дескриптора защиты. Затем запоминается имя столбца, для которого перерассчитанное значение хэш-суммы отлично от исходного, для дальнейшего восстановления исходного значения несанкционированно измененного блока данных.Localization of an unauthorized change of the security descriptor is implemented by comparing the original hash values with the values of the hash sums of the corresponding columns, recalculated after the detection of the fact of unauthorized change of the value of the security descriptor. Then the name of the column is stored, for which the recalculated hash value is different from the original one, in order to further restore the original value of the unauthorized data block.
Восстановление несанкционированно измененного дескриптора защиты в строке i реализуется путем побитового прибавления к исходной побитовой сумме SUMi, хранящейся в таблице контрольных значений, всех элементов i-ой строки из количества М, за исключением несанкционированно измененного элемента. Полученное в результате значение будет являться исходным значением несанкционированно измененного элемента i-ой строки защищаемой таблицы.Restoration of an unauthorizedly changed security descriptor in row i is implemented by bitwise adding to the original bitwise sum SUM i stored in the table of control values, all elements of the i-th row from the number M, except for the unauthorizedly changed element. The resulting value will be the initial value of the unauthorized element of the i-th row of the protected table.
В настоящем изобретении предусматривается как проверка целостности запрашиваемых в процессе аутентификации дескрипторов защиты, так и полная проверка целостности дескрипторов защиты таблиц базы данных в рамках регламентных работ.The present invention provides for both checking the integrity of the security descriptors requested during the authentication process, and a complete check of the integrity of the security descriptors of the database tables as part of routine maintenance.
Чтобы достичь вышеуказанных и связанных целей, концепция настоящего изобретения представлена в нижеследующем описании и прилагаемыми чертежами. Эта концепция характеризует различные пути, которыми можно воплотить принципы изобретения, а настоящее изобретение следует считать включающим в себя все такие аспекты и их эквиваленты.To achieve the above and related objects, the concept of the present invention is presented in the following description and the accompanying drawings. This concept is indicative of various ways in which the principles of the invention may be implemented, and the present invention is to be considered as including all such aspects and their equivalents.
В силу все более широкого распространения персональных компьютеров важность организации информации в виде баз данных (БД) непрерывно возрастает.Due to the increasing spread of personal computers, the importance of organizing information in the form of databases (DB) is constantly increasing.
Часто возникающей проблемой в корпоративных информационных системах является отказ в обслуживании БД и нарушение целостности хранящейся в них информации, вследствие воздействия различных внешних факторов, таких как: воздействие стихийных природных явлений, преднамеренные действия злоумышленников, непреднамеренные действия сотрудников, отказ в работе оборудования и др.A frequently occurring problem in corporate information systems is the denial of service to the database and the violation of the integrity of the information stored in them, due to the influence of various external factors, such as: the impact of natural disasters, intentional actions of intruders, unintentional actions of employees, equipment failure, etc.
Таким образом, проблема восстановления целостности данных, в случае ее нарушения, является актуальной по сей день.Thus, the problem of restoring data integrity, in case of its violation, is relevant to this day.
Вследствие природы данных, хранящихся в БД, санкционирование избирательного доступа (например, запрета доступа, доступа для считывания и/или доступа для считывания и записи) к этим данным приобретает существенное значение.Due to the nature of the data stored in the database, the authorization of selective access (eg, deny access, read access and/or read and write access) to this data becomes essential.
Так как аутентификация пользовательского контекста происходит посредством использования хранящихся в БД дескрипторов защиты, важным условие корректного функционирования системы является их подлинность.Since user context authentication occurs through the use of security descriptors stored in the database, their authenticity is an important condition for the correct functioning of the system.
Для отслеживания несанкционированных изменений данных, в том числе и дескрипторов защиты, применяются контрольные суммы, рассчитываемые при помощи использования хэш-функций.To track unauthorized changes to data, including security descriptors, checksums are used, which are calculated using hash functions.
Хэш-функция - это функция, применяемая к входящему сообщению произвольной длины и возвращающая выходное значение фиксированной длины. Главной особенностью хэш-функции является однонаправленность, что обуславливает невозможность восстановить исходное сообщение по выходному значению. Стоит отметить, что выходное значение хэш-функции для одного и того же набора входных данных всегда будет одинаковым. Это позволяет фиксировать факт изменения входных данных (значения строки/столбца таблицы) путем сравнения полученного значения хэш-функции с эталонным.A hash function is a function that is applied to an input message of arbitrary length and returns an output value of a fixed length. The main feature of the hash function is unidirectionality, which makes it impossible to restore the original message from the output value. It is worth noting that the output value of the hash function for the same set of input data will always be the same. This allows you to fix the fact of changing the input data (the value of the row/column of the table) by comparing the obtained value of the hash function with the reference one.
Благодаря описанным преимуществам хэш-функций в данном изобретении реализованы обнаружение и локализация несанкционированно измененных значений дескрипторов защиты.Due to the described advantages of hash functions, this invention implements the detection and localization of unauthorized changes to the values of security descriptors.
Блок-схема 300 процесса автоматического обнаружения и локализации несанкционированного изменения дескриптора защиты таблицы реляционной базы данных и восстановления его исходного значения, отображенная на фигуре 3, объединяет блок-схемы 400, 500, 600, 700, 800, отображенные на фигурах 4-8 соответственно. Блок 301 устанавливает соединение с БД, блок 302 формирует запрос на подключение к БД, после чего происходит проверка подключения. В случае отсутствия подключения, блок 308 выводит сообщение об ошибке подключения к БД, а блок 309 подтверждает отправку повторного запроса на подключение. В случае отсутствия подтверждения (блок 310) процесс завершается, а в случае наличия подтверждения переходят к блоку 302. В целом, блоки 301-303 и 308-310 организуют установку соединения с базой данных и подключение к ней для дальнейшей работы.The
Блок 304 проверяет факт создания таблицы контрольных значений Th, необходимой для функционирования описываемого способа, структура которой была описана выше. Если таблица Th не создана, то блок 311 создает ее.
Блок 305 проверяет факт проведения интеграции пары столбцов СT и HVT в таблицу контрольных значений Th для повышения защищенности некоторой таблицы Т, содержащей N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD. Если пара столбцов для защищаемой таблицы Т не была интегрирована в таблицу контрольных значений Th, то блоки 306 и 307 интегрируют эту пару столбцов с именами CT и HVT (где Т - название некоторой защищаемой таблицы Т) соответственно.
Блок 312 проверяет условие необходимости проверки на несанкционированное изменение запрашиваемой пользователем строки таблицы Т, а точнее дескрипторов защиты, хранящихся в данной строке, для дальнейшей аутентификации пользовательского контекста и обработки информации из данной строки некоторой таблицы. Если условие выполняется, то блок 314 принимает номер запрашиваемой строки n таблицы Т, а блок 315 обнаруживает и локализует несанкционированно измененный дескриптор запрашиваемой строки n таблицы, либо подтверждает легитимность дескрипторов защиты данной строки (подробнее в блок-схеме 400 на фигуре 6).
Блок 313 проверяет условие необходимости проверки на несанкционированное изменение дескрипторов некоторую таблицу Т целиком. Данный блок исполняется в случае необходимости выполнения регламентных работ различных объемов. При необходимости проверить таблицу T целиком блок 316 обнаруживает и локализует несанкционированно измененный дескриптор некоторой таблицы Т, либо подтверждает легитимность дескрипторов защиты данной таблицы (подробнее в блок-схеме 600 на фигуре 8).Block 313 checks the condition for the need to check for unauthorized change of descriptors some table T in its entirety. This block is executed if it is necessary to perform maintenance work of various volumes. If it is necessary to check the entire table T, block 316 detects and locates an unauthorizedly modified descriptor of some table T, or confirms the legitimacy of the security descriptors of this table (for more details, see block diagram 600 in figure 8).
После обнаружения и локализации несанкционированно измененного дескриптора защиты блок 317 формирует сигнал тревоги, а блок 318 (подробнее в блок-схеме 500 на фигуре 7) восстанавливает значение данного дескриптора.After detection and localization of an unauthorized changed security descriptor, block 317 generates an alarm, and block 318 (more in block diagram 500 in figure 7) restores the value of this descriptor.
Блок-схема 400 на фигуре 4 отображает процесс интеграции первого из пары столбца кортежей CT, необходимого для обнаружения, локализации и восстановления несанкционированно измененного дескриптора защиты информации некоторой таблицы.
Блок 401 входных данных передает блоку 402 ссылку на подключение к базе данных, хранящей таблицу контрольных значений Th и некоторую защищаемую таблицу Т, состоящую из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD.The input data block 401 passes to the block 402 a link to a database connection that stores a table of control values T h and some protected table T, consisting of N rows and M columns, where M is equal to the size of the tuple of security descriptors M D .
Блок 402 добавляет в таблицу Th столбец CT из пары интегрируемых столбцов, и увеличивает количество строк таблицы контрольных значений до N, если N не меньше текущего количества строк таблицы Th. Данный столбец будет содержать кортежи С = <0, 0>, элементами которого будут значения HHi хэш-функции и значения SUMi побитовой суммы для каждой i-ой строки (из N строк) защищаемой таблицы T, содержащей дескрипторы защиты.
Блок 403 инициализирует начальные значения маркеров итераций i = 0 и j = 0, а также буферов HHacc = 0, SUMacc = 0 (от англ. «Accumulated» - аккумулируемое (накапливаемое)) и буфера z наименований столбцов дескрипторов защиты.Block 403 initializes the initial values of iteration markers i = 0 and j = 0, as well as buffers HH acc = 0, SUM acc = 0 (accumulated) and buffer z of column names of security descriptors.
Блок 404 увеличивает значение маркера итераций i на 1, что в дальнейшем способствует последовательному перебору всех N строк таблицы Т.
Блок 405 устанавливает значения маркера итераций j и буферов HHacc = 0 и SUMacc = 0 внутри работы цикла.
Блок 406 проверяет выполнение условия превышения значением маркера итераций i значения количества строк N таблицы Т, что обеспечивает перебор всех строк данной таблицы и завершение процесса интеграции первого из пары столбцов CT.
Блок 407 увеличивает значение маркера итераций у на 1, что обеспечивает перебор всех дескрипторов защиты в строке i, а также присваивает буферу z значение j-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Далее блок 408 проверяет выполнение условия непревышения значением маркера итераций у значения М. В случае выполнения условия блока 408 переходят к блоку 409, который прибавляет к накапливаемому значению HHacc значение ячейки i-ой строки столбца z таблицы Т, а также побитово прибавляет к накапливаемому двоичному значению SUMacc значение ячейки i-ой строки столбца z таблицы Т, которая хранит значение некоторого j-го дескриптора защиты. Данная операция в цикле способствует накоплению буферов HHacc и SUMacc. В том случае, если значение маркера итераций у превысило значение М, то блок 410 изменяет значение ячейки столбца CT строки i таблицы Th на значение равное кортежу <hash(HHacc), SUMacc>. Далее происходит переход на следующую строку и перерасчет новых значений контрольных и побитовых сумм дескрипторов защиты.Next, block 408 checks whether the iteration marker value y of the value M is satisfied. the value of SUM acc is the value of the cell of the i-th row of column z of table T, which stores the value of some j-th security descriptor. This operation in the loop contributes to the accumulation of buffers HH acc and SUM acc . In the event that the value of the iteration marker y has exceeded the value M, then block 410 changes the cell value of column C T of row i of table T h to a value equal to the tuple <hash(HH acc ), SUM acc >. Next, there is a transition to the next line and the recalculation of new values of the check and bit sums of the protection descriptors.
Блок-схема 500 на фигуре 5 отображает процесс интеграции второго из пары столбца HVT, необходимого для обнаружения, локализации и восстановления несанкционированно измененного дескриптора защиты информации некоторой таблицы.
Блок 501 входных данных передает блоку 502 ссылку на подключение к базе данных, хранящей таблицу контрольных значений Th и некоторую защищаемую таблицу Т, состоящую из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD.The input data block 501 passes to the block 502 a connection link to a database that stores a table of control values T h and some protected table T, consisting of N rows and M columns, where M is equal to the size of the security descriptor tuple M D .
Блок 502 добавляет в таблицу Th столбец HVT из пары интегрируемых столбцов, и увеличивает количество строк таблицы контрольных значений Th до значения М, если значение М не меньше текущего количества строк таблицы контрольных значений. Данный столбец будет содержать значения HVj, элементами которого будут значения хэш-функции для каждого j-го столбца (из кортежа MD) защищаемой таблицы Т, содержащего дескрипторы защиты.
Блок 503 инициализирует начальные значения маркеров итераций i=0 и j=0, а также буферов HVacc = 0 и z наименований столбцов дескрипторов защиты.
Блок 504 увеличивает значение маркера итераций j на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу z значение j-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 505 обнуляет значения маркера итераций у и буфера HVacc = 0 внутри работы цикла.
Блок 506 проверяет выполнение условия превышения значением маркера итераций у значения количества дескрипторов защиты М таблицы Т, что обеспечивает перебор столбцов, содержащих дескрипторы защиты, данной таблицы и завершение процесса интеграции второго из пары столбцов HVT.
Блок 507 увеличивает значение маркера итераций i на 1, что обеспечивает перебор всех дескрипторов защиты в столбце z.Block 507 increments the iteration marker i by 1, which enumerates all security descriptors in column z.
Далее, блок 508 проверяет выполнение условия непревышения значением маркера итераций i значения N количества строк таблицы Т. В случае выполнения условия блока 508 переходят к блоку 509, который прибавляет к накапливаемому значению HVacc значение ячейки i-ой строки столбца z таблицы Т. Данная операция в цикле способствует накоплению буфера HVacc. В том случае, если значение маркера итераций i превысило значение N количества строк таблицы Т, то блок 510 изменяет значение ячейки столбца HVT строки j таблицы Th на значение равное значению хэш-функции от буфера HVacc. Далее происходит переход к следующему столбцу и перерасчет новых значений контрольных сумм дескрипторов защиты.Next, block 508 checks whether the value of iteration marker i does not exceed the value N of the number of rows of table T. If the condition of
Блок-схема 600 на фигуре 6 отображает процесс обнаружения и локализации несанкционированно измененного значения дескриптора защиты в определенной строке некоторой таблицы реляционной базы данных. На данной блок-схеме также так же демонстрируется процесс подтверждения легитимности значений дескрипторов запрашиваемой строки в случае отсутствия несанкционированных изменений.
Блок 601 входных данных передает блоку 602 ссылку на подключение к базе данных, хранящей таблицу контрольных значений Th и некоторую защищаемую таблицу Т, состоящую из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD, а также индекс k-ой строки, подлежащей проверке на изменения.Input data block 601 passes to block 602 a link to a connection to a database that stores a table of control values T h and some protected table T, consisting of N rows and M columns, where M is equal to the size of the tuple of security descriptors M D , and also the index k-th the line to be checked for changes.
Блок 602 инициализирует начальные значения маркера итераций у = 0, предназначенного для перебора значений дескрипторов строки k, и буфера ННасс = 0 накопления значений дескрипторов в строке.
Блок 603 увеличивает значение маркера итераций y на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу q значение y-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 604 проверяет выполнение условия непревышения значением маркера итераций у значения количества дескрипторов защиты М таблицы Т, что обеспечивает перебор столбцов, содержащих дескрипторы защиты, данной таблицы.
В случае выполнения условия блока 604, переходят к блоку 605, который вычисляет накапливаемую сумму значений HHacc равную текущему значению HHacc прибавленному к значению дескриптора защиты строки к столбца q таблицы Т. После чего происходит переход к блоку 603.If the condition of
В случае невыполнения условия блока 604 (произойдет перебор всех значений дескрипторов строки k) переходят к блоку 606, который проверяет выполнение условия неравенства значения хэш-функции от накопленного HHacc со значением первого элемента кортежа столбца CT строки k таблицы Th.If the condition of
В случае невыполнения условия блока 606 (сравниваемые значения равны), переходят к блоку 607, который подтверждает легитимность данных k-ой строки таблицы Т. Далее происходит завершение процесса.If the condition of
Выполнение условия блока 606 свидетельствует об обнаружении несанкционированного изменения дескриптора защиты строки k. Далее переходят к стадии его локализации.Fulfillment of the condition of
Блок 608 инициализирует начальные значения маркеров итераций j=0 по столбцам таблицы Т и i=0 по столбцу j, а также буфера HVacc = 0 накопления значений дескрипторов в столбце.
Блок 609 увеличивает значение маркера итераций j на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу z значение j-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 610 обнуляет значения маркера итераций i и буфера HVacc.
Блок 611 увеличивает значение маркера итераций i по столбцу z.
Блок 612 проверяет выполнение условия непревышения значением маркера итераций i значения количества строк N таблицы Т. В случае выполнения условия блока 612 переходят к блоку 613, который вычисляет накапливаемую сумму значений HVacc столбца равную текущему значению HVacc прибавленному к значению дескриптора защиты строки i столбца z таблицы Т. После чего происходит переход к блоку 611.
В случае невыполнения условия блока 612 (перебора всех значений дескрипторов столбца j), переходят к блоку 614, который проверяет выполнение условия неравенства значения хэш-функции от накопленного HVacc со значением столбца HVT строки j таблицы Th.If the condition of block 612 (enumeration of all values of column j descriptors) is not met, go to block 614, which checks the inequality condition of the hash function value from the accumulated HV acc with the value of column HV T of row j of table T h .
Невыполнение условия блока 614 свидетельствует о том, что значения j-го столбца легитимны, и далее осуществляется переход к блоку 609 (к проверке следующего столбца на равенство сравниваемых хэш-сумм).Failure to comply with the condition of
Выполнение условия блока 614 свидетельствует о том, что завершилась стадия локализации несанкционированно измененного блока данных, и блок 615 возвращает индекс строки к и имя столбца z, определяющие несанкционированно измененное значение дескриптора защиты таблицы Т.Execution of the condition of
Блок-схема 700 на фигуре 7 отображает процесс восстановления несанкционированно измененного дескриптора защиты информации некоторой таблицы.
Блок 701 входных данных передает блоку 702 ссылку на подключение к
базе данных, хранящей таблицу контрольных значений Th и некоторую защищаемую таблицу Т, состоящую из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD. Также блок передает индекс строки к и имя столбца z, определяющие несанкционированно измененную ячейку таблицы Т.a database that stores a table of control values T h and some protected table T, consisting of N rows and M columns, where M is equal to the size of the security descriptor tuple M D . The block also passes the row index k and the column name z, which define an unauthorized cell of the table T.
Блок 702 инициализирует начальные значения маркера итераций у = 0 и буферов: начального значения восстанавливаемой ячейки строки к таблицы Т в битах SUMacc равного значению второго элемента кортежа для строки к таблицы Т в таблице Th и наименований столбцов дескрипторов защиты q.
Блок 703 увеличивает значение маркера итераций j на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу q значение j-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 704 проверяет выполнение условия превышения значением маркера итераций у значения количества дескрипторов защиты М таблицы Т, что обеспечивает перебор столбцов, содержащих дескрипторы защиты, данной таблицы. В случае невыполнения условия блока 704 (не осуществлен перебор всех столбцов с дескрипторами защиты) переходят к блоку 706, который проверяет выполнение условия равенства значения буфера q со значением имени столбца измененной ячейки z. В случае выполнения условия блока 706 переходят к блоку 703, так как при восстановлении исходного значения ячейки методом побитового сложения от изначальной побитовой суммы, само побитовое значение ячейки учитывать нельзя в связи с его несанкционированным изменением. В случае невыполнения условия блока 706, переходят к блоку 707, который вычисляет целевое аккумулируемое значение в битах SUMacc, равное побитовому прибавлению к текущему значению побитовой суммы SUMacc значения строки k столбца q таблицы Т.
Таким образом, когда проверяемое условие блока 704 выполнится (произойдет перебор всех столбцов, содержащих дескрипторы защиты), происходит переход к блоку 705.Thus, when the condition of
Блок 705 изменяет текущее несанкционированно измененное значение дескриптора защиты информации в строке k и столбце z таблицы Т на значение буфера SUMacc (то есть восстанавливает исходное значение ячейки) той же кодировки, что и текущее значение.
Блок-схема 800 на фигуре 8 описывает процесс обнаружения и локализации несанкционированно измененного значения дескриптора защиты некоторой таблицы реляционной базы данных. На данной блок-схеме также демонстрируется процесс проверки легитимности значений дескрипторов защиты некоторой таблицы в случае отсутствия несанкционированных изменений. Данный алгоритм необходим для проверки на легитимность некоторой таблицы в целом.Flowchart 800 in Figure 8 describes the process of detecting and locating an tampered security descriptor value of a relational database table. This flowchart also demonstrates the process of checking the legitimacy of the values of the security descriptors of a certain table in the absence of unauthorized changes. This algorithm is necessary to check the legitimacy of some table as a whole.
Блок 801 входных данных передает блоку 802 ссылку на подключение к базе данных, хранящей таблицу контрольных значений Th и некоторую защищаемую таблицу Т, состоящую из N строк и М столбцов, где М равно размеру кортежа дескрипторов защиты MD.The input data block 801 passes to the block 802 a connection link to a database that stores a table of control values T h and some protected table T, consisting of N rows and M columns, where M is equal to the size of the security descriptor tuple M D .
Блок 802 инициализирует начальное значение маркера итераций k = 0, предназначенного для перебора всех строк таблицы Т.
Блок 803 увеличивает значение маркера итераций k на 1, что способствует переходу к следующей строке таблицы Т.
Блок 804 проверяет выполнение условия непревышения маркером итераций к количества строк N таблицы Т, что обеспечивает перебор всех строк таблицы Т.
В случае невыполнения условия блока 804 переходят к блоку 816, который подтверждает легитимность дескрипторов защиты таблицы Т, и процесс завершается.If the conditions of
А в случае, если не был произведен перебор всех строк таблицы Т, происходит переход к блоку 805.And in the event that all rows of table T have not been searched, a transition occurs to block 805.
Блок 805 инициализирует начальные значения маркера итераций у = 0, предназначенного для перебора значений дескрипторов строки k, и буфера HHacc = 0 накопления значений дескрипторов в строке.
Блок 806 увеличивает значение маркера итераций у на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу q значение y-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 807 проверяет выполнение условия непревышения значением маркера итераций у значения количества дескрипторов защиты М таблицы Т, что обеспечивает перебор столбцов, содержащих дескрипторы защиты, данной таблицы.
В случае выполнения условия блока 807, переходят к блоку 808, который вычисляет накапливаемую сумму значений HHacc равную текущему значению HHacc прибавленному к значению дескриптора защиты строки к столбца q таблицы Т. После чего происходит переход к блоку 806.If the condition of
В случае невыполнения условия блока 807 (произойдет перебор всех значений дескрипторов строки к) переходят к блоку 809, который проверяет условие равенства значения хэш-функции от накопленного HHacc со значением первого элемента кортежа столбца CT строки k таблицы Th.If the condition of
В случае невыполнения условия блока 809 (сравниваемые значения равны) переходят к блоку 803 (переход на следующую строку таблицы 7).If the condition of
Выполнение условия блока 809 свидетельствует об обнаружении факта несанкционированного изменения дескриптора защиты строки k. Далее происходит переход к стадии его локализации.Fulfillment of the condition of
Блок 810 инициализирует начальные значения маркеров итераций j = 0 (по столбцам таблицы Т) и i = 0 (по столбцу j), а также буферов z = 0 и HVacc = 0 накопления значений дескрипторов в столбце.
Блок 811 увеличивает значение маркера итераций j на 1, что в дальнейшем способствует последовательному перебору всех М столбцов таблицы Т, содержащих дескрипторы защиты, а так же присваивает буферу z значение j-го элемента кортежа MD, что позволяет в дальнейшем обращаться к столбцу таблицы Т по наименованию дескриптора защиты.
Блок 812 обнуляет значения маркера итераций i и буфера HVacc.
Блок 813 увеличивает значение маркера итераций i по столбцу z.
Блок 814 проверяет выполнение условия непревышения значением маркера итераций i значения количества строк N таблицы Т. В случае выполнения условия блока 814 переходят к блоку 815, который вычисляет накапливаемую сумму значений HVacc столбца равную текущему значению HVacc прибавленному к значению дескриптора защиты строки i столбца z таблицы Т. После чего происходит переход к блоку 813.
В случае невыполнения условия блока 814 (произойдет перебор всех значений дескрипторов столбца j) переходят к блоку 817, который проверяет выполнение условия неравенства значения хэш-функции от накопленного HVacc со значением столбца HVT строки j таблицы Th.If the condition of
В случае невыполнения условия блока 817 считают, что значения j-го столбца легитимны, и переходят к блоку 811 (к проверке следующего столбца на равенство сравниваемых хэш-сумм).If the condition of
В случае выполнения условия блока 817 считают, что завершилась стадия локализации несанкционированно измененного блока данных, и переходят к блоку 818, который возвращает индекс строки к и имя столбца z, определяющие несанкционированно измененное значение дескриптора защиты таблицы 7.If the condition of
Claims (1)
Publications (1)
Publication Number | Publication Date |
---|---|
RU2774098C1 true RU2774098C1 (en) | 2022-06-15 |
Family
ID=
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1501801A3 (en) * | 1987-09-03 | 1994-02-15 | В.М. Тюлькин | Method for information recovery in memory gate |
US20080147595A1 (en) * | 2006-12-15 | 2008-06-19 | International Business Machines Corporation | Self-protecting database tables |
RU2613039C2 (en) * | 2011-03-23 | 2017-03-14 | Ксилопикс | Method for refinement of search results in database |
US10268721B2 (en) * | 2013-11-07 | 2019-04-23 | Salesforce.Com, Inc | Protected handling of database queries |
RU2709288C1 (en) * | 2019-03-04 | 2019-12-17 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Secure method of access to database |
RU2715027C2 (en) * | 2018-06-29 | 2020-02-21 | Акционерное общество "Лаборатория Касперского" | Method of detecting unauthorized changes to certificate store |
RU2745679C1 (en) * | 2020-07-08 | 2021-03-30 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Method for conducting migration and data replication using secured database access technology |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1501801A3 (en) * | 1987-09-03 | 1994-02-15 | В.М. Тюлькин | Method for information recovery in memory gate |
US20080147595A1 (en) * | 2006-12-15 | 2008-06-19 | International Business Machines Corporation | Self-protecting database tables |
RU2613039C2 (en) * | 2011-03-23 | 2017-03-14 | Ксилопикс | Method for refinement of search results in database |
US10268721B2 (en) * | 2013-11-07 | 2019-04-23 | Salesforce.Com, Inc | Protected handling of database queries |
RU2715027C2 (en) * | 2018-06-29 | 2020-02-21 | Акционерное общество "Лаборатория Касперского" | Method of detecting unauthorized changes to certificate store |
RU2709288C1 (en) * | 2019-03-04 | 2019-12-17 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Secure method of access to database |
RU2745679C1 (en) * | 2020-07-08 | 2021-03-30 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное орденов Жукова и Октябрьской Революции Краснознаменное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Method for conducting migration and data replication using secured database access technology |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6725240B1 (en) | Apparatus and method for protecting against data tampering in an audit subsystem | |
Hu et al. | A data mining approach for database intrusion detection | |
US10222987B2 (en) | Data deduplication with augmented cuckoo filters | |
Guo et al. | A fragile watermarking scheme for detecting malicious modifications of database relations | |
US20100212017A1 (en) | System and method for efficient trust preservation in data stores | |
CN107220559B (en) | Encryption storage method for non-tamperable file | |
RU2351978C2 (en) | Method for provision of data records set integrity | |
US20050289187A1 (en) | System and method for investigating a data operation performed on a database | |
Kamel | A schema for protecting the integrity of databases | |
Guo | Fragile watermarking scheme for tamper detection of relational database | |
Antonopoulos et al. | SQL ledger: Cryptographically verifiable data in azure SQL database | |
CN111914278A (en) | Input data checking method of database and database management system | |
CN101236587B (en) | Outsourced database enquiry and verification method based on fragile watermark | |
RU2774098C1 (en) | Method of protecting relational database descriptors | |
CN117459230A (en) | Key hosting method based on blockchain and key sharing | |
US11256824B2 (en) | Securing database backups with unique global identifier | |
CN100452026C (en) | Data once writing method and database safety management method based on the same method | |
Frank et al. | Percival: A searchable secret-split datastore | |
CN112966310B (en) | SQLite-based fine-grained data integrity verification method and device | |
CN102270323A (en) | Multi-security cigarette digital anti-counterfeiting method | |
Silvério et al. | Efficient data integrity checking for untrusted database systems | |
Ramachandran et al. | Intrusion Prevention System in RDBMS | |
Rajguru et al. | Database tamper detection and analysis | |
Sharma et al. | Detecting insider attacks on databases using blockchains | |
Morovat et al. | Verifying integrity of big data in cloud databases |