Криптографические механизмы широко применяются при обеспечении информационной безопасности на уровне аппаратно-программных платформ средств вычислительной техники. Такие механизмы могут быть реализованы в выделенном компоненте аппаратно-программной платформы, называемом корнем доверия. Обсудим в данной статье корни доверия, сервисы, предоставляемые корнями доверия на основе реализованных в них криптографических механизмов, и некоторые типовые сценарии их применения.
Реализация криптографических механизмов в корне доверия
Под понятием «корень доверия» (для обозначения корня доверия часто используется аббревиатура RoT – от Root of Trust)обычно подразумевается неотъемлемый компонент аппаратно-программной платформы, на котором может быть основано обеспечение безопасности функционирования средства вычислительной техники, построенного на данной платформе.
Для выполнения своих функций корень доверия должен включать в себя реализации криптографических механизмов, а также так называемые критические данные, которые в совокупности необходимы для обеспечения безопасности платформы. В качестве примеров криптографических операций, реализуемых в корне доверия, могут быть приведены следующие:
Для выполнения вышеперечисленных операций в процессе функционирования корня доверия он должен содержать в себе, как минимум, следующие данные:
Корень доверия может быть как активным, т. е. он может управлять определенными процессами функционирования аппаратно-программной платформы (например, на этапе ее начальной загрузки, которая будет рассмотрена далее), так и пассивным, когда корень доверия выполняет свои функции по запросам других компонентов платформы. В последнем случае корень доверия должен предоставлять свои функции внешним компонентам только после их надлежащей аутентификации и авторизации, для чего он также должен содержать в себе соответствующие ключи для аутентификации и правила доступа к реализованным в нем функциям.
Ясно, что для обеспечения безопасности средства вычислительной техники в целом, корень доверия сам должен соответствовать определенным требованиям по обеспечению его собственной безопасности. Вот только основные из них:
Концепция применения и иерархия доверия
Поскольку корень доверия является основополагающим компонентом обеспечения безопасности платформы, который не может быть проверен какими-либо другими компонентами платформы (такая проверка возможна извне средства вычислительной техники, например, в рамках его удаленной аттестации, но данный сценарий в этой статье рассматриваться не будет), доверие к нему должно формироваться другими методами, например, с помощью сертификации корня доверия. С целью упрощения процедуры сертификации (а также с рядом других целей, в частности, для обеспечения надежности и снижения количества возможных ошибок) к корню доверия обычно также предъявляется требование минималистичности реализуемого в нем функционала.
Под минималистичностью в данном случае имеется в виду реализация в корне доверия минимально необходимых именно для корневого элемента обеспечения безопасности функций, которые могут быть расширены путем реализации дополнительных функций во внешних по отношению к корню доверия компонентах средства вычислительной техники (см. рис. 1):
Реализация такого расширения криптографических функций должна сопровождаться обеспечением доверия к тем компонентам, в которых реализованы дополнительные функции. В данном случае можно говорить о формировании иерархии доверия, в которой корневым элементом является корень доверия (см. рис. 2).
При этом доверие должно обеспечиваться путем применения криптографических методов, с помощью которых должна контролироваться целостность и аутентичность доверяемых компонентов. В качестве таких методов можно использовать, в частности, цифровую подпись или хеширование программного кода доверяемого компонента с их проверкой при активизации компонента.
В этом случае можно говорить о формировании некоего композитного корня доверия средства вычислительной техники, в котором корень доверия платформы является изначальным корнем доверия, формирующим иерархию доверия, а остальные доверяемые компоненты являются вторичными корнями доверия, каждый из которых может рассматриваться как корень доверия на своем уровне (например, программный корень доверия на уровне ядра операционной системы).

Рис. 1. Концепция применения корня доверия

Рис. 2. Иерархия доверия
Набор криптографических операций, реализуемых в корне доверия, напрямую зависит от сервисов (служб), предоставляемых корнем доверия. В качестве примеров сервисов корня доверия приведу следующие (список не является исчерпывающим):
В частности, в корне доверия, предоставляющего сервисы обеспечения целостности и конфиденциальности, необходима реализация следующих криптографических механизмов:
Различные сервисы корня доверия могут как реализовываться в отдельных компонентах, каждый из которых в этом случае представляет собой отдельный корень доверия, формирующий собственную иерархию доверия с соответствующим назначением, так и комбинироваться в составе одного компонента, представляющего собой многофункциональный корень доверия.
Примеры применения
Приведу два примера применения криптографических механизмов, реализованных в корне доверия, для обеспечения безопасности средств вычислительной техники.
Пример 1. Доверенная загрузка средства вычислительной техники на основе последовательной криптографической верификации загружаемых модулей
Доверенная загрузка может быть построена путем контроля целостности всех загружаемых компонентов. Пример обеспечения доверенной загрузки с помощью данного метода приведен на рис. 3.

Рис. 3. Пример организации доверенной загрузки
Как видно из рисунка, доверенная загрузка обеспечивается за счет формирования цепочки загрузки доверенных программных компонентов с поочередным контролем целостности на основе криптографических механизмов, причем средства такой верификации программных компонентов располагаются на нижележащих уровнях цепочки:
Здесь мы также можем видеть пример иерархии доверия (в данном случае – цепочки доверия), построенной на основе корня доверия с применением криптографических механизмов и обеспечивающей как распространение доверия на вышележащие уровни, так и расширение реализованных криптографических механизмов.
Пример 2. Обновление встроенного программного обеспечения аппаратно-программной платформы с криптографической проверкой аутентичности обновлений
Встроенное программное обеспечение компонентов аппаратно-программной платформы может быть как изменяемым, так и неизменяемым.
Неизменяемое программное обеспечение (в частности, загружаемое из модулей памяти, доступ к которым технически возможен только на чтение) не подвержено риску его несанкционированной модификации при хранении, однако его использование предполагает невозможность обновления, поэтому в данном случае должен быть тщательно оценен риск обнаружения ошибок и/или уязвимостей в процессе эксплуатации аппаратно-программной платформы.
В свою очередь, изменяемое программное обеспечение может быть обновлено в течение жизненного цикла аппаратно-программной платформы, что позволяет, в числе прочего, исправлять ошибки и устранять уязвимости, обнаруживаемые на этапе ее эксплуатации. При этом, во избежание несанкционированных изменений такого программного обеспечения (которые могут привести, в частности, к внедрению вредоносного кода) необходимо контролировать целостность и аутентичность устанавливаемых обновлений программного обеспечения.
С этой целью могут быть применены криптографические механизмы цифровой подписи, функционирующие (с рядом упрощений) следующим образом:
Возможны варианты, когда при разработке аппаратно-программной платформы используются заимствованные компоненты и корень доверия и компонент с обновляемым программным обеспечением разработаны разными организациями. В этом случае может быть сформирована цепочка сертификатов открытых ключей, где производителю корня доверия принадлежит закрытый ключ, соответствующий корневому сертификату. Тогда открытый ключ производителя компонентаможет быть подписан закрытым ключом производителя корня доверия, а в корень доверия записывается корневой сертификат, что позволяет организовать проверку цифровой подписи обновлений программного обеспечения аналогичным образом.
Для реализации контроля целостности и аутентичности обновлений программного обеспечения описанным выше способом в корне доверия аппаратно-программной платформы должны быть реализованы алгоритмы хеширования и проверки цифровой подписи, а также должен быть размещен открытый ключ для проверки образов обновлений или сертификат открытого ключа для проверки соответствующей цепочки сертификатов.
Заключение
Криптографические механизмы, необходимые для обеспечения безопасности аппаратно-программных платформ и средств вычислительной техники в целом, могут быть реализованы в аппаратном (аппаратно-программном) корне доверия.
Реализация корня доверия в соответствии с требованиями по обеспечению его безопасности позволит применять реализованные в нем криптографические механизмы в различных сценариях, примерами которых является доверенная загрузка средств вычислительной техники и обновление встроенного программного обеспечения с контролем его целостности и аутентичности.
Список рекомендуемой литературы
Наиболее информативными документами по корням доверия можно считать следующие спецификации международных технологических сообществ:
В специальной публикации NISTSP 800-193 Platform Firmware Resiliency Guidelines («Рекомендации по отказоустойчивости встроенного программного обеспечения платформы») даны подробные рекомендации по применению корней доверия и их криптографических возможностей для решения следующих задач обеспечения отказоустойчивости платформы:
Среди русскоязычных публикаций можно отметить детальный обзор требований к корням доверия, а также ряда их возможных реализаций и сценариев применения, сделанный Андреем Самоделовым на конференции «РусКрипто’26»: «Корни доверия. Требования, архитектура, реализация».
В Техническом комитете по стандартизации №362, в числе прочих работ, ведется разработка комплекса национальных стандартов ГОСТ Р «Защита информации. Доверенный компонент безопасности», в которых будут установлены требования к корням доверия и их реализациям в виде доверенных компонентов безопасности.
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных
Отправляя данную форму вы соглашаетесь с политикой конфиденциальности персональных данных