Зв'язок між Kerberos-областями

 

Як уже було сказано вище, при використанні Kerberos-серверів мережа ділиться на області дії Kerberos. Схема доступу клієнта, що перебуває в області дії одного Kerberos-сервера, до ресурсів мережі, розташованим в області дії іншого Kerberos, здійснюється в такий спосіб.

 

Цільовий сервер

 

Обидва Kerberos-сервери повинні бути обопільно зареєстровані, тобто знати загальні секретні ключі й, отже, мати доступ до баз користувачів один одного. Обмін цими ключами між Kerberos-серверами (для роботи в кожному напрямку використається свій ключ) дозволяє зареєструвати сервер видачі дозволів кожної області як клієнта в іншій області. Після цього клієнт, що вимагає доступу до ресурсів, що перебуває в області дії іншого Kerberos-сервера, може одержати дозвіл від сервера видачі дозволів свого Kerberos по описаному вище алгоритму. Це дозвіл, у свою чергу, надає право доступу до сервера видачі дозволів іншого Kerberos-сервера й містить у собі оцінку про те, у якій Kerberos-області зареєстрований користувач. Віддалений сервер видачі дозволів використає один із загальних секретних ключів для розшифровки цього дозволу (який, природно, відрізняється від ключа, використовуваного в межах цієї області) і при успішній розшифровці може бути впевнений, що дозвіл виданий клієнтові відповідної Kerberos-області. Отриманий дозвіл на доступ до ресурсів мережі пред'являється цільовому серверу для одержання відповідних послуг.

Треба, однак, ураховувати, що велика кількість Kerberos-серверів у мережі веде до збільшення кількості переданої ідентифікаційної інформації при зв'язку між різними Kerberos-областями. При цьому збільшується навантаження на мережу й на самі Kerberos-сервери. Тому більше ефективним варто вважати наявність у великій мережі всього декількох Kerberos-серверів з більшими областями дії, ніж використання безлічі Kerberos-серверів. Таячи, Kerberos-система, установлена компанією Digital Equipment для великої банківської мережі, що поєднує відділення в Нью-Йорку, Парижу й Римі, має всього один Kerberos-сервер. При цьому, незважаючи на наявність у мережі глобальних комунікацій, робота Kerberos-системи практично не відбилася на продуктивності мережі.

 

Kerberos-5

 

До теперішнього часу Kerberos витримав уже чотири модифікації, з яких четверта одержала найбільше поширення. Недавно група, що продовжує роботу над Kerberos, опублікувала специфікацію п'ятої версії системи, основні особливості якої відбиті в стандарті RFC 1510. Ця модифікація Kerberos має ряд нових властивостей, з яких можна виділити наступні.

Уже розглянутий раніше механізм передачі повноважень серверу на дії від імені клієнта, значно полегшуючу ідентифікацію в мережі в ряді складних випадків, є нововведенням п'ятої версії.

П'ята версія забезпечує більше спрощену ідентифікацію користувачів у віддалених Kerberos-областях, зі скороченим числом передач секретних ключів між цими областями. Дана властивість, у свою чергу, базується на механізмі передачі повноважень.

Якщо в попередніх версіях Kerberos для шифрування використався винятково алгоритм DES (Data Encryption Standard - Стандарт Шифрування Даних), надійність якого викликала деякі сумніви, то в даній версії можливе використання різних алгоритмів шифрування, відмінних від DES.

 

Висновок

 

Багато виробників мережного й телекомунікаційного встаткування забезпечують підтримку роботи з Kerberos у своїх пристроях.

Треба, однак, відзначити, що використання Kerberos не є рішенням всіх проблем, пов'язаних зі спробами несанкціонованого доступу в мережу (наприклад, він неспроможний, якщо хто-небудь довідався пароль користувача), тому його наявність не виключає інших стандартних засобів підтримки відповідного рівня таємності в мережі.

Жодна комп'ютерна система захисту інформації не є абсолютно безпечною. Однак адекватні міри захисту значно утрудняють доступ до системи й знижують ефективність зусиль зловмисника (відношення середніх витрат на злом захисту системи й очікуваних результатів) так, що проникнення в систему стає недоцільним. Ключовим елементом у системі безпеки є адміністратор системи. Якого би засобу ви не здобували, якість захисту буде залежати від здатностей і зусиль цієї людини.

ВИСНОВКИ

У даній роботі нами були розглянуті три схеми роботи з розташованими на віддалених машинах файлами, що трактують видалені файлові системи як розширення локальної. Архітектурні розходження між цими схемами показані на Малюнку 13.12. Всі вони у свою чергу відрізняються від багатопроцесорних систем тим, що тут процесори не використають фізичну пам'ять спільно. Система з периферійними процесорами складається з сильнозв’язаного набору процесорів, що спільно використовують файлові ресурси центрального процесора. Зв'язок типу Newcastle забезпечує схований ("прозорий") доступ до віддалених файлів, але не засобами ядра операційної системи, а завдяки використанню спеціальної Сі-бібліотеки. Із цієї причини всі програми, що припускають використати зв'язок даного типу, повинні бути перекомпільовані, що взагалі ж є серйозним недоліком цієї схеми. Віддаленість файлу позначається за допомогою спеціальної послідовності символів, що описують машину, на якій розташований файл, і це є ще одним фактором, що обмежує мобільність програм. В "прозорих" розподілених системах для доступу до віддалених файлів використається модифікація системної функції mount. Індекси в локальній системі містять оцінку про те, що вони ставляться до віддалених файлів, і локальне ядро посилає на віддалену систему повідомлення, що описує запитувану системну функцію, її параметри й віддалений індекс. Зв'язок в "прозорій" розподіленій системі підтримується у двох формах: у формі виклику віддаленої процедури (на віддалену машину посилає повідомлення, що містить перелік операцій, пов'язаних з індексом) і у формі виклику віддаленої системної функції(повідомлення описує запитувану функцію). У заключній частині розглянуто питання, що мають відношення до обробки дистанційних запитів з допомогою процесів-супутників і серверів.

ВПРАВИ

*1. Опишіть реалізацію системної функції exit у системі з периферійними процесорами. У чому різниця між цим випадком і тим, коли процес завершує свою роботу з одержання не перехопленого сигналу ? Яким чином ядру варто зберегти дані умісту пам'яті ? 2. Процеси не можуть ігнорувати сигнали типу SIGKILL; поясніть, що відбувається в периферійній системі, коли процес одержує такий сигнал. *3. Опишіть реалізацію системної функції exec у системі з периферійними процесорами. *4. Яким чином центральному процесору варто робити розподіл процесів між периферійними процесорами для того, щоб збалансувати загальне навантаження ? *5. Що відбудеться в тому випадку, якщо в периферійного процесора не зробиться досить пам'яті для розміщення всіх вивантажених на нього процесів? Яким чином повинні вироблятися вивантаження й підкачування процесів у мережі? 6. Розглянемо систему, у якій запити до віддаленого файлового сервера посилають у випадку виявлення в імені файлу спеціального префікса. Нехай процес викликає функцію execl("/../sftig/bin/sh","sh",0); Модуль, що виконує, перебуває на віддаленій машині, але повинен виконуватися у локальній системі. Поясніть, яким чином віддалений модуль переноситься в локальну систему. 7. Якщо адміністраторові потрібно додати в існуючу систему зі зв'язком типа Newcastle нові машини, то як про це найкраще проінформувати модулі Сі-бібліотеки ? *8. Під час виконання функції exec ядро затирає адресний простір процесу, включаючи й бібліотечні таблиці, використовувані зв'язком типу Newcastle для спостереження за посиланнями на віддалені файли. Після виконання функції процес повинен зберегти можливість звертання до цих файлів по їхнім старим дескрипторам. Опишіть реалізацію цього моменту. *9. Виклик системної функції exit у системах з зв'язком типу Newcastle приводить до посилки повідомлення процесу-супутникові, заставляючого останній завершити свою роботу. Це робиться на рівні бібліотечних підпрограм. Що відбувається, коли локальний процес одержує сигнал, що спонукує його завершити свою роботу в режимі ядра ?*10. Яким чином у системі зі зв'язком типу Newcastle, де віддалені файли ідентифікуються додаванням до імені спеціального префікса, користувач може, указавши як компонент імені файлу ".." (батьківський каталог), перетнути віддалену точку монтування ? 11. Нам відомо про те, що різні сигнали спонукають процес скидати дані умісту пам'яті в поточний каталог. Що повинне відбутися в тому випадку, якщо поточним є каталог з віддаленої файлової системи ? Яку відповідь ви дасте в тому випадку, якщо в системі використовується зв'язок типу Newcastle ?*12. Які наслідки для локальних процесів мало б видалення із системи всіх процесів-супутників або серверів ?*13. Подумайте над тим, як в "прозорій" розподіленій системі треба реалізувати алгоритм link, параметрами якого можуть бути два імена віддалених файлів, а також алгоритм exec, пов'язаний з виконанням жодних внутрішніх операцій читання. Розглянете дві форми зв'язку: виклик віддаленої процедури й виклик віддаленої системної функції.*14. При звертанні до пристрою сервер-сервер-процес-сервер може перейти в стан призупинка, з якого він буде виведений драйвером пристрою.Якщо число серверів обмежене, система не зможе більше задовільняти запити локальної машини. Придумайте надійну схему, по якій чекаючи завершення вводу-виводу, пов'язаного із пристроєм, призупинялися б не всі процеси-сервери. Системна функція не припинить своє виконання, поки всі сервери будуть зайняті. +----------+ +----------+ +----------+ | Клієнт A | | Клієнт B | | Клієнт C | +----------+ +----------+ +----------+ - - - - - - getty- - - - - - - процеси - - - - - - - - - - - - +-------------------------------------------+ термінальний | - - - - - - | сервер +-------------------------------------------+ | | | | | | tty00 tty01 tty02 tty03 tty04 tty05 Малюнок 1.13. Конфігурація з термінальним сервером *15. Коли користувач реєструється в системі, дисципліна термінальної лінії зберігає інформацію про те, що термінал є операторським, провідну групу процесів. Із цієї причини, коли користувач на клавіатурі термінала натискає клавішу "break", сигнал переривання одержують всі процеси групи. Розглянемо конфігурацію системи, у якій всі термінали фізично підключаються до однієї машини, але реєстрація користувачів логічно реалізується на інших машинах (Малюнок 13.13). У кожному окремому випадку система створює для віддаленого термінала getty-процес. Якщо запити до віддаленої системи обробляються з допомогою набору процесів-серверів, слід зазначити, що при виконанні процедури відкриття сервер зупиняється чекаючи підключення. Коли виконання функції open завершується, сервер звертається назад у серверний пул, розриваючи свій зв'язок з терміналом. Яким чином здійснюється розсилання сигналу про переривання, викликаного натисканням клавіші "break", по адресах процесів, що входять в одну групу ?*16. Поділ пам'яті - це особливість, властива локальним машинам. З логічної точки зору, виділення загальної області фізичної пам'яті (локальної або віддаленої) можна здійснити й для процесів, що належать різним машинам. Опишіть реалізацію цього моменту.*17. Алгоритми вивантаження процесів і підкачування сторінок по обігу припускають використання локального пристрою вивантаження. Які зміни варто внести в ці алгоритми для того, щоб створити можливість підтримки віддалених пристроїв вивантаження ?*18. Припустимо, що на віддаленій машині (або в мережі) трапився фатальний збій і локальний протокол мережного рівня зафіксував цей факт. Розробіть схему відновлення локальної системи, що звертається до віддаленого серверу із запитами. Крім того, розробіть схему восстановлення серверної системи, що втратила зв'язок із клієнтами.*19. Коли процес звертається до віддаленого файлу, не виключена можливість того, що в пошуках файлу процес обійде кілька машин. У якості приклада візьмемо ім'я "/usr/src/uts/3b2/os", де "/usr" - каталог, що належить машині A, "/usr/src" - крапка монтування кореня машини B, "/usr/src/uts/3b2" - крапка монтування кореня машини C. Прохід через кілька машин до місця кінцевого призначення називається "мультискачком" (multihop). Однак, якщо між машинами A й C існує безпосереднійная мережний зв'язок, пересилання даних через машину B був би неефективним. Опишіть особливості реалізації "мультискачка" у системі зі зв'язком Newcastle й в "прозорій" розподіленій системі.