2.4.2 Механизмы защиты в операционной системе

Многозадачная ОС должна изолировать процессы друг от
друга и отделять пользовательские процессы от процессов ядра, для того чтобы
обеспечить конфиденциальность процессов и стабильность работы системы. Для
этого применяются разные режимы работы процессора - привилегированный режим (Kernel Mode) для ядра и пользовательский режим (User Mode) для пользовательских приложений.
Процесс, запущенный в режиме ядра, имеет доступ ко всем командам процессора и
всему адресному пространству памяти.
Для изолирования пользовательских процессов и защиты пространства памяти, на
процессы накладываются ограничения. Виртуальная память позволяет процессам
использовать только выделенную им части памяти. Дополнительно можно защитить
область памяти, содержащую код программы, от операций записи. Память,
выделяемая процессу, должна быть очищена от данных предыдущего процесса.
Механизмы защиты в многопользовательской Ос начинаются с создания пользователя,
которому разрешено пользоваться системой, после чего пользователю присваиваются
права доступа к ресурсам.
Механизмы защиты на уровне ОС постоянно совершенствуются, и теперь включают
средства шифрования, применяемые при разных видах деятельности ОС, таких как
аутентификация пользователей, установка сетевого соединения, защиты данных на
массовых и съёмных носителях итд.
Понятие криптографии включает
преобразование некого сообщения в закодированное сообщение, использую секретный
ключ. Основываясь на секретности ключа, механизм шифрования обеспечивает
секретность сообщения, хоть сами алгоритмы зашифрования и расшифрования
открыты. В криптосистеме ключ для шифрования связан с математической функцией.
Криптосистема называется симметричной,
если зашифрование и расшифрование проводится с использованием одного и того же
секретного ключа. Примерами алгоритмов симметричного шифрования являются DES
(Data Encryption Standard) и AES (Advanced Encryption Standard). Такое
шифрование используется для кодирование больших объёмов данных, поскольку такие
алгоритмы относительно просты по сравнению с ассиметричным шифрованием, и
процедуры шифрования занимают меньше вычислительных ресурсов. В симметричных
криптосистемах необходимо держать в секрете ключ шифрования.
В ассиметричном шифровании
используется пара ключей - открытый и закрытый. Для расшифрования
зашифрованного открытым ключом сообщения нужно использовать закрытый ключ, и
наоборот. Ассиметричное шифрование занимает много ресурсов, потому его не
применяют для шифрования больших объёмов данных. На практике большие объёмы
данных шифруют симметричным ключом, а ключ симметричного шифрования передают в
ассиметрично зашифрованном виде, с помощью открытого ключа получателя. Об этом
речь пойдёт позже.