Понятию неприкосновенности труднее дать строгое определение. Лучшая из известных мне формулировок звучит так: все данные сохраняются в таком виде, в каком они были оставлены последним лицом, правомочным вносить изменения. В контексте компьютерной безопасности «неприкосновенность» означает защиту от записи. Неприкосновенность данных – это гарантия того, что их не удалит и не изменит кто-то, у кого нет на это права. Неприкосновенность программного обеспечения – это гарантия того, что программы не будут изменены по ошибке, по злому умыслу пользователя или вирусом.
Из определения неприкосновенности видно, что эта проблема аналогична проблеме обеспечения конфиденциальности. Если последняя перекрывает несанкционированный доступ к данным (и программам), то первая предотвращает несанкционированную запись. И фактически обе эти задачи решаются при помощи одних и тех же технологий безопасности (криптографических и других).
Доступность традиционно считают третьим «китом» компьютерной безопасности, хотя на самом деле понятие доступности выходит далеко за рамки этой проблемы. В различных стандартах по обеспечению защиты доступность определяется как «свойство системы, состоящее в том, что ее беспрепятственная эксплуатация возможна, когда это необходимо» или как «свойство системы быть готовой и пригодной к работе по требованию законного пользователя». Эти определения всегда поражали меня недостаточной конкретностью. Их смысл сводится к следующему: мы интуитивно знаем, что подразумеваем под доступностью – нам нужно, чтобы компьютер работал, когда мы того хотим, и так, как мы того хотим.
Конечно, бывает, что программы не работают или работают неправильно, но это – проблемы надежности вычислительных систем и качества программных продуктов и… ни одна из них не имеет отношения к безопасности. В контексте безопасности под доступностью можно понимать гарантию того, что злоумышленник не сумеет помешать работе законных пользователей. В частности, в задачу обеспечения доступности входит исключение возможности атак, вызывающих отказ в обслуживании.
Контроль доступа
Совместное обеспечение конфиденциальности, доступности и неприкосновенности сводится к контролю доступа. Суть проблемы состоит в обеспечении законным пользователям возможности делать все то, что им дозволено делать и на что остальные не имеют права.
Проблема контроля доступа в действительности намного шире и связана не только с компьютерами. Как вообще можно ограничить доступ к чему-либо? Как можно контролировать доступ к совместно используемым ресурсам? Как обозначить уровни доступа, различные у разных людей? Эту проблему трудно решить даже для большого здания: для этого ставят замки на входе и на дверях внутренних помещений и доверяют ключи от них надежным людям, выдают всем пропуска, которые проверяются охранниками, и т. д. В случае компьютерной системы контроль доступа – тоже трудная задача.