Область применения
[1] Группа изобретений относится к технологиям предоставления доступа к ресурсам вычислительных машин, а более конкретно к технологиям доверенной загрузки вычислительных машин с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей (криптографических ключей). Данные технологии предназначены, в том числе, для защиты вычислительных машин от их несанкционированной загрузки и от получения возможности несанкционированного доступа к конфиденциальной информации, хранящейся внутри вычислительных машин.
[2] Одной из угроз, направленных на нарушение конфиденциальности информации, хранящейся в вычислительной машине, является угроза, связанная с получением несанкционированного доступа к таким машинам и к пользовательским данным внутри них. Эффективной мерой борьбы с данной угрозой является доверенная загрузка вычислительных машин, т.е. загрузка вычислительных машин после успешного проведения процедур аутентификации вычислительной машины и контроля целостности файлов вычислительной машины.
[3] Доверенная загрузка устройства - процесс, удостоверяющий что от момента подачи питания до старта операционной системы (ОС) весь исполняемый на устройстве программный код верифицируется, в результате чего принимается решение о его исполнении на устройстве.
[4] Исполняемый программный код разбит на несколько частей, которые хранятся в образах, снабженными электронными подписями.
[5] Аппаратные возможности современных систем на кристалле (SoC) позволяют организовать доверенную загрузку, однако программно-алгоритмические схемы загрузки не подразумевают гибкости в разделении полномочий управления составом исполняемых компонент разных этапов загрузки в условиях, когда поставщик аппаратной платформы, загрузчика, операционной системы и эксплуатант конечного программно-аппаратного решения являются разными организациями. Данное изобретение предлагает подход для решения этой проблемы.
[6] Процесс загрузки представляет собой последовательное исполнение программных компонентов, выполняющих инициализацию устройства. Каждый участник процесса заверяет код в его зоне ответственности, например заказчик конечного решения заверяет код первичного загрузчика, производитель материнской платы заверяет код BIOS, производитель операционной системы заверяет ядро ОС.
[7] Этапом загрузки является загрузка исполняемого кода, находящегося в зоне ответственности участника процесса.
Уровень техники
[8] Из уровня техники известны технологии доверенной загрузки вычислительной машины.
[9] Из заявки US 2017180139 А1, опубл. 22.06.2017, известны технологии, раскрывающие отзыв ключа. Система отзыва ключа может содержать процессор, встроенный контроллер, энергонезависимую память, в которой хранится элемент данных авторизации ключа подписи системной инструкции, при этом элемент данных включает в себя ключ подписи системной инструкции, номер ключа подписи и подпись. Встроенный контроллер может включать в себя множество ключей для проверки элемента данных, а также одноразовую программируемую (OTP) память и ключ из множества ключей, который может быть отозван с использованием памяти OTP, при этом отзыв ключа постоянно предотвращает встроенную память, контроллер от использования ключа.
[10] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.
[11] Из заявки ЕР 2854066 А1, опубл. 01.04.2015, известна система обработки с концепцией управления доступом блока обработки системы обработки к программно-аппаратному коду. Предлагается идентифицировать действительный ключ, хранящийся в первой области памяти, на основе данных проверки второй области памяти, причем данные проверки указывают, является ли ключ действительным или нет. Код микропрограммы обрабатывается в соответствии с заданным алгоритмом проверки, чтобы вычислить проверочное значение для кода микропрограммы. Проверочное значение и действительный ключ анализируются, чтобы определить, можно ли доверять коду прошивки. Доступ блока обработки к коду встроенного программного обеспечения управляется на основании того, определен ли код встроенного программного обеспечения как доверенный или нет.
[12] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.
[13] В заявке US 2009259854 А1, опубл. 15.10.2009, раскрыта технология защищенной цепочки доверия. При выполнении безопасного загрузочного кода в режиме безопасной загрузки менее безопасный загрузочный код может быть аутентифицирован с использованием секретного ключа. Ключ безопасности также может быть рассчитан или сгенерирован в режиме безопасной загрузки. После передачи управления аутентифицированному менее безопасному загрузочному коду по крайней мере одно приложение может быть аутентифицировано с использованием защищенного ключа. После аутентификации в менее безопасном режиме загрузки приложение может выполняться программируемой интегральной схемой. Таким образом, для программируемой интегральной схемы может быть реализована безопасная цепочка доверия.
[14] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.
[15] В заявке JP 2013524385 А, опубл. 17.06.2013, раскрыта технология проверки целостности сетевого устройства. Сетевое устройство, содержащее защищенный аппаратный модуль, может получить корневой ключ. Защищенный аппаратный модуль также может принимать первое измерение кода. Защищенный аппаратный модуль может предоставлять первый ключ на основе корневого ключа и первого измерения кода. Защищенный аппаратный модуль может принимать второе измерение кода и предоставлять второй ключ на основе первого ключа и второго измерения кода. Выпуск ключей на основе измерений кода может обеспечить поэтапную аутентификацию.
[16] Основными недостатками заявленной технологии являются отсутствие гибкости системы, невозможность разделения ответственности между разными владельцами ключей.
[17] Предложенная технология направлена на устранение недостатков предшествующего уровня техники.
Раскрытие изобретения
[18] Основными отличительными особенностями настоящей технологии, являются:
a. разделение ответственности каждого производителя за выпущенный им программный компонент (загрузчики всех уровней и ОС), устанавливаемый на устройство;
b. использование 2-х видов криптографических ключей,
c. при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов,
d. при внесении криптографического ключа контейнер заверяется либо активным криптографическим ключом текущего этапа, либо активным криптографическим ключом предыдущего этапа, если криптографических ключей текущего этапа еще не вносилось,
e. криптографические ключи типа II поставляются в цифровом сертификате, который заверен криптографическим ключом типа I или II предыдущего уровня,
f. программный код загрузчиков каждого этапа заверяется любым из активных криптографических ключей этого этапа.
[19] Предложенная технология направлена на достижение следующих технических результатов:
[20] Расширение функциональных возможностей реализации доверенной загрузки устройства от стартового загрузчика до образа ОС с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, обеспечение возможности разделения ответственности между разными владельцами ключей.
[21] Благодаря такому механизму устанавливается ответственность (отсутствие изъянов/недостатков/закладок/недекларируемых возможностей) каждого производителя за выпущенный им программный компонент, в том числе загрузчики всех уровней и образы ОС, устанавливаемый на устройство и снимается ответственность с участников производства устройства, не владеющих соответствующими компонентами.
[22] Обеспечение доверенной загрузки всех используемых программных компонентов (загрузчиков всех уровней и образов ОС), защищенных от несанкционированных действий: загрузка, несанкционированный доступ к защищаемой информации, хранящейся внутри устройства.
[23] Обеспечение подлинности образа ОС за счет подписания образа ОС криптографическим ключом безопасности, заверенным активным криптографическим ключом промежуточного этапа заверения, формируя тем самым цифровой сертификат, который сопровождает образ при загрузке.
[24] Указанные технические результаты достигаются за счет предложенного способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей,
[25] который включает следующие шаги: осуществляют загрузку электронно-вычислительной машины (ЭВМ), содержащей по крайней мере один процессор, исполняющий код загрузчиков и образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, причем загрузка состоит из N этапов, в которых можно выделить первый, (N-2) промежуточных этапов и последний этап;
[26] формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар асимметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в изменяемой памяти в виде цифрового сертификата (тип II), причем на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
[27] при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов;
[28] загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, определяют валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,
[29] в ответ на то, что ключ валиден, осуществляют проверку подписи образа, в случае успешной проверки, такому загрузчику передается управление;
[30] осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
[31] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
[32] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
[33] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
[34] в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,
[35] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
[36] верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;
[37] выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;
[38] проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.
[39] В соответствии с первым вариантом реализации изобретения, первый ключ первого этапа может быть единственным корнем доверия для этого и последующих этапов;
[40] для каждого этапа может быть свой криптографический ключ, который является корнем доверия для этого этапа;
[41] проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами;
[42] ключи могут записываться в сжатом или полном представлении.
[43] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие - активные или выведенные из обращения - неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
[44] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
[45] Указанные технические результаты достигаются также за счет предложенной системы доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей,
[46] содержащая два изолированных модуля исполнения программного кода, размещенные на кристалле процессора - изолированный домен безопасности и по крайней мере один основной процессор, исполняющий код загрузчиков, образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, при этом загрузка содержит N этапов: на которых можно выделить первый, (N-2) - промежуточных этапов и последний этап;
[47] при этом на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,
[48] где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
[49] изолированный домен безопасности и основной процессор выполнены с возможностью обмена данными, в том числе для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП), посредством интерфейса взаимодействия;
[50] энергонезависимая память выполнена с возможностью хранения иерархии загрузчиков, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);
[51] оперативная память выполнена с возможностью загрузки, по меньшей мере, одного загрузчика в иерархии загрузчиков из энергонезависимой памяти, изолированный домен безопасности содержит программный код, обращаясь к которому осуществляют проверку этого загрузчика аппаратными средствами, через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом в ОПП содержится информация о ключах, которая предназначена для определения валидности ключа,
[52] загрузчик выполнен с возможностью передачи ему управления, в случае его успешной проверки, в ходе которой, в ответ на то, что ключ валиден, осуществляется проверка подписи образа;
[53] образ следующего, по меньшей мере, одного загрузчика выполнен с возможностью разбора посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
[54] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
[55] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
[56] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
[57] проверенный, по меньшей мере, следующий загрузчик из иерархии загрузчиков, выполнен с возможностью передачи ему управления, в ответ на то, что проверка подписи завершилась успешно,
[58] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
[59] предыдущий загрузчик выполнен с возможностью верификации каждого, по меньшей мере, следующего загрузчика в иерархии загрузчиков с использованием активного ключа промежуточного этапа;
[60] образ ОС содержит цифровой сертификат, сформированный, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа;
[61] образ ОС, выполнен с возможностью проверки, используя цифровой сертификат и активный ключ промежуточного этапа.
[62] В соответствии с еще одним вариантом реализации изобретения, проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами;
[63] ключи могут записываться в сжатом или полном представлении
[64] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие - активные или выведенные из обращения - неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
[65] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
[66] Указанные технические результаты достигаются также за счет постоянного машиночитаемого носителя данных, содержащий машиночитаемые инструкции, выполняемые процессором компьютера и предназначенные для исполнения способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей,
[67] в котором на кристалле процессора размещены два изолированных модуля исполнения программного кода изолированный домен безопасности и основной процессор, исполняющий код загрузчиков, образ ОС, однократно программируемая память (ОПП), неизменяемая память, при этом загрузка содержит N этапов, содержащий этапы, на которых:
[68] можно выделить первый, (N-2) - промежуточных этапов и последний этап;
[69] на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,
[70] где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
[71] обращаются с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП);
[72] формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);
[73] загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика аппаратными средствами, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,
[74] в ответ на то, что ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки, такому загрузчику передается управление;
[75] осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
[76] в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
[77] в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
[78] в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
[79] в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,
[80] в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
[81] верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;
[82] выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;
[83] проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.
[84] В соответствии с еще одним вариантом реализации изобретения, криптографические ключи могут записываться в сжатом или полном представлении.
[85] Еще в одном варианте реализации, криптографические ключи I типа могут быть в двух состояниях: действующие активные или выведенные из обращения неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
[86] Еще в одном варианте реализации, криптографические ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
Краткое описание чертежей
[87] На фиг. 1 представлена схема организации способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей.
[88] На фиг. 2 представлен примерный вариант реализации системы доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей.
[89] На фиг. 3 представлен примерный вариант реализации процедуры проверки подлинности образа ОС.
[90] На фиг. 4 представлен примерный вариант реализации процедуры проверки подлинности образа ОС с тремя владельцами криптографических ключей.
[91] На фиг. 5 представлен примерный вариант реализации этапа внесения хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора.
[92] На фиг. 6 представлен примерный вариант реализации этапа внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора.
[93] На фиг. 7 представлен примерный вариант реализации этапа выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора.
[94] На фиг. 8 представлен примерный вариант реализации компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.
Осуществление изобретения
[95] Далее будут описаны заявляемые технологии доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, с приведением примеров реализации предложенной технологии.
[96] Предложенная технология доверенной загрузки подходит для любых устройств, являющихся вычислительными машинами (ВС), например, на базе процессоров с архитектурой ARMv8, и операционных систем на базе ядра Linux.
[97] Предложенная технология предназначена для обеспечения безопасной загрузки устройства, путем верификации последовательности загружаемых компонентов, начиная от момента подачи питания на процессор. Процесс безопасной загрузки обеспечивается в том числе кодом в ПЗУ процессора.
[98] На фиг. 1 представлены основные этапы способа 200 доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографического ключа.
[99] Данный способ реализуется с помощью системы 100 доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей, представленной на фиг. 2, которая, в свою очередь, входит в состав компьютерной системы, представленной на фиг. 8. Кроме того, указанный способ доверенной загрузки также может быть реализован с помощью постоянного машиночитаемого носителя данных 410, также представленного на фиг. 8.
[100] Для реализации способа доверенной загрузки устройства достаточно наличия однократно программируемой памяти (ОПП). Эта память (One-Time Programmable ROM - OTPROM) программируется пользователем и в исходном состоянии содержит ячейки с единичными битами. Программированию подлежат только те ячейки памяти, содержимое которых должно принять значение 0. Для этого на ячейку памяти подают последовательность импульсов повышенного напряжения.
[101] Уровень напряжения, число импульсов и их временные параметры должны строго соответствовать техническим условиям. После записи нуля восстановить единичное значение невозможно. По этой причине память получила название однократно программируемых ПЗУ. Однако следует указать на возможность до программирования (не тронутых) ячеек с единичными битами.
[102] Суть предложенной технологии заключается в организации ключевой схемы доверенной загрузки с независимой сменой криптографических ключей без необходимости заверения цепочки доверия криптографическими ключами предыдущих этапов загрузки, которая предоставляет возможность разделения ответственности за заверение этапов загрузки между несколькими владельцами криптографических ключей, что обеспечивается следующим алгоритмом.
[103] Способ 200 доверенной загрузки содержит основные этапы 201-208, показанные в блок-схеме на фиг. 1.
[104] На этапе 201 осуществляется обращение с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой (хэшем) криптографического ключа, формирующей корень доверия, размещенной в ОПП.
[105] На этапе 202 формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый криптографический ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II).
[106] В некоторых вариантах осуществления, в качестве примера компонента неизменяемой памяти может быть использована однократно программируемая память (ОПП).
[107] Процесс загрузки разделен на N этапов, среди которых можно выделить первый, (N-2) промежуточных и последний этапы. Для описания деталей механизмов схемы достаточно рассмотреть схему с одним промежуточным этапом.
[108] Каждому этапу загрузки соответствует один или несколько криптографических ключей.
[109] Криптографические ключи могут быть двух типов:
i. (тип I) размещенные в неизменяемой памяти (в т.ч. в виде хэша) и
ii. (тип II) размещенные в изменяемой памяти распространяемые в виде цифрового сертификата вместе с заверенным образом исполняемого кода.
[110] Криптографические ключи типа I могут быть в двух состояниях: действующие (активные) или выведенные из обращения (неактивные). Переход между состояниями возможен только из состояния активного в неактивное.
[111] Первый криптографический ключ первого этапа вносится исключительно доверенным образом в неизменяемую память.
[112] При этом, остальные криптографические ключи типа I первого этапа, криптографические ключи типа I промежуточного и последнего этапов могут быть внесены аналогично внесению первого криптографического ключа, либо в заверенном контейнере.
[113] В случае использования криптографических ключей с типом I и типом II: удлинится цепочка проверки криптографических ключей: тип I заверят тип II, далее тип II заверяет загрузчик.
[114] На этапе 203 загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность криптографического ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о криптографических ключах, содержащейся в ОПП.
[115] Блок-схема варианта реализации процедуры проверки подлинности образа ОС показана на фиг. 3.
[116] Для внесения криптографического ключа, контейнер заверяется либо активным криптографическим ключом текущего этапа, либо активным криптографическим ключом предыдущего этапа, если криптографических ключей текущего этапа еще не вносилось. Первый внесенный криптографический ключ каждого этапа является корнем доверия для этого этапа (эта особенность схемы позволяет создавать локальные корни доверия, обеспечивая независимость владельцев криптографических ключей разных этапов).
[117] Перевод криптографического ключа в неактивное состояние выполняется по заверению любым из активных криптографическим ключей этого же этапа.
[118] Особенностью схемы является механизм внесения криптографических ключей при помощи контейнера, содержащего электронную подпись, которая проверяется только при внесении, что позволяет экономить объем в неизменяемой памяти (в частном случае, в ОПП) и вычислительный ресурс на проверку.
[119] Такая особенность позволяет экономить объем памяти, а также независимо вносить криптографические ключи каждого этапа, а также позволяет создать независимый корень доверия на каждом этапе.
[120] Криптографические ключи могут записываться в сжатом или полном представлении. В том случае, если позволяет объем памяти, то криптографические ключи записываются в полном представлении, а если памяти мало то в сжатом, например, в виде хэш-суммы. Данная особенность относится к открытым криптографическим ключам.
[121] Криптографические ключи типа II поставляются в цифровом сертификате, который заверен криптографическим ключом типа I или II предыдущего уровня.
[122] Криптографические ключи типа II не имеют возможности заверять криптографические ключи того же уровня, на котором находятся сами.
[123] Программный код загрузчиков каждого этапа заверяется любым из активных криптографических ключей этого этапа.
[124] На этапе 204, в ответ на то, что криптографический ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки, такому загрузчику передается управление.
[125] На этапе 205, осуществляют разбор следующего, по меньшей мере, одного образа загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш-сумму этого криптографического ключа и проверяют наличие такой хэш-суммы в ОПП.
[126] При этом, в ответ на то, что хэш-сумма не найдена, проверка подлинности считается не пройденной, а в ответ на то, что хэш-сумма найдена в ОПП, проверяют, отозван ли криптографический ключ. Такая проверка может включать в себя проверку установления в ОПП признака отозванности этого криптографического ключа. В ответ на то, что криптографический ключ отозван, проверка подлинности считается не пройденной.
[127] В ответ на то, что криптографический ключ находится в обращении, выполняется проверка подписи образа на публичном криптографическом ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной.
[128] В ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается.
[129] В случае, если проверка подписи загрузчика завершилась ошибкой, то прекращается весь процесс загрузки, необходимо начинать загрузку с самого первого загрузчика.
[130] В данном случае, выводится сообщение об ошибке, загрузка устройства прекращается, для новой загрузки требует нажатие «reset» или вкл/выкл питания.
[131] На этапе 206 верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного криптографического ключа промежуточного этапа.
[132] На этапе 207 выпускают образ ОС, подписанный криптографическим ключом последнего этапа, где криптографический ключ последнего этапа подписывается активным криптографическим ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС.
[133] На этапе 208 проверяют образ ОС, используя цифровой сертификат и активный криптографический ключ промежуточного этапа.
[134] При этом образ ОС заверяется в виде подписи криптографическим ключом, который имеет тип II и поставляется вместе с образом ОС, владельцем которых является владелец (производитель/поставщик) ОС.
[135] На фиг. 2 показаны основные элементы, входящие в состав системы 100 доверенной загрузки устройства.
[136] Основные блоки, входящие в состав системы доверенной загрузки устройства: изолированный домен безопасности, основной процессор, интерфейс взаимодействия, через который изолированный домен безопасности и основной процессор обмениваются данными, в том числе, для работы с ключевой информацией: хэш-суммой криптографического ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП), посредством интерфейса взаимодействия.
[137] Процесс доверенной загрузки начинается на изолированном домене безопасности, который реализует корень доверия, состоящий из:
[138] - блока ОПП, содержащего криптографический ключ верификации программного кода изолированного домена безопасности и
[139] - кода в ROM памяти изолированного домена безопасности, который проверяет программный код.
[140] В случае успешной проверки программного кода ему передается управление.
[141] Программный код домена безопасности реализует функцию управления криптографическими ключами типа I, которые также располагаются в блоке ОПП.
[142] Программный код домена безопасности располагается в энергонезависимой памяти и является первым в иерархии загрузчиков.
[143] Программный код домена безопасности загружает следующий загрузчик из иерархии в оперативную память и осуществляет его проверку, используя служебную информацию образа, содержащую криптографические ключи и подпись.
[144] Валидность криптографического ключа определяется на основе информации о криптографических ключах, содержащейся в ОПП.
[145] В случае успешной проверки, управление передается основному процессору этого загрузчика.
[146] Загрузчик 0 загружает следующий в иерархии загрузчик из энергонезависимой в оперативную память, после чего обращается к программному коду домена безопасности через интерфейс взаимодействия для определения валидности криптографического ключа, содержащегося в образе загрузчика.
[147] Если криптографический ключ валиден, то осуществляется проверка подписи образа. В случае успешной проверки управление передается следующему Загрузчику.
Примеры осуществления
[148] Далее приведем конкретные примеры функционирования процедуры доверенной загрузки устройства.
[149] На фиг. 4 представлен вариант реализации процедуры проверки подлинности образа ОС с тремя владельцами криптографических ключей.
[150] Вендор СВТ - выпускает устройство с корнем доверия, формирует корневой криптографический ключ (он же криптографический ключ первого этапа, SCP key) и подписывает им образ программного кода домена безопасности (SCP_Loader).
[151] Код в ROM-области изолированного домена безопасности верифицирует программный код домена безопасности с использованием корневого криптографического ключа.
[152] Вендор СДЗ-выпускает набор загрузчиков (AP_Blxx), формирует один или несколько криптографических ключей промежуточного этапа (vendor key 0 - vendor key 2) и подписывает им набор загрузчиков.
[153] Первый криптографический ключ промежуточного этапа (vendor key 0) подписывается корневым криптографическим ключом (SCP key) при внесении в неизменяемую память (в частном случае, в ОПП).
[154] В дальнейшем внесение последующих криптографических ключей (vendor key 1, vendor key 2) промежуточного этапа удостоверяется активным криптографическим ключом промежуточного этапа (vendor key 0 и/или vendor key 1). Аналогично удостоверяется выведение криптографического ключа из обращения.
[155] Программный код домена безопасности верифицирует первый загрузчик в иерархии используя активный криптографический ключ промежуточного этапа (vendor key х).
[156] Аналогично, каждый следующий загрузчик в иерархии верифицируется предыдущим загрузчиком с использованием активного криптографического ключа промежуточного этапа (vendor key х).
[157] Вендор ОС - выпускает образ ОС, формирует криптографический ключ последнего этапа (Image0 key) и подписывает им образ ОС.
[158] Криптографический ключ последнего этапа подписывается активным криптографическим ключом промежуточного этапа (vendor key х), формируя цифровой сертификат, который сопровождает образ ОС.
[159] Последний загрузчик в иерархии (АР_BL33) проверяет образ ОС, используя цифровой сертификат и активный криптографический ключ промежуточного этапа.
[160] Каждый участник может совмещать несколько или даже все роли: вендора СВТ, СДЗ и ОС.
[161] В частном случае аппаратно-программное средство проверки верифицирует первый загрузчик в иерархии используя активный криптографический ключ промежуточного этапа (vendor key х).
[162] На фиг. 5 представлен вариант реализации этапа внесения хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора.
[163] Внесение хэш-суммы первичного криптографического ключа корня доверия для программного кода основного процессора состоит из, по меньшей мере, следующих этапов:
[164] Вначале, формируется криптографический ключ первичного ключа корня доверия программного кода основного процессора (ключ Vendor-root);
[165] Далее, владелец криптографического ключа корня доверия изолированного домена безопасности (криптографический ключ SecurityDomain): удостоверяет хэш-сумму публичной части Vendor-root электронной подписью криптографического ключа SecurityDomain;
[166] Подается команда на внесение криптографического ключа доверия программного кода основного процессора публичная часть Vendor-root;
[167] Проверяется электронная подпись хэш-сумму Vendor-root на основе ранее внесенного в однократно программируемую память криптографического ключа SecurityDomain;
[168] При успешной проверке хэш-сумма Vendor-root вносится в неизменяемую память (в частном случае, в ОПП).
[169] В случае, когда происходит загрузка ЭВМ с двумя и более процессорами, формируются криптографические ключи для каждого из процессоров, проверка происходит непосредственно на каждом из процессоров и процесс загрузки является успешным, если каждый из процессоров успешно проходит проверку электронной подписи.
[170] На фиг. 6 показан вариант реализации этапа внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора.
[171] Этап внесения хэш-сумм дополнительных криптографических ключей корня доверия для программного кода основного процессора состоит, по меньшей мере, из следующего:
[172] Формируется криптографический ключ корня доверия программного кода основного процессора (криптографический ключ Vendor-key-N);
[173] Владелец криптографического ключа корня Vendor-X-Y, находящегося в обращении: удостоверяет хэш-сумму публичной части Vendor-key-N электронной подписью криптографическим ключом Vendor-X-Y;
[174] Подается команда на внесение криптографического ключа корня доверия программного кода основного процессора - публичная часть Vendor-key-N;
[175] Проверяется электронная подпись хэш-суммы Vendor-key-N на основе ранее внесенного в неизменяемую память (в частном случае, в ОПП), и не выведенного из обращения криптографического ключа Vendor-X-Y;
[176] При успешной проверке - хэш-сумма Vendor-key-N вносится в неизменяемую память (в частном случае, в ОПП).
[177] На фиг. 7 представлен вариант реализации этапа выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора.
[178] Этап выведения из обращения хэш-суммы криптографического ключа корня доверия для программного кода основного процессора, состоит из, по меньшей мере, следующего:
[179] Вне устройства:
[180] Формируется запрос на вывод из обращения криптографического ключа корня доверия программного кода основного процессора (криптографический ключ Vendor-key-M);
[181] Владелец криптографического ключа корня Vendor-X-Y, находящегося в обращении: удостоверяет совокупность хэш-сумм [публичной части Vendor-X-Y, Vendor-key-M] электронной подписью криптографическим ключом Vendor-X-Y;
[182] На устройстве:
[183] Подается команда на выведение из обращения криптографического ключа корня доверия программного кода основного процессора - публичная часть Vendor- key-М;
[184] Проверяется электронная подпись запроса на основе ранее внесенного в неизменяемую память (в частном случае, в ОПП), и не выведенного из обращения криптографического ключа Vendor-X-Y;
[185] При успешной проверке - хэш-сумма Vendor- key-M помечается в неизменяемой памяти (в частном случае, в ОПП) как инвалидная путем прожига контролирующего бита.
[186] На фиг. 8 представлен примерный вариант реализации компьютерной системы в соответствии с некоторыми вариантами реализации настоящего изобретения.
[187] Компьютерная система может быть подключена (например, по сети) к другим компьютерным системам в локальной сети, интрасети, экстрасети или сети Интернет. Компьютерная система может работать в качестве сервера в сетевой среде клиент-сервер. Компьютерная система может быть персональным компьютером (PC), планшетным компьютером, ТВ-приставкой (STB), персональным цифровым помощником (PDA), мобильным телефоном или любым устройством, способным выполнять набор инструкций (последовательных или иных), определяющих действия, которые должны выполняться этим устройством. Кроме того, несмотря на то что проиллюстрирована только одна компьютерная система, термин «компьютер» также следует понимать как любую совокупность компьютеров, которые индивидуально или совместно выполняют набор (или несколько наборов) инструкций для выполнения любого одного или нескольких способов, описанных в настоящем описании.
[188] Примерная компьютерная система 400 состоит из устройства 402 обработки данных, оперативного запоминающего устройства 404 (например, постоянного запоминающего устройства (ROM), динамической памяти с произвольным доступом (DRAM), такой как синхронная динамическая память с произвольным доступом (SDRAM)), и устройства 408 хранения данных, которые взаимодействуют друг с другом через шину 422.
[189] Устройство 402 обработки данных представляет собой одно или несколько устройств обработки общего назначения, таких как микропроцессор, центральный процессор и т.п. Устройство 402 обработки данных может быть микропроцессором с полным наборов команд (CISC), микропроцессором для вычисления сокращенных наборов команд (RISC), микропроцессором с очень длинным командным словом (VLIW), процессором, реализующим другие наборы команд, или процессором, реализующим сочетание наборов команд.
[190] Устройство 402 обработки данных также может представлять собой одно или несколько устройств обработки специального назначения, таких как специализированная интегральная схема (ASIC), программируемая на месте матрица логических элементов (FPGA), цифровой сигнальный процессор (DSP), сетевой процессор и т.п.Устройство 402 обработки данных сконфигурировано для выполнения инструкций 430 с целью выполнения этапов способа 200 и системы 100, предназначенных для выполнения доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами криптографических ключей а также для выполнения любых описанных выше операций.
[191] Компьютерная система 400 может дополнительно включать сетевой интерфейс 406, устройство 412 визуального отображения (например, жидкокристаллический дисплей), буквенно-цифровое устройство 414 ввода (например, клавиатуру), устройство 416 управления курсором и устройство принятия внешнего воздействия 418. В одном варианте реализации устройство 412 визуального отображения, устройство 414 буквенно-цифрового ввода и устройство 416 управления курсором могут быть объединены в единый компонент или устройство (например, сенсорный жидкокристаллический дисплей).
[192] Устройство принятия внешнего воздействия 418 представляет собой одно или несколько устройств или датчиков для принятия внешнего воздействия. В качестве устройства принятия внешнего воздействия может выступать, например, видеокамера, микрофон, сенсорный датчик и т.п.
[193] Устройство 408 хранения данных может включать машиночитаемый носитель 410 данных, на котором хранятся инструкции 430, воплощающие любую одну или несколько методик или функций, описанных в настоящем документе (способ 200). Инструкции 430 также могут полностью или, по крайней мере, частично находиться в оперативной памяти 404 и/или на устройстве 402 обработки данных во время их выполнения компьютерной системой 400. Оперативная память 404 и устройство обработки 402 данных также представляют собой машиночитаемые носители данных. В некоторых реализациях инструкции 430 могут дополнительно передаваться или приниматься по сети 420 через сетевое интерфейсное устройство 406.
[194] Несмотря на то, что в иллюстративных примерах машиночитаемый носитель 410 данных представлен в единственном числе, термин «машиночитаемый носитель» следует понимать как включающий в себя один или несколько носителей (например, централизованную или распределенную базу данных и (или) связанные с ней кэши и серверы), в которых хранится один или несколько наборов инструкций. Термин «машиночитаемый носитель» также следует понимать как включающий в себя какой-либо носитель, способный хранить, кодировать или переносить набор инструкций для выполнения машиной и вынуждающий машину выполнять любую одну или несколько методик настоящего изобретения. Следовательно, термин «машиночитаемый носитель» должен включать, помимо прочего, твердотельные запоминающие устройства, оптические и магнитные носители данных.
[195] Несмотря на то, что операции описанных в настоящем документе способов показаны и описаны в определенном порядке, порядок операций каждого способа может быть изменен таким образом, чтобы определенные операции могли выполняться в обратном порядке или чтобы определенные операции могли выполняться по меньшей мере частично одновременно с другими операциями. В некоторых реализациях инструкции или подоперации отдельных операций могут быть прерывающимися и (или) чередующимися.
[196] Следует понимать, что приведенное выше описание является иллюстративным, а не ограничительным. Специалистам в данной области техники станут очевидны многие другие варианты реализации после прочтения и понимания, приведенного выше описания. Поэтому объем изобретения определяется со ссылкой на прилагаемую формулу изобретения, а также на полный объем эквивалентов, в отношении которых такая формула изобретения дает право предъявлять претензии.
[197] В приведенном выше описании излагаются многочисленные детали. Однако специалисту в данной области техники будет очевидно, что аспекты настоящего изобретения могут быть реализованы на практике без этих конкретных деталей. В некоторых случаях, чтобы избежать затруднения понимания настоящего изобретения, хорошо известные структуры и устройства представлены в виде блок-схемы, а не подробно.
[198] Следует отметить, что при отсутствии других конкретных указаний, как стало очевидно из последующего обсуждения, на протяжении всего описания такие термины в обсуждении, как «получение», «определение», «выбор», «хранение», «анализ» и т.п., относятся к действиям и процессам компьютерной системы или аналогичного электронного вычислительного устройства, которое манипулирует данными и преобразует данные, представленные в виде физических (электронных) величин в регистрах и памяти компьютерной системы, в другие данные, аналогичным образом представленные в виде физических величин в памяти или регистрах компьютерной системы или других таких устройствах хранения, передачи или отображения информации.
[199] Настоящее изобретение также относится к устройству для выполнения операций, описанных в настоящем документе. Это устройство может быть специально сконструировано для требуемых целей или может содержать компьютер общего назначения, избирательно активируемый или реконфигурируемый компьютерной программой, хранящейся в компьютере. Такая компьютерная программа может храниться на машиночитаемом носителе данных, например, на дисках любого типа, включая дискеты, оптические диски, компакт-диски и магнитно-оптические диски, постоянные запоминающие устройства (ROM), оперативную память (RAM), программируемые постоянные запоминающие устройства (EPROM), электронно-перепрограммируемые постоянные запоминающие устройства (EEPROM), магнитные или оптические карты или носители любого типа, пригодные для хранения электронных инструкций, каждый из которых подключен к компьютерной системной шине.
[200] Представленные в настоящем документе алгоритмы, по своей сути, не связаны с конкретным компьютером или другим устройством. Различные системы общего назначения могут использоваться с программами в соответствии с приведенными в настоящем документе положениями, либо же будет удобнее создать более специализированное устройство для выполнения требуемых этапов способа. Требуемая структура для разнообразных таких систем будет выглядеть так, как указано в описании. Кроме того, аспекты настоящего изобретения не описаны со ссылкой на конкретный язык программирования. Следует иметь в виду, что для реализации положений настоящего изобретения могут использоваться различные языки программирования, как описано в настоящем документе.
[201] Варианты реализации настоящего изобретения могут быть представлены в виде программного продукта или программного обеспечения, включающего машиночитаемый носитель с сохраненными на нем инструкциями, которые могут использоваться для программирования компьютерной системы (или других электронных устройств) с целью выполнения процесса в соответствии с настоящим изобретением. Машиночитаемый носитель включает любой механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютером). К примеру, машиночитаемый (например, читаемый компьютером) носитель включает машиночитаемый (например, читаемый компьютером) носитель информации (например, постоянное запоминающее устройство (ROM), оперативную память (RAM), носитель информации на магнитных дисках, оптический носитель информации, устройства флэш-памяти).
[202] Слова «пример» или «приведенный в качестве примера» в настоящем документе означают пример, случай или иллюстрацию. Любой аспект или решение, описанные в настоящем документе как «пример» или «приведенный в качестве примера», необязательно должны рассматриваться как предпочтительный или преимущественный по сравнению с другими аспектами или решениями. Скорее, использование слов «пример» или «приведенный в качестве примера» предназначено для представления концепций с практической точки зрения. При использовании в настоящей заявке термин «или» предназначен для обозначения включающего «или», а не исключающего «или». Кроме того, использование термина «реализация», «один вариант реализации», «пример реализации» или «один пример реализации» во всем тексте не означает один и тот же вариант или пример реализации, если только они не описаны как таковые. Кроме того, термины «первый», «второй», «третий», «четвертый» и схожее, используемые в настоящем документе, предназначены для обозначения различных элементов и необязательно имеют порядковое значение в соответствии с их числовым обозначением.
[203] В то время как многие изменения и модификации изобретения без сомнения станут очевидными для специалиста, обладающего обычной квалификацией в данной области техники, после прочтения приведенного выше описания следует понимать, что любой конкретный вариант реализации, показанный и описанный в качестве иллюстрации, никоим образом не должен рассматриваться как ограничивающий.
[204] Поэтому ссылки на детали различных вариантов реализации не предназначены для ограничения объема формулы изобретения, которая сама по себе содержит только признаки, рассматриваемые как раскрытие изобретения.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО МОБИЛЬНОЙ СВЯЗИ И СПОСОБ РАБОТЫ С НИМ | 2014 |
|
RU2673969C2 |
СПОСОБ АВТОРИЗАЦИИ ОПЕРАЦИИ, ПРЕДНАЗНАЧЕННОЙ ДЛЯ ВЫПОЛНЕНИЯ НА ЗАДАННОМ ВЫЧИСЛИТЕЛЬНОМ УСТРОЙСТВЕ | 2014 |
|
RU2675902C2 |
УСТРОЙСТВО МОБИЛЬНОЙ СВЯЗИ И СПОСОБ РАБОТЫ С НИМ | 2014 |
|
RU2672712C2 |
СПОСОБ ФОРМИРОВАНИЯ ЭЛЕКТРОННОГО ДОКУМЕНТА | 2012 |
|
RU2527731C2 |
СИСТЕМА И СПОСОБ ПОПОЛНЕНИЯ БАЗЫ ДАННЫХ ДОВЕРЕННЫХ СЕРТИФИКАТОВ, ИСПОЛЬЗУЮЩЕЙСЯ ПРИ АНТИВИРУСНОЙ ПРОВЕРКЕ | 2014 |
|
RU2571381C1 |
СИСТЕМА И СПОСОБ АНТИВИРУСНОЙ ПРОВЕРКИ В ЗАВИСИМОСТИ ОТ УРОВНЯ ДОВЕРИЯ СЕРТИФИКАТА | 2014 |
|
RU2571382C1 |
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИЩЕННОЙ НАЧАЛЬНОЙ ЗАГРУЗКИ ОПЕРАЦИОННОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ ПРОВЕРКИ СОСТОЯНИЯ | 2005 |
|
RU2413295C2 |
Способ удаленной загрузки комплекта ключей в смарт-терминал | 2019 |
|
RU2724793C1 |
ЗАЩИЩЕННЫЕ ЗАГРУЗКА И ХРАНЕНИЕ ДАННЫХ В УСТРОЙСТВЕ ОБРАБОТКИ ДАННЫХ | 2005 |
|
RU2408071C2 |
СПОСОБ ОБМЕНА ЗАЩИЩЕННЫМИ ДАННЫМИ | 2017 |
|
RU2659730C1 |
Изобретение относится к способу, машиночитаемому носителю данных и системе доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей. Технический результат заключается в обеспечении безопасной загрузки устройства от стартового загрузчика до операционной системы (ОС), защищенной от несанкционированных действий. Система содержит два изолированных модуля исполнения программного кода, размещенные на кристалле процессора – изолированный домен безопасности и по крайней мере один основной процессор, исполняющий код загрузчиков, образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, при этом загрузка содержит N этапов, на которых можно выделить первый, (N-2) – промежуточных этапов и последний этап, при этом на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении; изолированный домен безопасности и основной процессор выполнены с возможностью обмена данными, в том числе для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП) посредством интерфейса взаимодействия; энергонезависимая память выполнена с возможностью хранения иерархии загрузчиков, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II); оперативная память выполнена с возможностью загрузки, по меньшей мере, одного загрузчика в иерархии загрузчиков из энергонезависимой памяти, изолированный домен безопасности содержит программный код, обращаясь к которому осуществляют проверку этого загрузчика аппаратными средствами, через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом в ОПП содержится информация о ключах, которая предназначена для определения валидности ключа, загрузчик выполнен с возможностью передачи ему управления, в случае его успешной проверки, в ходе которой, в ответ на то, что ключ валиден, осуществляется проверка подписи образа; образ следующего, по меньшей мере, одного загрузчика выполнен с возможностью разбора посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП, в ответ на то, что хэш не найден, проверка подлинности считается не пройденной, в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной, в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной, проверенный, по меньшей мере, следующий загрузчик из иерархии загрузчиков выполнен с возможностью передачи ему управления в ответ на то, что проверка подписи завершилась успешно, в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается; предыдущий загрузчик выполнен с возможностью верификации каждого, по меньшей мере, следующего загрузчика в иерархии загрузчиков с использованием активного ключа промежуточного этапа; образ ОС содержит цифровой сертификат, сформированный подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа; образ ОС выполнен с возможностью проверки, используя цифровой сертификат и активный ключ промежуточного этапа. 3 н. и 13 з.п. ф-лы, 8 ил.
1. Способ доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей
включает следующие шаги: осуществляют загрузку электронно-вычислительной машины (ЭВМ), содержащей по крайней мере один процессор, исполняющий код загрузчиков и образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, причем загрузка состоит из N этапов, в которых можно выделить первый, (N-2) – промежуточных этапов и последний этап;
формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар асимметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в изменяемой памяти в виде цифрового сертификата (тип II), причем на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
при внесении криптографического ключа на этап он становится корнем доверия для этого и последующих этапов;
загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика, определяют валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,
в ответ на то, что ключ валиден, осуществляют проверку подписи образа, в случае успешной проверки такому загрузчику передается управление;
осуществляют разбор образа следующего, по меньшей мере, одного загрузчика, посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,
в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;
выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;
проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.
2. Способ по п. 1, отличающийся тем, что первый ключ первого этапа может быть единственным корнем доверия для этого и последующих этапов.
3. Способ по п. 1, отличающийся тем, что для каждого этапа может быть свой криптографический ключ, который является корнем доверия для этого этапа.
4. Способ по п. 1, отличающийся тем, что проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами.
5. Способ по п. 1, отличающийся тем, что ключи могут записываться в сжатом или полном представлении.
6. Способ по п. 5, отличающийся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
7. Способ по п. 6, отличающийся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
8. Система доверенной загрузки устройства с возможностью заверения разных этапов загрузки несколькими независимыми владельцами ключей, содержащая два изолированных модуля исполнения программного кода, размещенные на кристалле процессора – изолированный домен безопасности и по крайней мере один основной процессор, исполняющий код загрузчиков, образ ОС, постоянное запоминающее устройство (ПЗУ), код в ПЗУ процессора, однократно программируемую память (ОПП), неизменяемую память, при этом загрузка содержит N этапов: на которых можно выделить первый, (N-2) – промежуточных этапов и последний этап, при этом на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам, где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
изолированный домен безопасности и основной процессор выполнены с возможностью обмена данными, в том числе для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП) посредством интерфейса взаимодействия;
энергонезависимая память выполнена с возможностью хранения иерархии загрузчиков, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);
оперативная память выполнена с возможностью загрузки, по меньшей мере, одного загрузчика в иерархии загрузчиков из энергонезависимой памяти, изолированный домен безопасности содержит программный код, обращаясь к которому осуществляют проверку этого загрузчика аппаратными средствами через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом в ОПП содержится информация о ключах, которая предназначена для определения валидности ключа,
загрузчик выполнен с возможностью передачи ему управления, в случае его успешной проверки, в ходе которой, в ответ на то, что ключ валиден, осуществляется проверка подписи образа;
образ следующего, по меньшей мере, одного загрузчика выполнен с возможностью разбора посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
проверенный, по меньшей мере, следующий загрузчик из иерархии загрузчиков выполнен с возможностью передачи ему управления в ответ на то, что проверка подписи завершилась успешно,
в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
предыдущий загрузчик выполнен с возможностью верификации каждого, по меньшей мере, следующего загрузчика в иерархии загрузчиков с использованием активного ключа промежуточного этапа;
образ ОС содержит цифровой сертификат, сформированный, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа;
образ ОС выполнен с возможностью проверки, используя цифровой сертификат и активный ключ промежуточного этапа.
9. Система по п. 8, отличающаяся тем, что проверка загрузчика в иерархии загрузчиков может осуществляться аппаратно-программными средствами.
10. Система по п. 8, отличающаяся тем, что ключи могут записываться в сжатом или полном представлении.
11. Система по п. 10, отличающаяся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
12. Система по п. 11, отличающаяся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
13. Постоянный машиночитаемый носитель данных, содержащий машиночитаемые инструкции, выполняемые процессором компьютера и предназначенные для исполнения способа доверенной загрузки устройства с механизмом разделения функций заверения этапов загрузки между несколькими владельцами ключей,
в котором на кристалле процессора размещены два изолированных модуля исполнения программного кода – изолированный домен безопасности и основной процессор, исполняющий код загрузчиков, образ ОС, однократно программируемая память (ОПП), неизменяемая память, при этом загрузка содержит N этапов, содержащий этапы, на которых:
можно выделить первый, (N-2) – промежуточных этапов и последний этап;
на каждом этапе для заверения могут использоваться ключи, принадлежащие разным владельцам,
где первый ключ первого этапа вносится исключительно доверенным образом в неизменяемую память, а остальные ключи типа I первого этапа, ключи типа I промежуточного и последнего этапов могут быть внесены в заверенном контейнере, содержащем электронную подпись, которая проверяется только при внесении;
обращаются с помощью основного процессора к изолированному домену безопасности посредством интерфейса взаимодействия для работы с ключевой информацией: хэш-суммой ключа, формирующей корень доверия, размещенной в однократно программируемой памяти (ОПП);
формируют иерархию загрузчиков, которые хранятся в энергонезависимой памяти, где каждому этапу загрузки соответствует одна или несколько пар ассиметричных криптографических ключей, при этом закрытый ключ пары применяется при заверении, а открытый задействуется при верификации заверения, где открытые криптографические ключи могут быть: размещенными в неизменяемой памяти (тип I) или размещенными в виде цифрового сертификата (тип II);
загружают, по меньшей мере, один загрузчик в иерархии загрузчиков из энергонезависимой в оперативную память, осуществляют проверку этого загрузчика аппаратными средствами, обращаясь к программному коду изолированного домена безопасности через интерфейс взаимодействия между изолированным доменом безопасности и процессором, определяя валидность ключа, который содержится в образе загрузчика, при этом валидность ключа определяется на основе информации о ключах, содержащейся в ОПП,
в ответ на то, что ключ валиден, осуществляется проверка подписи образа, в случае успешной проверки такому загрузчику передается управление;
осуществляют разбор образа следующего, по меньшей мере, одного загрузчика посредством предыдущего загрузчика, путем считывания его подписи и публичного ключа, вычисляют хэш этого ключа и проверяют наличие такого хэша в ОПП,
в ответ на то, что хэш не найден, проверка подлинности считается не пройденной,
в ответ на то, что хэш найден в ОПП, проверяют, установлен ли в ОПП признак отозванности этого ключа, в ответ на то, что ключ отозван, проверка подлинности считается не пройденной,
в ответ на то, что ключ находится в обращении, выполняется проверка подписи образа на публичном ключе, в случае, когда проверка подписи завершилась ошибкой, проверка подлинности считается не пройденной,
в ответ на то, что проверка подписи завершилась успешно, управление передается проверенному, по меньшей мере, следующему загрузчику из иерархии загрузчиков,
в ответ на то, что проверка подлинности считается не пройденной, процесс загрузки прекращается;
верифицируют каждый, по меньшей мере, следующий загрузчик в иерархии загрузчиков с помощью предыдущего загрузчика с использованием активного ключа промежуточного этапа;
выпускают образ ОС, подписанный ключом последнего этапа, где ключ последнего этапа подписывается активным ключом промежуточного этапа, формируя цифровой сертификат, который сопровождает образ ОС;
проверяют образ ОС, используя цифровой сертификат и активный ключ промежуточного этапа.
14. Постоянный машиночитаемый носитель по п. 13, отличающийся тем, что ключи могут записываться в сжатом или полном представлении.
15. Постоянный машиночитаемый носитель по п. 14, отличающийся тем, что ключи I типа могут быть в двух состояниях: действующие – активные или выведенные из обращения – неактивные, при этом переход между состояниями возможен только из состояния активного в неактивное.
16. Постоянный машиночитаемый носитель по п. 15, отличающийся тем, что ключи типа II поставляются в цифровом сертификате, который заверен ключом типа I или II предыдущего уровня, при этом ключи типа II не имеют возможности заверять ключи того же уровня, на котором находятся сами.
СИСТЕМА И СПОСОБ ДЛЯ ЗАЩИЩЕННОЙ НАЧАЛЬНОЙ ЗАГРУЗКИ ОПЕРАЦИОННОЙ СИСТЕМЫ С ИСПОЛЬЗОВАНИЕМ ПРОВЕРКИ СОСТОЯНИЯ | 2005 |
|
RU2413295C2 |
СИСТЕМА И СПОСОБ ПРОВЕРКИ ПОДЛИННОСТИ ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫХ ИСПОЛНЯЕМЫХ ОБРАЗОВ | 2000 |
|
RU2258252C2 |
СПОСОБ ЗАГРУЗКИ КОДА ПО МЕНЬШЕЙ МЕРЕ ОДНОГО ПРОГРАММНОГО МОДУЛЯ | 2011 |
|
RU2557459C2 |
ЗАЩИЩЕННЫЕ ЗАГРУЗКА И ХРАНЕНИЕ ДАННЫХ В УСТРОЙСТВЕ ОБРАБОТКИ ДАННЫХ | 2005 |
|
RU2408071C2 |
ЗАЩИЩЕННАЯ ЗАГРУЗКА И КОНФИГУРИРОВАНИЕ ПОДСИСТЕМЫ С НЕЛОКАЛЬНОГО ЗАПОМИНАЮЩЕГО УСТРОЙСТВА | 2011 |
|
RU2542930C2 |
EP 3259698 A1, 27.12.2017 | |||
US 8688967 B2, 01.04.2014 | |||
EP 3575999 A1, 04.12.2019 | |||
Электромагнитный прерыватель | 1924 |
|
SU2023A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
EP 2854066 A1, 01.04.2015 | |||
JP |
Авторы
Даты
2023-11-24—Публикация
2023-04-28—Подача