RU2808198C1 - Method of trusted device boot with ability to certify different boot stages by several independent key owners - Google Patents

Method of trusted device boot with ability to certify different boot stages by several independent key owners Download PDF

Info

Publication number
RU2808198C1
RU2808198C1 RU2023111170A RU2023111170A RU2808198C1 RU 2808198 C1 RU2808198 C1 RU 2808198C1 RU 2023111170 A RU2023111170 A RU 2023111170A RU 2023111170 A RU2023111170 A RU 2023111170A RU 2808198 C1 RU2808198 C1 RU 2808198C1
Authority
RU
Russia
Prior art keywords
key
stage
keys
bootloader
image
Prior art date
Application number
RU2023111170A
Other languages
Russian (ru)
Inventor
Роман Тимурович Аляутдин
Алексей Владимирович Караваев
Константин Александрович Карасев
Антон Викторович Рыбаков
Андрей Владимирович Сыренков
Евгений Анатольевич Тодорук
Original Assignee
Общество с ограниченной ответственностью "Открытая мобильная платформа"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Открытая мобильная платформа" filed Critical Общество с ограниченной ответственностью "Открытая мобильная платформа"
Application granted granted Critical
Publication of RU2808198C1 publication Critical patent/RU2808198C1/en

Links

Abstract

FIELD: computing.
SUBSTANCE: invention is related to a method, a machine-readable storage medium and a system for trusted device booting with the possibility of certification of different boot stages by several independent key owners. The system contains two isolated program code execution modules located on the processor chip - an isolated security domain and at least one main processor executing boot loader code, OS image, read-only memory (ROM), code in the processor ROM, one-time programmable memory (OPM), non-volatile memory, while the boot contains N stages, in which the first stage, (N-2) intermediate stages and the last stage can be distinguished. Moreover, at each stage, keys belonging to different owners can be used for certification, where the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining type I keys of the first stage, type I keys of the intermediate and last stages can be entered in a certified container, containing an electronic signature, which is verified only upon entry; the isolated security domain and the main processor are configured to exchange data, including for working with key information: the hash sum of the key that forms the root of trust, located in one-time programmable memory (OPM) through the interaction interface. The non-volatile memory is configured to store a hierarchy of loaders, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private key of the pair is used during certification, and the public key is used when verifying certification, where public cryptographic keys can be: located in non-volatile memory (type I) or placed in the form of a digital certificate (type II); the RAM is configured to load at least one bootloader in the hierarchy of bootloaders from non-volatile memory, the isolated security domain contains program code, which is accessed to check this bootloader with hardware, through the interaction interface between the isolated security domain and the processor, determining the validity of the key, which is contained in the bootloader image, while the OPM contains information about the keys, which is intended to determine the validity of the key, the bootloader is configured to transfer control to it if it is successfully verified, during which, in response to the fact that the key is valid, the image signature is verified; the image of at least one next bootloader is configured to be parsed by the previous bootloader by reading its signature and public key, the hash of this key is calculated and the presence of such a hash in the OPM is checked, in response to the fact that the hash is not found, authentication is considered failed, in response to the fact that the hash is found in the OPM, a check of whether the revocation sign of this key is set in the OPM is carried out, in response to the fact that the key is revoked, the authentication is considered failed, in response to the fact that the key is valid, the signature of the image on the public key is verified, in case where the signature verification fails, the authentication is considered failed, the at least the next verified bootloader from the bootloader hierarchy is configured to transfer control to it in response to the fact that the signature verification is completed successful, in response to the authentication failing, the boot process is terminated; the previous bootloader is configured to verify at least each next bootloader in the bootloader hierarchy using the active intermediate stage key; the OS image contains a digital certificate generated signed by the last stage key, where the last stage key is signed by the active key of the intermediate stage; the OS image is verifiable using a digital certificate and an active middle stage key.
EFFECT: provision of secure booting of the device from the boot loader to the operating system (OS), protected from unauthorized actions.
16 cl, 8 dwg

Description

Область примененияApplication area

[1] Группа изобретений относится к технологиям предоставления доступа к ресурсам вычислительных машин, а более конкретно к технологиям доверенной загрузки вычислительных машин с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей (криптографических ключей). Данные технологии предназначены, в том числе, для защиты вычислительных машин от их несанкционированной загрузки и от получения возможности несанкционированного доступа к конфиденциальной информации, хранящейся внутри вычислительных машин.[1] The group of inventions relates to technologies for providing access to computer resources, and more specifically to technologies for trusted loading of computers with a mechanism for dividing the functions of verifying loading stages between several owners of keys (cryptographic keys). These technologies are intended, among other things, to protect computers from unauthorized loading and from gaining unauthorized access to confidential information stored inside computers.

[2] Одной из угроз, направленных на нарушение конфиденциальности информации, хранящейся в вычислительной машине, является угроза, связанная с получением несанкционированного доступа к таким машинам и к пользовательским данным внутри них. Эффективной мерой борьбы с данной угрозой является доверенная загрузка вычислительных машин, т.е. загрузка вычислительных машин после успешного проведения процедур аутентификации вычислительной машины и контроля целостности файлов вычислительной машины.[2] One of the threats aimed at violating the confidentiality of information stored in a computer is the threat associated with gaining unauthorized access to such machines and to user data inside them. An effective measure to combat this threat is trusted loading of computers, i.e. loading computers after successful computer authentication procedures and monitoring the integrity of computer files.

[3] Доверенная загрузка устройства - процесс, удостоверяющий что от момента подачи питания до старта операционной системы (ОС) весь исполняемый на устройстве программный код верифицируется, в результате чего принимается решение о его исполнении на устройстве.[3] Trusted device boot is a process that certifies that from the moment power is supplied to the start of the operating system (OS), all program code executed on the device is verified, as a result of which a decision is made about its execution on the device.

[4] Исполняемый программный код разбит на несколько частей, которые хранятся в образах, снабженными электронными подписями.[4] The executable program code is divided into several parts, which are stored in images equipped with electronic signatures.

[5] Аппаратные возможности современных систем на кристалле (SoC) позволяют организовать доверенную загрузку, однако программно-алгоритмические схемы загрузки не подразумевают гибкости в разделении полномочий управления составом исполняемых компонент разных этапов загрузки в условиях, когда поставщик аппаратной платформы, загрузчика, операционной системы и эксплуатант конечного программно-аппаратного решения являются разными организациями. Данное изобретение предлагает подход для решения этой проблемы.[5] The hardware capabilities of modern systems on a chip (SoC) make it possible to organize a trusted boot, however, software-algorithmic boot schemes do not imply flexibility in the division of powers to manage the composition of executable components at different boot stages in conditions where the supplier of the hardware platform, boot loader, operating system and operator the final software and hardware solution are different organizations. The present invention provides an approach to solve this problem.

[6] Процесс загрузки представляет собой последовательное исполнение программных компонентов, выполняющих инициализацию устройства. Каждый участник процесса заверяет код в его зоне ответственности, например заказчик конечного решения заверяет код первичного загрузчика, производитель материнской платы заверяет код BIOS, производитель операционной системы заверяет ядро ОС.[6] The boot process is the sequential execution of software components that initialize the device. Each participant in the process certifies the code in his area of responsibility, for example, the customer of the final solution certifies the primary boot loader code, the motherboard manufacturer certifies the BIOS code, the operating system manufacturer certifies the OS kernel.

[7] Этапом загрузки является загрузка исполняемого кода, находящегося в зоне ответственности участника процесса.[7] The loading stage is the loading of executable code that is in the area of responsibility of the process participant.

Уровень техникиState of the art

[8] Из уровня техники известны технологии доверенной загрузки вычислительной машины.[8] Technologies for trusted loading of a computer are known from the prior art.

[9] Из заявки US 2017180139 А1, опубл. 22.06.2017, известны технологии, раскрывающие отзыв ключа. Система отзыва ключа может содержать процессор, встроенный контроллер, энергонезависимую память, в которой хранится элемент данных авторизации ключа подписи системной инструкции, при этом элемент данных включает в себя ключ подписи системной инструкции, номер ключа подписи и подпись. Встроенный контроллер может включать в себя множество ключей для проверки элемента данных, а также одноразовую программируемую (OTP) память и ключ из множества ключей, который может быть отозван с использованием памяти OTP, при этом отзыв ключа постоянно предотвращает встроенную память, контроллер от использования ключа.[9] From application US 2017180139 A1, publ. 06/22/2017, technologies that reveal key revocation are known. The key revocation system may comprise a processor, an embedded controller, a non-volatile memory that stores a system instruction signature key authorization data element, the data element including a system instruction signature key, a signature key number, and a signature. The on-chip controller may include a plurality of keys for validating a data element, as well as a one-time programmable (OTP) memory and a key of the multi-keys that can be revoked using the OTP memory, wherein revocation of the key permanently prevents the on-chip memory, controller from using the key.

[10] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.[10] The main disadvantages of the proposed technology are the lack of flexibility of the system and the impossibility of dividing responsibilities between different key owners.

[11] Из заявки ЕР 2854066 А1, опубл. 01.04.2015, известна система обработки с концепцией управления доступом блока обработки системы обработки к программно-аппаратному коду. Предлагается идентифицировать действительный ключ, хранящийся в первой области памяти, на основе данных проверки второй области памяти, причем данные проверки указывают, является ли ключ действительным или нет. Код микропрограммы обрабатывается в соответствии с заданным алгоритмом проверки, чтобы вычислить проверочное значение для кода микропрограммы. Проверочное значение и действительный ключ анализируются, чтобы определить, можно ли доверять коду прошивки. Доступ блока обработки к коду встроенного программного обеспечения управляется на основании того, определен ли код встроенного программного обеспечения как доверенный или нет.[11] From application EP 2854066 A1, publ. 04/01/2015, a processing system with the concept of controlling access of the processing unit of the processing system to the software and hardware code is known. It is proposed to identify a valid key stored in a first memory area based on verification data of a second memory area, wherein the verification data indicates whether the key is valid or not. The firmware code is processed according to a specified verification algorithm to calculate a verification value for the firmware code. The verification value and the actual key are analyzed to determine whether the firmware code can be trusted. The processing unit's access to the firmware code is controlled based on whether the firmware code is determined to be trusted or not.

[12] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.[12] The main disadvantages of the proposed technology are the lack of flexibility of the system and the impossibility of dividing responsibilities between different key owners.

[13] В заявке US 2009259854 А1, опубл. 15.10.2009, раскрыта технология защищенной цепочки доверия. При выполнении безопасного загрузочного кода в режиме безопасной загрузки менее безопасный загрузочный код может быть аутентифицирован с использованием секретного ключа. Ключ безопасности также может быть рассчитан или сгенерирован в режиме безопасной загрузки. После передачи управления аутентифицированному менее безопасному загрузочному коду по крайней мере одно приложение может быть аутентифицировано с использованием защищенного ключа. После аутентификации в менее безопасном режиме загрузки приложение может выполняться программируемой интегральной схемой. Таким образом, для программируемой интегральной схемы может быть реализована безопасная цепочка доверия.[13] In application US 2009259854 A1, publ. 10/15/2009, secure chain of trust technology disclosed. When executing secure boot code in secure boot mode, the less secure boot code can be authenticated using a private key. The security key can also be calculated or generated in secure boot mode. After control is transferred to the authenticated, less secure boot code, at least one application can be authenticated using the secure key. Once authenticated in a less secure boot mode, the application can be executed by the programmable integrated circuit. In this way, a secure chain of trust can be implemented for the programmable integrated circuit.

[14] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.[14] The main disadvantages of the claimed technology are the lack of flexibility of the system and the impossibility of dividing responsibilities between different key owners.

[15] В заявке JP 2013524385 А, опубл. 17.06.2013, раскрыта технология проверки целостности сетевого устройства. Сетевое устройство, содержащее защищенный аппаратный модуль, может получить корневой ключ. Защищенный аппаратный модуль также может принимать первое измерение кода. Защищенный аппаратный модуль может предоставлять первый ключ на основе корневого ключа и первого измерения кода. Защищенный аппаратный модуль может принимать второе измерение кода и предоставлять второй ключ на основе первого ключа и второго измерения кода. Выпуск ключей на основе измерений кода может обеспечить поэтапную аутентификацию.[15] In application JP 2013524385 A, publ. 06/17/2013, technology for checking the integrity of a network device is disclosed. The network device containing the protected hardware module can obtain the root key. The secure hardware module can also receive the first code dimension. The secure hardware module may provide a first key based on the root key and the first code dimension. The secure hardware module may receive the second code dimension and provide a second key based on the first key and the second code dimension. Issuing keys based on code measurements can provide step-by-step authentication.

[16] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.[16] The main disadvantages of the claimed technology are the lack of flexibility of the system and the impossibility of dividing responsibilities between different key owners.

[17] Предложенная технология направлена на устранение недостатков предшествующего уровня техники.[17] The proposed technology is aimed at eliminating the shortcomings of the prior art.

Раскрытие изобретенияDisclosure of the Invention

[18] Основными отличительными особенностями настоящей технологии, являются:[18] The main distinctive features of this technology are:

a. разделение ответственности каждого производителя за выпущенный им программный компонент (загрузчики всех уровней и ОС), устанавливаемый на устройство;a. division of responsibility of each manufacturer for the software component released by it (bootloaders of all levels and OS) installed on the device;

b. использование 2-х видов криптографических ключей,b. use of 2 types of cryptographic keys,

c. при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов,c. when a cryptographic key is entered into a stage, it becomes the root of trust for this and subsequent stages,

d. при внесении криптографического ключа контейнер заверяется либо активным криптографическим ключом текущего этапа, либо активным криптографическим ключом предыдущего этапа, если криптографических ключей текущего этапа еще не вносилось,d. when a cryptographic key is entered, the container is verified either with the active cryptographic key of the current stage, or with the active cryptographic key of the previous stage, if cryptographic keys of the current stage have not yet been entered,

e. криптографические ключи типа II поставляются в цифровом сертификате, который заверен криптографическим ключом типа I или II предыдущего уровня,e. Type II cryptographic keys are supplied in a digital certificate, which is certified by a Type I or II cryptographic key of the previous level,

f. программный код загрузчиков каждого этапа заверяется любым из активных криптографических ключей этого этапа.f. The program code of the loaders of each stage is certified by any of the active cryptographic keys of this stage.

[19] Предложенная технология направлена на достижение следующих технических результатов:[19] The proposed technology is aimed at achieving the following technical results:

[20] Расширение функциональных возможностей реализации доверенной загрузки устройства от стартового загрузчика до образа ОС с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, обеспечение возможности разделения ответственности между разными владельцами ключей.[20] Expanding the functionality of implementing trusted device boot from the boot loader to the OS image with a mechanism for dividing the functions of certifying boot stages between several owners of cryptographic keys, ensuring the possibility of dividing responsibilities between different key owners.

[21] Благодаря такому механизму устанавливается ответственность (отсутствие изъянов/недостатков/закладок/недекларируемых возможностей) каждого производителя за выпущенный им программный компонент, в том числе загрузчики всех уровней и образы ОС, устанавливаемый на устройство и снимается ответственность с участников производства устройства, не владеющих соответствующими компонентами.[21] Thanks to this mechanism, responsibility is established (absence of flaws/deficiencies/bookmarks/undeclared capabilities) of each manufacturer for the software component released by him, including bootloaders of all levels and OS images installed on the device, and responsibility is removed from participants in the production of the device who do not own relevant components.

[22] Обеспечение доверенной загрузки всех используемых программных компонентов (загрузчиков всех уровней и образов ОС), защищенных от несанкционированных действий: загрузка, несанкционированный доступ к защищаемой информации, хранящейся внутри устройства.[22] Ensuring trusted loading of all used software components (loaders of all levels and OS images), protected from unauthorized actions: downloading, unauthorized access to protected information stored inside the device.

[23] Обеспечение подлинности образа ОС за счет подписания образа ОС криптографическим ключом безопасности, заверенным активным криптографическим ключом промежуточного этапа заверения, формируя тем самым цифровой сертификат, который сопровождает образ при загрузке.[23] Ensuring the authenticity of the OS image by signing the OS image with a cryptographic security key certified by the active cryptographic key of the intermediate stage of verification, thereby generating a digital certificate that accompanies the image when booted.

[24] Указанные технические результаты достигаются за счет предложенного способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей,[24] The specified technical results are achieved through the proposed method of trusted device loading with a mechanism for dividing the functions of verifying the loading stages between several owners of cryptographic keys,

[25] который включает следующие шаги: осуществляют загрузку электронно-вычислительной машины (ЭВМ), содержащей по крайней мере один процессор, исполняющий код загрузчиков и образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, причем загрузка состоит из N этапов, в которых можно выделить первый, (N-2) промежуточных этапов и последний этап;[25] which includes the following steps: loading an electronic computer (computer) containing at least one processor executing boot loader code and an OS image, read-only memory (ROM), code in the processor ROM, one-time programmable memory (OPM) , immutable memory, and the loading consists of N stages, in which the first, (N-2) intermediate stages and the last stage can be distinguished;

[26] формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар асимметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в изменяемой памяти в виде цифрового сертификата (тип II), причем на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;[26] form a hierarchy of loaders that are stored in non-volatile memory, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, while the private key of the pair is used during authentication, and the public key is used during authentication verification, where public cryptographic keys can be: placed in immutable memory (type I) or placed in volatile memory in the form of a digital certificate (type II), and at each stage keys belonging to different owners can be used for certification, the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining keys type I of the first stage, type I keys of the intermediate and last stages can be entered in a certified container containing an electronic signature, which is verified only upon entry;

[27] при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов;[27] when a cryptographic key is introduced into a stage, it becomes the root of trust for this and subsequent stages;

[28] загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, определяют валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,[28] load at least one bootloader in the bootloader hierarchy from non-volatile memory into RAM, check this bootloader, determine the validity of the key contained in the bootloader image, and the validity of the key is determined based on the information about the keys contained in the OPP,

[29] в ответ на то, что ключ валиден, осуществляют проверку подписи образа, в случае успешной проверки, такому загрузчику передается управление;[29] in response to the fact that the key is valid, they check the signature of the image; if the verification is successful, control is transferred to such a loader;

[30] осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,[30] parse the image of the next at least one bootloader, using the previous bootloader, by reading its signature and public key, calculate the hash of this key and check the presence of such a hash in the OPP,

[31] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,[31] in response to the hash not being found, the authentication fails.

[32] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,[32] in response to the fact that the hash is found in the OPP, they check whether the revocation flag of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered to have failed,

[33] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,[33] in response to the fact that the key is in circulation, the signature of the image on the public key is verified; if the signature verification fails, the authentication is considered failed,

[34] в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,[34] in response to the fact that signature verification has completed successfully, control is transferred to the verified at least the next loader in the loader hierarchy,

[35] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;[35] in response to the authentication failure, the boot process is terminated;

[36] верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;[36] verify each at least subsequent loader in the loader hierarchy with the previous loader using the active key of the intermediate stage;

[37] выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;[37] release an OS image signed with the last-stage key, where the last-stage key is signed by the active middle-stage key, generating a digital certificate that accompanies the OS image;

[38] проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.[38] verify the OS image using a digital certificate and an active middleware key.

[39] В соответствии с первым вариантом реализации изобретения, первый ключ первого этапа может быть единственным корнем доверия для этого и последующих этапов;[39] According to a first embodiment of the invention, the first key of the first stage may be the only root of trust for this and subsequent stages;

[40] для каждого этапа может быть свой криптографический ключ, который является корнем доверия для этого этапа;[40] each stage can have its own cryptographic key, which is the root of trust for this stage;

[41] проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами;[41] verification of the bootloader in the bootloader hierarchy can be carried out by hardware and software;

[42] ключи могут записываться в сжатом или полном представлении.[42] keys can be written in a compressed or full representation.

[43] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие - активные или выведенные из обращения - неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.[43] In another embodiment, type I cryptographic keys can be in two states: active - active or retired - inactive, while the transition between states is possible only from the active to inactive state.

[44] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.[44] In yet another embodiment, Type II cryptographic keys are provided in a digital certificate that is authenticated by a Type I or II key of the previous level, but Type II keys do not have the ability to authenticate keys at the same level as themselves.

[45] Указанные технические результаты достигаются также за счет предложенной системы доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей,[45] The specified technical results are also achieved due to the proposed trusted device boot system with the ability to certify different boot stages by several independent key owners,

[46] содержащая два изолированных модуля исполнения программного кода, размещенные на кристалле процессора - изолированный домен безопасности и по крайней мере один основной процессор, исполняющий код загрузчиков, образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, при этом загрузка содержит N этапов: на которых можно выделить первый, (N-2) - промежуточных этапов и последний этап;[46] containing two isolated program code execution modules located on the processor chip - an isolated security domain and at least one main processor executing bootloader code, an OS image, read-only memory (ROM), code in the processor ROM, one-time programmable memory ( OPP), immutable memory, while the loading contains N stages: in which we can distinguish the first, (N-2) intermediate stages and the last stage;

[47] при этом на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,[47] in this case, at each stage, keys belonging to different owners can be used for certification,

[48] где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;[48] where the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining type I keys of the first stage, the type I keys of the intermediate and last stages can be entered in a certified container containing an electronic signature that is verified only when inserted;

[49] изолированный домен безопасности и основной процессор выполнены с возможностью обмена данными, в том числе для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП), посредством интерфейса взаимодействия;[49] the isolated security domain and the main processor are configured to exchange data, including for working with key information: the hash sum of the key that forms the root of trust, located in once-programmable memory (OPM), through an interaction interface;

[50] энергонезависимая память выполнена с возможностью хранения иерархии загрузчиков, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);[50] the non-volatile memory is configured to store a hierarchy of loaders, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private key of the pair is used during certification, and the public key is used during verification verification, where public cryptographic keys can be: placed in immutable memory (type I) or hosted in the form of a digital certificate (type II);

[51] оперативная память выполнена с возможностью загрузки, по меньшей мере, одного загрузчика в иерархии загрузчиков из энергонезависимой памяти, изолированный домен безопасности содержит программный код, обращаясь к которому осуществляют проверку этого загрузчика аппаратными средствами, через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом в ОПП содержится информация о ключах, которая предназначена для определения валидности ключа,[51] the RAM is configured to load at least one bootloader in the hierarchy of bootloaders from non-volatile memory, the isolated security domain contains program code, which is accessed to check this bootloader with hardware, through the interaction interface between the isolated security domain and the processor, determining the validity of the key contained in the bootloader image, while the OPP contains information about the keys, which is intended to determine the validity of the key,

[52] загрузчик выполнен с возможностью передачи ему управления, в случае его успешной проверки, в ходе которой, в ответ на то, что ключ валиден, осуществляется проверка подписи образа;[52] the bootloader is configured to transfer control to it in case of successful verification, during which, in response to the fact that the key is valid, the image signature is checked;

[53] образ следующего, по меньшей мере, одного загрузчика выполнен с возможностью разбора посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,[53] the image of the next at least one loader is configured to be parsed using the previous loader by reading its signature and public key, the hash of this key is calculated and the presence of such a hash in the OPP is checked,

[54] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,[54] in response to the hash not being found, the authentication fails.

[55] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,[55] in response to the fact that the hash is found in the OPP, they check whether the revocation flag of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered to have failed,

[56] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,[56] in response to the fact that the key is in circulation, the image signature on the public key is verified; if the signature verification fails, the authentication is considered failed,

[57] проверенный, по меньшей мере, следующий загрузчик из иерархии загрузчиков, выполнен с возможностью передачи ему управления, в ответ на то, что проверка подписи завершилась успешно,[57] the verified at least the next bootloader from the bootloader hierarchy is configured to transfer control to it in response to the fact that the signature verification has completed successfully,

[58] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;[58] in response to the authentication failure, the boot process is terminated;

[59] предыдущий загрузчик выполнен с возможностью верификации каждого, по меньшей мере, следующего загрузчика в иерархии загрузчиков с использованием активного ключа промежуточного этапа;[59] the previous bootloader is configured to verify each at least the next bootloader in the bootloader hierarchy using the active intermediate stage key;

[60] образ ОС содержит цифровой сертификат, сформированный, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа;[60] the OS image contains a digital certificate generated signed by the last stage key, where the last stage key is signed by the active intermediate stage key;

[61] образ ОС, выполнен с возможностью проверки, используя цифровой сертификат и активный ключ промежуточного этапа.[61] The OS image is verifiable using a digital certificate and an active middle stage key.

[62] В соответствии с еще одним вариантом реализации изобретения, проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами;[62] In accordance with another embodiment of the invention, verification of the bootloader in the bootloader hierarchy may be performed by hardware and software;

[63] ключи могут записываться в сжатом или полном представлении[63] keys can be written in compressed or full representation

[64] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие - активные или выведенные из обращения - неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.[64] In another embodiment, type I cryptographic keys can be in two states: active - active or retired - inactive, while the transition between states is possible only from the active to inactive state.

[65] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.[65] In yet another embodiment, Type II cryptographic keys are provided in a digital certificate that is certified by a Type I or II key of the previous level, but Type II keys do not have the ability to validate keys at the same level as themselves.

[66] Указанные технические результаты достигаются также за счет постоянного машиночитаемого носителя данных, содержащий машиночитаемые инструкции, выполняемые процессором компьютера и предназначенные для исполнения способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей,[66] The specified technical results are also achieved through a permanent machine-readable storage medium containing machine-readable instructions executed by a computer processor and intended for executing a method of trusted booting of a device with a mechanism for dividing the functions of certifying boot stages between several key owners,

[67] в котором на кристалле процессора размещены два изолированных модуля исполнения программного кода изолированный домен безопасности и основной процессор, исполняющий код загрузчиков, образ ОС, однократно программируемая память (ОПП), неизменяемая память, при этом загрузка содержит N этапов, содержащий этапы, на которых:[67] in which two isolated program code execution modules are located on the processor chip, an isolated security domain and a main processor executing bootloader code, an OS image, one-time programmable memory (OPM), non-volatile memory, and the boot contains N stages, containing stages on of which:

[68] можно выделить первый, (N-2) - промежуточных этапов и последний этап;[68] we can distinguish the first, (N-2) - intermediate stages and the last stage;

[69] на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,[69] at each stage, keys belonging to different owners can be used for authentication,

[70] где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;[70] where the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining type I keys of the first stage, the type I keys of the intermediate and last stages can be entered in a certified container containing an electronic signature that is verified only when inserted;

[71] обращаются с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП);[71] use the main processor to access an isolated security domain through an interaction interface to work with key information: the hash sum of the key, which forms the root of trust, located in once-programmable memory (OPM);

[72] формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);[72] form a hierarchy of loaders that are stored in non-volatile memory, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private key of the pair is used during authentication, and the public key is used during authentication verification, where public cryptographic keys can be: placed in immutable memory (Type I) or hosted in the form of a digital certificate (Type II);

[73] загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика аппаратными средствами, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,[73] load at least one bootloader in the hierarchy of bootloaders from non-volatile memory into RAM, check this bootloader with hardware, accessing the program code of the isolated security domain through the interaction interface between the isolated security domain and the processor, determining the validity of the key that is contained in the bootloader image, while the validity of the key is determined based on information about the keys contained in the OPP,

[74] в ответ на то, что ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки, такому загрузчику передается управление;[74] in response to the fact that the key is valid, the image signature is checked; if the verification is successful, control is transferred to such a loader;

[75] осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,[75] parse the image of the next at least one bootloader, using the previous bootloader, by reading its signature and public key, calculate the hash of this key and check the presence of such a hash in the OPP,

[76] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,[76] in response to the hash not being found, the authentication fails.

[77] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,[77] in response to the fact that the hash is found in the OPP, they check whether the revocation flag of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered to have failed,

[78] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,[78] in response to the fact that the key is in circulation, the image signature on the public key is verified; if the signature verification fails, the authentication is considered failed,

[79] в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,[79] in response to the fact that signature verification is successful, control is transferred to the verified at least the next loader in the loader hierarchy,

[80] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;[80] in response to the authentication failure, the boot process is terminated;

[81] верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;[81] verify each at least subsequent bootloader in the bootloader hierarchy with the previous bootloader using the active key of the intermediate stage;

[82] выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;[82] release an OS image signed with a last-stage key, where the last-stage key is signed by an active mid-stage key, generating a digital certificate that accompanies the OS image;

[83] проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.[83] verify the OS image using a digital certificate and an active middleware key.

[84] В соответствии с еще одним вариантом реализации изобретения, криптографические ключи могут записываться в сжатом или полном представлении.[84] In accordance with yet another embodiment of the invention, cryptographic keys may be recorded in a compressed or full representation.

[85] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие активные или выведенные из обращения неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.[85] In another embodiment, type I cryptographic keys can be in two states: active active or retired inactive, and the transition between states is possible only from the active to inactive state.

[86] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.[86] In yet another embodiment, Type II cryptographic keys are provided in a digital certificate that is authenticated by a Type I or II key of the previous level, but Type II keys do not have the ability to authenticate keys at the same level as themselves.

Краткое описание чертежейBrief description of drawings

[87] На фиг. 1 представлена схема организации способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей.[87] In FIG. Figure 1 shows a diagram of the organization of a method for trusted loading of a device with a mechanism for dividing the functions of verifying the loading stages between several owners of cryptographic keys.

[88] На фиг. 2 представлен примерный вариант реализации системы доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей.[88] In FIG. Figure 2 shows an example implementation of a system for trusted device booting with a mechanism for dividing the functions of verifying boot stages between several owners of cryptographic keys.

[89] На фиг. 3 представлен примерный вариант реализации процедуры проверки подлинности образа ОС.[89] In FIG. Figure 3 shows an example implementation of the OS image authentication procedure.

[90] На фиг. 4 представлен примерный вариант реализации процедуры проверки подлинности образа ОС с тремя владельцами криптографических ключей.[90] In FIG. Figure 4 shows an example implementation of the procedure for verifying the authenticity of an OS image with three owners of cryptographic keys.

[91] На фиг. 5 представлен примерный вариант реализации этапа внесения хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора.[91] In FIG. Figure 5 shows an example implementation of the stage of entering the hash amount of the primary cryptographic key of the root of trust for the program code of the main processor.

[92] На фиг. 6 представлен примерный вариант реализации этапа внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора.[92] In FIG. 6 shows an example implementation of the stage of entering hash sums of additional cryptographic keys of the root of trust for the program code of the main processor.

[93] На фиг. 7 представлен примерный вариант реализации этапа выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора.[93] In FIG. 7 shows an example implementation of the stage of removing the hash sum of the cryptographic key of the root of trust for the program code of the main processor from circulation.

[94] На фиг. 8 представлен примерный вариант реализации компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.[94] In FIG. 8 illustrates an exemplary implementation of a computer system in accordance with some embodiments of the present invention.

Осуществление изобретенияCarrying out the invention

[95] Далее будут описаны заявляемые технологии доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, с приведением примеров реализации предложенной технологии.[95] Next, the proposed technologies for trusted device loading with a mechanism for dividing the functions of verifying loading stages between several owners of cryptographic keys will be described, with examples of implementation of the proposed technology.

[96] Предложенная технология доверенной загрузки подходит для любых устройств, являющихся вычислительными машинами (ВС), например, на базе процессоров с архитектурой ARMv8, и операционных систем на базе ядра Linux.[96] The proposed trusted boot technology is suitable for any devices that are computers, for example, based on processors with ARMv8 architecture, and operating systems based on the Linux kernel.

[97] Предложенная технология предназначена для обеспечения безопасной загрузки устройства, путем верификации последовательности загружаемых компонентов, начиная от момента подачи питания на процессор. Процесс безопасной загрузки обеспечивается в том числе кодом в ПЗУ процессора.[97] The proposed technology is designed to ensure safe booting of the device by verifying the sequence of loaded components, starting from the moment power is supplied to the processor. The secure boot process is ensured, among other things, by code in the processor ROM.

[98] На фиг. 1 представлены основные этапы способа 200 доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографического ключа.[98] In FIG. 1 presents the main stages of a method 200 for trusted device boot with a mechanism for dividing the functions of verifying the boot stages between several owners of the cryptographic key.

[99] Данный способ реализуется с помощью системы 100 доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, представленной на фиг. 2, которая, в свою очередь, входит в состав компьютерной системы, представленной на фиг. 8. Кроме того, указанный способ доверенной загрузки также может быть реализован с помощью постоянного машиночитаемого носителя данных 410, также представленного на фиг. 8.[99] This method is implemented using a trusted device boot system 100 with a mechanism for dividing the functions of verifying boot steps between multiple cryptographic key owners, shown in FIG. 2, which in turn is part of the computer system shown in FIG. 8. Moreover, this trusted boot method can also be implemented using a non-transitory computer readable storage medium 410, also shown in FIG. 8.

[100] Для реализации способа доверенной загрузки устройства достаточно наличия однократно программируемой памяти (ОПП). Эта память (One-Time Programmable ROM - OTPROM) программируется пользователем и в исходном состоянии содержит ячейки с единичными битами. Программированию подлежат только те ячейки памяти, содержимое которых должно принять значение 0. Для этого на ячейку памяти подают последовательность импульсов повышенного напряжения.[100] To implement the method of trusted booting of a device, it is sufficient to have a one-time programmable memory (OPM). This memory (One-Time Programmable ROM - OTPROM) is user-programmable and in its initial state contains cells with one bits. Only those memory cells whose contents should take on the value 0 can be programmed. To do this, a sequence of high-voltage pulses is applied to the memory cell.

[101] Уровень напряжения, число импульсов и их временные параметры должны строго соответствовать техническим условиям. После записи нуля восстановить единичное значение невозможно. По этой причине память получила название однократно программируемых ПЗУ. Однако следует указать на возможность до программирования (не тронутых) ячеек с единичными битами.[101] The voltage level, the number of pulses and their timing parameters must strictly comply with the technical specifications. Once a zero is written, it is impossible to restore the single value. For this reason, the memory is called one-time programmable ROM. However, it should be pointed out that it is possible to program (untouched) cells with one bits before programming them.

[102] Суть предложенной технологии заключается в организации ключевой схемы доверенной загрузки с независимой сменой криптографических ключей без необходимости заверения цепочки доверия криптографическими ключами предыдущих этапов загрузки, которая предоставляет возможность разделения ответственности за заверение этапов загрузки между несколькими владельцами криптографических ключей, что обеспечивается следующим алгоритмом.[102] The essence of the proposed technology is to organize a key trusted download scheme with independent change of cryptographic keys without the need to certify the chain of trust with cryptographic keys of previous download stages, which provides the ability to share responsibility for certifying download stages between several owners of cryptographic keys, which is ensured by the following algorithm.

[103] Способ 200 доверенной загрузки содержит основные этапы 201-208, показанные в блок-схеме на фиг. 1.[103] The trusted boot method 200 comprises major steps 201-208 shown in the flowchart of FIG. 1.

[104] На этапе 201 осуществляется обращение с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой (хэшем) криптографического ключа, формирующей корень доверия, размещенной в ОПП.[104] At step 201, the main processor accesses the isolated security domain through an interaction interface for working with key information: a hash of the cryptographic key that forms the root of trust, located in the CPR.

[105] На этапе 202 формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый криптографический ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II).[105] At step 202, a hierarchy of loaders is formed, which are stored in non-volatile memory, where each load stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private cryptographic key of the pair is used during authentication, and the public one is used during authentication verification, where the public cryptographic keys can be: located in non-volatile memory (type I) or located in the form of a digital certificate (type II).

[106] В некоторых вариантах осуществления, в качестве примера компонента неизменяемой памяти может быть использована однократно программируемая память (ОПП).[106] In some embodiments, an example of a non-volatile memory component may be one-time programmable memory (OPM).

[107] Процесс загрузки разделен на N этапов, среди которых можно выделить первый, (N-2) промежуточных и последний этапы. Для описания деталей механизмов схемы достаточно рассмотреть схему с одним промежуточным этапом.[107] The loading process is divided into N stages, among which we can distinguish the first, (N-2) intermediate and last stages. To describe the details of the circuit mechanisms, it is enough to consider a circuit with one intermediate stage.

[108] Каждому этапу загрузки соответствует один или несколько криптографических ключей.[108] Each boot step is associated with one or more cryptographic keys.

[109] Криптографические ключи могут быть двух типов:[109] Cryptographic keys can be of two types:

i. (тип I) размещенные в неизменяемой памяти (в т.ч. в виде хэша) иi. (type I) located in immutable memory (including in the form of a hash) and

ii. (тип II) размещенные в изменяемой памяти распространяемые в виде цифрового сертификата вместе с заверенным образом исполняемого кода.ii. (type II) located in variable memory, distributed in the form of a digital certificate along with a certified image of the executable code.

[110] Криптографические ключи типа I могут быть в двух состояниях: действующие (активные) или выведенные из обращения (неактивные). Переход между состояниями возможен только из состояния активного в неактивное.[110] Type I cryptographic keys can be in two states: valid (active) or retired (inactive). Transition between states is only possible from active to inactive states.

[111] Первый криптографический ключ первого этапа вносится исключительно доверенным образом в неизменяемую память.[111] The first cryptographic key of the first stage is stored exclusively in a trusted manner in immutable memory.

[112] При этом, остальные криптографические ключи типа I первого этапа, криптографические ключи типа I промежуточного и последнего этапов могут быть внесены аналогично внесению первого криптографического ключа, либо в заверенном контейнере.[112] At the same time, the remaining cryptographic keys of type I of the first stage, cryptographic keys of type I of the intermediate and last stages can be entered similarly to the introduction of the first cryptographic key, or in a certified container.

[113] В случае использования криптографических ключей с типом I и типом II: удлинится цепочка проверки криптографических ключей: тип I заверят тип II, далее тип II заверяет загрузчик.[113] In the case of using cryptographic keys with type I and type II: the chain of verification of cryptographic keys will be lengthened: type I is certified by type II, then type II is certified by the loader.

[114] На этапе 203 загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность криптографического ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о криптографических ключах, содержащейся в ОПП.[114] At step 203, at least one bootloader in the hierarchy of bootloaders is loaded from non-volatile memory into RAM, this bootloader is verified by accessing the isolated security domain program code through the interface between the isolated security domain and the processor, determining the validity of the cryptographic key, which is contained in the bootloader image, and the validity of the key is determined based on information about the cryptographic keys contained in the OPP.

[115] Блок-схема варианта реализации процедуры проверки подлинности образа ОС показана на фиг. 3.[115] A block diagram of an embodiment of an OS image authentication procedure is shown in FIG. 3.

[116] Для внесения криптографического ключа, контейнер заверяется либо активным криптографическим ключом текущего этапа, либо активным криптографическим ключом предыдущего этапа, если криптографических ключей текущего этапа еще не вносилось. Первый внесенный криптографический ключ каждого этапа является корнем доверия для этого этапа (эта особенность схемы позволяет создавать локальные корни доверия, обеспечивая независимость владельцев криптографических ключей разных этапов).[116] To enter a cryptographic key, the container is certified either with the active cryptographic key of the current stage, or with the active cryptographic key of the previous stage, if the cryptographic keys of the current stage have not yet been entered. The first cryptographic key of each stage entered is the root of trust for that stage (this feature of the design allows the creation of local roots of trust, ensuring the independence of the owners of cryptographic keys of different stages).

[117] Перевод криптографического ключа в неактивное состояние выполняется по заверению любым из активных криптографическим ключей этого же этапа.[117] The transfer of a cryptographic key to an inactive state is performed upon certification by any of the active cryptographic keys of the same stage.

[118] Особенностью схемы является механизм внесения криптографических ключей при помощи контейнера, содержащего электронную подпись, которая проверяется только при внесении, что позволяет экономить объем в неизменяемой памяти (в частном случае, в ОПП) и вычислительный ресурс на проверку.[118] A special feature of the scheme is the mechanism for entering cryptographic keys using a container containing an electronic signature, which is verified only when entered, which allows saving space in immutable memory (in a particular case, in the OPP) and computing resource for verification.

[119] Такая особенность позволяет экономить объем памяти, а также независимо вносить криптографические ключи каждого этапа, а также позволяет создать независимый корень доверия на каждом этапе.[119] This feature allows you to save memory space, as well as independently enter the cryptographic keys of each stage, and also allows you to create an independent root of trust at each stage.

[120] Криптографические ключи могут записываться в сжатом или полном представлении. В том случае, если позволяет объем памяти, то криптографические ключи записываются в полном представлении, а если памяти мало то в сжатом, например, в виде хэш-суммы. Данная особенность относится к открытым криптографическим ключам.[120] Cryptographic keys can be written in a compressed or full form. If the amount of memory allows, then the cryptographic keys are written in a full representation, and if there is not enough memory, then in a compressed form, for example, in the form of a hash sum. This feature applies to public cryptographic keys.

[121] Криптографические ключи типа II поставляются в цифровом сертификате, который заверен криптографическим ключом типа I или II предыдущего уровня.[121] Type II cryptographic keys are supplied in a digital certificate that is certified by a previous level Type I or II cryptographic key.

[122] Криптографические ключи типа II не имеют возможности заверять криптографические ключи того же уровня, на котором находятся сами.[122] Type II cryptographic keys do not have the ability to authenticate cryptographic keys at the same level as themselves.

[123] Программный код загрузчиков каждого этапа заверяется любым из активных криптографических ключей этого этапа.[123] The program code of the loaders of each stage is certified by any of the active cryptographic keys of this stage.

[124] На этапе 204, в ответ на то, что криптографический ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки, такому загрузчику передается управление.[124] At step 204, in response to the fact that the cryptographic key is valid, the image signature is verified; if the verification is successful, control is transferred to such a bootloader.

[125] На этапе 205, осуществляют разбор следующего, по меньшей мере, одного образа загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш-сумму этого криптографического ключа и проверяют наличие такой хэш-суммы в ОПП.[125] At step 205, the next at least one bootloader image is parsed by the previous bootloader by reading its signature and public key, the hash sum of this cryptographic key is calculated, and the presence of such a hash sum in the OPP is checked.

[126] При этом, в ответ на то, что хэш-сумма не найдена, проверка подлинности считается не пройденной, а в ответ на то, что хэш-сумма найдена в ОПП, проверяют, отозван ли криптографический ключ. Такая проверка может включать в себя проверку установления в ОПП признака отозванности этого криптографического ключа. В ответ на то, что криптографический ключ отозван, проверка подлинности считается не пройденной.[126] In this case, in response to the fact that the hash sum is not found, the authentication is considered to be failed, and in response to the fact that the hash sum is found in the CPP, it is checked whether the cryptographic key has been revoked. Such verification may include checking whether the cryptographic key has been revoked in the CPP. In response to the fact that the cryptographic key is revoked, the authentication is considered to have failed.

[127] В ответ на то, что криптографический ключ находится в обращении, выполняется проверка подписи образа на публичном криптографическом ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной.[127] In response to the fact that the cryptographic key is in circulation, the signature of the image on the public cryptographic key is verified; if the signature verification fails, the authentication is considered to have failed.

[128] В ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается.[128] In response to the signature verification being successful, control is transferred to the verified at least the next bootloader in the bootloader hierarchy, in response to the authentication being failed, the boot process is terminated.

[129] В случае, если проверка подписи загрузчика завершилась ошибкой, то прекращается весь процесс загрузки, необходимо начинать загрузку с самого первого загрузчика.[129] If the bootloader signature check fails, the entire boot process stops and you must start booting from the very first bootloader.

[130] В данном случае, выводится сообщение об ошибке, загрузка устройства прекращается, для новой загрузки требует нажатие «reset» или вкл/выкл питания.[130] In this case, an error message is displayed, the device is stopped loading, and a new boot requires pressing “reset” or turning the power on/off.

[131] На этапе 206 верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного криптографического ключа промежуточного этапа.[131] At step 206, each at least the next loader in the loader hierarchy is verified against the previous loader using the middle stage's active cryptographic key.

[132] На этапе 207 выпускают образ ОС, подписанный криптографическим ключом последнего этапа, где криптографический ключ последнего этапа подписывается активным криптографическим ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС.[132] At step 207, an OS image signed with the last stage cryptographic key is released, where the last stage cryptographic key is signed by the active cryptographic key of the intermediate stage, generating a digital certificate that accompanies the OS image.

[133] На этапе 208 проверяют образ ОС, используя цифровой сертификат и активный криптографический ключ промежуточного этапа.[133] At step 208, the OS image is verified using the digital certificate and the active cryptographic middle stage key.

[134] При этом образ ОС заверяется в виде подписи криптографическим ключом, который имеет тип II и поставляется вместе с образом ОС, владельцем которых является владелец (производитель/поставщик) ОС.[134] In this case, the OS image is certified in the form of a signature with a cryptographic key, which is type II and is supplied along with the OS image, the owner of which is the owner (manufacturer/supplier) of the OS.

[135] На фиг. 2 показаны основные элементы, входящие в состав системы 100 доверенной загрузки устройства.[135] In FIG. 2 shows the main elements included in the trusted device boot system 100.

[136] Основные блоки, входящие в состав системы доверенной загрузки устройства: изолированный домен безопасности, основной процессор, интерфейс взаимодействия, через который изолированный домен безопасности и основной процессор обмениваются данными, в том числе, для работы с ключевой информацией: хэш-суммой криптографического ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП), посредством интерфейса взаимодействия.[136] The main blocks that make up the trusted device boot system: an isolated security domain, a main processor, an interaction interface through which the isolated security domain and the main processor exchange data, including for working with key information: the hash sum of the cryptographic key , forming the root of trust, located in once-programmable memory (OPM), through an interaction interface.

[137] Процесс доверенной загрузки начинается на изолированном домене безопасности, который реализует корень доверия, состоящий из:[137] The trusted boot process begins on an isolated security domain that implements a root of trust consisting of:

[138] - блока ОПП, содержащего криптографический ключ верификации программного кода изолированного домена безопасности и[138] - OPP block containing the cryptographic key for verifying the program code of the isolated security domain and

[139] - кода в ROM памяти изолированного домена безопасности, который проверяет программный код.[139] - code in ROM memory of an isolated security domain that checks program code.

[140] В случае успешной проверки программного кода ему передается управление.[140] If the program code is successfully verified, control is transferred to it.

[141] Программный код домена безопасности реализует функцию управления криптографическими ключами типа I, которые также располагаются в блоке ОПП.[141] The security domain software code implements the function of managing type I cryptographic keys, which are also located in the OPP block.

[142] Программный код домена безопасности располагается в энергонезависимой памяти и является первым в иерархии загрузчиков.[142] The security domain code is located in non-volatile memory and is the first in the boot loader hierarchy.

[143] Программный код домена безопасности загружает следующий загрузчик из иерархии в оперативную память и осуществляет его проверку, используя служебную информацию образа, содержащую криптографические ключи и подпись.[143] The security domain code loads the next boot loader from the hierarchy into RAM and verifies it using image service information containing cryptographic keys and a signature.

[144] Валидность криптографического ключа определяется на основе информации о криптографических ключах, содержащейся в ОПП.[144] The validity of a cryptographic key is determined based on the cryptographic key information contained in the RPP.

[145] В случае успешной проверки, управление передается основному процессору этого загрузчика.[145] If the check is successful, control is transferred to the main processor of this bootloader.

[146] Загрузчик 0 загружает следующий в иерархии загрузчик из энергонезависимой в оперативную память, после чего обращается к программному коду домена безопасности через интерфейс взаимодействия для определения валидности криптографического ключа, содержащегося в образе загрузчика.[146] Bootloader 0 loads the next bootloader in the hierarchy from non-volatile memory into RAM, and then accesses the security domain code through the interaction interface to determine the validity of the cryptographic key contained in the bootloader image.

[147] Если криптографический ключ валиден, то осуществляется проверка подписи образа. В случае успешной проверки управление передается следующему Загрузчику.[147] If the cryptographic key is valid, then the image signature is verified. If the check is successful, control is transferred to the next Loader.

Примеры осуществленияExamples of implementation

[148] Далее приведем конкретные примеры функционирования процедуры доверенной загрузки устройства.[148] Below we provide specific examples of the functioning of the trusted device boot procedure.

[149] На фиг. 4 представлен вариант реализации процедуры проверки подлинности образа ОС с тремя владельцами криптографических ключей.[149] In FIG. Figure 4 presents an implementation option for verifying the authenticity of an OS image with three owners of cryptographic keys.

[150] Вендор СВТ - выпускает устройство с корнем доверия, формирует корневой криптографический ключ (он же криптографический ключ первого этапа, SCP key) и подписывает им образ программного кода домена безопасности (SCP_Loader).[150] Vendor SVT - releases a device with a root of trust, generates a root cryptographic key (also known as the first stage cryptographic key, SCP key) and signs the security domain program code image (SCP_Loader) with it.

[151] Код в ROM-области изолированного домена безопасности верифицирует программный код домена безопасности с использованием корневого криптографического ключа.[151] The code in the isolated security domain ROM area verifies the security domain program code using the root cryptographic key.

[152] Вендор СДЗ-выпускает набор загрузчиков (AP_Blxx), формирует один или несколько криптографических ключей промежуточного этапа (vendor key 0 - vendor key 2) и подписывает им набор загрузчиков.[152] SDZ vendor releases a set of loaders (AP_Blxx), generates one or more intermediate stage cryptographic keys (vendor key 0 - vendor key 2) and signs the set of loaders with it.

[153] Первый криптографический ключ промежуточного этапа (vendor key 0) подписывается корневым криптографическим ключом (SCP key) при внесении в неизменяемую память (в частном случае, в ОПП).[153] The first cryptographic key of the intermediate stage (vendor key 0) is signed by the root cryptographic key (SCP key) when entered into immutable memory (in a particular case, into the OPP).

[154] В дальнейшем внесение последующих криптографических ключей (vendor key 1, vendor key 2) промежуточного этапа удостоверяется активным криптографическим ключом промежуточного этапа (vendor key 0 и/или vendor key 1). Аналогично удостоверяется выведение криптографического ключа из обращения.[154] Subsequently, the entry of subsequent cryptographic keys (vendor key 1, vendor key 2) of the intermediate stage is certified by the active cryptographic key of the intermediate stage (vendor key 0 and/or vendor key 1). The removal of a cryptographic key from circulation is similarly verified.

[155] Программный код домена безопасности верифицирует первый загрузчик в иерархии используя активный криптографический ключ промежуточного этапа (vendor key х).[155] The security domain code verifies the first bootloader in the hierarchy using the active middleware cryptographic key (vendor key x).

[156] Аналогично, каждый следующий загрузчик в иерархии верифицируется предыдущим загрузчиком с использованием активного криптографического ключа промежуточного этапа (vendor key х).[156] Similarly, each subsequent loader in the hierarchy is verified by the previous loader using the active cryptographic key of the intermediate stage (vendor key x).

[157] Вендор ОС - выпускает образ ОС, формирует криптографический ключ последнего этапа (Image0 key) и подписывает им образ ОС.[157] OS vendor - releases an OS image, generates a last-stage cryptographic key (Image0 key) and signs the OS image with it.

[158] Криптографический ключ последнего этапа подписывается активным криптографическим ключом промежуточного этапа (vendor key х), формируя цифровой сертификат, который сопровождает образ ОС.[158] The last-stage cryptographic key is signed by the active intermediate-stage cryptographic key (vendor key x), generating a digital certificate that accompanies the OS image.

[159] Последний загрузчик в иерархии (АР_BL33) проверяет образ ОС, используя цифровой сертификат и активный криптографический ключ промежуточного этапа.[159] The last boot loader in the hierarchy (AP_BL33) verifies the OS image using a digital certificate and an active middle stage cryptographic key.

[160] Каждый участник может совмещать несколько или даже все роли: вендора СВТ, СДЗ и ОС.[160] Each participant can combine several or even all roles: SVT vendor, SDZ and OS.

[161] В частном случае аппаратно-программное средство проверки верифицирует первый загрузчик в иерархии используя активный криптографический ключ промежуточного этапа (vendor key х).[161] In a particular case, the hardware-software verification tool verifies the first bootloader in the hierarchy using the active cryptographic key of the intermediate stage (vendor key x).

[162] На фиг. 5 представлен вариант реализации этапа внесения хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора.[162] In FIG. Figure 5 presents an implementation option for the stage of entering the hash amount of the primary cryptographic key of the root of trust for the program code of the main processor.

[163] Внесение хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора состоит из, по меньшей мере, следующих этапов:[163] Adding a hash of the primary cryptographic key of the root of trust for the main processor code consists of at least the following steps:

[164] Вначале, формируется криптографический ключ первичного ключа корня доверия программного кода основного процессора (ключ Vendor-root);[164] First, the cryptographic key of the primary key of the root of trust of the program code of the main processor (Vendor-root key) is generated;

[165] Далее, владелец криптографического ключа корня доверия изолированного домена безопасности (криптографический ключ SecurityDomain): удостоверяет хэш-сумму публичной части Vendor-root электронной подписью криптографического ключа SecurityDomain;[165] Next, the owner of the cryptographic key of the root of trust of the isolated security domain (SecurityDomain cryptographic key): certifies the hash sum of the public part of the Vendor-root with an electronic signature of the SecurityDomain cryptographic key;

[166] Подается команда на внесение криптографического ключа доверия программного кода основного процессора публичная часть Vendor-root;[166] A command is given to enter the cryptographic trust key of the program code of the main processor, the public part of Vendor-root;

[167] Проверяется электронная подпись хэш-сумму Vendor-root на основе ранее внесенного в однократно программируемую память криптографического ключа SecurityDomain;[167] The electronic signature hash sum of Vendor-root is checked based on the SecurityDomain cryptographic key previously entered into the one-time programmable memory;

[168] При успешной проверке хэш-сумма Vendor-root вносится в неизменяемую память (в частном случае, в ОПП).[168] Upon successful verification, the Vendor-root hash sum is entered into immutable memory (in a particular case, into the OPP).

[169] В случае, когда происходит загрузка ЭВМ с двумя и более процессорами, формируются криптографические ключи для каждого из процессоров, проверка происходит непосредственно на каждом из процессоров и процесс загрузки является успешным, если каждый из процессоров успешно проходит проверку электронной подписи.[169] In the case when a computer with two or more processors is loaded, cryptographic keys are generated for each of the processors, verification occurs directly on each of the processors, and the loading process is successful if each of the processors successfully passes the electronic signature verification.

[170] На фиг. 6 показан вариант реализации этапа внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора.[170] In FIG. Figure 6 shows an implementation option for the stage of entering hash sums of additional cryptographic keys of the root of trust for the program code of the main processor.

[171] Этап внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора состоит, по меньшей мере, из следующего:[171] The step of adding hashes of additional cryptographic root of trust keys for the main processor code consists of at least the following:

[172] Формируется криптографический ключ корня доверия программного кода основного процессора (криптографический ключ Vendor-key-N);[172] A cryptographic key of the root of trust of the program code of the main processor is generated (cryptographic key Vendor-key-N);

[173] Владелец криптографического ключа корня Vendor-X-Y, находящегося в обращении: удостоверяет хэш-сумму публичной части Vendor-key-N электронной подписью криптографическим ключом Vendor-X-Y;[173] The owner of the cryptographic key of the root Vendor-X-Y, which is in circulation: certifies the hash sum of the public part of Vendor-key-N with an electronic signature with the cryptographic key Vendor-X-Y;

[174] Подается команда на внесение криптографического ключа корня доверия программного кода основного процессора - публичная часть Vendor-key-N;[174] A command is given to enter the cryptographic key of the root of trust of the program code of the main processor - the public part of Vendor-key-N;

[175] Проверяется электронная подпись хэш-суммы Vendor-key-N на основе ранее внесенного в неизменяемую память (в частном случае, в ОПП), и не выведенного из обращения криптографического ключа Vendor-X-Y;[175] The electronic signature of the hash sum Vendor-key-N is checked based on the cryptographic key Vendor-X-Y previously entered into immutable memory (in a particular case, in the OPP), and not taken out of circulation;

[176] При успешной проверке - хэш-сумма Vendor-key-N вносится в неизменяемую память (в частном случае, в ОПП).[176] If the check is successful, the Vendor-key-N hash sum is entered into immutable memory (in a particular case, into the OPP).

[177] На фиг. 7 представлен вариант реализации этапа выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора.[177] In FIG. 7 presents an implementation option for the stage of removing the hash sum of the cryptographic key of the root of trust for the program code of the main processor from circulation.

[178] Этап выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора, состоит из, по меньшей мере, следующего:[178] The step of retiring the hash of the cryptographic root of trust key for the host processor code consists of at least the following:

[179] Вне устройства:[179] Outside the device:

[180] Формируется запрос на вывод из обращения криптографического ключа корня доверия программного кода основного процессора (криптографический ключ Vendor-key-M);[180] A request is generated to withdraw from circulation the cryptographic key of the root of trust of the program code of the main processor (cryptographic key Vendor-key-M);

[181] Владелец криптографического ключа корня Vendor-X-Y, находящегося в обращении: удостоверяет совокупность хэш-сумм [публичной части Vendor-X-Y, Vendor-key-M] электронной подписью криптографическим ключом Vendor-X-Y;[181] The owner of the cryptographic key of the root Vendor-X-Y, which is in circulation: certifies the set of hash sums [of the public part of Vendor-X-Y, Vendor-key-M] with an electronic signature with the cryptographic key Vendor-X-Y;

[182] На устройстве:[182] On the device:

[183] Подается команда на выведение из обращения криптографического ключа корня доверия программного кода основного процессора - публичная часть Vendor- key-М;[183] A command is given to remove from circulation the cryptographic key of the root of trust of the program code of the main processor - the public part of Vendor-key-M;

[184] Проверяется электронная подпись запроса на основе ранее внесенного в неизменяемую память (в частном случае, в ОПП), и не выведенного из обращения криптографического ключа Vendor-X-Y;[184] The electronic signature of the request is checked based on the Vendor-X-Y cryptographic key previously entered into immutable memory (in a particular case, in the OPP), and not taken out of circulation;

[185] При успешной проверке - хэш-сумма Vendor- key-M помечается в неизменяемой памяти (в частном случае, в ОПП) как инвалидная путем прожига контролирующего бита.[185] If the check is successful, the Vendor-key-M hash sum is marked in non-volatile memory (in a particular case, in the OPP) as invalid by burning the control bit.

[186] На фиг. 8 представлен примерный вариант реализации компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.[186] In FIG. 8 illustrates an exemplary implementation of a computer system in accordance with some embodiments of the present invention.

[187] Компьютерная система может быть подключена (например, по сети) к другим компьютерным системам в локальной сети, интрасети, экстрасети или сети Интернет. Компьютерная система может работать в качестве сервера в сетевой среде клиент-сервер. Компьютерная система может быть персональным компьютером (PC), планшетным компьютером, ТВ-приставкой (STB), персональным цифровым помощником (PDA), мобильным телефоном или любым устройством, способным выполнять набор инструкций (последовательных или иных), определяющих действия, которые должны выполняться этим устройством. Кроме того, несмотря на то что проиллюстрирована только одна компьютерная система, термин «компьютер» также следует понимать как любую совокупность компьютеров, которые индивидуально или совместно выполняют набор (или несколько наборов) инструкций для выполнения любого одного или нескольких способов, описанных в настоящем описании.[187] A computer system may be connected (eg, via a network) to other computer systems on a local area network, intranet, extranet, or the Internet. A computer system can operate as a server in a client-server network environment. The computer system may be a personal computer (PC), tablet computer, set-top box (STB), personal digital assistant (PDA), mobile phone, or any device capable of executing a set of instructions (sequential or otherwise) specifying actions to be performed by it. device. In addition, although only one computer system is illustrated, the term “computer” should also be understood to mean any collection of computers that individually or collectively execute a set (or more sets) of instructions to perform any one or more of the methods described herein.

[188] Примерная компьютерная система 400 состоит из устройства 402 обработки данных, оперативного запоминающего устройства 404 (например, постоянного запоминающего устройства (ROM), динамической памяти с произвольным доступом (DRAM), такой как синхронная динамическая память с произвольным доступом (SDRAM)), и устройства 408 хранения данных, которые взаимодействуют друг с другом через шину 422.[188] An exemplary computer system 400 consists of a data processing device 402, a random access memory 404 (e.g., read-only memory (ROM), dynamic random access memory (DRAM), such as synchronous dynamic random access memory (SDRAM)), and storage devices 408 that communicate with each other via bus 422.

[189] Устройство 402 обработки данных представляет собой одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т.п. Устройство 402 обработки данных может быть микропроцессором с полным наборов команд (CISC), микропроцессором для вычисления сокращенных наборов команд (RISC), микропроцессором с очень длинным командным словом (VLIW), процессором, реализующим другие наборы команд, или процессором, реализующим сочетание наборов команд.[189] Processing device 402 is one or more general purpose processing devices such as a microprocessor, central processing unit, or the like. Processing device 402 may be a full instruction set microprocessor (CISC), a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or a processor implementing a combination of instruction sets.

[190] Устройство 402 обработки данных также может представлять собой одно или несколько устройств обработки специального назначения, таких как специализированная интегральная схема (ASIC), программируемая на месте матрица логических элементов (FPGA), цифровой сигнальный процессор (DSP), сетевой процессор и т.п.Устройство 402 обработки данных сконфигурировано для выполнения инструкций 430 с целью выполнения этапов способа 200 и системы 100, предназначенных для выполнения доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей а также для выполнения любых описанных выше операций.[190] Processing device 402 may also be one or more special purpose processing devices, such as an application specific integrated circuit (ASIC), field programmable gate array (FPGA), digital signal processor (DSP), network processor, etc. The data processing apparatus 402 is configured to execute instructions 430 to carry out steps of method 200 and system 100 for performing trusted booting of a device with a mechanism for sharing the functions of authenticating boot steps among multiple cryptographic key owners, as well as for performing any of the operations described above.

[191] Компьютерная система 400 может дополнительно включать сетевой интерфейс 406, устройство 412 визуального отображения (например, жидкокристаллический дисплей), буквенно-цифровое устройство 414 ввода (например, клавиатуру), устройство 416 управления курсором и устройство принятия внешнего воздействия 418. В одном варианте реализации устройство 412 визуального отображения, устройство 414 буквенно-цифрового ввода и устройство 416 управления курсором могут быть объединены в единый компонент или устройство (например, сенсорный жидкокристаллический дисплей).[191] The computer system 400 may further include a network interface 406, a visual display device 412 (eg, a liquid crystal display), an alphanumeric input device 414 (eg, a keyboard), a cursor control device 416, and an input device 418. In one embodiment In an implementation, the visual display device 412, the alphanumeric input device 414, and the cursor control device 416 may be combined into a single component or device (eg, a touchscreen liquid crystal display).

[192] Устройство принятия внешнего воздействия 418 представляет собой одно или несколько устройств или датчиков для принятия внешнего воздействия. В качестве устройства принятия внешнего воздействия может выступать, например, видеокамера, микрофон, сенсорный датчик и т.п.[192] The external input device 418 is one or more devices or sensors for receiving external input. The device for receiving external influence can be, for example, a video camera, microphone, touch sensor, etc.

[193] Устройство 408 хранения данных может включать машиночитаемый носитель 410 данных, на котором хранятся инструкции 430, воплощающие любую одну или несколько методик или функций, описанных в настоящем документе (способ 200). Инструкции 430 также могут полностью или, по крайней мере, частично находиться в оперативной памяти 404 и/или на устройстве 402 обработки данных во время их выполнения компьютерной системой 400. Оперативная память 404 и устройство обработки 402 данных также представляют собой машиночитаемые носители данных. В некоторых реализациях инструкции 430 могут дополнительно передаваться или приниматься по сети 420 через сетевое интерфейсное устройство 406.[193] The storage device 408 may include a computer-readable storage medium 410 storing instructions 430 embodying any one or more of the techniques or functions described herein (method 200). Instructions 430 may also reside entirely or at least partially in main memory 404 and/or processing device 402 while they are executed by computer system 400. Main memory 404 and processing device 402 are also computer-readable storage media. In some implementations, instructions 430 may optionally be sent or received over network 420 via network interface device 406.

[194] Несмотря на то, что в иллюстративных примерах машиночитаемый носитель 410 данных представлен в единственном числе, термин «машиночитаемый носитель» следует понимать как включающий в себя один или несколько носителей (например, централизованную или распределенную базу данных и (или) связанные с ней кэши и серверы), в которых хранится один или несколько наборов инструкций. Термин «машиночитаемый носитель» также следует понимать как включающий в себя какой-либо носитель, способный хранить, кодировать или переносить набор инструкций для выполнения машиной и вынуждающий машину выполнять любую одну или несколько методик настоящего изобретения. Следовательно, термин «машиночитаемый носитель» должен включать, помимо прочего, твердотельные запоминающие устройства, оптические и магнитные носители данных.[194] Although computer readable media 410 is referred to in the singular in illustrative examples, the term “computer readable media” should be understood to include one or more media (e.g., a centralized or distributed database and/or associated caches and servers) that store one or more sets of instructions. The term “machine-readable medium” should also be understood to include any medium capable of storing, encoding, or carrying a set of instructions for execution by a machine and causing the machine to perform any one or more of the techniques of the present invention. Therefore, the term "computer readable medium" shall include, but is not limited to, solid state storage devices, optical storage media, and magnetic storage media.

[195] Несмотря на то, что операции описанных в настоящем документе способов показаны и описаны в определенном порядке, порядок операций каждого способа может быть изменен таким образом, чтобы определенные операции могли выполняться в обратном порядке или чтобы определенные операции могли выполняться по меньшей мере частично одновременно с другими операциями. В некоторых реализациях инструкции или подоперации отдельных операций могут быть прерывающимися и (или) чередующимися.[195] Although the operations of the methods described herein are shown and described in a particular order, the order of the operations of each method may be reversed so that certain operations can be performed in reverse order or so that certain operations can be performed at least partially simultaneously with other operations. In some implementations, instructions or sub-operations of individual operations may be intermittent and/or interleaved.

[196] Следует понимать, что приведенное выше описание является иллюстративным, а не ограничительным. Специалистам в данной области техники станут очевидны многие другие варианты реализации после прочтения и понимания, приведенного выше описания. Поэтому объем изобретения определяется со ссылкой на прилагаемую формулу изобретения, а также на полный объем эквивалентов, в отношении которых такая формула изобретения дает право предъявлять претензии.[196] It should be understood that the above description is illustrative and not restrictive. Many other embodiments will become apparent to those skilled in the art after reading and understanding the foregoing description. Therefore, the scope of the invention is determined by reference to the appended claims, as well as to the full scope of equivalents to which such claims are entitled to make claims.

[197] В приведенном выше описании излагаются многочисленные детали. Однако специалисту в данной области техники будет очевидно, что аспекты настоящего изобретения могут быть реализованы на практике без этих конкретных деталей. В некоторых случаях, чтобы избежать затруднения понимания настоящего изобретения, хорошо известные структуры и устройства представлены в виде блок-схемы, а не подробно.[197] The above description sets forth numerous details. However, it will be apparent to one skilled in the art that aspects of the present invention may be practiced without these specific details. In some cases, to avoid making the present invention difficult to understand, well-known structures and devices are presented in block diagram form rather than in detail.

[198] Следует отметить, что при отсутствии других конкретных указаний, как стало очевидно из последующего обсуждения, на протяжении всего описания такие термины в обсуждении, как «получение», «определение», «выбор», «хранение», «анализ» и т.п., относятся к действиям и процессам компьютерной системы или аналогичного электронного вычислительного устройства, которое манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти компьютерной системы, в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах компьютерной системы или других таких устройствах хранения, передачи или отображения информации.[198] It should be noted that, in the absence of other specific indications, as will be apparent from the following discussion, throughout the specification, terms in discussion such as “acquisition,” “determination,” “selection,” “storage,” “analysis,” and etc., refer to the actions and processes of a computer system or similar electronic computing device that manipulates data and converts data represented as physical (electronic) quantities in the registers and memory of the computer system into other data similarly represented as physical quantities in the memory or registers of a computer system or other such devices for storing, transmitting or displaying information.

[199] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Это устройство может быть специально сконструировано для требуемых целей или может содержать компьютер общего назначения, избирательно активируемый или реконфигурируемый компьютерной программой, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например, на дисках любого типа, включая дискеты, оптические диски, компакт-диски и магнитно-оптические диски, постоянные запоминающие устройства (ROM), оперативную память (RAM), программируемые постоянные запоминающие устройства (EPROM), электронно-перепрограммируемые постоянные запоминающие устройства (EEPROM), магнитные или оптические карты или носители любого типа, пригодные для хранения электронных инструкций, каждый из которых подключен к компьютерной системной шине.[199] The present invention also relates to an apparatus for performing the operations described herein. The device may be specifically designed for the required purpose or may comprise a general purpose computer that is selectively activated or reconfigurable by a computer program stored in the computer. Such a computer program may be stored on a computer-readable storage medium, such as any type of disk, including floppy disks, optical disks, compact disks and magnetic-optical disks, read-only memory (ROM), random access memory (RAM), programmable read-only memory (ROM). EPROM), electronically reprogrammable read-only memory (EEPROM), magnetic or optical cards, or any type of media suitable for storing electronic instructions, each connected to a computer system bus.

[200] Представленные в настоящем документе алгоритмы, по своей сути, не связаны с конкретным компьютером или другим устройством. Различные системы общего назначения могут использоваться с программами в соответствии с приведенными в настоящем документе положениями, либо же будет удобнее создать более специализированное устройство для выполнения требуемых этапов способа. Требуемая структура для разнообразных таких систем будет выглядеть так, как указано в описании. Кроме того, аспекты настоящего изобретения не описаны со ссылкой на конкретный язык программирования. Следует иметь в виду, что для реализации положений настоящего изобретения могут использоваться различные языки программирования, как описано в настоящем документе.[200] The algorithms presented herein are not inherently associated with a specific computer or other device. Various general purpose systems may be used with programs in accordance with the provisions herein, or it may be more convenient to create a more specialized device to perform the required method steps. The required structure for a variety of such systems will look like the description. Moreover, aspects of the present invention are not described with reference to a specific programming language. It should be understood that various programming languages may be used to implement the teachings of the present invention, as described herein.

[201] Варианты реализации настоящего изобретения могут быть представлены в виде программного продукта или программного обеспечения, включающего машиночитаемый носитель с сохраненными на нем инструкциями, которые могут использоваться для программирования компьютерной системы (или других электронных устройств) с целью выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель включает любой механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютером). К примеру, машиночитаемый (например, читаемый компьютером) носитель включает машиночитаемый (например, читаемый компьютером) носитель информации (например, постоянное запоминающее устройство (ROM), оперативную память (RAM), носитель информации на магнитных дисках, оптический носитель информации, устройства флэш-памяти).[201] Embodiments of the present invention may be in the form of a software product or software including a computer-readable medium having instructions stored thereon that can be used to program a computer system (or other electronic devices) to perform a process in accordance with the present invention. Machine-readable media includes any mechanism for storing or transmitting information in a machine-readable form (such as a computer). For example, machine-readable (e.g., computer-readable) media includes machine-readable (e.g., computer-readable) storage media (e.g., read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash devices memory).

[202] Слова «пример» или «приведенный в качестве примера» в настоящем документе означают пример, случай или иллюстрацию. Любой аспект или решение, описанные в настоящем документе как «пример» или «приведенный в качестве примера», необязательно должны рассматриваться как предпочтительный или преимущественный по сравнению с другими аспектами или решениями. Скорее, использование слов «пример» или «приведенный в качестве примера» предназначено для представления концепций с практической точки зрения. При использовании в настоящей заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Кроме того, использование термина «реализация», «один вариант реализации», «пример реализации» или «один пример реализации» во всем тексте не означает один и тот же вариант или пример реализации, если только они не описаны как таковые. Кроме того, термины «первый», «второй», «третий», «четвертый» и схожее, используемые в настоящем документе, предназначены для обозначения различных элементов и необязательно имеют порядковое значение в соответствии с их числовым обозначением.[202] The words “example” or “exemplified” as used herein mean example, instance, or illustration. Any aspect or solution described herein as an “example” or “given by way of example” should not necessarily be construed as preferable or superior to other aspects or solutions. Rather, the use of the words "example" or "exemplified" is intended to present concepts from a practical perspective. As used herein, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. Additionally, use of the term “implementation,” “one embodiment,” “example implementation,” or “one example implementation” throughout the text does not imply the same embodiment or example implementation unless described as such. In addition, the terms “first”, “second”, “third”, “fourth” and the like as used herein are intended to designate different elements and do not necessarily have an ordinal meaning in accordance with their numerical designation.

[203] В то время как многие изменения и модификации изобретения без сомнения станут очевидными для специалиста, обладающего обычной квалификацией в данной области техники, после прочтения приведенного выше описания следует понимать, что любой конкретный вариант реализации, показанный и описанный в качестве иллюстрации, никоим образом не должен рассматриваться как ограничивающий.[203] While many changes and modifications of the invention will no doubt become apparent to one of ordinary skill in the art, it should be understood from reading the foregoing description that any particular embodiment shown and described by way of illustration is in no way should not be seen as limiting.

[204] Поэтому ссылки на детали различных вариантов реализации не предназначены для ограничения объема формулы изобретения, которая сама по себе содержит только признаки, рассматриваемые как раскрытие изобретения.[204] Therefore, references to details of various embodiments are not intended to limit the scope of the claims, which themselves contain only features considered to be the disclosure of the invention.

Claims (60)

1. Способ доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей 1. A method for trusted device booting with the ability to certify different boot stages by several independent key owners включает следующие шаги: осуществляют загрузку электронно-вычислительной машины (ЭВМ), содержащей по крайней мере один процессор, исполняющий код загрузчиков и образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, причем загрузка состоит из N этапов, в которых можно выделить первый, (N-2) – промежуточных этапов и последний этап;includes the following steps: loading an electronic computer (computer) containing at least one processor executing bootloader code and an OS image, read-only memory (ROM), code in the processor ROM, one-time programmable memory (OPM), non-volatile memory, Moreover, the loading consists of N stages, in which we can distinguish the first, (N-2) intermediate stages and the last stage; формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар асимметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в изменяемой памяти в виде цифрового сертификата (тип II), причем на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;form a hierarchy of loaders that are stored in non-volatile memory, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private key of the pair is used during certification, and the public key is used when verifying certification, where public cryptographic keys can be: located in non-volatile memory (type I) or placed in volatile memory in the form of a digital certificate (type II), and at each stage keys belonging to different owners can be used for certification, the first key of the first stage is entered in an exclusively trusted way into immutable memory, and the remaining keys of type I of the first stage, type I keys of the intermediate and final stages can be entered in a certified container containing an electronic signature, which is verified only upon entry; при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов;when a cryptographic key is entered into a stage, it becomes the root of trust for this and subsequent stages; загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, определяют валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,at least one bootloader in the bootloader hierarchy is loaded from non-volatile memory into RAM, this bootloader is checked, the validity of the key contained in the bootloader image is determined, and the validity of the key is determined based on the information about the keys contained in the OPP, в ответ на то, что ключ валиден, осуществляют проверку подписи образа, в случае успешной проверки такому загрузчику передается управление;in response to the fact that the key is valid, the image signature is checked; if the verification is successful, control is transferred to such a bootloader; осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,parsing the image of the next at least one loader, using the previous loader, by reading its signature and public key, calculating the hash of this key and checking the presence of such a hash in the OPP, в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,in response to the hash not being found, the authentication fails, в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,in response to the fact that the hash is found in the OPP, they check whether the revocation sign of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered failed, в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,in response to the fact that the key is in circulation, the image signature on the public key is verified; if the signature verification fails, the authentication is considered failed, в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,in response to the fact that the signature verification was completed successfully, control is transferred to the verified at least the next loader in the loader hierarchy, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;in response to the authentication failure, the download process is terminated; верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;verifying each at least the next loader in the hierarchy of loaders with the help of the previous loader using the active key of the intermediate stage; выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;releasing an OS image signed with the final stage key, wherein the final stage key is signed by the active intermediate stage key, generating a digital certificate that accompanies the OS image; проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.Verify the OS image using a digital certificate and an active staging key. 2. Способ по п. 1, отличающийся тем, что первый ключ первого этапа может быть единственным корнем доверия для этого и последующих этапов.2. The method according to claim 1, characterized in that the first key of the first stage can be the only root of trust for this and subsequent stages. 3. Способ по п. 1, отличающийся тем, что для каждого этапа может быть свой криптографический ключ, который является корнем доверия для этого этапа.3. The method according to claim 1, characterized in that each stage can have its own cryptographic key, which is the root of trust for this stage. 4. Способ по п. 1, отличающийся тем, что проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами.4. The method according to claim 1, characterized in that checking the bootloader in the bootloader hierarchy can be carried out by hardware and software. 5. Способ по п. 1, отличающийся тем, что ключи могут записываться в сжатом или полном представлении.5. The method according to claim 1, characterized in that the keys can be recorded in a compressed or full representation. 6. Способ по п. 5, отличающийся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.6. The method according to claim 5, characterized in that type I keys can be in two states: active - active or retired - inactive, while the transition between states is possible only from the active to inactive state. 7. Способ по п. 6, отличающийся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.7. The method according to claim 6, characterized in that type II keys are supplied in a digital certificate, which is certified by a type I or II key of the previous level, while type II keys do not have the ability to certify keys of the same level at which they themselves are located. 8. Система доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей, содержащая два изолированных модуля исполнения программного кода, размещенные на кристалле процессора – изолированный домен безопасности и по крайней мере один основной процессор, исполняющий код загрузчиков, образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, при этом загрузка содержит N этапов: на которых можно выделить первый, (N-2) – промежуточных этапов и последний этап, при этом на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;8. A trusted device boot system with the ability to certify different boot stages by several independent key owners, containing two isolated modules for executing program code located on a processor chip - an isolated security domain and at least one main processor executing boot loader code, an OS image, and permanent storage device (ROM), code in the processor ROM, one-time programmable memory (OPM), non-volatile memory, while the boot contains N stages: in which the first can be distinguished, (N-2) - intermediate stages and the last stage, and at each stage for certification, keys belonging to different owners can be used, where the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining type I keys of the first stage, type I keys of the intermediate and last stages can be entered in a certified container containing an electronic signature, which checked only when deposited; изолированный домен безопасности и основной процессор выполнены с возможностью обмена данными, в том числе для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП) посредством интерфейса взаимодействия;the isolated security domain and the main processor are configured to exchange data, including for working with key information: the hash sum of the key that forms the root of trust, located in once-programmable memory (OPM) through the interaction interface; энергонезависимая память выполнена с возможностью хранения иерархии загрузчиков, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);non-volatile memory is configured to store a hierarchy of loaders, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, wherein the private key of the pair is used during certification, and the public key is used when verifying certification, where public cryptographic keys can be located in non-volatile memory (type I) or placed in the form of a digital certificate (type II); оперативная память выполнена с возможностью загрузки, по меньшей мере, одного загрузчика в иерархии загрузчиков из энергонезависимой памяти, изолированный домен безопасности содержит программный код, обращаясь к которому осуществляют проверку этого загрузчика аппаратными средствами через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом в ОПП содержится информация о ключах, которая предназначена для определения валидности ключа,the RAM is configured to load at least one bootloader in the hierarchy of bootloaders from non-volatile memory, the isolated security domain contains program code, which is accessed to check this bootloader with hardware through the interaction interface between the isolated security domain and the processor, determining the validity of the key, which is contained in the bootloader image, while the OPP contains information about the keys, which is intended to determine the validity of the key, загрузчик выполнен с возможностью передачи ему управления, в случае его успешной проверки, в ходе которой, в ответ на то, что ключ валиден, осуществляется проверка подписи образа;the bootloader is configured to transfer control to it if it is successfully verified, during which, in response to the fact that the key is valid, the image signature is verified; образ следующего, по меньшей мере, одного загрузчика выполнен с возможностью разбора посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,the image of the next at least one loader is configured to be parsed by the previous loader by reading its signature and public key, the hash of this key is calculated and the presence of such a hash in the OPP is checked, в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,in response to the hash not being found, the authentication fails, в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,in response to the fact that the hash is found in the OPP, they check whether the revocation sign of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered failed, в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,in response to the fact that the key is in circulation, the image signature on the public key is verified; if the signature verification fails, the authentication is considered failed, проверенный, по меньшей мере, следующий загрузчик из иерархии загрузчиков выполнен с возможностью передачи ему управления в ответ на то, что проверка подписи завершилась успешно,the verified at least next loader from the loader hierarchy is configured to transfer control to it in response to the fact that the signature verification has completed successfully, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;in response to the authentication failure, the download process is terminated; предыдущий загрузчик выполнен с возможностью верификации каждого, по меньшей мере, следующего загрузчика в иерархии загрузчиков с использованием активного ключа промежуточного этапа;the previous bootloader is configured to verify each at least the next bootloader in the bootloader hierarchy using the active intermediate stage key; образ ОС содержит цифровой сертификат, сформированный, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа;the OS image contains a digital certificate generated and signed by the last stage key, where the last stage key is signed by the active key of the intermediate stage; образ ОС выполнен с возможностью проверки, используя цифровой сертификат и активный ключ промежуточного этапа.The OS image is verifiable using a digital certificate and an active middle stage key. 9. Система по п. 8, отличающаяся тем, что проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами.9. The system according to claim 8, characterized in that checking the bootloader in the bootloader hierarchy can be carried out by hardware and software. 10. Система по п. 8, отличающаяся тем, что ключи могут записываться в сжатом или полном представлении.10. The system according to claim 8, characterized in that the keys can be recorded in a compressed or full representation. 11. Система по п. 10, отличающаяся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.11. The system according to claim 10, characterized in that type I keys can be in two states: active - active or retired - inactive, while the transition between states is possible only from the active to inactive state. 12. Система по п. 11, отличающаяся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.12. The system according to claim 11, characterized in that type II keys are supplied in a digital certificate, which is certified by a type I or II key of the previous level, while type II keys do not have the ability to certify keys of the same level at which they themselves are located. 13. Постоянный машиночитаемый носитель данных, содержащий машиночитаемые инструкции, выполняемые процессором компьютера и предназначенные для исполнения способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей, 13. A permanent machine-readable storage medium containing machine-readable instructions executed by a computer processor and intended for executing a method of trusted device booting with a mechanism for dividing the functions of certifying boot stages between several key owners, в котором на кристалле процессора размещены два изолированных модуля исполнения программного кода – изолированный домен безопасности и основной процессор, исполняющий код загрузчиков, образ ОС, однократно программируемая память (ОПП), неизменяемая память, при этом загрузка содержит N этапов, содержащий этапы, на которых:in which two isolated program code execution modules are located on the processor chip - an isolated security domain and the main processor executing bootloader code, an OS image, one-time programmable memory (OPM), non-volatile memory, while the boot contains N stages, containing stages in which: можно выделить первый, (N-2) – промежуточных этапов и последний этап;we can distinguish the first, (N-2) – intermediate stages and the last stage; на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,at each stage, keys belonging to different owners can be used for authentication, где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;where the first key of the first stage is entered in an exclusively trusted manner into immutable memory, and the remaining type I keys of the first stage, keys of type I of the intermediate and last stages can be entered in a certified container containing an electronic signature, which is verified only upon entry; обращаются с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП);using the main processor, they access the isolated security domain through an interaction interface for working with key information: the hash sum of the key that forms the root of trust, located in once-programmable memory (OPM); формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);form a hierarchy of loaders that are stored in non-volatile memory, where each loading stage corresponds to one or more pairs of asymmetric cryptographic keys, where the private key of the pair is used during certification, and the public key is used when verifying certification, where public cryptographic keys can be: located in non-volatile memory (Type I) or posted as a digital certificate (Type II); загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика аппаратными средствами, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,loading at least one bootloader in the hierarchy of bootloaders from non-volatile memory into RAM, checking this bootloader with hardware, accessing the program code of the isolated security domain through the interaction interface between the isolated security domain and the processor, determining the validity of the key contained in the bootloader image , while the validity of the key is determined based on the information about the keys contained in the OPP, в ответ на то, что ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки такому загрузчику передается управление;in response to the fact that the key is valid, the image signature is checked; if the verification is successful, control is transferred to such a bootloader; осуществляют разбор образа следующего, по меньшей мере, одного загрузчика посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,parsing the image of the next at least one loader using the previous loader by reading its signature and public key, calculating the hash of this key and checking the presence of such a hash in the OPP, в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,in response to the fact that the hash is not found, the authentication is considered to be failed, в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,in response to the fact that the hash is found in the OPP, they check whether the revocation sign of this key is set in the OPP; in response to the fact that the key is revoked, the authentication is considered to have failed, в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,in response to the fact that the key is in circulation, the image signature on the public key is verified; if the signature verification fails, the authentication is considered failed, в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,in response to the fact that the signature verification was completed successfully, control is transferred to the verified at least the next loader in the loader hierarchy, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;in response to the authentication failure, the download process is terminated; верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;verifying each at least the next loader in the hierarchy of loaders with the help of the previous loader using the active key of the intermediate stage; выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;releasing an OS image signed with the final stage key, wherein the final stage key is signed by the active intermediate stage key, generating a digital certificate that accompanies the OS image; проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.Verify the OS image using a digital certificate and an active staging key. 14. Постоянный машиночитаемый носитель по п. 13, отличающийся тем, что ключи могут записываться в сжатом или полном представлении.14. A permanent machine-readable medium according to claim 13, characterized in that the keys can be recorded in a compressed or full representation. 15. Постоянный машиночитаемый носитель по п. 14, отличающийся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.15. A permanent machine-readable medium according to claim 14, characterized in that type I keys can be in two states: active - active or retired - inactive, while the transition between states is possible only from the active to inactive state. 16. Постоянный машиночитаемый носитель по п. 15, отличающийся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.16. A permanent machine-readable medium according to claim 15, characterized in that type II keys are supplied in a digital certificate, which is certified by a type I or II key of the previous level, while type II keys do not have the ability to certify keys of the same level at which they themselves are located .
RU2023111170A 2023-04-28 Method of trusted device boot with ability to certify different boot stages by several independent key owners RU2808198C1 (en)

Publications (1)

Publication Number Publication Date
RU2808198C1 true RU2808198C1 (en) 2023-11-24

Family

ID=

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2258252C2 (en) * 2000-07-25 2005-08-10 Макровижн Корпорейшн System and method for checking authenticity of dynamically loaded executable images
US20090259854A1 (en) * 2008-04-10 2009-10-15 Nvidia Corporation Method and system for implementing a secure chain of trust
RU2408071C2 (en) * 2004-10-11 2010-12-27 Телефонактиеболагет Лм Эрикссон (Пабл) Protected data loading and storage in data processing device
RU2413295C2 (en) * 2004-06-30 2011-02-27 Майкрософт Корпорейшн System and method for secure operating system booting using status checkup
JP2013524385A (en) * 2010-04-12 2013-06-17 インターデイジタル パテント ホールディングス インコーポレイテッド Staged control of release in the boot process
US8688967B2 (en) * 2007-01-07 2014-04-01 Apple Inc. Secure booting a computing device
RU2542930C2 (en) * 2010-04-19 2015-02-27 Эпл Инк. Booting and configuring subsystem securely from non-local storage
EP2854066A1 (en) * 2013-08-21 2015-04-01 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
RU2557459C2 (en) * 2010-12-29 2015-07-20 Виаксесс Method of code loading of at least one programme module
US20170180139A1 (en) * 2015-12-21 2017-06-22 Hewlett-Packard Development Company, L.P. Key revocation
EP3259698A1 (en) * 2015-02-16 2017-12-27 iAd Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonomously booting system with a security module
US20230010319A1 (en) * 2021-07-12 2023-01-12 Dell Products, L.P. Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2258252C2 (en) * 2000-07-25 2005-08-10 Макровижн Корпорейшн System and method for checking authenticity of dynamically loaded executable images
RU2413295C2 (en) * 2004-06-30 2011-02-27 Майкрософт Корпорейшн System and method for secure operating system booting using status checkup
RU2408071C2 (en) * 2004-10-11 2010-12-27 Телефонактиеболагет Лм Эрикссон (Пабл) Protected data loading and storage in data processing device
EP3575999A1 (en) * 2007-01-07 2019-12-04 Apple Inc. Secure booting a computing device
US8688967B2 (en) * 2007-01-07 2014-04-01 Apple Inc. Secure booting a computing device
US20090259854A1 (en) * 2008-04-10 2009-10-15 Nvidia Corporation Method and system for implementing a secure chain of trust
JP2013524385A (en) * 2010-04-12 2013-06-17 インターデイジタル パテント ホールディングス インコーポレイテッド Staged control of release in the boot process
RU2542930C2 (en) * 2010-04-19 2015-02-27 Эпл Инк. Booting and configuring subsystem securely from non-local storage
RU2557459C2 (en) * 2010-12-29 2015-07-20 Виаксесс Method of code loading of at least one programme module
EP2854066A1 (en) * 2013-08-21 2015-04-01 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
EP3259698A1 (en) * 2015-02-16 2017-12-27 iAd Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH Autonomously booting system with a security module
US20170180139A1 (en) * 2015-12-21 2017-06-22 Hewlett-Packard Development Company, L.P. Key revocation
US20230010319A1 (en) * 2021-07-12 2023-01-12 Dell Products, L.P. Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor

Similar Documents

Publication Publication Date Title
CN103827824B (en) The checking of virtual machine and nested virtual machine manager is initiated
US8850212B2 (en) Extending an integrity measurement
JP5455318B2 (en) Dynamic trust management
US7962738B2 (en) Hypervisor runtime integrity support
EP1754126B1 (en) Enhancing trusted platform module performance
EP2427845B1 (en) Mechanism for updating software
KR20170095161A (en) Secure system on chip
EP2727040B1 (en) A secure hosted execution architecture
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US20090327684A1 (en) Apparatus and method for secure boot environment
US11604881B2 (en) Verification of a provisioned state of a platform
US10592661B2 (en) Package processing
US10181956B2 (en) Key revocation
CN101432752A (en) Trusted platform field upgrade system and method
CN110851188A (en) Domestic PLC trusted chain implementation device and method based on binary architecture
CN112511306A (en) Safe operation environment construction method based on mixed trust model
US20220092189A1 (en) Implementation of Trusted Computing System Based on Master Controller of Solid-State Drive
CN101908115B (en) Method for realizing software trusted execution based on trusted platform module
EP3338214A1 (en) Secure computation environment
RU2808198C1 (en) Method of trusted device boot with ability to certify different boot stages by several independent key owners
US11089475B2 (en) Booting and operating computing devices at designated locations
CN112861137A (en) Secure firmware
Jyothi et al. Tpm based secure boot in embedded systems
US7913074B2 (en) Securely launching encrypted operating systems
EP3620944B1 (en) Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device