Анотація: Розглядаються вимоги до системи захисту інформації, загальні підходи до організації захисту пам'яті мультипрограмних ЕОМ, а також організація захисту пам'яті в персональній ЕОМ.
Організація захисту пам'яті в ЕОМ
При мультипрограммном режимі роботи ЕОМ в її пам'яті одночасно можуть перебувати кілька незалежних програм. Тому необхідні спеціальні заходи щодо запобігання або обмеження звернень однієї програми до областям пам'яті, використовуваних іншими програмами. Програми можуть також містити помилки, які, якщо цьому не перешкодити, призводять до спотворення інформації, що належить іншим програмам. Наслідки таких помилок особливо небезпечні, якщо руйнування піддадуться програми операційної системи. Іншими словами, треба виключити вплив програми користувача на роботу програм інших користувачів і програм операційної системи. Слід захищати і самі програми від знаходяться в них можливих помилок.
Таким чином, засоби захисту пам'яті повинні запобігати 2
- недозволене взаємодія користувачів один з одним,
- несанкціонований доступ користувачів до даних,
- пошкодження програм і даних через помилки в програмах,
- навмисні спроби зруйнувати цілісність системи,
- використання інформації в пам'яті не у відповідності з її функціональним призначенням.
Щоб перешкодити руйнуванню одних програм іншими, досить захистити область пам'яті даної програми від спроб записи в неї з боку інших програм, а в деяких випадках і своєї програми (захист від запису), при цьому допускається звернення інших програм до цієї області пам'яті для зчитування даних.
В інших випадках, наприклад при обмеженнях на доступ до інформації, що зберігається в системі, необхідно забороняти іншим програмам будь-яке звернення до деякої області пам'яті як на запис. так і на зчитування. Такий захист від запису і зчитування допомагає в налагодженні програми, при цьому здійснюється контроль кожного випадку звернення за область пам'яті своєї програми.
Для полегшення налагодження програм бажано виявляти і такі характерні помилки в програмах, як спроби використання даних замість команд або команд замість даних у власній програмі, хоча ці помилки можуть і не руйнувати інформацію (невідповідність функціонального використання інформації).
Якщо порушується захист пам'яті. виконання програми призупиняється і виробляється запит переривання по порушенню захисту пам'яті.
Захист від вторгнення програм в чужу область пам'яті може бути організована різними методами. Але при будь-якому підході реалізація захисту не повинна помітно знижувати продуктивність комп'ютера і вимагати занадто великих витрат апаратури.
Методи захисту базуються на деяких класичних підходах, які отримали свій розвиток в архітектурі сучасних ЕОМ. До таких методів можна віднести захист окремих осередків, метод граничних регістрів. метод ключів захисту [7].
Захист окремих осередків пам'яті організовується в ЕОМ, призначених для роботи в системах управління, де необхідно забезпечити можливість налагодження нових програм без порушення функціонування знаходяться в пам'яті робочих програм, які керують технологічним процесом. Це може бути досягнуто виділенням в кожному осередку пам'яті спеціального "розряду захисту". Установка цього розряду в "1" забороняє проводити запис в дану комірку, що забезпечує збереження робочих програм. Недолік такого підходу - велика надмірність в кодуванні інформації через надмірно дрібного рівня, що захищається (осередок).
У системах з мультипрограммной обробкою доцільно організовувати захист на рівні блоків пам'яті, що виділяються програмами, а не окремих осередків.
Метод граничних регістрів (рис. 17.1) полягає у введенні двох граничних регістрів, що вказують верхню і нижню межі області пам'яті, куди програма має право доступу.
Мал. 17.1. Захист пам'яті методом граничних регістрів
Метод граничних регістрів. володіючи безсумнівною простотою реалізації, має і певні недоліки. Основним з них є те, що цей метод підтримує роботу лише з безперервними областями пам'яті.
Метод ключів захисту. на відміну від попереднього, дозволяє реалізувати доступ програми до областям пам'яті, організованим у вигляді окремих модулів, які не становлять собою єдиний масив.
Пам'ять в логічному відношенні ділиться на однакові блоки, наприклад, сторінки. Кожному блоку пам'яті ставиться у відповідність код, званий ключем захисту пам'яті. а кожній програмі, яка бере участь в мультипрограммной обробці, присвоюється код ключа програми. Доступ програми до даного блоку пам'яті для читання і запису дозволений, якщо ключі збігаються (тобто даний блок пам'яті відноситься до даної програми) або один з них має код 0 (код 0 присвоюється програмами операційної системи і блокам пам'яті, до яких мають доступ усі програми : загальні дані, спільно використовувані підпрограми і т. п.). Коди ключів захисту блоків пам'яті і ключів програм встановлюються операційною системою.
У ключі захисту пам'яті передбачається додатковий розряд режиму захисту. Захист діє тільки при спробі запису в блок, якщо в цьому розряді стоїть 0, і при будь-якому зверненні до блоку, якщо стоїть 1. Коди ключів захисту пам'яті зберігаються в спеціальній пам'яті ключів захисту, більш швидкодіючої, ніж оперативна пам'ять.
Функціонування цього механізму захисту пам'яті пояснюється схемою на рис. 17.2.
Мал. 17.2. Захист пам'яті методом ключів захисту