- •Призначення ядра Linux і його особливості
- •Модулі ядра
- •Виконавча система
- •Наперед визначені системні процеси
- •Застосування користувача
- •Висновки до розділу 2.
- •Контрольні запитання та завдання
- •Паралелізм взаємодії з користувачем
- •Паралелізм розподілених застосувань
- •Ієрархія процесів
- •Особливості створення потоків
- •Особливості завершення потоків
- •Методи розподілюваної пам'яті
- •Методи передавання повідомлень
- •Технологія відображуваної пам'яті
- •Особливості міжпроцесової взаємодії
- •Черги повідомлень
- •20 Найбільш значущих бітів, які задають початкову адресу фрейму, кратну 4 Кбайт (може бути задано 1 Мбайт різних початкових адрес);
- •Перетворення адрес в архітектурі іа-32
- •Типи файлів
- •Імена файлів
- •Каталоги
- •Абсолютний і відносний шляхи
- •Єдине дерево каталогів. Монтування файлових систем
- •Літерні позначення розділів
- •Символічні зв'язки
- •Підтримка символічних зв'язків на рівні системних викликів
- •Фізична організація розділів на диску
- •Основні вимоги до фізичної організації файлових систем
- •Прості зв'язні списки.
- •Зв'язні списки з таблицею розміщення файлів
- •Розріджені файли
- •Елементи каталогу.
- •Спочатку інформацію зберігають у журналі (у ньому створюють новий запис). Таку операцію називають випереджувальним записуванням (write-ahead) або веденням журналу (journaling).
- •Необхідність реалізації буферизації
- •Способи реалізації буферизації
- •Буферизація і кешування
- •Використання спеціальних файлів
- •Передавання даних між рівнями підсистеми
- •Категорії драйверів пристроїв
- •Структура драйвера пристрою
- •Обслуговування переривань
- •Завершення запиту введення-виведення
- •Обробка даних багаторівневими драйверами
- •Поняття термінала
- •Емуляція термінала
- •Віддалені термінали і консоль
- •Термінальне введення
- •Термінальне виведення
- •Програмне керування терміналом
- •Наперед визначені дескриптори у Win32
- •Програмне керування консоллю
- •Протокол iPv4
- •Підтримка транспортного рівня
- •Однорідний доступ до пам'яті
- •Неоднорідний доступ до пам'яті
- •Асиметрична багатопроцесорність
- •Симетрична багатопроцесорність
- •Підтримка numa-архітектур
- •Масштабування навантаження
- •Продуктивність окремих застосувань
- •Криптографічні алгоритми
- •Обмін повідомленнями із використанням криптографії із секретним ключем
- •Криптографічні алгоритми з відкритим ключем
- •Обмін повідомленнями з використанням криптографії із відкритим ключем
- •Односторонні хеш-функції
- •Підписи із відкритим ключем і односторонніми хеш-функціями
- •Облікові записи
- •Словникові атаки і сіль
- •Аутентифікація за принципом «виклик-відповідь»
- •Списки контролю доступу
- •Можливості
Аутентифікація за принципом «виклик-відповідь»
Більш серйозна проблема, пов'язана із використанням описаного підходу, полягає в тому, що пароль передають мережею незашифрованим, і він може бути перехоплений зловмисником. Один зі способів вирішення цієї проблеми полягає в тому, щоб передавати мережею не паролі, а їх односторонні хеші (дайджести). Цей підхід називають аутентифікацією за принципом «виклик-відповідь» (challenge-response authentication) або дайджест-аутентифікацією .
Протокол такої аутентифікації має такий вигляд.
Система зберігає значення односторонньої функції від пароля Аліси F1(Ps) у базі даних облікових записів.
Аліса передає системі своє вхідне ім'я (відкритим текстом) і значення F1(PA), обчислене із використанням пароля РА, який вона ввела.
Система генерує випадкове число C, яке називають викликом (challenge), і передає його Алісі.
Аліса застосовує іншу односторонню функцію до значення виклику. Ha вхід цієї функції, крім виклику, передають значення F1(PA)
RA = F2(Ft(PA), С).
Аліса передає системі значення RA (відповідь, response).
Система обчислює аналогічне до RA значення Rs на підставі інформації із бази даних облікових записів
Rs = F2(F1(P5), C).
Якщо значення RA і Rs, отримані системою на кроках 5 і 6, збігаються, аутентифікацію вважають успішною.
Використання випадкового значення виклику в цьому разі зумовлене необхідністю запобігання атаці відтворенням (replay attack), під час якої зловмисник перехоплює інформацію, передану Алісою системі для того, щоб пізніше відіслати її самому, прикидаючись Алісою.
Цей протокол був основним підходом до аутентифікації у системах лінії Windows XP до появи Windows 2000 і дотепер підтримується у цих системах (наприклад, для локальної аутентифікації). Його надійність залежить від надійності алгоритму, використаного для односторонньої функції (перехоплення зловмисником дайджесту дасть можливість здійснити на нього словникову атаку). Зазначимо також, що в цьому разі користувач не може бути впевнений, що система насправді є тією, до якої він запитує доступ.
Більш складним протоколом аутентифікації є протокол Kerberos . Це розподілена система аутентифікації користувачів із можливістю аутентифікації клієнта і сервера. Протокол Kerberos є основним протоколом мережної аутентифікації у системах лінії Windows XP, починаючи із Windows 2000. Реалізація цього протоколу доступна і для UNIX-систем.
2.
Для реалізації керування доступом операційна система має можливість визначати, що за дії і над якими об'єктами має право виконувати той чи інший користувач системи. Звичайний розподіл прав відображають у вигляді матриці доступу, у якій рядки відповідають суб'єктам авторизації (користувачам, групам користувачів тощо), стовпці - ресурсам (файлам, пристроям тощо), а на перетині рядка і стовпця зазначені права цього суб'єкта на виконання операцій над даним ресурсом (рис. 18.1).
Зберігання повної матриці контролю доступу неефективне (вона займатиме багато місця), тому звичайно використовують два базові підходи для її компактного відображення.
1. У разі реалізації списків контролю доступу (Access Control Lists, ACL) зберігаються стовпці матриці. Для кожного ресурсу задано список суб'єктів, які можуть використовувати цей ресурс.
2. У разі реалізації можливостей (capabilities) зберігаються рядки матриці. Для кожного суб'єкта задано список ресурсів, які йому дозволено використовувати.