Аппаратное обеспечение средств защиты. Аппаратная защита в процессорах семейства х86

Страницы работы

Фрагмент текста работы

Существуют два основных подхода к обеспечению защиты опера­тивной памяти процесса от несанкционированного доступа со стороны других процессов.

Первый подход заключается в том, что при каждом обращении про­цессора к оперативной памяти осуществляется проверка корректности доступа. Теоретически этот подход позволяет создать абсолютно надеж­ную защиту от несанкционированного доступа процесса к "чужой" памяти. Действительно, если выделить каждому процессу отдельную область па­мяти и блокировать, все обращения за ее пределы, доступ процесса к чу­жой памяти становится невозможным. Однако при этом станет практически невозможным и взаимодействие процессов. В применяемых на практике операционных системах значительная часть оперативной памяти, выде­ленной процессу, является разделяемой, т.е. доступной другим процес­сам. Например, в Microsoft Windows все копии выполняющейся программы разделяют общий код. Другими словами, код программы загружается в оперативную память один раз, и при запуске новых процессов, являющих­ся экземплярами той же программы, эти процессы получают доступ к об­ласти оперативной памяти, содержащей код программы. Таким образом, разные процессы имеют доступ к одной и той же памяти. Похожая ситуа­ция имеет место и при использовании динамически подгружаемых библио­тек. Если запретить подобное разделение памяти между процессами, тре­бования операционной системы к объему оперативной памяти возрастут в несколько раз. Таким образом, при практическом применении рассматри­ваемого подхода разработчики операционной системы оказываются "между двух огней" - с одной стороны, необходимо организовать эффек­тивные средства взаимодействия процессов, а с другой стороны - органи­зовать эффективную защиту процессов от несанкционированных воздей­ствий друг на друга. Эти требования взаимно противоречивы, и разработ­чики операционной системы вынуждены искать разумный компромисс ме­жду ними, некую "золотую середину".

Альтернативный подход к обеспечению защиты оперативной памяти заключается в выделении каждому процессу индивидуального адресного пространства, аппаратно изолированного от других процессов. При этом, по какому бы адресу оперативной памяти ни обратился процесс, он не сможет обратиться к памяти, выделенной другому процессу, поскольку одному и тому же значению адреса в разных адресных пространствах со­ответствуют разные физические адреса оперативной памяти. При практи­ческой реализации этого подхода необходимо, чтобы центральный про­цессор компьютера поддерживал логическую адресацию оперативной па­мяти, т.е. позволял бы обращаться к ячейкам памяти не по физическим адресам, а по неким виртуальным адресам, автоматически преобразуе­мым в физические незаметно для выполняющегося процесса. Подавляю­щее большинство современных процессоров поддерживают такую воз­можность. В частности, эту возможность поддерживают все процессоры, аппаратно поддерживающие использование программами виртуальной памяти.

Данный подход надежно защищает от случайных, обусловленных ошибками в программном обеспечении, обращений процессов к чужой оперативной памяти, но не всегда позволяет защититься от подобных об­ращений, предпринимаемых преднамеренно с целью несанкционирован­ного доступа к чужому адресному пространству. Дело в том, что при дан­ном подходе, так же как и при предыдущем

Похожие материалы

Информация о работе