Операционные системы Концептуальные основы ОС
Структура вычислительной системы
Режимы работы процессора
Прерывания
Прерывания (2)
Прерывания (3)
Векторные прерывания
Векторные прерывания (2)
Прерывания от устройств
Прерывания от устройств (2)
Внутренние прерывания
Программные прерывания
Синхронные и асинхронные прерывания
Процессы и ресурсы
Классификация ресурсов
Классификация ресурсов (2)
ОС как менеджер ресурсов
Квазипараллельная реализация процессов
Основные состояния процесса
Дополнительные состояния процесса
Переходы между основными состояниями
Блокировка процесса
Пробуждение процесса
Активное и пассивное ожидание
Активное и пассивное ожидание (2)
Вытеснение и выбор процесса
Адресное пространство процесса
Контекст процесса
Дескриптор процесса
Процессы и нити
Процессы и нити (2)
Контекст и дескриптор нити
Изоляция и взаимодействие процессов
Иерархия единиц вычислительной работы
Основные задачи обеспечения безопасности
Классификация угроз
Внутренние угрозы безопасности
Вредоносные программы
Вирусы
Методы антивирусной защиты
Руткиты
Руткит фирмы Sony
Объекты и субъекты защиты
Идентификация и аутентификация пользователя
Виды доступа
Матрица доступа
Списки управления доступом
Перечни возможностей
Дискреционная (произвольная) модель управления доступом
Мандатная (принудительная) модель управления доступом
Модель Белла – ЛаПадулы
Модель Биба
Ролевые модели
Скрытые каналы
Основные стандарты
Требования к безопасности системы
Классы безопасности
Элементы криптографии
Шифрование с секретным ключом
Стандарты шифрования с секретным ключом
Шифрование с открытым ключом
Односторонние операции
Алгоритм RSA
Гибридная схема шифрования
Криптографические хеш-функции
Использование открытого ключа для цифровой подписи
Цифровые сертификаты

Операционные системы. Концептуальные основы ОС

1. Операционные системы Концептуальные основы ОС

лектор: Дроздов Сергей Николаевич
доцент кафедры МОП ЭВМ ЮФУ
[email protected]
[email protected]
Таганрог 2020 г.

2. Структура вычислительной системы

2
Структура вычислительной системы
Процессор. Будем рассматривать только
последовательные процессоры,
выполняющие поток команд по очереди.
Основная память (ОЗУ). Используется для
оперативного хранения программ и данных,
обеспечивает быстрый доступ.
Периферийные устройства (ПУ) – всё
остальное: диски, монитор, клавиатура,
мышь, сенсорный экран, модем…
Используются для ввода, вывода и
долговременного хранения данных и
программ.
Операционные системы. Концептуальные основы ОС

3. Режимы работы процессора

3
Режимы работы процессора
Режим ядра (привилегированный режим) – доступны
все возможности процессора: все команды, весь
диапазон памяти, порты ПУ.
Режим пользователя (непривилегированный) –
имеются ограничения по доступным командам и
адресам памяти.
Наличие двух режимов – обязательное условие
надежной многопользовательской защиты.
Однако частое переключение режимов снижает
быстродействие системы.
У процессоров Intel предусмотрены 4 уровня
привилегий, но большинство ОС используют только
два (этого достаточно).
Операционные системы. Концептуальные основы ОС

4. Прерывания

4
Прерывания
Прерывания
Это сигналы, при поступлении которых нормальная
последовательность выполнения программы может
быть прервана.
Система запоминает информацию, необходимую
для возобновления работы прерванной программы.
Система переходит в режим ядра и управление
передается подпрограмме обработки прерывания
(ISR, Interrupt Service Routine).
По завершению обработки прерывания работа
программы возобновляется (как правило).
Большая часть работы современных ОС
заключается в обработке прерываний.
Операционные системы. Концептуальные основы ОС

5. Прерывания (2)

5
Прерывания (2)
Основные
типы прерываний:
аппаратные прерывания от
периферийных устройств;
внутренние аппаратные
прерывания (исключения,
exceptions);
программные прерывания.
Операционные системы. Концептуальные основы ОС

6. Прерывания (3)

6
Прерывания (3)
Обработка прерываний:
выполняется только системой (за исключением
простейших однозадачных ОС);
аппаратно выполняется сохранение данных,
необходимых для возобновления работы
прерванной программы (адрес возврата, состояние
флагов и некоторых регистров);
запрещается прием следующих прерываний;
процессор переводится в режим ядра;
после выполнения первоочередных действий
может быть программно разрешен прием
следующих прерываний;
после завершения обработки выполняется возврат
к прерванной программе и к прежнему режиму
процессора.
Операционные системы. Концептуальные основы ОС

7. Векторные прерывания

7
Векторные прерывания
В современных вычислительных системах, как
правило, используются векторные прерывания.
Каждому источнику прерываний присваивается
свой номер;
отдельные номера получают разные ПУ, разные
причины внутренних прерываний, разные варианты
программных прерываний, т.е. то, что требует
разной обработки;
возможно использование одного и того же номера
для различных ПУ (например, при подключении по
шине USB), в этом случае источник прерывания
определяется путем опроса устройств.
Адреса ISR хранятся в массиве, номер
прерывания – индекс в этом массиве;
Операционные системы. Концептуальные основы ОС

8. Векторные прерывания (2)

8
Векторные прерывания (2)
Для изменения обработки конкретного вида
прерываний системе достаточно изменить
адрес ISR в таблице.
В современных процессорах таблица
содержит не адреса ISR, а более сложные
структуры – шлюзы (дескрипторы)
прерываний, содержащие дополнительную
информацию о типе прерывания;
Сам термин «вектор прерывания» в разных
источниках понимается по-разному: или как
вся таблица, или как ее элемент. Но это
только вопрос терминологии.
Операционные системы. Концептуальные основы ОС

9. Прерывания от устройств

9
Прерывания от устройств
Прерывания от ПУ генерируются в двух
случаях:
при переходе ПУ в состояние готовности;
при возникновении ошибки выполнения операции.
Состояние готовности – когда ПУ ожидает
команд от процессора. А именно:
при вводе – когда введены данные, требующие
обработки (например, нажата клавиша);
при выводе – когда устройство готово принять
данные (закончило предыдущую операцию или
только что включено).
Операционные системы. Концептуальные основы ОС

10. Прерывания от устройств (2)

10
Прерывания от устройств (2)
Контроллер
прерываний
Центральный
процессор
ПУ 1
ПУ 2
ПУ 3
ПУ
N
Сигналы прерывания от устройств поступают на схему
контроллера прерываний, который присваивает им номера
и определяет, когда сигнал должен быть передан в
процессор.
Обработка прерываний от всех или некоторых ПУ может
быть временно запрещена (маскирована), чтобы не
помешать системным операциям. Как правило, запрет
длится не более нескольких миллисекунд.
Операционные системы. Концептуальные основы ОС

11. Внутренние прерывания

11
Внутренние прерывания
Внутренние прерывания (исключения):
при попытке выполнить несуществующую
или недоступную в данном режиме команду;
при обращении к несуществующей или
недоступной данному процессу ячейке
памяти;
при делении на 0;
то есть, во всех случаях, когда нормальное
продолжение работы невозможно.
Обработка исключений не может быть
запрещена.
Операционные системы. Концептуальные основы ОС

12. Программные прерывания

12
Программные прерывания
Программные прерывания:
вызываются выполнением специальной команды
(например, int или trap);
это похоже на вызов подпрограммы, но:
указывается не адрес, а номер прерывания;
обрабатывается так же, как другие типы прерываний
(в частности, происходит переход в режим ядра);
система берет адрес используемой ISR из вектора
прерываний;
используются обычно для обращения к функциям
ОС;
позволяют перейти из режима пользователя в
режим ядра, но при этом с гарантией, что будет
исполняться системный код, а не произвольный
код, написанный пользователем.
Операционные системы. Концептуальные основы ОС

13. Синхронные и асинхронные прерывания

13
Синхронные и асинхронные
прерывания
К синхронным относятся программные и внутренние
аппаратные прерывания.
Асинхронными являются аппаратные прерывания от
ПУ.
Эти прерывания могут возникнуть только при выполнении
определенных команд; например, команды прерывания int или
команды деления, если делитель равен 0.
Это значит, что моменты их возникновения никак не связаны с
логикой работы текущей программы.
Обработка асинхронных прерываний несколько
сложнее.
В частности, значения регистров и флагов процессора в момент
прерывания непредсказуемы. Их нужно запомнить, чтобы потом
восстановить при завершении обработки прерывания.
Операционные системы. Концептуальные основы ОС

14. Процессы и ресурсы

14
Процессы и ресурсы
Процесс: работа, производимая
последовательным процессором при
выполнении программы с ее данными.
Параллельные процессы: два или более
процесса, одновременно выполняющиеся в
системе.
Ресурс: любой аппаратный или программный
объект, доступ к которому может вызвать
конкуренцию процессов.
Воздух, как правило, не является ресурсом, хотя
он крайне полезен для человека.
Вода – ресурс, особенно в пустыне.
Операционные системы. Концептуальные основы ОС

15. Классификация ресурсов

15
Классификация ресурсов
Аппаратные (физические): процессор
(процессорное время), блоки памяти,
периферийные устройства (диски, принтеры,
клавиатура, мышь, монитор, модем и т.п.).
Программные: сообщения, файлы, места в
системных таблицах.
Виртуальные: программные модели
аппаратных ресурсов (например, виртуальный
диск).
Делимые: основная и дисковая память.
Неделимые: все прочие.
Операционные системы. Концептуальные основы ОС

16. Классификация ресурсов (2)

16
Классификация ресурсов (2)
Совместно используемые: память, диски,
монитор.
Монопольно выделяемые: принтер, DVDпривод.
Выгружаемые: могут быть временно
отобраны у процесса (блоки памяти, DVDпривод на чтение).
Невыгружаемые (принтер, DVD-привод на
запись).
Операционные системы. Концептуальные основы ОС

17. ОС как менеджер ресурсов

17
ОС как менеджер ресурсов
Важнейшая задача ОС – контроль над
предоставлением процессам различных
ресурсов, обеспечивающий при этом:
корректность работы программ (представим
себе, что две программы имеют
возможность наперебой обращаться к
принтеру или к диску);
эффективность системы (нельзя, например,
надолго отдать важный ресурс в
монопольное владение одному процессу);
безопасность работы пользователей (нельзя
читать или изменять чужие данные).
Операционные системы. Концептуальные основы ОС

18. Квазипараллельная реализация процессов

18
Квазипараллельная реализация
процессов
На верхнем уровне
рассмотрения: кажется,
что процессы работают
параллельно.
Процесс A:
Процесс B:
Процесс C:
T
На нижнем (детальном
по времени) уровне:
процессы работают
поочередно,
переключаясь через
малые кванты времени.
Процесс A:
Процесс B:
Процесс C:
Для переключения процессов могут быть
использованы прерывания от аппаратного таймера.
Операционные системы. Концептуальные основы ОС
T

19. Основные состояния процесса

19
Основные состояния процесса
вн
ти
Ак
Работа
е
ы
Бл
я
ни
оя
ст
ок
ир
ов
ка
со
е
ни
не
Пробуждение
ес
т
Вы
р
бо
Вы
Сон
Готовность
Работа: команды процесса выполняются процессором.
Готовность: процесс может продолжить работу, как только
получит в свое распоряжение процессор.
Сон (Ожидание): процесс не может продолжить работу,
пока не произойдет некоторое внешнее событие.
Операционные системы. Концептуальные основы ОС

20. Дополнительные состояния процесса

20
Дополнительные состояния процесса
Старт: процесс находится на этапе создания и
пока не готов вступить в работу.
Завершение (состояние «зомби»): процесс
завершил свою работу, но пока присутствует в
системе в виде записи о результатах и причине
завершения.
Приостановка (suspended): выполнение процесса
временно прервано оператором (или другим
процессом) и позднее должно быть им же
возобновлено (resumed).
В конкретных ОС могут различаться и иные
состояния процесса.
Операционные системы. Концептуальные основы ОС

21. Переходы между основными состояниями

21
Переходы между основными
состояниями
Работа Сон: блокировка процесса при
вызове блокирующей системной функции.
Сон Готовность: пробуждение
процесса, выполняется системой при
возникновении соответствующего
условия.
Работа Готовность: вытеснение
процесса, когда планировщик принимает
решение о смене текущего процесса.
Готовность Работа: выбор процесса
планировщиком для выполнения.
Операционные системы. Концептуальные основы ОС

22. Блокировка процесса

22
Блокировка процесса
Процесс вызывает системную функцию, которая не может быть
выполнена сразу, например:
ввод/вывод на дисковое устройство;
ожидание нажатия клавиши;
запрос ресурса, который сейчас занят;
пауза на заданный промежуток времени;
запрос сообщения, когда очередь сообщений пуста:
ожидание завершения другого процесса;
и т.п.
Система переводит процесс в состояние сна (ожидания) и
запоминает причину ожидания.
Спящий процесс не конкурирует за процессорное время, оно
достается активным процессам.
Системные функции, которые могут вызвать переход в
ожидание, называются блокирующими.
Операционные системы. Концептуальные основы ОС

23. Пробуждение процесса

23
Пробуждение процесса
Происходит событие, которого ожидали один или
несколько спящих процессов, например:
завершается операция ввода/вывода на дисковое
устройство;
пользователь нажимает клавишу;
освобождается запрошенный ресурс;
истекает заданная пауза (приходит сигнал от таймера);
приходит сообщение для процесса;
завершается другой процесс;
и т.п.
Во многих случаях о таком событии сигнализирует
прерывание от ПУ.
Система проверяет список спящих процессов и, если
находит процесс, ожидавший этого события,
переводит его в состояние готовности.
Одно событие может (в принципе) разбудить сразу
несколько процессов.
Операционные системы. Концептуальные основы ОС

24. Активное и пассивное ожидание

24
Активное и пассивное ожидание
Существуют два способа реализации ожидания
программой какого-либо внешнего события:
активное ожидание, основанное на периодическом опросе
программой наличия ожидаемого события;
пассивное ожидание, при котором программа не
выполняется, пока не будет «разбужена» извне.
Например, проверка достижения заданного момента времени
может выполняться либо по постоянному опросу системных
часов, либо по прерыванию от аппаратного таймера.
Принципиальным недостатком активного ожидания
является затрата процессорного времени на опрос
события.
Чем чаще выполняется такой опрос, тем больше потери
времени; чем реже, тем больше будет запоздание реакции
на событие.
Операционные системы. Концептуальные основы ОС

25. Активное и пассивное ожидание (2)

25
Активное и пассивное ожидание (2)
Пассивное ожидание всегда основано на обработке аппаратных
или программных прерываний.
Например, это может быть прерывание от таймера, прерывание по
готовности ПУ или программное прерывание, вызываемое при
завершении другого процесса.
Состояние сна для процесса в многозадачной ОС всегда
реализуется как пассивное ожидание.
Использование активного ожидания в прикладной программе,
как правило, говорит о низкой квалификации программиста, не
умеющего пользоваться блокирующими системными
функциями.
Активное ожидание допустимо в следующих случаях:
в однозадачных ОС, где нет другого процесса, который мог бы
использовать затраченное время;
когда программист уверен, что время ожидания будет меньше, чем
время выполнения операций блокировки и пробуждения процесса.
Такое иногда возможно для системных программ.
Операционные системы. Концептуальные основы ОС

26. Вытеснение и выбор процесса

26
Вытеснение и выбор процесса
В условиях, когда в системе имеется
несколько активных (т. е. не спящих)
процессов, система должна разумным
образом делить между ними процессорное
время, вытесняя текущий процесс и запуская
другой. Это называется диспетчеризацией
процессов.
Возможно использование различных
дисциплин (алгоритмов) диспетчеризации,
которые будут рассмотрены позднее.
Операционные системы. Концептуальные основы ОС

27. Адресное пространство процесса

27
Адресное пространство процесса
Каждому процессу выделяется диапазон виртуальных
адресов памяти – адресное пространство процесса.
Сопоставление виртуальным адресам реальных
(физических) адресов основной памяти – задача
подсистемы управления памятью.
«Виртуальные адреса» - это те числовые значения, которые
использует данный процесс для обращения к ячейкам памяти.
Сам процесс, как правило, не знает, с какими физическими
адресами он работает.
Суммарные размеры адресных пространств всех
процессов могут превышать имеющийся объем основной
памяти. В этом случае приходится использовать диск как
расширение памяти.
Как правило, адресные пространства разных процессов
отображаются на непересекающиеся диапазоны
физических адресов (процессы «не видят» друг друга).
Операционные системы. Концептуальные основы ОС

28. Контекст процесса

28
Контекст процесса
Контекст процесса – набор данных, необходимых для
возобновления работы вытесненного или спящего
процесса:
Смена текущего процесса есть переключение
контекста:
значения всех регистров (включая счетчик команд);
области памяти процесса (код программы, переменные,
стеки);
список открытых файлов и их состояние;
значения системных переменных (текущий каталог, код
последней ошибки и т.п.);
сведения о прочих ресурсах.
сохраняется контекст прежнего текущего процесса;
загружается ранее сохраненный контекст нового текущего
процесса.
Переключение контекста – довольно трудоемкая
операция, требующая перехода в режим ядра для
переключения адресного пространства.
Операционные системы. Концептуальные основы ОС

29. Дескриптор процесса

29
Дескриптор процесса
Дескриптор процесса – набор данных о процессе,
которые могут понадобиться системе при различных
состояниях процесса:
идентификатор процесса;
состояние процесса;
владелец процесса;
израсходованное общее и процессорное время;
приоритет;
ссылка на контекст процесса;
и др.
В некоторых ОС дескриптор процесса называется
блоком управления задачей (TCB).
Массив дескрипторов всех имеющихся процессов
образует таблицу процессов.
Операционные системы. Концептуальные основы ОС

30. Процессы и нити

30
Процессы и нити
Традиционное понятие «процесс» во многих
современных системах распадается на два.
Собственно процесс:
Нить (thread) или «поток», «легковесный процесс»:
создается при запуске исполняемого файла;
владеет выделенной ему памятью и ресурсами
(устройствами, открытыми файлами и т.п.).
описывает последовательность выполнения команд;
первая нить запускается при создании процесса;
дополнительные нити внутри процесса могут создаваться
для описания параллельных ветвей работы;
все нити пользуются памятью и ресурсами своего
процесса;
нити всех процессов (а не сами процессы) участвуют в
конкуренции за процессорное время и переходят из
состояния в состояние.
В двух словах: процесс владеет, нить работает.
Звериный оскал капитализма. ;-)
Операционные системы. Концептуальные основы ОС

31. Процессы и нити (2)

31
Процессы и нити (2)
Процессы – как правило, независимые (или слабо зависимые)
единицы работы, решающие определенную задачу.
Нити – это средство реализации единой задачи процесса как
набора параллельно выполняемых подзадач.
Пример: текстовый редактор типа MS Word:
нить ввода текста;
нить разбиения на страницы;
нить проверки правописания;
нить автосохранения;
нить печати и др.
Описать все эти действия в виде чисто последовательного
алгоритма, в принципе, возможно, но крайне неудобно.
Аналогия: один слуга, выполняющий сразу все работы по дому,
или несколько слуг, каждый из которых выполняет свою работу.
Слуги могут общаться между собой, могут пользоваться
общими инструментами. Но все они работают на одного
хозяина.
Операционные системы. Концептуальные основы ОС

32. Контекст и дескриптор нити

32
Контекст и дескриптор нити
Если в ОС реализовано понятие нити, то некоторая часть
контекстной информации должна храниться для каждой нити, в
частности:
состояние регистров и флагов процессора;
указатель стека;
возможно, локальные переменные нити.
Прочие элементы контекста (содержимое памяти, список
файлов и других ресурсов) относятся к процессу.
Соответственно, помимо дескрипторов процессов система
хранит также дескрипторы нитей.
Переключение контекста нитей в рамках одного процесса
существенно проще, чем переключение контекста процессов.
В принципе, переключение контекста нитей может быть
выполнено без обращения к ядру.
Операционные системы. Концептуальные основы ОС

33. Изоляция и взаимодействие процессов

33
Изоляция и взаимодействие процессов
Изоляция процессов в многозадачной системе:
возможность и необходимость для каждого процесса
работать так, как если бы он был единственным на
данной машине.
Цели изоляции:
исключается несанкционированное вмешательство одного
процесса в работу другого;
облегчается проектирование и отладка процессов.
Важнейшее средство изоляции – разделение
адресных пространств процессов.
Взаимодействие процессов: возможно только с
помощью строго определенных средств
операционной системы, гарантирующих надежность
и безопасность работы.
Основные виды взаимодействия:
синхронизация процессов в заданных точках;
обмен данными между процессами.
Операционные системы. Концептуальные основы ОС

34. Иерархия единиц вычислительной работы

34
Иерархия единиц вычислительной
работы
Сеанс – совокупность всех процессов, запущенных
данным пользователем. Завершается при выходе
пользователя из системы.
Задание (Job) – группа процессов, которая может
быть как единое целое приостановлена или
возобновлена, перемещена на передний план или в
фон, получить квоты на использование ресурсов.
Процесс.
Нить (Thread).
Волокно (Fiber) – более мелкая единица в составе
нити. Переключение волокон выполняется по
запросу программы и требует меньше времени, чем
переключение нитей. Используется довольно редко.
Операционные системы. Концептуальные основы ОС

35. Основные задачи обеспечения безопасности

35
Основные задачи обеспечения
безопасности
Основными компонентами системы безопасности
информации принято считать следующие:
конфиденциальность (защита от несанкционированного
доступа);
целостность (защита от несанкционированного изменения
информации);
доступность (защита от несанкционированного удержания
информации и ресурсов, защита от разрушения, защита
работоспособности).
Из этого возникают следующие задачи:
доступ на чтение данных пользователя должен быть
возможен только по его разрешению;
изменение, удаление, добавление данных – тем более;
не допускается блокировка разрешенного доступа, в том
числе из-за массы посторонних запросов (DOS-атак).
не допускается перехват управления системой со стороны
посторонних субъектов (вирусов м т.п.).
Операционные системы. Концептуальные основы ОС

36. Классификация угроз

36
Классификация угроз
По направленности:
По преднамеренности:
угрозы конфиденциальности;
угрозы целостности;
угрозы доступности.
непреднамеренные (сбои, стихийные
бедствия);
преднамеренные (действия злоумышленников).
По источнику:
внутренние (изнутри системы);
внешние.
Операционные системы. Концептуальные основы ОС

37. Внутренние угрозы безопасности

37
Внутренние угрозы безопасности
Ошибки в работе аппаратуры и программного
обеспечения.
Ошибки пользователей и администраторов.
Преднамеренные действия сотрудников.
Программы, собирающие пароли при входе
пользователей в систему.
«Логические бомбы» – программы, установленные в
системе заранее с целью произвести вредные
действия в определенный момент или при
определенном условии (например, через неделю
после увольнения автора).
«Потайные двери» – возможность нештатного входа
в систему или выполнения определенных действий
конкретным пользователем – автором программы.
Операционные системы. Концептуальные основы ОС

38. Вредоносные программы

38
Вредоносные программы
«Троянские кони» – программы, явным образом
привлекательные (полезные утилиты, игры и т.п.), но
при этом тайно выполняющие вредоносные действия.
Не размножаются.
Вирусы – программы, размножающиеся путем
присоединения своего кода к другим программам.
Черви (worm) – программы, многократно копирующие
сами себя обычно через Сеть), но не заражающие
другие программы.
Руткиты (rootkit) – вредоносные программы,
скрывающие своё присутствие.
Шпионы – программы, тайно собирающие информацию
о системе и о действиях пользователя.
Операционные системы. Концептуальные основы ОС

39. Вирусы

39
Вирусы
Вирус присоединяется к исполняемой программе.
Обычно вирус не препятствует выполнению нормальных действий
программы, но предварительно выполняет своё черное дело:
ищет другие исполняемые файлы, к которым дописывает свой
собственный код;
исполняет какие-либо вредоносные действия (возможно, в заданный
день или при определенных условиях).
Резидентный вирус – остается в памяти после завершения
работы exe-файла (например, как служба Windows или демон
UNIX) и вступает в действие при выполнении определенных
системных вызовов.
Вирус загрузочного сектора – подменяет собой нормальный
BOOT-сектор и поэтому может начать работать еще до загрузки
ОС.
Макровирусы – заражают макросы таких файлов, как документы
MS Office. Макрос может вызываться уже сразу при открытии
документа.
Вообще, вирусы могут заражать только исполняемые файлы. Тот
факт, что DOC-файлы тоже исполняемые, был осознан с запозданием.
Операционные системы. Концептуальные основы ОС

40. Методы антивирусной защиты

40
Методы антивирусной защиты
Брандмауэры на входе из сети.
Обнаружение известных вирусов по
характерным фрагментам (сигнатурам).
Отслеживание нетипичного поведения
программ (перезапись BOOT-сектора,
изменение EXE-файлов).
Сохранение «отпечатков» всех исполняемых
файлов и их периодическая сверка.
На все методы обнаружения имеются способы
самозащиты вирусов. Окончательная победа
не просматривается.
Операционные системы. Концептуальные основы ОС

41. Руткиты

41
Руткиты
Руткит заражает ядро системы, модифицируя
те системные вызовы, которые могут
использоваться при поиске вирусов (в
частности, функции поиска файлов).
Некоторые руткиты загружаются до ОС и затем
запускают ОС под своим контролем, скрывая
от системы некоторые ресурсы.
Неплохое место для руткита – драйвер
устройства (поскольку изменение состава
драйверов – явление привычное и не
подозрительное).
Операционные системы. Концептуальные основы ОС

42. Руткит фирмы Sony

42
Руткит фирмы Sony
Знаменитая скандальная история,
произошедшая в 2005 г.
Компания Sony выпустила музыкальные CD,
сразу после вставки в устройство
устанавливавшие руткит, который
перехватывал системные вызовы к файлам на
диске, запрещал их копирование, а также
скрывал своё присутствие в системе.
После обнаружение М.Руссиновичем этого
руткита фирма сначала пыталась доказать
законность своих действий, но потом с
большим скрипом вынуждена была отыграть
назад, выплатила штраф и компенсации.
Операционные системы. Концептуальные основы ОС

43. Объекты и субъекты защиты

43
Объекты и субъекты защиты
Объектами защиты могут, в принципе, быть любые
ресурсы вычислительной системы: файлы, каталоги,
системные таблицы, устройства, память.
Субъекты защиты:
в большинстве моделей – пользователи и группы
пользователей, обладающие определенными правами
доступа;
в некоторых моделях – процессы, порожденные
пользователями (их права определяются правами
пользователя, но в некоторых ситуациях могут и отличаться).
При этом главным вопросом является: должен ли
данный субъект получить право на выполнение
запрошенных им операций с объектом.
Операционные системы. Концептуальные основы ОС

44. Идентификация и аутентификация пользователя

44
Идентификация и аутентификация
пользователя
Идентификация – определение
принадлежности к множеству
зарегистрированных пользователей.
Обычно просто ввод имени пользователя (login).
Аутентификация – проверка подлинности
идентификации. Возможные варианты:
«Что он знает?» – ввод пароля.
«Что у него есть?» – смарт-карты, аппаратные
ключи.
«Кто он?» – биометрические проверки: отпечатки
пальцев, радужная оболочка и т.п.
Операционные системы. Концептуальные основы ОС

45. Виды доступа

45
Виды доступа
Два основных вида доступа – чтение и
запись.
Может использоваться более подробное
разделение видов: чтение/запись данных и
чтение атрибутов, выполнение файла, доступ
к элементам каталога, синхронизация по
объекту и др.
Важнейший вид доступа – право на
изменение прав доступа.
Позднее будут подробно рассмотрены виды
доступа для Windows и UNIX.
Операционные системы. Концептуальные основы ОС

46. Матрица доступа

46
Матрица доступа
Матрица, задающая права доступа для пары
«субъект, объект».
Субъект
Файл 1
Файл 2
1
R
RWX
2
3
Файл 3
Файл 4
RW
R
R
R
R
Папка 1
Принтер 1 Принтер 2
RWX
W
R
W
RW
W
W
Как правило, матрица доступа сильно избыточна,
поскольку права отдельных пользователей обычно
определяются правами групп, в которые входит
пользователь.
Поэтому на практике удобнее хранить списки доступа
по столбцам (для объектов) или по строкам (для
субъектов).
Операционные системы. Концептуальные основы ОС

47. Списки управления доступом

47
Списки управления доступом
Список управления доступом (ACL, Access Control
List) представляет столбец таблицы доступа.
Каждая запись содержит идентификатор группы или
пользователя, вид(ы) доступа, флаг разрешения /
запрещения.
Для предоставления пользователю доступа к
объекту надо, чтобы:
все запрошенные виды доступа были разрешены для самого
пользователя или для одной из его групп;
и чтобы ни один вид доступа не был запрещен для
пользователя или для одной из его групп.
То есть, при наличии и разрешения, и запрета на
один и тот же вид доступа результатом будет запрет.
При отсутствии как запрета, так и разрешения на
некоторый вид доступа результатом также будет
запрет.
Операционные системы. Концептуальные основы ОС

48. Перечни возможностей

48
Перечни возможностей
Перечень возможностей представляет строку
таблицы доступа.
Каждая запись содержит идентификатор
объекта, вид(ы) доступа, флаг разрешения /
запрещения.
Элементом перечня может быть также
ссылка на другой перечень возможностей.
Таким образом пользователь наследует
возможности группы.
Права доступа наследуются от каталога к его
элементам. Это позволяет значительно
сократить объем информации в перечнях
возможностей.
Операционные системы. Концептуальные основы ОС

49. Дискреционная (произвольная) модель управления доступом

49
Дискреционная (произвольная)
модель управления доступом
Каждый элемент матрицы доступа (или
соответствующих списков) может изменяться
индивидуально.
Право на такое изменение имеет владелец объекта
и/или администратор, а также, может быть, те
пользователи, которым такое право было
предоставлено.
Главное достоинство модели – гибкость,
возможность индивидуализации по субъектам и
объектам.
Главный недостаток модели – гибкость, отсутствие
централизации управления доступом, трудность или
невозможность доказать удовлетворение
требованиям безопасности.
Операционные системы. Концептуальные основы ОС

50. Мандатная (принудительная) модель управления доступом

50
Мандатная (принудительная)
модель управления доступом
С каждым объектом защиты связывается метка
уровня защиты (метка безопасности).
Например, в России используется классификация
документов: «Особой важности» / «Совершенно секретно» /
«Секретно» / «ДСП» / неклассифицированные.
Каждому пользователю присваивается уровень прав
доступа.
Возможность доступа определяется по
определенным правилам, в зависимости от уровней
доступа объекта и субъекта и от типа
запрашиваемой операции.
Мандатная модель обычно надстраивается над
дискреционной, то есть сохраняется возможность
индивидуальных ограничений.
Операционные системы. Концептуальные основы ОС

51. Модель Белла – ЛаПадулы

51
Модель Белла – ЛаПадулы
Доступ пользователя к объекту на чтение и запись
ограничивается двумя правилами:
читать можно только объекты равного или более низкого
уровня защиты;
записывать можно только в объекты равного или более
высокого уровня.
Часто используют «армейскую» метафору:
лейтенант может прочитать рапорт сержанта и
доложить генералу. Лейтенант не может заглянуть в
планы генерала и тем более сообщить их сержанту.
Эта модель хорошо защищает секретность данных,
но есть проблемы с целостностью:
лейтенант может изменить файлы генерала (этого можно
избежать, если сохранить также дискреционную защиту
данных);
непонятно, как можно передать приказ сверху вниз.
Операционные системы. Концептуальные основы ОС

52. Модель Биба

52
Модель Биба
Эта модель – строго обратная к модели
Белла – ЛаПадулы.
Доступ пользователя к объекту на чтение и запись
ограничивается двумя правилами:
читать можно только объекты равного или более высокого
уровня;
записывать можно только в объекты равного или более
низкого уровня.
По модели Биба легко организуется поток данных
сверху вниз: приказы, инструкции, общие рассылки и
т.п.
Зато проблема с передачей информации снизу
вверх.
Операционные системы. Концептуальные основы ОС

53. Ролевые модели

53
Ролевые модели
Каждому пользователю присваивается роль, определяющая его
права доступа.
Множество ролей может быть иерархическим, допускается
множественное наследование (Главбух – это и бухгалтер, и
руководитель).
Пользователь может иметь несколько ролей, но не в одном
сеансе.
Операционные системы. Концептуальные основы ОС

54. Скрытые каналы

54
Скрытые каналы
Даже если доказано, что в используемой
модели безопасности передача информации
от пользователя A к пользователю B
невозможна, они иногда могут использовать
каналы, не учитываемые в формальной
модели, например:
чтобы передать бит «1», пользователь A в
оговоренные заранее интервалы времени
открывает общедоступный файл F в эксклюзивном
режиме. Пользователь B в это же время пытается
открыть файл F.
В тех же целях A нагружает процессор до такой
степени, чтобы B, посылая запрос, мог обнаружить
явную задержку ответа.
Операционные системы. Концептуальные основы ОС

55. Основные стандарты

55
Основные стандарты
В 1983 г. Минобороны США выпустило документ «Критерии
безопасности компьютерных систем» («Оранжевую книгу»), где
впервые были введены важные понятия информационной
безопасности и, в частности, введена классификация
программных систем по степени выполнения требований к
безопасности.
Международный стандарт ISO/IEC 15408 (2005 г.) – дальнейшее
развитие стандартизации.
Среди важнейших понятий:
Безопасная система – система, управляющая доступом к
информации таким образом, что только авторизованные лица или
процессы, действующие от их имени, получают право читать,
записывать, создавать и удалять информацию.
Доверенная система – система, использующая достаточные
аппаратные и программные средства, чтобы обеспечить
одновременную обработку информации разной степени секретности
группой пользователей без нарушения прав доступа.
Монитор обращений – централизованная процедура контроля
допустимости выполнения субъектами определенных операций над
объектами.
Операционные системы. Концептуальные основы ОС

56. Требования к безопасности системы

56
Требования к безопасности системы
Политика безопасности – точно определенные правила
определения возможности доступа.
Метки безопасности – присваиваются каждому объекту защиты
и используются для контроля доступа.
Идентификация и аутентификация субъектов защиты. Данные,
используемые для идентификации и аутентификации, должны
быть защищены от несанкционированного доступа,
модификации и уничтожения
Аудит – надежная регистрация всех событий, имеющих
отношение к безопасности, обеспечивающая определение
ответственности пользователей.
Контроль корректности средств зашиты – наличие независимых
аппаратных или программных компонент, контролирующих
корректность функционирования средств защиты.
Непрерывность защиты – постоянная и непрерывная защита
средств защиты от несанкционированного вмешательства или
отключения.
Операционные системы. Концептуальные основы ОС

57. Классы безопасности

57
Классы безопасности
Класс D – системы, не выполняющие требований
более высоких класов.
Класс C – системы с дискреционным доступом и
регистрацией действий субъектов.
Класс B – системы с мандатной защитой. Имеется
формализованная модель безопасности. Данные
маркируются метками безопасности. Предусмотрены
испытания системы защиты. Оповещение
администратора о событиях, важных для
безопасности.
Класс A – системы с верифицированной защитой.
Для всех элементов системы защиты имеется
формальное доказательство их правильности.
Большая часть современных ОС, включая Windows,
UNIX, Linux, относятся к классу C.
Операционные системы. Концептуальные основы ОС

58. Элементы криптографии

58
Элементы криптографии
Основной принцип современной криптографии:
алгоритмы шифрования должны быть открытыми,
секретность достигается за счет выбора ключа.
Очевидное следствие: ключ должен быть достаточно
длинным, чтобы перебор всех ключей был
неприемлемо долгим.
Для ключа длиной N бит имеется 2N значений.
Приемлемые длины ключа – от 64 бит и выше. Для
особо секретных систем – 256 бит и более.
Попытки секретить сам алгоритм создают опасную иллюзию
безопасности.
Задача «Зашифровать так, чтобы нельзя было
расшифровать» – нереальна. Правильная постановка:
«Зашифровать так, чтобы время и/или стоимость
расшифровки превышали разумные пределы».
По мере роста вычислительных мощностей
безопасная длина ключа возрастает.
Операционные системы. Концептуальные основы ОС

59. Шифрование с секретным ключом

59
Шифрование с секретным ключом
Один и тот же ключ используется для
шифрования и расшифровки.
Шифрование (и расшифровка) обычно
состоит в многократном выполнении:
перестановок частей шифруемого блока
информации;
замены одних групп битов на другие;
обратимых побитовых операций.
Скорость шифрования и расшифровки
достаточно высокая.
Проблема: как безопасно передавать сам
ключ между участниками обмена?
Операционные системы. Концептуальные основы ОС

60. Стандарты шифрования с секретным ключом

60
Стандарты шифрования с секретным
ключом
Алгоритм DES.
Модификации 3DES.
Используются последовательно 2 или 3 разных ключа.
Время шифрования и дешифрования возрастает в 3 раза.
Пока не взломан.
Алгоритм AES.
Введен в качестве стандарта США в 1977 г.
Текст разбивается на блоки по 64 бита. Длина ключа – 56 битов.
Используется 16 циклов преобразования.
Взломан в 1988 г. за три дня работы суперкомпьютера.
Введен как стандарт в 2002 г.
Блоки по 128 битов, ключ от 128 до 256 битов.
Имеет аппаратную поддержку на современных процессорах Intel.
Пока не взломан.
Российские стандарты
ГОСТ 28147-89 – блоки 64 бита, ключ 256 битов, 32 цикла.
ГОСТ Р 34.12-2015 – вводится с 1.01.2016. Блок 128 битов, ключ
256 битов.
Операционные системы. Концептуальные основы ОС

61. Шифрование с открытым ключом

61
Шифрование с открытым ключом
Каждый участник обмена выбирает себе пару ключей,
генерируемых по определенному алгоритму:
открытый ключ (public key) несекретен, он рассылается всем
участникам обмена;
личный секретный ключ (private key) известен только его владельцу;
то, что зашифровано одним из ключей, расшифровывается не тем
же ключом, а парным к нему.
Чтобы передать секретное сообщение от A к B (обычно их
называют «Алиса» и «Боб»), Алиса шифрует его открытым
ключом Боба и пересылает ему.
Расшифровать сообщение можно только секретным ключом
Боба.
Теоретически, зная открытый ключ Боба, можно вычислить
парный к нему секретный ключ. Но объем таких вычислений
должен быть очень велик.
Недостаток: шифрование и расшифровка выполняются
примерно в 1000 раз медленнее, чем по алгоритмам с
секретным ключом.
Операционные системы. Концептуальные основы ОС

62. Односторонние операции

62
Односторонние операции
Насколько это реально – дать всем желающим
открытый ключ, но так, чтобы они не могли
вычислить секретный ключ?
Для подбора пар открытого и личного ключей
используются такие операции над большими целыми
числами, которые нетрудно выполнить, но очень
трудно обратить, например:
Нетрудно (хотя и не очень быстро) вычислить
произведение двух простых чисел длиной порядка
100 битов каждое, но очень трудно, зная
произведение, найти сомножители.
Нетрудно вычислить k = Pn (mod M), но при больших
M трудно подобрать n по известным k, P, M.
Вычисление секретного ключа по известному
открытому требует подобных трудоемких операций.
Операционные системы. Концептуальные основы ОС

63. Алгоритм RSA

63
Алгоритм RSA
Построение пары ключей:
Все операции 1 – 4 выполнимы, хотя и
довольно трудоемки.
Шифрование сообщения S (где S - число):
1. Взять два больших (порядка 1000 битов)
простых числа p и q.
2. Вычислить n = pq; m = (p-1)(q-1).
3. Выбрать простое число e < m (открытый ключ).
4. Вычислить число d, обратное к e по модулю m
(то есть такое, что de = 1 (mod m)). Число d будет
секретным ключом парным к e.
C = Se (mod n).
Дешифрование:
S = Cd (mod n).
Операционные системы. Концептуальные основы ОС

64. Гибридная схема шифрования

64
Гибридная схема шифрования
Использование алгоритмов с открытым
ключом для больших сообщений слишком
трудоемко.
Часто применяется гибридная схема:
Алиса генерирует случайный ключ;
этот ключ Алиса использует для быстрого
шифрования сообщения по алгоритму с секретным
ключом;
само значение ключа шифруется с открытым
ключом Боба;
Алиса передает Бобу зашифрованное сообщение
и зашифрованный ключ.
Операционные системы. Концептуальные основы ОС

65. Криптографические хеш-функции

65
Криптографические хеш-функции
Хеш-функция – функция, которая для заданного числа или текста
вычисляет некоторое число (хеш) так, чтобы минимизировать
вероятность коллизий, то есть совпадения значений хешей для
различных аргументов.
Криптографическая хеш-функция – такая, для которой
невозможно или очень трудно выполнить такие нежелательные
действия:
Простейший пример – сложение блоков исходного текста по модулю 2.
Чтобы уменьшить вероятность случайных коллизий, длина хеша
должна быть достаточно большой.
зная значение хеша, подобрать исходный текст, для которого будет
вычисляться такое значение;
зная исходный текст, изменить его так, чтобы значение хеша не
изменилось;
подобрать два различных текста с одинаковыми значениями хеша.
Одно из важных применений хеш-функций – хранение
хешированных паролей пользователей вместо самих паролей.
Стандарты криптографического хеширования: MD5 (уже взломан),
SHA-2 (разрядность хеша от 224 до 512).
Операционные системы. Концептуальные основы ОС

66. Использование открытого ключа для цифровой подписи

66
Использование открытого ключа для
цифровой подписи
Цифровая подпись используется, когда важна не
секретность информации, а достоверность
источника.
Алиса шифрует сообщение своим закрытым ключом
и посылает Бобу.
Если Бобу удается расшифровать сообщение
открытым ключом Алисы, то автор – действительно
Алиса.
Не обязательно шифровать всё сообщение,
достаточно зашифровать ключом Алисы «отпечаток»
сообщения по MD5 или SHA и приложить его к
нешифрованному сообщению.
Если необходимо обеспечить и секретность, и
подпись, то текст шифруется открытым ключом Боба,
а его отпечаток – закрытым ключом Алисы.
Операционные системы. Концептуальные основы ОС

67. Цифровые сертификаты

67
Цифровые сертификаты
При получении открытого ключа от некоторой «Алисы»
(например, от веб-сайта) возникает вопрос
достоверности самого этого ключа.
Для этого пользователю посылается сертификат,
содержащий открытый ключ и другую полезную
информацию (в частности, наименование отправителя,
срок действия сертификата).
Надежность самого сертификата подтверждается
цифровой подписью одного из центров сертификации.
Список таких центров и их открытые ключи должен
быть задан другими средствами (например, входить в
дистрибутив операционной системы).
Операционные системы. Концептуальные основы ОС
English     Русский Правила