Введение

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

Определенная политика безопасности

Вследствие вышеуказанного определения из Оранжевой книги, границы ТКБ тесно зависят от конкретики реализации политики безопасности. В примере с сетевым сервером, даже если, скажем, веб-сервер, обслуживающий многопользовательское приложение, не входит в состав ТКБ операционной системы, он отвечает за выполнение контроля доступа, чтобы пользователи не могли похитить идентификационные данные и привилегии друг друга. В этом смысле он, безусловно, является частью ТКБ более крупной компьютерной системы, включающей в себя UNIX-сервер, браузеры пользователей и веб-приложение; иными словами, взлом веб-сервера, например, через переполнение буфера, нельзя считать компрометацией самой операционной системы, но он, несомненно, представляет собой вредоносную эксплуатацию веб-приложения. Эта фундаментальная относительность границ ТКБ иллюстрируется концепцией "объекта оценки" ("ОЦ") в процессе сертификации по стандарту Common Criteria: в ходе оценки безопасности Common Criteria одним из первых шагов является определение границ аудита, то есть перечня компонентов системы, которые будут подвергнуты проверке.

Необходимое условие безопасности

Системы, не имеющие надежной вычислительной базы в своей конструкции, не обеспечивают собственной безопасности: они безопасны лишь постольку, поскольку безопасность обеспечивается внешними средствами (например, компьютер, находящийся в запертой комнате без сетевого подключения, может считаться безопасным в зависимости от политики, независимо от установленного на нем программного обеспечения). Это связано с тем, что, как отмечали Дэвид Дж. Фарбер и другие, в компьютерной системе целостность нижних уровней обычно принимается за аксиому верхними уровнями. Для рассуждений о свойствах безопасности компьютерной системы необходимо иметь возможность делать обоснованные предположения о том, что она может и, что более важно, не может делать. Однако, при отсутствии оснований полагать обратное, компьютер способен выполнять все операции, доступные универсальной машине фон Неймана. Это, очевидно, включает в себя действия, которые противоречат всем, кроме самых простых политик безопасности, такие как раскрытие электронной почты или пароля, подлежащих сохранению в тайне. Однако, если в архитектуре системы не предусмотрены специальные меры, нельзя отрицать, что компьютер может быть запрограммирован на выполнение этих нежелательных задач. Эти специальные меры, направленные на предотвращение выполнения определенных видов действий, и составляют, по сути, надежную вычислительную базу. Поэтому «Оранжевая книга» (по-прежнему являющаяся ориентиром при разработке безопасных операционных систем по состоянию на 2007 год) характеризует различные уровни гарантии безопасности, которые она определяет, главным образом с точки зрения структуры и функций безопасности TCB.

Программные части ТКБ должны защищать себя

Как указано в вышеупомянутой Оранжевой книге, программные компоненты доверенной вычислительной базы должны быть защищены от несанкционированного изменения, чтобы быть эффективными. Это обусловлено архитектурой фон Неймана, используемой практически во всех современных компьютерах: поскольку машинный код может рассматриваться как обычные данные, он может быть прочитан и перезаписан любой программой. Это можно предотвратить с помощью специальных механизмов управления памятью, которые затем должны рассматриваться как часть доверенной вычислительной базы. В частности, доверенная вычислительная база должна, как минимум, предотвращать запись в собственное программное обеспечение. Во многих современных процессорах защита памяти, содержащей доверенную вычислительную базу, достигается за счет использования специализированного аппаратного обеспечения, называемого блоком управления памятью (MMU), который операционная система может программировать для разрешения или запрета доступа выполняющейся программе к определенным областям системной памяти. Разумеется, операционная система также может запретить другим программам такое программирование. Этот метод называется режимом супервизора; по сравнению с более примитивными подходами (например, хранением доверенной вычислительной базы в ПЗУ или эквивалентным использованием архитектуры Гарварда), он имеет преимущество в возможности обновления критически важного для безопасности программного обеспечения в процессе эксплуатации, хотя обеспечение безопасного обновления доверенной вычислительной базы само по себе порождает проблемы начальной загрузки.

Доверенный против заслуживающего доверия

Как указано выше, доверие к доверенной вычислительной базе необходимо для любого прогресса в определении безопасности компьютерной системы. Иными словами, доверенная вычислительная база является "доверенной" прежде всего в том смысле, что ей *нужно* доверять, а не обязательно в том, что она действительно заслуживает доверия. В реальных операционных системах регулярно обнаруживаются критические уязвимости, что свидетельствует о практических ограничениях такого доверия. Альтернативой является формальная верификация программного обеспечения, использующая методы математического доказательства для демонстрации отсутствия ошибок. Недавно исследователи из NICTA и её дочерней компании Open Kernel Labs провели формальную верификацию seL4, ядра семейства микроядер L4, доказав функциональную корректность C-реализации ядра. Это делает seL4 первым ядром операционной системы, которое преодолевает разрыв между необходимостью доверять и фактической надежностью, при условии, что математическое доказательство не содержит ошибок.

Размер КБТ

В связи с вышеупомянутой необходимостью применения дорогостоящих методов, таких как формальная верификация или ручная проверка, размер ТКБ напрямую влияет на экономическую эффективность процесса обеспечения доверия к ТКБ и на надежность конечного продукта (с точки зрения математического ожидания числа ошибок, не выявленных в ходе верификации или проверки). Для снижения затрат и рисков для безопасности, размер ТКБ следует минимизировать. Это ключевой аргумент в спорах в пользу микроядер по сравнению с монолитными ядрами.

Примеры

AIX реализует доверенную вычислительную базу как необязательный компонент в системе управления пакетами при установке.