KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Прочая околокомпьтерная литература » Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире

Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Брюс Шнайер, "Секреты и ложь. Безопасность данных в цифровом мире" бесплатно, без регистрации.
Перейти на страницу:

Проблема контроля доступа в действительности намного шире и связана не только с компьютерами. Как вообще можно ограничить доступ к чему-либо? Как можно контролировать доступ к совместно используемым ресурсам? Как обозначить уровни доступа, различные у разных людей? Эту проблему трудно решить даже для большого здания: для этого ставят замки на входе и на дверях внутренних помещений и доверяют ключи от них надежным людям, выдают всем пропуска, которые проверяются охранниками, и т. д. В случае компьютерной системы контроль доступа – тоже трудная задача.

Кроме того, актуальность этой задачи то возрастает, то убывает с течением времени. Сначала вообще не требовался контроль доступа к компьютерам, поскольку все доверяли друг другу. По мере того как все большее количество людей приобщалось к работе с большими вычислительными машинами, возникала необходимость контролировать доступ – как для соблюдения секретности, так и для получения отчетов об использовании машинного времени. Контроль доступа был прост в мире с пакетной обработкой данных.

С появлением персональных компьютеров отпала нужда в контроле: у каждого был свой собственный компьютер. Если кто-то хотел закрыть для других доступ к файлам, он просто запирал свою дверь. В настоящее время происходит возврат к системам коллективного пользования: общим сетевым ресурсам, удаленным системам и т. п. Контроль доступа представляет проблему практически для всех независимо от того, пользуются ли разные люди общим компьютером или одной учетной записью на веб-сайте.

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

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

Установление доступа не означает «все или ничего»; могут быть различные его виды. Например, в системе UNIX три вида доступа предоставляют следующие права: читать, писать и выполнять. Все эти права независимы. Например, кто-то, обладающий правом только на чтение файла, не может изменять этот файл. Тот, у кого есть право только на ввод информации, может изменять файл, но не вправе его прочесть. Тот, у кого есть полномочия и на чтение, и на ввод информации, волен делать и то и другое.

Третий тип права доступа – «выполнять» – особенно любопытен. Такое право имеет смысл только для компьютерных программ – исполняемых файлов. Субъект, имеющий право только на выполнение определенных файлов, может запустить программу, но ему нельзя ни прочесть код, ни изменить содержимое. При некоторых обстоятельствах это имеет смысл: вообразите программу, хранящуюся в защищенной памяти – устройство цифровой подписи в модуле, снабженном системой защиты от вторжения, – в этом случае действительно возможно выполнение команды без прочтения кода.

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

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

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

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

Один из способов справиться со сложностью контроля доступа состоит в том, чтобы разбить таблицу. В некоторых системах список тех, кто имеет доступ к определенному объекту, хранится вместе с самим объектом. Его часто называют списком контроля доступа (access control list, ACL). Это обычная практика, и ACL часто используется в целях безопасности операционных систем. Хотя существуют и определенные проблемы. Такие списки работают хорошо в простых средах, когда пользователи сами устанавливают права доступа, но несколько хуже в тех случаях, когда доступ устанавливает управляющий персонал. В таких системах, например, не существует простого способа временной передачи прав доступа. Также подобные системы недостаточно хорошо обеспечивают проверку доступа по ходу работы программы. Кроме того, поскольку установка доступа привязана к объектам, а не субъектам, могут возникнуть трудности, когда понадобится лишить доступа определенного субъекта. Если кто-нибудь из сотрудников компании увольняется, система должна перебрать все объекты и исключить этого человека из каждого списка. Наконец, управление системой на основе ACL довольно трудоемко, поэтому множество предлагаемых программ предназначено для облегчения этой задачи.

Модели безопасности

Существует множество теоретических моделей безопасности, разработка многих из них финансировалась Министерством обороны в 70-х и 80-х годах. Поскольку речь шла о системах безопасности для нужд обороны, использовалась военная схема секретности, которую мы обсуждали в главе 5. Такие системы называют многоуровневыми системами безопасности (multilevelsecuritysystem, MLS), поскольку они предназначены для поддержки многочисленных уровней секретности в единой системе. (Альтернативные решения слишком громоздкие. Можно создать одну компьютерную систему для несекретных данных, другую, совершенно независимую, – для конфиденциальных данных, третью – для секретных данных и т. д. Или создать систему наивысшего уровня, в которой весь компьютер относится к самому высокому уровню секретности.)

Наиболее известна модель Белла-Лападулы – в ней определено большинство понятий, связанных с контролем доступа и описанных в предыдущем разделе. В этой модели даются определения субъекта, объекта и операции доступа, а также математический аппарат для их описания. Эта теория долгое время оказывала влияние на проектирование систем, однако она не помогла создать практичные и экономичные системы.

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

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*