Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дроздов С.Н. Конспект лекций по ОС.doc
Скачиваний:
297
Добавлен:
02.05.2014
Размер:
1.13 Mб
Скачать
      1. Защита данных

Средства безопасности в WindowsNT/2000/XPпредставляют собой отдельную подсистему, которая обеспечивает защиту не только файлов, но и других типов системных объектов. Файлы и каталогиNTFSпредставляют собой наиболее типичные примеры защищаемых объектов.

Как известно, Windowsпозволяет использовать различные файловые системы, при этом возможности защиты данных определяются архитектурой конкретной файловой системы. Например, если на дисковом томе используется системаFAT(где, как нам известно, никаких средств защиты не предусмотрено), тоWindowsможет разве что ограничить доступ ко всему тому, но не к отдельным файлам и каталогам.

        1. Аутентификация пользователя

Важным элементом любой системы защиты данных является процедура входа в систему, при которой выполняется аутентификация пользователя. В WindowsNTдля вызова диалога входа в систему используется известная «комбинация из трех пальцев» –Ctrl+Alt+Del. Как утверждают разработчики, никакая «троянская» программа не может перехватить обработку этой комбинации и использовать ее с целью коллекционирования паролей.

Не хочет ли кто-нибудь попробовать?

Система ищет введенное имя пользователя сначала в списке пользователей данного компьютера, а затем и на других компьютерах текущего домена локальной сети. В случае, если имя найдено и пароль совпал, система получает доступ к учетной записи(account) данного пользователя.

На основании сведений из учетной записи пользователя система формирует структуру данных, которая называется маркером доступа(accesstoken). Маркер содержит идентификатор пользователя (SID,SecurityIDentifier), идентификаторы всех групп, в которые включен данный пользователь, а также наборпривилегий, которыми обладает пользователь.

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

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

        1. Дескриптор защиты

Для любого защищаемого объекта Windows(файла, каталога, диска, устройства, семафора, процесса и т.п.) может быть задана специальная структура данных – атрибуты защиты.

Основным содержанием атрибутов защиты является другая структура – дескриптор защиты. Этот дескриптор содержит следующие данные:

  • идентификатор защиты (SID) владельца объекта;

  • идентификатор защиты первичной группы владельца объекта;

  • пользовательский («дискреционный», «разграничительный») список управления доступом (DACL,DiscretionaryAccessControlList);

  • системный список управления доступом (SACL,SystemAccessControlList).

Пользовательский список управляет разрешениямиизапретамидоступа к данному объекту. Изменять этот список может только владелец объекта.

Системный список управляет только аудитомдоступа данному объекту, т.е. задает, какие действия пользователей по отношению к данному объекту должны быть запротоколированы в системном журнале. Изменять этот список может только пользователь, имеющий права администратора системы.

В Windows, в отличие от многих других ОС, администратор не всесилен. Он не может запретить или разрешить кому бы то ни было, даже самому себе, доступ к чужому файлу. Другое дело, что администратор имеет право объявить себя владельцем любого файла, но потом он не сможет вернуть файл прежнему хозяину. Подобные ограничения вытекают из понимания, что администратор тоже не всегда ангел и, хотя он должен иметь в системе большие права, его действия следует хоть как-то контролировать.

Оба списка управления доступом имеют одинаковую структуру, их основной частью является массив записей управления доступом(ACE,AccessControlEntity).

Рассмотрим структуру записи ACE. Она содержит:

  • тип ACE, который может быть одним из следующих: разрешение, запрет, аудит;

  • флаги, уточняющие особенности действия данной ACE;

  • битовая маска видов доступа, указывающая, какие именно действия следует разрешить, запретить или подвергнуть аудиту;

  • идентификатор (SID) пользователя или группы, чьи права определяет даннаяACE.

Более интересен пользовательский список. Он может содержать только записи разрешения и запрета. В начале списка всегда идут запрещающие записи, затем разрешающие.

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

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

Если такие биты будут найдены в разрешающейACE, то проверка следующихACEвыполняется до тех пор, пока не будут разрешены и все остальные запрошенные виды доступа.

Как выдумаете, почему в списке DACLсначала идут запрещающиеACE, а только потом разрешающие?

Таким образом, говоря кратко, пользователь получит доступ к объекту только в том случае, если все запрошенные им виды доступа явным образом разрешены и ни один их них не запрещен.

В годы перестройки много писалось о двух противоположных принципах: «запрещено все, что не разрешено» или «разрешено все, что не запрещено». В Windowsвсе гораздо строже: запрещено все, что запрещено, и все, что не разрешено.

Список DACLсо всеми необходимыми разрешениями и запретами может быть установлен программно при создании файла, а впоследствии программно же может быть изменен владельцем. Можно также изменять разрешения в диалоге, воспользовавшись окном свойств файла.

Имеются также два крайних случая. Список DACLможет совсем отсутствовать (для этого достаточно, например, при создании файла указатьNULLвместо атрибутов защиты), при этом права доступа не проверяются, все действия разрешены всем пользователям. СписокDACLможет присутствовать, но иметь нулевую длину (нет ни однойACE). Как следует из общих правил, в этом случае в доступе будет отказано всем, в том числе и хозяину файла.