Методи захисту у процесорах сімейства Х86, сторінка 3

CPL – визначає рівень привілеїв виконуваної нині процесором завдання, тобто. процесу. Тому іноді кажуть, що CPL є рівнем привілеїв процесора. Він ідентифікується станом двох молодших розрядів сегментного регістру CS. При передачі управління сегменту коду з іншим рівнем привілеїв процесор працюватиме на новому рівні привілеїв, що відповідає новому стану молодших бітів сегментного регістру. Таким чином, CPL завдання може змінитись тільки при передачі управління до нового кодового сегмента через дескриптор шлюзу. Завдання, що виконується на нульовому рівні привілеїв, має доступ до всіх сегментів даних, описаних у глобальній дескрипторній таблиці, і є найпривілейованішим.

Атрибут рівня привілеїв дескриптора (DPL).

Правильніше говорити про рівень привілеїв сегмента, який описує цей дескриптор, оскільки сам дескриптор рівня привілеїв не має.

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

Рівень привілеїв селектора ідентифікується полем RPL – двома молодшими бітами селектора. Ці два біти селекторавизначають максимальний рівень привілеїв дескриптора сегмента даних або стека, до якого відбувається звернення. Якщо ж даний селектор вимагає звернення до сегмента, рівень привілеїв якого вище, ніж рівень привілеїв, що запитується, то звернення не відбувається і процесор йде на переривання, тобто. виникає особливий випадок (виняток). Формується порушення загального захисту. Іншими словами, значення поля RPL чисельно повинно бути завжди менше або дорівнює значенню поля DPL дескриптора, що вибирається.

Основні правила захисту за привілеями сегментів.

Захист сегментів даних.

Основне правило захисту доступу до даних полягає в тому, що процесор не дозволяє звертатися до даних, які більш привілейовані, ніж програма, що виконується. Це правило, отже, може бути представлене у вигляді виразу: DPL ≥ CPL.

Коли програма намагається здійснити звернення до даних із порушенням цього правила, процесор відмовляється виконувати цю команду, йде на переривання та повідомляє про порушення загального захисту. Перевірка цього правила здійснюється при завантаженні селектора в один із сегментних регістрів даних DS, ES, FS або GS. Якщо DPL сегмента, якого вибирає селектор, чисельно менше CPL, процесор не завантажує селектор і формує порушення загального захисту.

Однак це правило практично дещо розширюється. Справа в тому, що рівень привілеїв сегмента, що викликається, повинен бути в той же час нижчий або дорівнює запитуваному селектором рівню привілеїв RPL. Отже, рівень привілеїв сегмента, що викликається, повинен дорівнювати або менше як рівня привілеїв поточного завдання, так і запитуваного рівня привілеїв. Таким чином, вираз, що визначає правила доступу до сегментів данихнабуває вигляду:

деEPL (Effective Privilege Level)– ефективний рівень привілеїв.

Звідси випливає, що, задаючи певне значення RPL у селекторі, можна керувати доступом поточної програми до сегментів даних, що мають різний рівень захисту. Наприклад, при RPL = 0 доступом до даних визначатиметься лише значенням CPL, тобто. рівнем привілеїв поточної програми. Якщо ж задати RPL = 3, то за будь-якого CPL програма може звернутися тільки до найменш захищених сегментів даних, розміщених у кільці 3 системи захисту.

При завантаженні селектора в сегментний регістр стека SS правила захисту посилюються ще більше. Завантаження дозволяється тільки в тому випадку, якщо значення DPL сегмента стека точно дорівнює значенню CPL. Нагадаємо до того ж, що завантаження селектора в регістр SS допускається, крім цього, тільки тоді, коли сегмент, що вибирається, допускає операції, як зчитування, так і запису.

Захист сегментів коду.

Захист сегментів коду ґрунтується на тому, що пряма передача управління сегменту коду, що знаходиться на іншому рівні привілеїв, заборонена, незалежно від того, на нижчому або на більш високому рівні привілеїв він знаходиться.

Отже, безпосередні звернення між сегментами коду, а також між сегментами коду та сегментами даних, в межах кілець захисту та між ними може бути ілюстрована рис. VI.3.

сімейства

Рис.VI.3. Правила звернення в межах кілець захисту та між ними.

Однак у процесі виконання програм процесор обов'язково повинен мати можливість передавати управління програмам, що у сегментах, розташованих різних рівнях привілеїв. Наприклад, при виконанні програм користувача, які розміщуються на найменш привілейованому рівні (PL3-програми), процесор повинен завжди мати доступ до процедур обслуговування, що знаходяться на рівні PL1. Навіть операційна система MS-DOS через переривання INT21h надає програмам користувача понад 150 різноманітних функцій обслуговування.

Тому в процесорах сімейства Х86 передбачаються два різні способи передачі управління до сегментів коду, що знаходяться на іншому рівні привілеїв. Перший полягає у використанні можливості переведення сегментів коду в режим підпорядкованості, а другий у використанні для передачі управління спеціальних дескрипторів – шлюзів виклику.

  • АлтДТУ 419
  • АлтДУ 113
  • АмПГУ 296
  • АГТУ 266
  • БІТТУ 794
  • БДТУ «Воєнмех» 1191
  • БДМУ 172
  • БДТУ 602
  • БДУ 153
  • БДУІР 391
  • БелДУТ 4908
  • БДЕУ 962
  • БНТУ 1070
  • БТЕУ ПК 689
  • БрДУ 179
  • ВНТУ 119
  • ВГУЕС 426
  • ВлДУ 645
  • ВМедА 611
  • ВолгДТУ 235
  • ВНУ ім. Даля 166
  • ВЗФЕД 245
  • ВятГСХА 101
  • ВятДГУ 139
  • ВятДУ 559
  • ГГДСК 171
  • ГомГМК 501
  • ДДМУ 1967
  • ДДТУ ім. Сухого 4467
  • ДМУ ім. Скорини 1590
  • ДМА ім. Макарова 300
  • ДДПУ 159
  • ДальГАУ 279
  • ДВДГУ 134
  • ДВДМУ 409
  • ДВГТУ 936
  • ДВГУПС 305
  • ДВФУ 949
  • ДонДТУ 497
  • ДІТМ МНТУ 109
  • ІвДМА 488
  • ІДХТУ 130
  • ІжДТУ 143
  • КемГППК 171
  • КемДУ 507
  • КДМТУ 269
  • КіровАТ 147
  • КДКСЕП 407
  • КДТА ім. Дегтярьова 174
  • КНАГТУ 2909
  • КрасГАУ 370
  • КрасДМУ 630
  • КДПУ ім. Астаф'єва 133
  • КДТУ (СФУ) 567
  • КДТЕІ(СФУ) 112
  • КПК №2 177
  • КубДТУ 139
  • КубДУ 107
  • КузДПА 182
  • КузДТУ 789
  • МДТУ ім. Носова 367
  • МДЕУ ім. Сахарова 232
  • МГЕК 249
  • МДПУ 165
  • МАІ 144
  • МАДІ 151
  • МДІУ 1179
  • МГОУ 121
  • МДСУ 330
  • МДУ 273
  • МГУКІ 101
  • МГУПД 225
  • МГУПС (МІІТ) 636
  • МГУТУ 122
  • МТУСІ 179
  • ХАІ 656
  • ТПУ 454
  • НДУ МЕІ 641
  • НМСУ «Гірський» 1701
  • ХПІ 1534
  • НТУУ «КПІ» 212
  • НУК ім. Макарова 542
  • НВ 777
  • НДАВТ 362
  • НДАУ 411
  • НДАСУ 817
  • НДМУ 665
  • НДПУ 214
  • НДТУ 4610
  • НГУ 1992
  • НГУЕУ 499
  • НДІ 201
  • ОмДТУ 301
  • ОмГУПС 230
  • СПбПК №4 115
  • ПГУПС 2489
  • ПДПУ ім. Короленка 296
  • ПНТУ ім. Кондратюка 119
  • РАНХіГС 186
  • РОАТ МІІТ 608
  • РТА 243
  • РДДМУ 118
  • РДПУ ім. Герцена 124
  • РДППУ 142
  • РДСУ 162
  • «МАТІ» — РДТУ 121
  • РГУНіГ 260
  • РЕУ ім. Плеханова 122
  • РДАТУ ім. Соловйова 219
  • РязГМУ 125
  • РДРТУ 666
  • СамДТУ 130
  • СПбДАСУ 318
  • Інжекон 328
  • СПбГІПСР 136
  • СПбГЛТУ ім. Кірова 227
  • СПбДМТУ 143
  • СПбГПМУ 147
  • СПбДПУ 1598
  • СПбГТІ (ТУ) 292
  • СПбДТУРП 235
  • СПбДУ 582
  • ГУАП 524
  • СПбГУНіПТ 291
  • СПбГУПТД 438
  • СПбГУСЕ 226
  • СПбГУТ 193
  • СПГУТД 151
  • СПбГУЕФ 145
  • СПбГЕТУ «ЛЕТИ» 380
  • ПІМаш 247
  • НДУ ІТМО 531
  • СДТУ ім. Гагаріна 114
  • СахДУ 278
  • СЗТУ 484
  • СибАГС 249
  • СибДАУ 462
  • СибДІУ 1655
  • СибДТУ 946
  • СГУПС 1513
  • СібГУТІ 2083
  • СибУПК 377
  • СФУ 2423
  • СНАУ 567
  • СумДУ 768
  • ТРТУ 149
  • ТОГУ 551
  • ТДЕУ 325
  • ТДУ (Томськ) 276
  • ТДПУ 181
  • ТулДУ 553
  • УкрДАЖТ 234
  • УлДТУ 536
  • УІПКПРО 123
  • УрДПУ 195
  • УГТУ-УПІ 758
  • УГНТУ 570
  • УДТУ 134
  • ХДАЕП 138
  • ХДАФК 110
  • ХНАГГ 407
  • ХНУВС 512
  • ХНУ ім. Каразіна 305
  • ХНУРЕ 324
  • ХНЕУ 495
  • ЦПУ 157
  • ЧитДУ 220
  • ЮУрДУ 306
Повний список ВНЗ

Щоб надрукувати файл, скачайте його (у форматі Word).