СПОСОБ ЗАЩИЩЕННОГО ДОСТУПА К БАЗЕ ДАННЫХ
SECURE METHOD OF ACCESS TO DATABASE

Область техники, к которой относится изобретение
Заявленное изобретение относится к вычислительным системам, а именно к способу, который связан с компьютерными базами данных (БД) и электронными хранилищами для предоставления защищенного доступа к БД и безопасного вывода информации.
Уровень техники
а) Описание аналогов
Известен способ управления многомерной базой данных (МБД) по патенту РФ №2389066 «Многомерная база данных и способ управления многомерной базой данных», (класс G06F 13/14, заявл. 28.05.2008). В известном способе осуществляют многомерный доступ к БД и описывают способ управления ими.
Недостатком данного способа является специализированное узконаправленное обеспечение безопасности информации в БД согласно многомерных векторов дескрипторов защиты, не предусматривающее дополнительных мер защиты.
Известен способ хранения и поиска информации в системе управления базами данных (СУБД) по патенту РФ №2417424 «Способ компрессии многомерных данных для хранения и поиска информации в системе управления базами данных и устройство для его осуществления», (класс G06F 17/30, заявл. 30.12.2009). Известный способ позволяет сжимать индексы, данные, повторяющиеся части элементов, используя сформированный групповой словарь, а также позволяет сжимать повторяющиеся части текстовых строк, дат и других типов данных, используя байтовый и битовый шаблоны.
Недостатком данного способа является относительно низкая проработка защищенности доступа к многомерным данным, при этом невозможно гарантировать надежность хранения информации, без ее защищенности.
б) Описание ближайшего аналога (прототипа)
Наиболее близким по своей технической сущности к заявленному является способ защищенного доступа к БД по патенту РФ №2373571 «Системы и способы, осуществляемого посредством доступа на уровне мелких структурных единиц управления данными, хранящимися в реляционных базах данных», (класс G06F 12/14, заявл. 26.07.2004, опубл. 20.11.2009 бюл. №32). Способ-прототип включает следующую последовательность действий. Принимают информацию, включающую в себя запрос и пользовательский контекст, выбирают строку, подлежащую рассмотрению при построении результата запроса, сравнивают дескриптор защиты строки с информацией из пользовательского контекста, в случае их несовпадения проверяют наличие оставшихся строк в таблице базы данных, а при их совпадении проверяют вклад строки БД в результат запроса и при его отсутствии переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а в случае его наличия используют упомянутую строку для построения результата запроса и проверяют наличие оставшихся строк в таблице БД, в случае их наличия переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при их отсутствии выводят результат запроса в соответствии с правом доступа.
По сравнению с аналогами, способ-прототип может быть использован в более широкой области применения, в том числе и для многомерных структур БД.
Недостатками прототипа являются:
1. Недостаточная защищенность БД, обусловленная тем, что обслуживание и настройка БД может осуществляться сторонними организациями, что может повлечь за собой ознакомление с информацией в БД лицами, не имеющих к ней непосредственный допуск по запросам.
2. Вывод информации осуществляется в открытом виде, без защиты данных от ознакомления с ними посторонних лиц.
3. Не предусмотрены превентивные меры по предотвращению нарушений политики безопасности до осуществления поиска нужной строки в БД и сверкой прав доступа по дескриптору защиты, в соответствии с дискреционной моделью разграничения прав доступа.
В настоящем изобретении предложен способ, позволяющий устранить выявленные недостатки.
Раскрытие изобретения (его сущность)
а) технический результат, на достижение которого направлено изобретение
Целью заявленного технического решения является разработка способа обеспечения защищенного доступа к БД, позволяющего снизить вычислительную нагрузку на БД, улучшить защиту информации в БД от внутреннего и внешнего нарушителей.
б) совокупность существенных признаков
разр
1
2
n
разр
1
2
n
paзp
1
2
m
i
разр
i
разр
i
разр
i
разр
i
paзp
i
paзp
Поставленная цель достигается тем, что принимают информацию, включающую в себя запрос и пользовательский контекст, выбирают строку, подлежащую рассмотрению при построении результата запроса, сравнивают дескриптор защиты строки с информацией из пользовательского контекста и в случае их несовпадения проверяют наличие оставшихся строк в таблице базы данных, а при их совпадении проверяют вклад строки базы данных в результат запроса и при его отсутствии переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а в случае его наличия используют упомянутую строку при построении результата запроса и проверяют наличие оставшихся строк в таблице базы данных, в случае их наличия переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при их отсутствии выводят результат запроса в соответствии с правом доступа, отличающийся тем, что предварительно задают разрешенные IP-адреса, HWID-номера и роли пользователей структурных элементов автоматизированной системы в виде множеств IР={IP, IP, …, IP}, H={H H, …, H) и R={R, R, …, R} для повышенной проверки прав доступа к базе данных, а после приема информации, включающей в себя запрос и пользовательский контекст, сравнивают значение IP-адреса i-го структурного элемента IP, автоматизированной системы из пользовательского контекста с значениями IP-адресов из множества IР, в случае их несовпадения формируют сигнал тревоги и переходят к выводу результата запроса в соответствии с правом доступа, а при совпадении значения IP-адреса i-го структурного элемента IP, автоматизированной системы из пользовательского контекста с значениями IP-адресов из множества IР сравнивают значение HWID-номера i-го структурного элемента H автоматизированной системы из пользовательского контекста с значениями HWID-номеров из множества Н, в случае их несовпадения переходят к формированию сигнала тревоги, а при совпадении значения HWID-номера i-го структурного элемента H автоматизированной системы из пользовательского контекста с значениями HWID-номеров из множества Н сравнивают значение роли пользователя i-го структурного элемента R автоматизированной системы из пользовательского контекста с значениями ролей пользователей из множества R, в случае их несовпадения переходят к формированию сигнала тревоги, а при совпадении значения роли пользователя i-го структурного элемента R автоматизированной системы из пользовательского контекста с значениями ролей пользователей из множества R переходят к выбору строки, подлежащей рассмотрению при построении результата запроса, а при отсутствии строк в таблице базы данных выполняют преобразование результата запроса методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра и переходят к выводу результата запроса в соответствии с правом доступа в закодированном виде.
Сопоставительный анализ заявляемого решения с прототипом показывает, что предлагаемый способ отличается от известного:
разр
1
2
n
разр
1
2
n
разр
1
2
m
- дополнительным предварительным заданием разрешенных IP-адресов, HWID-номеров и ролей пользователей структурных элементов автоматизированной системы, хранящихся в запоминающем устройстве в виде множеств IР={IP, IP, …, IP}, Н={H, H, …, H} и R={R,R, …, R} для повышенной проверки прав доступа в БД;
- проверкой на соответствие текущих IP-адресов, HWID-номеров и ролей пользователей из пользовательского контекста множествам разрешенных IP-адресов, HWID-номеров и ролей пользователей в запоминающем устройстве;
- формированием сигнала тревоги, если хотя бы одно из условий повышенной проверки не удовлетворяет разрешенным параметрам;
- преобразованием результата запроса методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра;
- выводом результата запроса в соответствии с правом доступа в закодированном виде.
в) причинно-следственная связь между признаками и техническим результатом
Благодаря новой совокупности существенных признаков в заявленном способе обеспечивается повышение защиты доступа к БД от внутреннего нарушителя, посредством проверки идентификационного номера физического оборудования и логических адресов устройств, с которых осуществляется доступ, снижение вычислительной нагрузки на БД путем предварительной повышенной проверки ролей пользователей на право формирования данного запроса, и повышение защиты информации в БД от внешнего нарушителя посредством кодирования выводимого результата запроса.
Проведенный анализ уровня техники позволил установить, что аналоги, характеризующиеся совокупностью признаков, тождественных всем признакам заявленного технического решения, отсутствуют, что указывает на соответствие заявленного способа условию патентоспособности «новизна».
Результаты поиска известных решений в данной и смежных областях техники с целью выявления признаков, совпадающих с отличительными от прототипа признаками заявленного объекта, показали, что они не следуют явным образом из уровня техники. Из уровня техники также не выявлена известность отличительных существенных признаков, обусловливающих тот же технический результат, который достигнут в заявляемом способе. Следовательно, заявленное изобретение соответствует условию патентоспособности «изобретательский уровень».
Краткое описание чертежей
Заявленный способ поясняется чертежами, на которых показаны:
фиг. 1 - блок-схема способа защищенного доступа данных;
фиг. 2 - схема возможной таблицы базы данных;
фиг. 3 - схема возможной таблицы дескриптора защиты;
фиг. 4 - схема последовательности операций способа защищенного доступа к базе данных;
фиг. 5 - алгоритм кодирования таблицы в соответствии с заданной функцией преобразования F(x) по ключу X;
фиг. 6 - таблица базы данных с заданными информационными полями;
фиг. 7 - таблица дескриптора защиты с заданными параметрами в базе данных;
фиг. 8 - таблица базы данных с заданными временными параметрами;
фиг. 9 - таблица базы данных с множествами разрешенных IP-адресов, HWID-номеров и ролей пользователей.
Осуществление изобретения
Реализация заявленного способа объясняется следующим образом. В традиционных моделях БД изначальный поиск информации осуществляется по запросу путем перебора БД, что порождает большие временные затраты вычислений и выборки необходимой информации, при получении массива строк результата запроса, что влияет на оперативность ее получения. Вывод информации остается также незащищенным от ознакомления с БД третьими лицами, не имеющих к ней непосредственный допуск по запросам. В настоящем изобретении предложен способ, позволяющий устранить выявленные недостатки.
Запоминающее устройство хранит множества разрешенных IP-адресов, HWID-номеров, ролей пользователей, информации о защите, воплощенную посредством одного или более дескрипторов защиты. Каждое множество IP-адресов, HWID-номеров, ролей пользователей и дескрипторов защиты управляет избирательным доступом к одному или более источникам, которые с ними связаны.
IP-адрес - это число, которое позволяет уникально идентифицировать узел компьютерной сети. Одним словом - это идентификатор с которым вы можете переходить по сетям и обмениваться информацией с различными сервисами и устройствами. Адрес представляет собой четыре октета (8 двоичных разрядов) разделенных точкой - общая длинна 32 бита. Сам по себе IP-адрес состоит из сетевой и хостовой частей, по которой определяется номер сети и номер узла.
Hardware ID (HWID) - это идентификатор компьютера, который формируется на основании данных об оборудовании. В комплекс этих данных входят многие компоненты, такие как материнская плата, оперативная память, процессор, жесткие диски и так далее. В результате для каждого компьютера формируется свой уникальный идентификатор. Не исключены редкие совпадения, но это сотые доли процента в общей массе компьютеров. При изменении конфигурации оборудования ПК (добавление нового диска, оперативной памяти, переустановка ОС и пр.) меняется и идентификатор компьютера HWID и доступ к БД может быть прекращен из-за внесения изменений в состав оборудования.
В улучшенной ролевой модели все объекты объединяются в единое «дерево». У каждого объекта, кроме единственного корневого, есть один родительский объект, и любое количество дочерних. Роль может быть назначена пользователю в контексте любого объекта. При этом пользователь начинает играть назначенную роль во всей ветви «дерева», которая образована этим объектом.
Таким образом, любой объект приложения может образовать домен, в который будут входить он сам и все его дочерние объекты. Любой из его дочерних объектов может также образовать домен, являющийся подчиненным по отношению к домену родительского объекта. Список ролей, которые пользователь играет в определенном домене, состоит из ролей, назначенных ему в данном домене, плюс роли из домена более высокого уровня, и из домена еще более высокого уровня, и так далее, до корневого домена приложения. Роли, назначенные пользователю в корневом домене, имеют глобальный характер, т.е. действительны в контексте каждого объекта приложения.
Например, корневой объект «предприятие» имеет десять подчиненных объектов типа «отдел», под каждым из которых, в свою очередь, располагаются документы, относящиеся к данному отделу. Пользователь, которому назначена роль «начальник» в контексте конкретного отдела (или отделов), имеет полный доступ ко всем документам своего отдела, но не имеет доступа к документам других отделов, так как там он не играет соответствующей роли. Пользователь же, являющийся «начальником» корневого объекта системы, имеет полный доступ ко всем документам предприятия, что полностью соответствует соображениям элементарной логики.
Информация о защите, воплощенная во множестве разрешенных IP-адресов, может включать в себя, например, список пунктов, в которых указывается: (1) разрешенный сетевой IP-адрес узла; (2) тип доступа (например, полный доступ, только для считывания и/или смешанный доступ, а также запрет на доступ множеству IP-адресов).
Информация о защите, воплощенная во множестве разрешенных HWID-номеров аппаратного обеспечения пользователя, может включать в себя, например, список пунктов, в которых указывается: (1) разрешенный HWID-номер, который поступает в пользовательском контексте, совместно с запросом на поиск информации в БД; (2) тип доступа (например, полный доступ, только для считывания и/или смешанный доступ), который может также дублироваться при настройке множества разрешенных IP-адресов.
Информация о защите, воплощенная во множестве разрешенных ролей пользователей, может включать в себя, например, список пунктов, в которых указывается: (1) роль пользователя (например, начальник отдела, служащий, программист); (2) тип доступа (например, полный доступ, только для считывания и/или смешанный доступ).
Информация о защите, воплощенная в дескрипторе защиты, может включать в себя, например, список пунктов, в которых указывается: (1) разрешен или запрещен доступ; (2) тип доступа (например, разрешение, скажем, только считывания и/или считывания и доступа); и (3) принципал, к которому применяется информация о защите. Например, запоминающее устройство может быть упорядоченным набором объектов управления доступом.
Процессор БД принимает информацию запроса от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в БД, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес пользователя, HWID-номер, роль пользователя и дескриптор защиты пользователя).
В аспекте настоящего изобретения предусматривается, что после получения запроса и пользовательского контекста, до начала выборки информации в БД для построения результата запроса, осуществляют проверку прав доступа на 2-м, 3-м, 7-м уровне сетевой модели OSI (англ. open systems interconnection basic reference model - базовая эталонная модель взаимодействия открытых систем (ЭМВОС)), что предотвращает несанкционированный доступ к информации должностных лиц, не имеющих на то права.
В аспекте настоящего изобретения в качестве части технических характеристик стратегии предложен язык программирования SQL (например, TSQL - Time SQL), дополненный новым набором операторов, которые обеспечивают создание, модификацию и удаление дескриптора (дескрипторов) защиты, например списков управления доступом.
Чтобы достичь вышеуказанных и связанных с ними целей, концепция настоящего изобретения приводится здесь в связи с нижеследующим описанием и прилагаемыми чертежами. Вместе с тем, эта концепция характеризует лишь несколько различных путей, которыми можно воплотить принципы изобретения, а настоящее изобретение следует считать включающим в себя все такие аспекты и их эквиваленты. С другими преимуществами и признаками изобретения, обладающими новизной, можно ознакомиться из нижеследующего подробного описания изобретения, рассматривая его совместно с чертежами.
Подробное описание изобретения
С учетом растущей популярности компьютеров все больше и больше данных сохраняют в БД, например реляционных БД. В реляционных БД большинство данных хранятся как строки в одной или более таблиц. Доступ в БД может быть получен с помощью одного из совокупности объектов. Вследствие природы данных, хранящихся в БД, санкционирование избирательного доступа (например, запрета доступа, доступа для считывания и/или доступа для считывания и записи) к этим данным приобретает существенное значение.
В основе популярности реляционных БД лежит способность осуществлять ассоциативные запросы по таблицам. Доступ к наборам объектов, хранящимся в таблицах, возможен с помощью языка обработки наборов (например, SQL - языка структурированных запросов). Этот язык обеспечивает задание одной или более таблиц в качестве источника данных и выдачу - если она вообще происходит - только той строки или тех строк, которая или которые удовлетворяют некоторому заданному условию.
Термины «компонент», «программа обработки», «модель», «система» и т.п.в том смысле, в каком они употребляются в данной заявке следует считать относящимися к связанному с компьютером объекту либо аппаратному обеспечению, комбинации аппаратного обеспечения и программного обеспечения, программному обеспечению или находящемуся в стадии выполнения команд программному обеспечению. Например, компонентом может быть - но не в ограничительном смысле - процесс, идущий на процессоре, процессор, объект, исполняемый файл, поток выполняемых задач, программа и/или компьютер. В качестве иллюстрации отметим, что компонентом может быть и активное приложение на сервере, и сам сервер. Один или более компонентов могут постоянно участвовать в реализации процесса и/или потока выполняемых задач, а некоторый компонент может быть локализован на одном компьютере и/или распределен между двумя или более компьютерами. Кроме того, эти компоненты могут работать от различных считываемых компьютером носителей, имеющих различные структуры данных, записанные на них. Компоненты могут осуществлять связь посредством локальных и/или дистанционных процессов, например, в соответствии с сигналом, имеющим один или более пакетов данных (например, данных из одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе, и/или взаимодействующего через сеть, такую как Internet, с другими системами посредством этого сигнала). В соответствии с настоящим изобретением компьютерные компоненты можно хранить, например, на считываемых компьютером носителях, включая - но не в ограничительном смысле -интегральную схему прикладной ориентации (ASIC), компакт-диск (CD), цифровой видеодиск (DVD), постоянную память (ROM), флеш-диск, жесткий диск, электрически стираемую программируемую постоянную память (EEPROM) и память типа "memory stick".
В общем случае структурные элементы автоматизированной системы (АС) представляют собой совокупность автоматизированных рабочих мест должностных лиц, БД, коммуникационного оборудования, объединенных проводными и беспроводными линиями связи, позволяющих осуществить доступ к базе данных.
i
разр
i
разр
i
разр
Блок-схема 100 последовательности операций способа защищенного доступа к БД, на фиг. 1 обеспечивает защищенный доступ к БД 180 на основе блока 110 повышенной проверки прав доступа на 2-м, 3-м и 7-м уровне модели OSI, сверки логических адресов сети, физических номеров оборудования и ролей пользователей формирователей запроса с множеством доверенных IP-адресов, HWID-номеров и ролей пользователей, хранящихся в запоминающем устройстве 170. Блок 110 повышенной проверки прав доступа позволяет сравнить значение IP-адреса i-го структурного элемента IP АС из пользовательского контекста с значениями IP-адресов из множества IР, значение HWID-номера i-го структурного элемента H АС из пользовательского контекста с значениями HWID-номеров из множества Н, значение роли пользователя i-го структурного элемента RАС из пользовательского контекста с значениями ролей пользователей из множества R, в случае, если данные условия не удовлетворяют заданным параметрам - формируют сигнал тревоги, в случае, если условия проверки удовлетворяют параметрам - осуществляют обращение к БД для выбора строки, подлежащей рассмотрению при построении результата запроса.
Когда формулируется запрос в запросный компонент 120, блок 130 оптимизации запросов может определить «наилучший способ» («оптимизацию») ответа на этот запрос. Например, запросный компонент 120 может применить стратегию оптимизации по затратам, вследствие чего в качестве плана выбирается наиболее дешевый способ выполнения запроса, либо стратегию оптимизации по временному (темпоральному) отрезку, вследствие чего происходит отбор через таблицу времени, что, в свою очередь, сокращает время доступа к необходимой информации.
Запросный компонент 120 может применять известные технологии при перечислении возможных планов и отсекать дорогостоящие. Индексы в таблицах играют важную роль в уменьшении затрат на доступ к данным в этих таблицах. Следует принять во внимание, что можно применить процесс оптимизации любого типа, пригодный для осуществления настоящего изобретения, и все такие типы технологий оптимизации следует считать находящимися в рамках объема притязаний прилагаемой формулы изобретения.
Следует принять во внимание, что запросный компонент 120, блок 130 оптимизации запросов и/или блок 140 выполнения запросов могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.
Важно, что когда осуществляется доступ к строкам таблицы, защищенным алгоритмом защиты в форме дескрипторов защиты, процессор 150 БД - как раз перед рассмотрением строк на предмет ввода при построении результата опроса - вынуждает выполнение алгоритма защиты путем подтверждения того, что инициатор запроса имеет разрешение считывать строки, на основании стратегии, определенной дескриптором защиты, связанным с каждой строкой.
Чтобы пресечь проблему несанкционированного доступа к БД в корне и в то же время не нарушить процесс оптимизации, в настоящем изобретении предложен новый алгоритм, который гарантирует, что все пути доступа к таблице предусматривают наличие столбца, имеющего дескрипторы защиты, а также выполнения повышенная проверка прав доступа на 2-м, 3-ми 7-м уровне модели OSI, посредством сверки логических адресов сети, физических номеров оборудования и ролей пользователей формирователей запроса со списком доверенных адресов, номеров и ролей, хранящихся в запоминающем устройстве 170.
Кэш 160 сеансов пользователей хранит вычисленный результат, обусловленный тем, имеет ли текущий контекст защиты заданное разрешение относительно некоторого IP-адреса, HWID-номера, роли пользователя и дескриптора защиты. Следовательно, результат проверки того, имеет ли принципал доступ к объекту, заданным данными критериями защиты этого объекта, оценивается только по поступлению запроса. Если две строки таблицы имеют одну и ту же стратегию защиты, т.е. имеют один и тот же дескриптор защиты, результат проверки того, имеет инициатор запроса доступ к строке или нет, оценивается в первый раз, и этот результат сохраняется в кэш 160. Кэшированный результат применяется для второй строки.
Кэш 160 становится исключительно полезным средством, когда много строк имеют один и тот же алгоритм защиты, что может иметь место, например, в файловых системах и аналогичных приложениях.
Следует принять во внимание, что кэш сеансов пользователя может быть компьютерным компонентом в том смысле, в котором этот термин определен в данном описании.
Процессор 150 БД принимает информацию запроса, например, от пользователя. Информация запроса включает в себя запрос, который надлежит выполнить в БД 180, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес пользователя, HWID-номер и роль пользователя).
При выполнении запроса процессор 150 БД принимает от запросного компонента информацию запроса. Информация запроса включает в себя запрос, который надлежит выполнить в БД, и пользовательский контекст, связанный с инициатором запроса (например, имя пользователя, идентификатор пользователя и/или тип пользователя, IP-адрес формирователя запроса, HWID-номер оконечного оборудования, роль пользователя в иерархической структуре).
Процессор БД сверяет IP-адрес пакета с разрешенным IP-адресом, хранящимся в запоминающем устройстве, сверяет HWID-номер оборудования с разрешенным HWID-номером, хранящимся в запоминающем устройстве, проверяет роль пользователя, формирователя запроса, имел ли право пользователь формировать запрос к БД или нет? Если хотя бы одно из условий не удовлетворяется, то формируют сигнал тревоги 415 и выводят информацию в соответствии с правом доступа 480.
Если все условия выполняются, то процессор БД оценивает дескриптор защиты, связанный со строкой (строками) БД 180, к которой (которым) осуществляется доступ, и информацию пользовательского контекста, связанную с запросом, чтобы определить, запросил ли пользователь доступ к строке. После этого процессор 150 БД обеспечивает ответ на информацию запроса на основании этого запроса и - что важно - информации пользовательского контекста. Таким образом, инициатору запроса предоставляется информация только из той БД 180, права доступа (например, просмотра и/или изменения данных) к которой имеет пользователь.
БД 180 хранит данные в структурированном формате. Например, БД 180 может быть реляционной БД, объектной БД и/или объектно-реляционной БД, а также темпоральной БД. В связи с реляционными БД отметим, что набор объектов с одной и той же структурой называют таблицей, а каждый объект называют строкой. Компоненты структуры называют столбцами. Реляционная БД может включать в себя одну таблицу или совокупность таблиц.
Данные в БД почти всегда неразрывно связаны со временем. Это верно и для транзакционных БД, и тем более для аналитических БД (в частности, время является важнейшим измерением OLAP-кубов).
В соответствии с аспектом настоящего изобретения, по меньшей мере, одна из таблиц, связанная с БД 180, включает в себя столбец, в котором хранится информация о защите, скажем, дескриптор защиты (например, идентификатор, связанный с информацией о защите, хранящийся в запоминающем устройстве 170, рассматриваемом ниже).
Обращение к БД может производиться как обычными SQL-запросами, так и темпоральными TSQL-запросами. В случае формирования темпорального запроса сокращается время поиска информации в БД посредством указания периода времени, затрагивающего необходимое событие.
Одним из наиболее важных вопросов при использовании БД является эффективность работы приложений с соответствующей СУБД. Для повышения скорости обработки запросов в реляционных СУБД традиционно применяются индексы для выборки данных из таблиц, а также статистики и различные эвристики при выборе алгоритма соединения данных из нескольких таблиц. При разработке темпоральных СУБД значительное внимание уделялось именно вопросам производительности, так как в общем случае небольшая доля «активных» данных из постоянно растущего объема информации в БД приводила к резкому спаду производительности при интенсивном использовании и/или недостаточном внимании при разработке приложения.
Можно использовать три типа темпоральных таблиц - темпоральные таблицы с программным периодом, темпоральные таблицы с системным периодом и битемпоральные таблицы, сочетающие в себе все характеристики первых двух типов. Использование темпоральных таблиц позволяет упростить сервисную логику приложения, предоставлять информацию для аудита изменений в данных, корректировать ошибки в данных, а также увеличить время доступа к данным.
В традиционных реляционных БД алгоритмы защиты не связаны со строками в таблицах. Так, в соответствии с аспектом настоящего изобретения, чтобы указать, что строки в некоторой конкретной таблице БД защищены с помощью стратегии защиты, операторы SQL для создания и замены таблиц расширены для указания этого факта. Один из столбцов в определении этих таблиц расширен по выбору некоторым атрибутом, который указывает, что этот столбец воплощает алгоритм защиты. Значение этого столбца относится к идентификационному параметру некоторого дескриптора защиты, рассмотренного ранее (например, четырехбайтного кода). В одном примере, если значение столбца представляет собой «нуль», то строка не защищена никакой стратегией. С другой стороны, стратегия управления доступом для этой строки выбирается на основе соответствующего дескриптора защиты и связанной с ним информации, хранящейся в запоминающем устройстве 170. В еще одном примере значение по умолчанию столбца можно задать как идентификационный параметр дескриптора защиты, который воплощает стратегию защиты в таблице.
Следует принять во внимание, что система 100, процессор 150 БД, 180 БД и/или запоминающее устройство 170 могут быть компьютерными компонентами в том смысле, в котором этот термин определен в данном описании.
Блок 190 выполняет преобразование выводимой информации методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра (УЦ).
Пользователи УЦ самостоятельно осуществляют процедуру генерации ключей и формирование запросов на сертификат открытого ключа. Выполнение этих процедур осуществляется с использованием АРМ зарегистрированного пользователя на рабочем месте.
Поступающие запросы на сертификаты открытых ключей пользователей обрабатываются администратором УЦ с использованием АРМ администратора Центра Регистрации.
Схема возможной таблицы 200 БД изображена на фиг. 2 и она включает в себя столбцы 210 данных и строки 220 данных. Кроме того, таблица 200 включает в себя столбец 230 дескрипторов защиты. Например, столбец 230 дескрипторов защиты может хранить - для некоторой конкретной строки - дескриптор защиты, связанный с этой строкой. В одном примере дескриптор защиты является идентификатором, связанным с запоминающим устройством 170.
Схема возможной таблицы 300 дескриптора защиты изображена на фиг. 3 в соответствии с аспектом настоящего изобретения. Дескрипторы 310 защиты хранятся в запоминающем устройстве 300. В этом примере конкретный дескриптор 310 защиты дополнительно включает в себя разрешение 330, которое идентифицирует тип доступа, связанный с конкретным дескриптором 310 защиты, например запрет доступа, доступ только для считывания и/или доступ для считывания и записи. Дескриптор 310 защиты дополнительно включает в себя принципала (принципалов) 340, к которому (которым) применяется дескриптор 310 защиты (например, имя пользователя (имена пользователей) группу пользователя (группы пользователей), идентификатор пользователя (идентификаторы пользователей) и/или тип пользователя (типы пользователей).
разр
1
2
n
разр
1
2
n
разр
1
2
m
i
разр
i
разр
Способ защищенного доступа к БД 400, который можно воплотить в соответствии с настоящим изобретением проиллюстрирован на фиг. 4. в соответствии с аспектом настоящего изобретения. На этапе 409 предварительно задают разрешенные IP-адреса, HWID-номера и роли пользователей структурных элементов АС в виде множеств IР={IP, IP, …, IP}, Н={H, H, …, H} и R={R,R, …, R} для повышенной проверки прав доступа к БД. Осуществляют прием информации 410, включающей в себя запрос и пользовательский контекст. Сравнивают значение 411IP-адреса i-го структурного элемента IP АС из пользовательского контекста с значениями IP-адресов из множества IР, в случае их несовпадения - формируют сигнал тревоги 415, происходит автоматический доклад в службу безопасности с выводом отчета о попытке проникновения с незарегистрированного IP-адреса, а при совпадении значения IP со значением IР - осуществляют дальнейшую проверку согласно алгоритма изобретения.
i
разр
i
разр
Сравнивают значение 412 HWID-номера i-го структурного элемента H АС из пользовательского контекста с значениями HWID-номеров из множества Н, в случае их несовпадения - формируют сигнал тревоги 415, происходит автоматический доклад в службу безопасности с выводом отчета о попытке проникновения с незарегистрированного HWID-номера, а при совпадении значения IP со значением IР - осуществляют дальнейшую проверку согласно алгоритма изобретения.
i
paзp
i
разр
Сравнивают значение 413 роли пользователя i-го структурного элемента R АС из пользовательского контекста с значениями ролей пользователей из множества R, в случае их несовпадения - формируют сигнал тревоги 415, происходит автоматический доклад в службу безопасности с выводом отчета о попытке создания запроса с ролью, несоответствующую праву доступа, а при совпадении значения R со значением R переходят к выбору строки 414, подлежащей рассмотрению при построении результата запроса.
Сравнивают дескриптор защиты 420 строки с информацией из пользовательского контекста, в случае несовпадения дескриптора защиты строки с информацией из пользовательского контекста - проверяют наличие оставшихся строк в таблице на этапе 430. Если дескриптора защиты строки совпал с информацией из пользовательского контекста на этапе 420, то переходят на этап 440, в котором сравнивают информацию в строке таблицы с запрашиваемой информацией из запроса для построения результата запроса. В случае отсутствия запрашиваемой информации в строке для построения результата запроса - возвращают на этап 414 выбора строки, подлежащей рассмотрению при построении результата запроса. В случае наличия запрашиваемой информации в строке для построения результата запроса - используют упомянутую строку для построения результата запроса 450.
Проверяют наличие оставшихся строк 430 в таблице, в случае если есть еще строки в таблице - возвращают на этап 414 выбора строки, подлежащей рассмотрению при построении результата запроса. В случае если строк больше не осталось - выполняют 470 преобразование результата запроса методом кодирования в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от Удостоверяющего Центра (УЦ) и выводят результат 480 запроса в соответствии с правом доступа в закодированном виде в соответствии с его правами доступа.
1
2
n
k
ki
kj
Для детального понимания процесса преобразования выводимой информации 470 методом кодирования, в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от УЦ, обратимся к фиг. 5, где предварительно задают исходные данные 501: функцию преобразования F(x) с ключом X, получаемому от УЦ и набор таблиц с данными Т, Т, …, T как результат запроса к МБД. Полученные данные передают в блок 502, где осуществляют подсчет количества полученных таблиц N, подсчет количества строк N и столбцов Nдля каждой таблицы и устанавливают номер обрабатываемой таблицы k. Далее проверяют 503, все ли таблицы обработаны. В случае, если не все таблицы обработаны - определяют 504 номер строки, с которой начинается обработка всех строк k-ой таблицы.
Далее проверяют 505, все ли строки k-ой таблицы обработаны. В случае, если не все строки k-ой таблицы обработаны - изменяют i-ю строку 506 в соответствии с заданной функцией преобразования F(x), выбирают 507 новую строку, для чего переходят в блок проверки 505. В случае, если все строки k-ой таблицы обработаны - определяют 508 номер столбца, с которого начинается обработка всех столбцов k-ой таблицы.
1
2
n
Далее проверяют 509, все ли столбцы k-ой таблицы обработаны. В случае, если не все столбцы k-ой таблицы обработаны - изменяют j-й столбец 510 в соответствии с заданной функцией преобразования F(x), выбирают 511 новый столбец, для чего переходят в блок проверки 509. В случае, если все столбцы k-ой таблицы обработаны выбирают следующую таблицу 512, для чего переходят в блок проверки 503. В случае, если обработаны все таблицы, то осуществляют вывод 513 набора преобразованных таблиц Т' Т', …, Т'.
Функция преобразования F(x) осуществляет перестановку строк и столбцов в таблицах по ключу X, который получают централизованно от УЦ распределения ключевой информации.
Исходя из подробного описания, приведем пример с заданными информационными полями:
1
2
3
- на фиг. 6 изображена возможная таблица 600 со следующими информационными столбцами: ФИО 620, город 630, оклад 640, дескриптор защиты 650, каждая строка (610 610, 610) описывает конкретных пользователей согласно информационным столбцам;
1
2
3
- на фиг. 7 изображена возможная таблица, имеющая следующие дескрипторы защиты 700 с заданными параметрами: дескриптор защиты 720, список управления доступом 730 и строки дескрипторов защиты (710, 710, 710) описывающих права доступа пользователей;
1
2
3
- на фиг. 8 изображена возможная таблица 800, с заданными временными параметрами: время назначения 840 и время увольнения 850 сотрудника ФИО 820 из отдела 830, каждая строка (810 810, 810) описывает конкретных пользователей согласно информационным столбцам;
1
2
3
- на фиг. 9 изображена возможная таблица 900 с множествами разрешенных IP-адресов 930, HWID-номеров 940 и ролей пользователей 950, каждая строка (910 910, 910) описывает права доступа конкретного должностного лица, с конкретного IP-адреса, с заданным HWID-номером и дескриптором защиты строки 920.
Все эти таблицы 600, 700, 800 и 900 являются связанными. Роли пользователей также могут задаваться отдельными таблицами с иерархической структурой.
i
разр
i
разр
i
paзp
Когда пользователь Иван запрашивает БД 180 (таблица 600) по «всем позициям», слово «Иван» является пользовательским контекстом, предоставляемым вместе с запросом в процессор 150 БД. После этого процессор 150 БД извлекает информацию о защите, хранящуюся в запоминающем устройстве и сравнивает по таблице 900 значение IP-адреса i-го структурного элемента IP АС из пользовательского контекста со значением IP-адреса из столбца таблицы 930 IР, значение HWID-номера i-го структурного элемента H АС из пользовательского контекста со значением HWID-номера из столбца таблицы 940 Н, значение роли пользователя i-го структурного элемента R АС со значением роли пользователя R из столбца таблицы 950, в случае, если данные условия не удовлетворяют заданным параметрам - формируют сигнал тревоги, в случае, если условия проверки удовлетворяют параметрам - процессор 150 БД запрашивает БД 180 и предварительно принимает все три строки. Однако процессор 150 БД затем извлекает информацию о дескрипторе защиты, хранящуюся в запоминающем устройстве 170, связанную с каждой из трех строк, и на основании пользовательского контекста возвращает только первую строку, поскольку пользователь Иван имеет полномочия только считывать эту строку. Вместе с тем, если Администратор делает тот же запрос (например, по «всем позициям»), то возвращаются все три строки, поскольку Администратор имеет полномочия считывать все строки и/или записывать в них. На последнем этапе происходит преобразование информации методом перестановка строк и столбцов в таблице функцией преобразования F(x) по ключу X.
И пользователь Иван и администратор БД получат строки с запрашиваемыми данными согласно своих дескрипторов защиты, однако эти данные будут перемешанными и неразборчивыми для смыслового содержания. Только пользователь, у которого есть ключ X, полученный от УЦ, сможет расшифровать полученную таблицу с данными с помощью функции преобразования F(x) и извлечь из нее полезную информацию.
Если даже представить, что злоумышленник знает пароль от рабочего места допущенного должностного лица, зайдет именно с его персонального ЭВМ, обратится к БД от допущенного IP-адреса соблюдая все роли, и попытается получить информацию от БД - то ему придет ответ на запрос в закодированном виде, который, без суточного ключа, получаемого от УЦ не будет представлять никакой смысловой нагрузки.
На основе проведенных расчетов и описания видно, что в процессе защищенного доступа и представления информации в БД, обеспечивается защита доступа к БД, снижается вычислительная нагрузка на БД, а также повышается защита информации в БД от внутреннего и внешнего нарушителя. Это достигается за счет проверки принадлежности IP-адреса множеству разрешенных IP-адресов, с которых осуществляется доступ, принадлежности HWID-номера множеству разрешенных HWID-номеров, повышенной проверки ролей пользователей на право формирования данного запроса к БД, а также преобразования выводимой информации в соответствии с заданной функцией преобразования F(x) по ключу X, получаемому от УЦ.