Корпорация Oracle разработала реляционную СУБД с обеспечением многоуровневой защиты информации (Multi-Level Security — MLS) — Trusted ORACLE7, обладающую, в том числе, и всеми стандартными возможностями ORACLE7.
В прошлом компании, которые желали защитить секретную или конфиденциальную информацию, вынуждены были использовать для этих целей специальное или выделенное оборудование. С появлением таких продуктов, как Trusted ORACLE7, эта необходимость отпала. Trusted ORACLE7 позволяет размещать важную для конкурентов информацию в базе данных, в которой хранится общая информация, без всякого риска, что какой-то пользователь случайно или преднамеренно получит доступ к секретной или конфиденциальной информации.
Trusted ORACLE7 функционирует с использованием двух наборов правил: Избирательное Управление Доступом (DAC — Discretionary Access Control) и Полномочное Управление Доступом (MAC — Mandatory Access Control). Использование DAC ограничивается такими объектами баз данных, как таблицы, виды, последовательности и хранимые процедуры, основанные на идентификации пользователей, и групповые ассоциации. Создатель объектов баз данных — например, таблиц — может предоставлять доступ другому пользователю.
MAC представляет собой шаг вперед по сравнению с DAC и помечает содержание объектов баз данных. MAC ограничивает доступ к объекту путем сравнения так называемой метки объекта с уровнем авторизации пользователя. Помимо меток MAC Trusted ORACLE7 помечает такие элементы объектов, как строки и таблицы. В результате этого свойства даже при условии, что DAC пытается дать пользователю доступ к помеченному объекту, ему будет разрешен доступ, только если его уровень авторизации будет не ниже, чем уровень авторизации информации, к которой пытается получить доступ пользователь.
Обратите внимание, что Trusted ORACLE7 должна функционировать над ОС с многоуровневой защитой информации, чтобы обеспечить уровни защиты информации, заложенные в ней при проектировании. Обмен между системами с многоуровневой защитой (меточной), а также между системой с многоуровневой защитой и обычной системой, не использующей метки, возможен только посредством меточного сетевого протокола. Такие протоколы передают в дополнение к другим атрибутам защиты информации, подобно идентификаторам пользователей или групп, метки пакетов, которые обычно порождаются из меток передающего процесса. Большинство общих меточных протоколов являются вариантами протокола MaxSix, представляющего собой совокупность сетевых протоколов защиты информации и программных интерфейсов, теоретически спроектированного для поддержки сетей OSI и TCP/IP, хотя в настоящее время имеются только реализации MaxSix. Протоколы MaxSix соответствуют RIPCO, CIPCO и DNSIX. Большинство поставщиков рабочих станций MLS с Режимом Разделения на Секции (CMW — Compartamented Mode Workstation) реализовали протоколы MaxSix в своих защищенных ОС. MaxSix обеспечивает не только службы расставления меток и трансляции, но и допускает единственную заранее определенную метку MLS.
Таким образом, помеченный сервер в действительности действует как сторож; аналогично, БД Trusted ORACLE7 на этом сервере работает как сторож сервера СУБД.
Как и обычные протоколы, SQL* Net поддерживает эти меточные протоколы посредством протокольных адаптеров; например, имеются реализации адаптеров протоколов SQL* Net для TNET фирмы Sun, MaxSix фирмы DEC и MaxSix фирмы HP. На станциях, где многоуровневая среда соединяется с неметочной средой, на одной стороне соединения (многоуровневой) работает адаптер SQL* Net для варианта MaxSix, а на другой — адаптер SQL* Net для протокола TCP/IP (неметочная среда).
Все продукты корпорации Oracle Developer 2000, Designer 2000 и др. могут использоваться с Trusted ORACLE7.
С появлением Oracle RDBMS версии 7.2 разработчики приложений смогут поставлять код PL/SQL в свернутом (Wrapped) формате. Разработчик, который планирует распространять приложения на PL/SQL, больше не должен отправлять исходный код PL/SQL. Скрытие исходного кода облегчает защиту интеллектуальной собственности и уменьшает возможные злоупотребления или искажения приложений.
Informix поставляет OnLine/Secure 5.0, который, подобно другим конкурирующим продуктам в данной области, представляет собой реляционную СУБД, обеспечивающую многоуровневую защиту информации в БД и работающую с использованием двух наборов правил DAC и MAC.
Аналогичные механизмы поддерживает Sybase в продукте Secure SQL Server Version 10.0.
Система Kerberos (по-русски — Цербер), разработанная участниками проекта Athena, обеспечивает защиту сети от несанкционированного доступа, базируясь исключительно на программных решениях, и предполагает многократную шифрование передаваемой по сети управляющей информации. Kerberos обеспечивает идентификацию пользователей сети и серверов, не основываясь на сетевых адресах и особенностях операционных систем рабочих станций пользователей, не требуя физической защиты информации на всех машинах сети и исходя из предположения, что пакеты в сети могут быть легко прочитаны и при желании изменены.
Kerberos имеет структуру типа клиент/сервер и состоит из клиентских частей, установленных на все машины сети (рабочие станции пользователей и серверы), и Kerberos-сервера (или серверов), располагающегося на каком-либо (не обязательно выделенном) компьютере. Kerberos-сервер, в свою очередь, делится на две равноправные части:
сервер идентификации (authentication server) и сервер выдачи разрешений (ticket granting server). Следует отметить, что существует в третий сервер Kerberos, который, однако, не участвует в идентификации пользователей, а предназначен для административных целей. Область действия Kerberos (realm) распространяется на тот участок сети, все пользователи которого зарегистрированы под своими именами и паролями в базе Kerberos-сервера и где все серверы обладают общим кодовым ключом с идентификационной частью Kerberos. Эта область не обязательно должна быть участком локальной сети, поскольку Kerberos не накладывает ограничения на тип используемых коммуникаций (о способе доступа из области действия одного Kerberos-сервера в область действия другого будет сказано чуть ниже).
Упрощенно модель работы Kerberos можно описать следующим образом. Пользователь (Kerberos-клиент), желая получить доступ к ресурсу сети, направляет запрос идентификационному серверу Kerberos. Последний идентифицирует пользователя с помощью его имени и пароля и выдает разрешение на доступ к серверу выдачи разрешений, который, в свою очередь, дает «добро» на использование необходимых ресурсов сети. Однако данная модель не отвечает на вопрос о надежности защиты информации, поскольку, с одной стороны, пользователь не может посылать идентификационному серверу свой пароль по сети, а с другой — разрешение на доступ к обслуживанию в сети не может быть послано пользователю в виде обычного сообщения. В обоих случаях информация может быть перехвачена и использована для несанкционированного доступа в сеть. Для того, чтобы избежать подобных неприятностей Kerberos, применяет сложную систему многократного шифрования при передаче любой управляющей информации в сети.
Доступ пользователей к сетевым серверам, файлам, приложениям, принтерам и т.д. осуществляется по следующей схеме.
Клиент (под которым в дальнейшем будет пониматься клиентская часть Kerberos, установленная на рабочей станции пользователя) направляет запрос идентификационному серверу на выдачу «разрешения на получение разрешения» (ticket-granting ticket), которое даст возможность обратиться к серверу выдачи разрешений. Идентификационный сервер адресуется к базе данных, хранящей информацию о всех пользователях, и на основании содержащегося в запросе имени пользователя определяет его пароль. Затем клиенту отсылается «разрешение на получение разрешения» и специальный код сеанса (session key), которые шифруются с помощью пароля пользователя как ключа. При получении этой информации пользователь на его рабочей станции должен ввести свой пароль, и если он совпадает с хранящимися в базе Kerberos-сервера, «разрешение на получение разрешения» и код сеанса будут успешно расшифрованы. Таким образом решается проблема с защитой пароля — в данном случае он не передается по сети.
После того как клиент зарегистрировался с помощью идентификационного сервера Kerberos, он отправляет запрос серверу выдачи разрешений на получение доступа к требуемым ресурсам сети. Этот запрос (или «разрешения на получение разрешения») содержит имя пользователя, его сетевой адрес, отметку времени, срок жизни этого разрешения и код сеанса. «Разрешение на получение разрешения» зашифровывается два раза: сначала с помощью специального кода, который известен только идентификационному серверу и серверу выдачи разрешений, а затем, как уже было сказано, с помощью пароля пользователя. Это предотвращает не только возможность использования этого разрешения при его перехвате, но и делает его недоступным самому пользователю. Для того чтобы сервер выдачи разрешений дал клиенту доступ к требуемым ресурсам, недостаточно только «разрешения на получение разрешения». Вместе с ним клиент посылает так называемый аутентикатор (authenticator), зашифровываемый с помощью кода сеанса и содержащий имя пользователя, его сетевой адрес и еще одну отметку времени.