Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
Иллюстрации
Показать всеИзобретение относится к обработке запросов и передаче данных в рамках интегрированной системы. Техническим результатом является расширение функциональных возможностей. Способ обеспечения защищенного режима работы интегрированной системы с несколькими уровнями программного обеспечения заключается в расшифровке кода инициализации, аутентификации программного обеспечения следующего уровня и ограничении возможности программного обеспечения этого следующего уровня по изменению рабочей характеристики системы. Способ инициализации защищенного режима работы указанной системы заключается в генерировании по меньшей мере одного ключа, загрузке начального кода, повторной инициализации системы. Способ перевода данных заключается в шифровании данных с использованием первого набора ключей, в расшифровке, повторном шифровании с использованием второго набора ключей, изменении по меньшей мере одной рабочей характеристики, связанной со средством управления доступом к данным. Способ восстановления функциональности интегрированной системы заключается в блокировке доступа к имеющимся в интегрированной системе защищенному коду и данным и обеспечении полного восстановления функциональности этой системы. 4 н. и 25 з.п. ф-лы, 16 ил.
Реферат
Настоящее изобретение в целом относится к обработке запросов на получение данных и передаче данных в рамках интегрированной системы, более точно к способам инициализации, поддержания, обновления и восстановления защищенного режима работы интегрированной системы, которые по меньшей мере частично реализуются при помощи имеющегося в интегрированной системе средства управления доступом к данным.
В настоящее время принято объединять несколько ведущих (активных) устройств системы на общей микросхеме, т.е. чипе или кристалле. При начальной разработке структуры объединения множества дискретных компонентов на общей микросхеме может возникнуть проблема доступа к внешним устройствам. Например, в системах видеодекодирования MPEG для различных областей данных часто используется внешняя память или буферы, такие как кадровые буферы. Такую внешнюю память обычно реализуют на основе технологии DRAM (динамическая оперативная память) или SDRAM (синхронная динамическая память).
Существуют два стандартных принципа обеспечения доступа к внекристальной памяти. В первом случае каждый внутрикристальный функциональный модуль или устройство получает доступ к требуемому внешнему устройству или устройствам через шину данных, закрепленную конкретно за этим устройством. Несмотря на то, что данное решение эффективно в локальном случае осуществления доступа к внешнему устройству, оно малоэффективно в целом в рамках интегрированной системы. Например, несмотря на то, что каждая функция имеет полный доступ к области собственной внешней памяти, для нескольких функций интегрированной системы коллективный доступ не предусмотрен. В связи с этим часто приходится осуществлять передачу данных из одной области памяти системы в другую. Очевидно, что при этом увеличивается объем передаваемых данных и ухудшается работа всей системы по сравнению с системой, имеющей совместно используемую память.
Второе решение заключается в использовании в интегрированной системе одной общей шины, при помощи которой один или несколько функциональных модулей системы могут связываться с внешними устройствами через единый порт. Несмотря на то, что при этом обеспечивается коллективный доступ к устройствам, недостатком данного решения является сложность управления доступом к содержанию или другим уязвимым данным интегрированной системы. Например, при использовании в интегрированной системе общего пула памяти большого объема становится сложно предотвращать несанкционированный доступ к защищенным областям памяти, таким как сжатые данные, поступившие из транспортного демультиплексора в декодер телевизионной приставки. Это особенно относится к системе с открытым интерфейсом программирования, в которой поощряется внешняя разработка. Каждый из ведущих функциональных модулей должен иметь возможность доступа к области памяти, при этом невозможно отличить, осуществляется ли доступ проверенным ведущим устройством или в результате внешнего запроса, например, поступающего через непроверенное или открытое ведущее устройство.
Кроме того, при работе с интегрированной на кристалле системой, имеющей несколько ведущих функциональных устройств, имеющих доступ к совместно используемой памяти, желательно обеспечить механизм защиты данных от несанкционированного доступа, в особенности, если такие данные представляют собой код системного программирования устройства. В частности, создание условий для инициализации защищенной операционной среды начинается с обеспечения защиты системного кода и выполнения им заданных функций. Таким образом, для обеспечения защищенной операционной среды интегрированную систему следует запустить или загрузить в защищенном режиме.
Ввиду вышеизложенного, в области совершенствования управления доступом к данным существует ряд задач, требующих решения. В частности, это задача создания способов инициализации, поддержания, обновления и восстановления защищенного режима работы интегрированной системы.
Для преодоления недостатков уровня техники и получения дополнительных преимуществ предложен способ обеспечения защищенного режима работы интегрированного устройства, имеющего несколько уровней программного обеспечения. Согласно предложенному способу инициализацию системы начинают расшифрованием хранящегося зашифрованного кода инициализации, причем расшифрование выполняют при помощи имеющегося в интегрированной системе средства управления доступом к данным, перед передачей управления интегрированной системой программному обеспечению следующего уровня аутентифицируют программное обеспечение этого следующего уровня и ограничивают возможности программного обеспечения указанного следующего уровня по изменению рабочей характеристики интегрированной системы, причем указанное ограничение осуществляют указанным средством управления доступом к данным, реализованным аппаратно.
Еще одним объектом изобретения является способ инициализации защищенного режима работы интегрированной системы. Этот способ заключается в том, что для интегрированной системы генерируют по меньшей мере один ключ, в интегрированную систему загружают начальный код, причем во время записи начального кода интегрированной системой в память начальный код автоматически зашифровывают внутри интегрированной системы с использованием по меньшей мере одного сгенерированного ключа и с помощью имеющегося в интегрированной системе средства управления доступом к данным, и повторно инициализируют (переинициализируют) интегрированную систему, используя зашифрованный начальный код, при этом инициализацию системы начинают автоматическим расшифрованием хранящегося зашифрованного начального кода, выполняемым указанным средством управления доступом к данным.
Также предлагается способ перевода данных, зашифрованных с использованием первого набора ключей, в данные, зашифрованные с использованием второго набора ключей. Согласно этому способу данные, зашифрованные с использованием первого набора ключей, расшифровывают, расшифрованные данные повторно зашифровывают с использованием второго набора ключей при помощи имеющегося в интегрированной системе средства управления доступом к данным и изменяют по меньшей мере одну рабочую характеристику, связанную со средством управления доступом к данным и постоянно хранящуюся в таблице доступа, используемой средством управления доступом к данным, при этом в таблицу доступа вносят изменения для указания того, что зашифрованные данные, находящиеся по текущему адресу, должны быть расшифрованы с использованием первого набора ключей и повторно зашифрованы с использованием второго набора ключей при сохранении по новому адресу. Целесообразно, чтобы в результате повторного шифрования при помощи средства управления доступом к данным шифрование данных для интегрированной системы было уникальным и однозначно определяющим интегрированную систему.
Предлагается также способ восстановления функциональности - или функциональных возможностей - интегрированной системы после инициирующего события. Согласно этому способу в ответ на инициирующее событие блокируют доступ к имеющимся в интегрированной системе защищенному коду и данным, таким образом автоматически устанавливая в интегрированной системе пониженный уровень функциональности, и обеспечивают полное восстановление функциональности интегрированной системы путем использования избирательной процедуры восстановления для повторной инициализации интегрированной системы, таким образом восстанавливая доступ к защищенному коду и данным интегрированной системы, причем процедура восстановления включает загрузку в интегрированную систему незашифрованного кода инициализации, включающего в себя код восстановления и инициализации, выполнение кода восстановления и инициализации с получением мастер-ключа и заменяющего адреса кода инициализации, шифрование кода восстановления и инициализации мастер-ключом и сохранение зашифрованного кода инициализации по заменяющему адресу кода инициализации и повторную инициализацию интегрированной системы с использованием кода инициализации, сохраненного по заменяющему адресу кода инициализации.
В описании также раскрыты системы и программные продукты, соответствующие перечисленным выше способам.
Описанные способы обеспечения защищенного режима работы могут эффективно использоваться для инициализации, поддержания, обновления и/или восстановления защищенной операционной среды для интегрированной системы. В частности, предложенные способы обеспечивают возможность ограничивать обновления рабочих характеристик, которые поддерживают при помощи средства управления доступом к данным. Рабочими характеристиками могут быть одна или несколько следующих характеристик: набор ключей, таблица доступа, уровень доступа и параметры доступа, используемые различными уровнями программного обеспечения (ПО) интегрированной системы. Такая возможность ограничивать обновления позволяет создавать различные уровни ПО с иерархическим распределением полномочий.
Представленные способы также обеспечивают возможность безопасным образом осуществлять соответствующие обновления, в том числе с использованием номеров версий, что позволяет избежать воспроизведения более ранней версии ПО или других данных. Также обеспечена возможность перевода данных из состояния, зашифрованного первым набором ключей, в состояние, зашифрованное вторым набором ключей, в рамках процесса управления ключами и/или для импорта защищенных данных из других систем. Кроме того, описана возможность обеспечения уровня функциональности интегрированной системы, несмотря на то, что система вошла в режим работы, инициированный несанкционированным вмешательством. В частности, предусмотрены автоматическое ограничение функциональности с блокированием доступа к секретным данным и приложениям, а также механизм восстановления функциональности с ограниченной зависимостью от канала обслуживания.
В предложенных способах также реализованы дополнительные признаки и преимущества. Другие подробно описанные варианты осуществления и особенности изобретения рассматриваются как часть заявленного изобретения.
Техническое решение, рассматриваемое как изобретение, детально охарактеризовано и четко изложено в формуле изобретения, следующей за описанием. Перечисленные выше и прочие объекты, признаки и преимущества изобретения наглядно иллюстрируются приведенным ниже подробным описанием, сопровождаемом приложенными чертежами, на которых:
на фиг.1 проиллюстрирован пример стандартного интегрированного устройства, в котором используется доступ к общей памяти через подсистему памяти,
на фиг.2 - вариант средства управления доступом, реализованного в соответствии с изобретением в подсистеме защищенной памяти интегрированного устройства,
на фиг.3 - проблема, распознанная и решаемая в соответствии с изобретением при помощи описанных способов обеспечения защищенного режима работы,
на фиг.4 - вариант осуществления способа в соответствии с изобретением, обеспечивающего защищенный режим работы интегрированного устройства с несколькими уровнями ПО,
на фиг.5 - вариант осуществления процесса в соответствии с изобретением с применением проиллюстрированного на фиг.4 способа применительно к таблице доступа, связанной с имеющимся в интегрированной системе средством управления доступом к данным,
на фиг.6 - вариант осуществления процесса загрузки кода в интегрированную систему в соответствии с изобретением,
на фиг.7А - пример процесса первоначального сохранения зашифрованного кода начальной загрузки в интегрированной системе в соответствии с изобретением,
на фиг.7Б - пример процесса копирования зашифрованного кода, сохраненного проиллюстрированным на фиг.7А способом, в соответствии с изобретением из энергозависимой памяти в энергонезависимую память,
на фиг.8 - вариант выполнения аутентификации уровней ПО и передачи управления от одного уровня ПО другому, а также обновления кода начальной загрузки при наличии, или доступности, новой версии кода начальной загрузки в соответствии с изобретением,
на фиг.9 - вариант передачи сигналов инициализации между компонентами интегрированной системы в соответствии с изобретением, когда средство управления доступом находится в безопасном состоянии,
на фиг.10 - вариант осуществления процесса безопасного обновления уровня ПО в соответствии с изобретением в интегрированной системе, имеющей несколько уровней ПО,
на фиг.11 - вариант осуществления процесса управления ключами и обновления набора ключей, используемого имеющимся в интегрированной системе средством управления доступом к данным в соответствии с изобретением,
на фиг.12А - вариант осуществления процесса приема зашифрованных данных для сохранения в интегрированной системе в соответствии с изобретением,
на фиг.12Б - вариант осуществления процесса извлечения сохраненных зашифрованных данных, проиллюстрированных на фиг.12А, и расшифрования данных в соответствии с изобретением программными средствами с использованием защищенного кода,
на фиг.12В - вариант осуществления процесса повторного шифрования расшифрованных данных в соответствии с изобретением аппаратными средствами управления доступом для сохранения в защищенной памяти, и
на фиг.13 - вариант осуществления процесса восстановления функциональности интегральной схемы после инициирующего события несанкционированного доступа, возникшего в вычислительной среде интегрированной системы в соответствии с изобретением.
На фиг.1 показано обычное интегрированное устройство, в целом обозначенное позицией 100, имеющее множество внутренних функциональных ведущих устройств 1101, 1102, 1103...110n. Ведущее устройство 1101 представляет собой процессор, который имеет ядро 112 и диспетчер 114 памяти. В рассматриваемом примере внутренние ведущие устройства 1101, 1102, 1103...110n связаны с подсистемой 120 памяти, включающей логический узел 130 управления общей шиной. Для специалистов в данной области техники ясно, что логический узел 130 управления общей шиной, показанный в подсистеме памяти, в качестве альтернативы может находиться вне подсистемы 120.
Логический узел 130 управления общей шиной координирует и централизует запросы, обращенные к подчиненным компонентам в интегрированном устройстве. Например, первый подчиненный компонент может представлять собой контроллер 140 внешней шины, соединенный с внешней энергонезависимой памятью 150, такой как флэш-память, которая имеет открытую область 155. Второй подчиненный компонент, а именно, контроллер 160 памяти соединен с внешней энергозависимой памятью 170, такой как SDRAM (синхронная динамическая память) или DRAM (динамическая оперативная память). Память 170 имеет открытую область 175. В целом, с целью минимизировать затраты и облегчить обмен данными между функциональными устройствами в рассматриваемой интегрированной конструкции предусмотрено совместное использование ими общего пула памяти. Все внутренние ведущие функциональные устройства как таковые имеют равный доступ к энергонезависимой и энергозависимой памяти, при этом оба пространства памяти помечены как открытые, что означает отсутствие ограничений на доступ к данным.
Как правило, энергонезависимую память используют для постоянного хранения, когда данные должны сохраняться даже в случае прекращения электропитания. В такой памяти может храниться код начальной загрузки, рабочий код, такой как операционная система и драйверы, а также любые постоянные структуры данных. Энергозависимую память используют для хранения данных, привязанных к сеансу, и обычно в ней хранятся данные прикладных программ, а также структуры данных других ведущих устройств. Поскольку энергозависимая память отличается большим быстродействием, чем энергонезависимая память, обычно рабочий код переносят в энергозависимую память, откуда во время работы интегрированного устройства выполняют команды.
Следует отметить, что стандартная система, например, проиллюстрированная на фиг.1, подвержена ряду угроз безопасности. В частности:
1. На поведение процессора можно влиять, изменяя рабочий код или структуры данных, при этом внутренние данные или работа системы могут подвергнуться опасности.
2. В определенных случаях, например, в случае контроллера системы связи и т.п., внутренним ведущее устройство может работать под управлением внешнего источника и использоваться для компрометации внутреннего кода или данных, поскольку память используется совместно.
3. Для изменения поведения процессора или слежения за ним могут использоваться инструментальные средства отладки и разработки, применяемые для разработки ПО.
4. Одно ведущее устройство может непреднамеренно нарушить или подвергнуть опасности работу другого внутреннего ведущего устройства, поскольку память используется совместно.
В качестве решения проблемы борьбы с вышеназванными угрозами безопасности в настоящем изобретении предлагается использовать средство управления доступом, расположенное на пути прохождения данных между устройством управления шиной и подчиненными устройствами. Такое средство управления доступом может использовать (в одном варианте осуществления) характеристики внутренней шины, соединяющей функциональные ведущие устройства и подчиненные устройства, что позволяет дополнительно оценивать каждый запрос доступа к ресурсам системы на основе набора защищенной управляющей информации и при необходимости отклонять его. Достоинством изобретения является то, что такое средство управления доступом позволяет дифференцировать обращения, посредством которых ведущее устройство запрашивает данные, а также области сохранения данных и затем соответственно разрешать или ограничивать доступ, или же квалифицировать право доступа иным образом. Также описаны дополнительные функциональные возможности управления доступом согласно другим особенностям настоящего изобретения.
На фиг.2 проиллюстрирован вариант системы, в целом обозначенной позицией 200, которая в соответствии с изобретением имеет средство 240 управления доступом. В системе 200 также имеется несколько функциональных ведущих устройств 2101-210n, которые посредством устройства 230 управления шиной поддерживают связь с одним или несколькими подчиненными устройствами 250 и 270. В данном случае средство 240 управления доступом включена в канал передачи данных между устройством 230 управления шиной и подчиненными устройствами 250 и 270. В другом варианте устройство 230 управления шиной может располагаться вне подсистемы защищенной памяти. В частности, показано, что первое подчиненное устройство представляет собой контроллер 250 внешней шины, а второе подчиненное устройство представляет собой контроллер 270 памяти. В данном случае устройство управления шиной, средство управления доступом и внешние контроллеры в целом образуют подсистему 220 защищенной памяти. Таким образом, внешнее адресное пространство, обозначенное как энергонезависимая память 260 и энергозависимая память 280, может быть дополнительно разделено на открытую область 262 и защищенную область 264, а также открытую область 282 и защищенную область 284, соответственно. Используемый в данном контексте термин "защищенная" подразумевает, что ведущие устройства 2101-210n имеют доступ лишь к пространству, определенному средством 240 управления доступом. Следует учесть, что средство управления доступом контролирует все обращения к открытой и защищенной областям памяти.
Подробное описание функции устройства 240 по управлению доступом включено в упомянутую выше заявку "Control Function Employing a Requesting Master ID and a Data Address to Qualify Data Access Within an Integrated System", которая путем ссылки включена в данное описание. Кроме того, в упомянутой заявке подробно описано использование таблицы 248 доступа и функции шифрования/расшифрования 249 при оценке, или классификации, запросов на получение данных на основании уровня доступа запрашивающего данные функционального ведущего устройства и адреса запрошенных данных.
Вкратце, запрос от ведущего устройства, которому передано управление устройством управления шиной, направляется в устройство управления доступом вместе с запрошенным адресом и соответствующими управляющими командами (например, считывания или записи и т.д.). Средство управления доступом использует таблицу доступа для сравнения запрошенного адреса, идентификатора ведущего устройства и индикатора считывания или записи с описанием мандата на разрешение доступа для этого ведущего устройства. Данный запрос может быть заблокирован (отменен), удовлетворен с разрешением открытой передачи данных или удовлетворен с обязательным шифрованием/расшифрованием данных. Если запрошенная передача данных возможна, подчиненным устройствам через шину направляются сигналы, а в устройство шифрования/расшифрования - соответствующие запросу параметры доступа, основанные на таблице доступа, если шифрование/расшифрование предусмотрено. Устройство шифрования/расшифрования может использоваться для зашифрования записываемых данных при передаче данных заданному подчиненному устройству или для расшифрования считываемых данных при возврате данных из заданного подчиненного устройства с использованием соответствующих параметров доступа.
Помимо функций оценки классификации доступа к данным на основе идентификатора запрашивающего ведущего устройства и адреса запроса в упомянутой выше заявке "Control Function with Multiple Security States for Facilitating Secure Operation of an Integrated System", также описана идея дополнения средства управления доступом устройством 242 обеспечения безопасного состояния, например, для управления функционированием таблицы 248 доступа и функции шифрования/расшифрования 249. В сочетании с устройством 242 обеспечения безопасного состояния также используется внутрикристальная память 243, в которой хранится заменяющий адрес кода начальной загрузки и набор 246 мастер-ключей. Такая память является постоянной в том смысле, что значения сохраняются в ней даже при отключении электропитания. Таким образом, после инициализации эти значения могут использоваться из сеанса в сеанс до тех пор, пока они не будут переустановлены или стерты с изменением безопасного состояния, как это описано ниже.
Устройство обеспечения безопасного состояния средства управления доступом к данным может обеспечивать одно из нескольких возможных безопасных состояний, включая нулевое состояние и безопасное состояние. В безопасном состоянии устройство управления заменяет стандартный адрес кода начальной загрузки, соответствующий запросу на получение кода начальной загрузки, заменяющим адресом кода начальной загрузки. Заменяющий адрес кода начальной загрузки содержит зашифрованную версию кода начальной загрузки, которую затем расшифровывает устройство управления, используя набор мастер-ключей, хранящийся в постоянной памяти. В нулевом состоянии набор мастер-ключей стирается.
В упомянутой ранее заявке "Control Function Implementing Selective Transparent Data Authentication Within an Integrated System" описана концепция объединения функции управления с функцией избирательной аутентификации запрошенных данных с целью дальнейшего усовершенствования описанного выше управления доступом к данным. Такая избирательная аутентификация может быть прозрачной для функционального ведущего устройства интегрированной системы, инициирующей запрос на получение данных.
Запрошенные данные могут представлять собой код или данные, в зашифрованном виде хранящиеся во внешней памяти. (Следует отметить, что в некоторых случаях, включая формулу изобретения, термин "данные" используется в обобщающем смысле и означает код или данные.) Хотя возможности по шифрованию данных, имеющиеся у описанного выше средства управления доступом к данным, и не позволяют напрямую просматривать и изменять данные, функция проверки целостности дополнительно позволяет удостовериться в том, что зашифрованные значения являются теми же значениями, которые были первоначально записаны в память.
В одном из вариантов предусмотрено, что функция проверки целостности в соответствии с изобретением действует в сочетании с таблицей доступа и параметрами доступа, описанными в упомянутых заявках. Для указания диапазонов адресов, которые должны соответствовать данным, прошедшим аутентификацию, может использоваться дополнительный параметр, содержащийся в таблице доступа. Функция 245 проверки целостности на основе запроса на передачу данных определяет местоположение признаков целостности в памяти, а также вычисляет и сравнивает признаки целостности, как это описано ниже.
Вкратце, процессы можно разделить на шаги, выполняемые до и после запоминания, например:
До запоминания
- Генерирование первого контрольного признака целостности, представляющего собой математически сжатую версию данных, подлежащих защите и аутентификации.
- Шифрование данных и первого контрольного признака целостности.
- Сохранение зашифрованного признака целостности и зашифрованных данных в памяти.
После запоминания
- Извлечение из памяти и расшифрование признака целостности и зашифрованных данных.
- Генерирование второго контрольного признака целостности при помощи функции, использованной для генерирования первого контрольного признака целостности.
- Сравнение первого и второго контрольных признаков целостности. В случае их совпадения данные признаются аутентичными. В противном случае данные искажены и требуются корректирующие действия. Как возможный вариант, функция 245 проверки целостности может использоваться в сочетании с описанными ниже усовершенствованными концепциями защищенного режима работы интегрированной системы.
На фиг.3 отображены уровни ПО, используемого в типовом интегрированном устройстве. В частности, показано, что ПО различных уровней действует на основе аппаратного обеспечения 300 устройства. При начальном включении устройства происходит запуск кода 310 начальной загрузки и инициализация функций с использующих данных 312 инициализации (начальных условий). После инициализации код начальной загрузки вызывает ядро 320, обобщенно обозначенное как уровень 1. Ядро 320 обеспечивает сервисные средства и ресурсы операционной системы, включая общие установки 322 системы и данные 324 системного реестра. Затем последовательно вызывается один или несколько уровней ПО, включая промежуточное ПО и служебные функции 330, такие как сетевые услуги, управление файлами, манипулирование мультимедийными средствами и т.д., для приведения в действие которых используются средства управления доступом к программному обеспечению или пароли 332 либо ключи 334. Прикладное ПО 340 расположено над уровнем 330 промежуточного ПО и служебного ПО и приводится в действие при помощи пользовательских данных, таких как личная информация 342 и другое содержимое 344 (т.н. контент).
На фиг.3 проиллюстрирован принцип обеспечения защиты интегрированного устройства или системы. Как правило, чем уровень ПО ближе и к его аппаратному обеспечению, тем более безопасным или заслуживающим доверия (т.е. надежным) является ПО. В отличие от этого, чем ближе уровень ПО, например, приложение, к пользователю, тем большую ценность имеют данные. Таким образом, наименее безопасное ПО защищает наиболее ценные данные.
На фиг.4 проиллюстрирован принцип обеспечения защиты интегрированной системы. Начиная с аппаратного обеспечения 400, аутентификация ПО каждого уровня осуществляется ПО расположенного ниже уровня. В случае кода 410 начальной загрузки он аутентифицируется посредством расшифрования и с использованием набора мастер-ключей, как это описано в упомянутых выше заявках, в аппаратных средствах, где код начальной загрузки (или код инициализации) в зашифрованном виде хранится во внешней памяти. После аутентификации и перед передачей управления ПО 420, 430, 440 и т.д. следующего уровня ПО каждого предшествующего уровня может ограничивать возможности ПО более высокого уровня по управлению системой или внесению в нее изменений. Таким образом, по мере загрузки ПО каждого уровня, оно аутентифицируется и может быть дополнительно ограничена его способность влиять на защиту системы.
На фиг.5 проиллюстрирована реализация проиллюстрированного на фиг.4 принципа на примере интегрированной системы, такой как система, показанная на фиг.2. В частности, принцип реализован путем использования средства управления доступом, описанного ранее и в упомянутых выше заявках, содержание которых включено в настоящее описание путем ссылки. Аппаратное обеспечение аутентифицирует код 400 начальной загрузки, как это описано выше, и таким же образом определяет наиболее надежный, т.е. наиболее доверяемый уровень ПО. Код начальной загрузки способен полностью задавать конфигурацию средства управления доступом, включая наборы ключей, используемых для дешифрования, таблицу адресов, в которой указано, каким образом преобразовывать адреса, уровень доступа, определяющий разрешенные операции на основании идентификатора ведущего устройства и диапазона адресов, а также параметры доступа, определяющие, каким образом происходит обработка запроса. Вся перечисленная информация также сохраняется при помощи описанного выше средства управления доступом.
До передачи управления ПО следующего уровня, т.е. первого уровня 420, код начальной загрузки в данном примере скрывает значения ключей, делая их напрямую невидимыми для ПО, а также блокирует доступ к таблице адресов и содержимому уровней доступа (которые находятся в таблице доступа) с целью исключить возможность их изменения ПО следующего уровня. Тем не менее, в данном примере параметры доступа все же могут быть обновлены на таком следующем уровне. Следует учесть, что аппаратное обеспечение способно скрывать значения ключей за счет предотвращения доступа для считывания и блокировать доступ к таблице адресов и содержимому уровней доступа путем предотвращения доступа для записи. Специалистам в данной области техники известно множество способов управления доступом (или блокирования доступа) к реестрам средства управления доступом, таких как принуждение к использованию привилегированных команд, установление соединений реестров лишь с закрытыми внутрикристальными шинами, распределение памяти реестров и ограничение доступа к реестрам с использованием существующих установочных параметров в средство управления доступом и т.д.
Показано, что до передачи управления ПО наименее надежного уровня 440 последние отображенные рабочие характеристики средства управления доступом, т.е. параметры доступа блокируются и не могут быть изменены.
На фиг.6 показан вариант осуществления процесса инициализации защищенной операционной среды для интегрированного устройства, скомпонованного в вычислительную систему. Показано, что интегрированное устройство скомпоновано в более крупную систему 605, к которой подведено питание 610. Всю систему или вычислительную среду перемещают в связанную с разработчиком системы безопасную физическую среду 600, в которой интегрированному устройству придается конфигурация, необходимая для работы в защищенном режиме. В частности, вводится защищенный режим (шаг 612), генерируются секретные ключи (шаг 615) и в постоянную память, связанную с имеющимся в интегрированной системе средством управления доступом к данным загружаются ключи и заменяющий адрес кода начальной загрузки (шаг 620). Следует учесть, что секретные ключи могут быть предоставлены разработчиком или генерированы самим интегрированным устройством. В последнем случае оптимальным способом хранения ключей может быть их депонирование у третьего лица.
Далее осуществляется конфигурирование (шаг 625) таблицы доступа, чтобы данные, записанные в энергозависимую память, были зашифрованы набором мастер-ключей и использовали адрес энергонезависимой памяти для начальных и конечных преобразований над шифруемым кодом (т.н. забеливания - whitening), как это описано далее со ссылкой на фиг.7А и 7Б. Данные, считанные из энергозависимой памяти, не будут подвергнуты криптографической обработке и останутся неизменными. Таблицу доступа также конфигурируют, чтобы данные, записанные в энергонезависимую память, оставались неизменными.
Затем на шаге 630 код начальной загрузки загружают через отладочный интерфейс (фиг.7А и 7Б) и в процессе записи данных в энергозависимую память зашифровывают при помощи средства управления доступом к данным с использованием набора мастер-ключей. Далее код без расшифрования (шаг 635) копируют из энергозависимой памяти в энергонезависимую память, как это дополнительно описано ниже. Наконец, интегрированное устройство конфигурируют для работы в защищенном режиме (шаг 640), как это описано в упомянутых заявках, содержание которых путем ссылки включено в настоящую заявку. Следует отметить, что в результате описанной обработки обеспечивается уникальное шифрование для конкретной интегрированной системы.
На данном этапе вычислительная система может быть удалена из безопасного физического местоположения 600. Далее на шаге 645 систему перезагружают с использованием загруженного защищенного кода начальной загрузки, который затем при желании используется для безопасной загрузки дополнительного кода путем шифрования с использованием самогенерированных значений ключей (шаг 650). На завершающем шаге 655 процесса, проиллюстрированного на фиг.6, вычислительную систему 605 тестируют и отгружают.
На фиг.7А дополнительно проиллюстрирован шаг обработки 630, показанный на фиг.6. (Следует отметить, что на фиг.7А и на некоторых последующих фигурах интегрированная система, показанная на фиг.2, представлена в упрощенном виде, при этом устройство управления шиной и подчиненные компоненты для ясности опущены.) Показано, что для загрузки открытого (незашифрованного) кода начальной загрузки в интегрированное устройство, сконфигурированное для работы в защищенном режиме, могут использоваться отладочный интерфейс или интегрированная среда разработки (ИСР). Интегрированное устройство 200 осуществляет шифрование 249 кода начальной загрузки с использованием внутреннего мастер-ключа, хранящегося в постоянной памяти 243 средства управления доступом, и записывает зашифрованный код 700 начальной загрузки в заданную ячейку энергозависимой памяти 280. Следует учесть, что зашифрованный код начальной загрузки сначала записывается в энергозависимую память, поскольку запись определенного значения данных в энергонезависимую память, такую как флэш-память требует множества операций и не может быть реализована в виде блочной операции. Поскольку зашифрованный код 700 начальной загрузки должен быть впоследствии скопирован в другую ячейку внешней памяти, содержание таблицы 248 доступа, связанное с операцией шифрования, конфигурируют, чтобы использовать последний адрес ячейки памяти в энергонезависимой памяти в качестве признака забеливания. Забеливание, т.е. начальные и конечные преобразования, дополнительно описано в одной или нескольких из упомянутых выше заявок, содержание которых включено в настоящее описание путем ссылки.
На фиг.7Б проиллюстрирован процесс 635 копирования, например, процессором 2101 зашифрованного кода начальной загрузки из энергозависимой памяти в энергонезависимую память 260. Поскольку код начальной загрузки уже зашифрован набором мастер-ключей и адресом энергонезависимой памяти для "забеливания" (начальных и конечных преобразований), код начальной загрузки не требует криптографического преобразования и без расшифрования копируется непосредственно в энергонезависимую память.
На фиг.8 показана последовательность операций процесса инициализации в соответствии с изобретением. Процедура 800 начальной загрузки начинается с включения интегрированного устройства (шаг 805), которое передает запрос на начальную загрузку, который переадресовывается средством управления доступом к данным с использ