- Кольца защиты (безопасность)
-
Кольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (режим супервизора или нулевое кольцо, т.н. "кольцо 0"), обеспечивающий максимальный доступ к ресурсам, является внутренним кругом, тогда как режим пользователя с ограниченным доступом — внешним. Традиционно семейство микропроцессоров
Архитектуре колец защиты обычно противопоставляют системы, основанные на «возможностях» (англ. Capability-based security).
Содержание
Реализация
Поддержка нескольких колец защиты была одной из революционных концепций, включённых в операционную систему
Многие современные архитектуры центральных процессоров (включая популярную архитектуру Windows NT, также как и OS/2 использовала три кольца: кольцо 0 для кода ядра и драйверов устройств, кольцо 2 для привилегированного кода (программы с доступом к операциям ввода-вывода), и кольцо 3 для непривилегированного кода (почти все пользовательские программы).
Оригинальная система Multics имела восемь колец защиты, но многие современные системы имеют как правило меньше. Процессор всегда знает в каком кольце исполняется код, благодаря специальным машинным регистрам. В некоторых системах области виртуальной памяти также связаны с номерами колец, и более привилегированному кольцу даются специальные права (такие как адресация реальной памяти в обход механизма виртуальной памяти).
Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция («ворота»), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.
Защита кольца может сочетаться с режимами процессора (режим master/kernel/privileged против режима slave/user/unprivileged) в некоторых системах. Операционные системы, выполняющиеся на аппаратном обеспечении, поддерживающем такие режимы, могут использовать оба способа защиты или только один из них.
Эффективное использование архитектуры колец защиты требует тесного взаимодействия между аппаратными средствами и операционной системой. Операционные системы, разрабатывающиеся так, чтобы они работали на большом количестве платформ, могут иметь различную реализацию механизма колец на каждой платформе. Часто модель безопасности упрощают до двух уровней доступа: уровня «ядра» и уровня «пользователя», даже если аппаратные средства обеспечивают большую степень детализации уровней выполнения.
Режим супервизора
Некоторые фирмы-разработчики и производители процессоров, например, ARM не используют классификацию режимов работы процессора в виде колец защиты.Тем не менее, у большинства современных процессоров (кроме простейших) как правило присутствует несколько режимов работы отличающихся друг от друга доступными в данном режиме привилегиями.
Термином режим супервизора разработчики и производители процессоров как правило называют наиболее привилегированный режим работы процессора. Чаще всего этот режим используется для выполнения ядра операционной системы. Обычно этот режим по функциональности соответствует 0-му кольцу защиты (Ring 0) в x86 процессорах, т.е. предоставляет неограниченный доступ ко всем возможностям процессора, работе с периферией и так далее. Код, работающий в данном режиме, как правило, занимается управлением доступными аппаратными ресурсами, разделением их использования между отдельными задачами (процессами) и так далее, что и привело к такому названию режима.
Режим гипервизора
Некоторые современные процессоры могут предоставлять дополнительный режим работы, известный как режим гипервизора. Как правило данный режим реализуется с целью поддержки технологий виртуализации на уровне аппаратного обеспечения. Это позволяет достигнуть не только одновременного выполнения нескольких задач но и одновременного выполнения нескольких операционных систем на одном процессоре без существенных потерь производительности и без изменения самих операционных систем. Как правило при использовании данного режима полный доступ ко всем ресурсам возможен именно из режима гипервизора. В таком случае режим супервизора уже не является максимально привилегированным и ограничивает многие привилегированные операции. При выполнении привилегированных операций операционными системами в режиме супервизора управление передается специальной программе - гипервизору. Гипервизор осуществляет арбитраж использования имеющихся аппаратных ресурсов несколькими операционными системами аналогично тому как сами операционные системы осуществляют распределение ресурсов между несколькими задачами. По сути, гипервизор обычно является небольшим ядром которое управляет распределением ресурсов между несколькими операционными системами и работает уровнем ниже чем сами операционные системы. В силу этого в терминологии x86 данный режим как правило называют кольцом -1 (Ring -1).
Модель взаимодействия между ЦП и уровнями абстракции ОС
Устройство цифровых процессоров Архитектура Гарвардская • Фон Неймана • Битовые операции • Система команд • Кольца защиты • RISC • MISC • EPIC • Параллелизм Упреждающее выполнение • Конвейер • Суперскалярность • Подмена регистров • Мультипроцессор • Многопоточность Компоненты АЛУ • Математический сопроцессор • Корпус • Векторный процессор • Регистры • Кэш Питание Динамическое изменение частоты • Динамическое изменение напряжения Реализации Микропроцессор • Графический процессор • Физический процессор • DSP • Система на кристалле • Микроконтроллер • ПЛИС
Wikimedia Foundation. 2010.