Захищені СУБД інших постачальників
Informix поставляє OnLine/Secure 5.0, що, подібно іншим конкуруючим продуктам у даній області, являє собою реляційну СУБД, що забезпечує багаторівневий захист інформації в БД і працюючу з використанням двох наборів правил DAC й MAC.
Аналогічні механізми підтримує Sybase у продукті Secure SQL Server Version 10.0.
Система Kerberos
Система Kerberos (по-російському - Цербер), розроблена учасниками проекту Athena, забезпечує захист мережі від несанкціонованого доступу, базуючись винятково на програмних рішеннях, і припускає багаторазову шифрування переданої по мережі керуючої інформації. Kerberos забезпечує ідентифікацію користувачів мережі й серверів, не ґрунтуючись на мережних адресах й особливостях операційних систем робочих станцій користувачів, не вимагаючи фізичного захисту інформації на всіх машинах мережі й виходячи із припущення, що пакети в мережі можуть бути легко прочитані й при бажанні змінені.
Клієнт/ Kerberos/ Cepвep
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), зашифровуваний за допомогою коду сеансу й утримуюче ім'я користувача, його мережна адреса й ще одну оцінку часу.
Сервер видачі дозволів розшифровує отримане від клієнта «дозвіл на одержання дозволу», перевіряє, чи не минув строк його «придатності», а потім порівнює ім'я користувача і його мережна адреса, що перебувають у дозволі, з даними, які зазначені в заголовку пакета повідомлення, що прийшло. Однак на цьому перевірки не закінчуються. Сервер видачі дозволів розшифровує аутентикатор за допомогою коду сеансу й ще раз порівнює ім'я користувача і його мережна адреса з попередніми двома значеннями, і тільки у випадку позитивного результату може бути впевнений нарешті, що клієнт саме той, за кого себе видає. Оскільки аутентикатор використається для ідентифікації клієнта всього один раз і тільки протягом певного періоду часу, стає практично неможливим одночасне перехоплення «дозволу на одержання дозволу» й аутентикатора для наступних спроб несанкціонованого доступу до ресурсів мережі. Щораз, при необхідності доступу до сервера мережі, клієнт посилає «дозвіл на одержання дозволу» багаторазового використання й новий аутентикатор.
Після успішної ідентифікації клієнта як джерело запиту сервер видачі дозволів відсилає користувачеві дозвіл на доступ до ресурсів мережі (яке може використатися багаторазово протягом деякого періоду часу) і новий код сеансу. Цей дозвіл зашифрований за допомогою коду, відомого тільки серверу видачі дозволів і серверу, до якого вимагає доступу клієнт, і містить усередині себе копію нового коду сеансу. Все повідомлення (дозвіл і новий код сеансу) зашифровано за допомогою старого коду сеансу, тому розшифрувати його може тільки клієнт. Після розшифровки клієнт посилає цільовому серверу, ресурси якого потрібні користувачеві, дозвіл на доступ й аутентикатор, зашифровані за допомогою нового коду сеансу.
Для забезпечення ще більш високого рівня захисту, клієнт, у свою чергу, може зажадати ідентифікації цільового сервера, щоб убезпечитися від можливого перехоплення інформації, що дає право на доступ до ресурсів мережі. У цьому випадку він жадає від сервера висилки значення оцінки часу, збільшеного на одиницю й зашифрованого за допомогою коду сеансу. Сервер витягає копію коду сеансу, що зберігається усередині дозволу на доступ до сервера, використає його для розшифровки аутентикатора, додає до оцінки часу одиницю, зашифровує отриману інформацію за допомогою коду сеансу й відсилає її клієнтові.
Розшифровка цього повідомлення дозволяє клієнтові ідентифікувати сервер. Використання як код оцінки часу забезпечує впевненість у тім, що відповідь, що прийшла клієнтові, від сервера не є повтором відповіді на який-небудь попередній запит.
Тепер клієнт і сервер готові до передачі необхідної інформації з належним ступенем захисту. Клієнт звертається із запитами до цільового сервера, використовуючи отриманий дозвіл. Наступні повідомлення зашифровуються за допомогою коду сеансу.
Більше складної є ситуація, коли клієнтові необхідно дати серверу право користуватися якими-небудь ресурсами від його імені. Як приклад можна привести ситуацію, коли клієнт надсилає запит серверу печатки, якому потім необхідно одержати доступ до файлів користувача, розташованим на файлі-сервері. Крім того, при вході у віддалену систему користувачеві необхідно, щоб всі ідентифікаційні процедури виконувалися так само, як і з локальної машини. Ця проблема вирішується установкою спеціальних прапорів в «дозволі на одержання дозволу» (дають одноразовий дозвіл на доступ до сервера від імені клієнта для першого приклада й забезпечуючих постійну роботу в цьому режимі для другого). Оскільки, як було сказано вище, дозволи строго прив'язані до мережної адреси станції, що володіє ними,, то при наявності подібних прапорів сервер видачі дозволів повинен указати в дозволі мережна адреса того сервера, якому передаються повноваження на дії від імені клієнта.
Слід зазначити також, що для всіх описаних вище процедур ідентифікації необхідно забезпечити доступ до бази даних Kerberos тільки для читання. Але іноді потрібно змінювати базу, наприклад, у випадку зміни ключів або додавання нових користувачів. Тоді використається третій сервер Kerberos - адміністративний (Kerberos Administration Server). He вдаючись у подробиці його роботи, слід зазначити, що його реалізації можуть сильно відрізнятися (так, можливе ведення декількох копій бази одночасно).