|
(21), (22) Заявка: 2004133759/09, 16.04.2003
(24) Дата начала отсчета срока действия патента:
16.04.2003
(30) Конвенционный приоритет:
18.04.2002 US 10/125,803
(43) Дата публикации заявки: 27.08.2005
(46) Опубликовано: 20.03.2007
(56) Список документов, цитированных в отчете о поиске:
US 5809230 А, 15.09.1998. US 2001044886 A1, 22.11.2001. RU 2147792 C1, 20.04.2000. RU 2111528 C1, 20.05.1998. Девис Д. и др. Вычислительные сети и сетевые протоколы. – М.: Мир, 1982, с.480-483, рис.9.9.
(85) Дата перевода заявки PCT на национальную фазу:
18.11.2004
(86) Заявка PCT:
US 03/11907 (16.04.2003)
(87) Публикация PCT:
WO 03/090402 (30.10.2003)
Адрес для переписки:
101000, Москва, М.Златоустинский пер., д.10, кв.15, ЕВРОМАРКПАТ, И.А.Веселицкой
|
(72) Автор(ы):
ФОСТЕР Эрик М. (US), ХОЛЛ Уилльям Э. (US), РОСУ Марсель-Каталин (US)
(73) Патентообладатель(и):
ИНТЕРНЭШНЛ БИЗНЕС МАШИНЗ КОРПОРЕЙШН (US)
|
(54) ИНИЦИАЛИЗАЦИЯ, ПОДДЕРЖАНИЕ, ОБНОВЛЕНИЕ И ВОССТАНОВЛЕНИЕ ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ ИНТЕГРИРОВАННОЙ СИСТЕМЫ, ИСПОЛЬЗУЮЩЕЙ СРЕДСТВО УПРАВЛЕНИЯ ДОСТУПОМ К ДАННЫМ
(57) Реферат:
Изобретение относится к обработке запросов и передаче данных в рамках интегрированной системы. Техническим результатом является расширение функциональных возможностей. Способ обеспечения защищенного режима работы интегрированной системы с несколькими уровнями программного обеспечения заключается в расшифровке кода инициализации, аутентификации программного обеспечения следующего уровня и ограничении возможности программного обеспечения этого следующего уровня по изменению рабочей характеристики системы. Способ инициализации защищенного режима работы указанной системы заключается в генерировании по меньшей мере одного ключа, загрузке начального кода, повторной инициализации системы. Способ перевода данных заключается в шифровании данных с использованием первого набора ключей, в расшифровке, повторном шифровании с использованием второго набора ключей, изменении по меньшей мере одной рабочей характеристики, связанной со средством управления доступом к данным. Способ восстановления функциональности интегрированной системы заключается в блокировке доступа к имеющимся в интегрированной системе защищенному коду и данным и обеспечении полного восстановления функциональности этой системы. 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), которое передает запрос на начальную загрузку, который переадресовывается средством управления доступом к данным с использованием заменяющего адреса кода начальной загрузки (шаг 810). Зашифрованный код, вызванный из памяти, расшифровывается средством управления доступом к данным с использованием набора мастер-ключей (шаг 815). Одной из первых выполненных команд является проверка доступности (шаг 820) копии (образа) обновленного кода начальной загрузки. Такая проверка должна осуществляться в процессе самой процедуры начальной загрузки, поскольку ПО ни одного другого уровня не уполномочено вносить изменения в код начальной загрузки.
При отсутствии обновлений код начальной загрузки генерирует динамические ключи для использования для начинающегося сеанса (шаг 825). Следует отметить, что при отсутствии оставшихся после предыдущих сеансов структур данных, которые должны быть использованы, код начальной загрузки также может извлекать зашифрованные значения ключей, которые были сохранены в ходе предыдущего сеанса. Затем код начальной загрузки аутентифицирует ПО следующего уровня, используя принятые методики математической обработки отображения ПО в памяти, с целью получения уникального дайджеста (сжатой формы) или значения хэш-функции и последующего сравнения результата с ожидаемым значением (шаг 830). Эта операция может быть осуществлена ПО с использованием защищенного кода начальной загрузки. Помимо аутентификации, код начальной загрузки также способен ограничивать возможности ПО следующего уровня по изменению или даже просмотру защищенных установочных параметров и рабочих характеристик, связанных со средством управления доступом. После завершения аутентификации и блокирования защищенных функций управление передается программному обеспечению следующего уровня (шаг 835). Если оно является ПО конечного уровня (шаг 840), процесс загрузки ПО завершается, и устройство может начинать (шаг 845) работу в защищенном режиме. При наличии дополнительных уровней снова выполняется операция аутентификации ПО следующего уровня и, при необходимости, операция блокирования защищенных функций, продолжая цикл до тех пор, пока не будет загружено ПО всех уровней.
При наличии обновлений кода начальной загрузки на основании запроса (шаг 820) выполняется процедура обновления кода начальной загрузки (шаг 850). Сначала на шаге 855 для аутентификации и расшифрования копии нового кода начальной загрузки используется существующий код начальной загрузки (т.е. код, который действовал при первом включении устройства). Следует отметить, что новая копия могла поступить в систему зашифрованной с помощью шифра, отличающегося от внутреннего шифра, используемого интегрированным устройством. В таком случае код начальной загрузки осуществляет расшифрование программными средствами. Затем (шаг 860) текущий код начальной загрузки записывает новый код начальной загрузки в память, используя средство управления доступом для шифрования нового кода при помощи набора мастер-ключей интегрированного устройства таким же образом, как на шаге первоначальной компоновки системы. Однако копия нового кода начальной загрузки записывается в иную ячейку памяти, чем текущий код начальной загрузки, чтобы в случае неожиданного прерывания работы системы в процессе выполнения процедуры текущий код начальной загрузки сохранялся в памяти в полном виде и рабочем состоянии. По завершении аутентификации копии нового кода начальной загрузки и его записи в энергонезависимую память текущий код начальной загрузки обновляет заменяющий адрес кода начальной загрузки и указывает на копию нового кода начальной загрузки (шаг 865). По завершении обновления происходит повторный запуск (шаг 870) системы и возврат к началу процедуры 800 начальной загрузки. В качестве расширения данного процесса ПО с более высоким уровнем привилегии безопасности может при необходимости добавить код одного или нескольких уровней, отличающийся от кода начальной загрузки или кода инициализации. Например, код начальной загрузки может использоваться для обновления ядра.
В качестве расширения процедуры 850 обновления кода начальной загрузки, копии 860 нового кода начальной загрузки может быть поставлен в соответствие новый номер версии. Для этого необходимо добавить параметр номера версии к параметрам, хранящимся во внутрикристальной постоянной памяти, связанной со средством управления доступом к данным, как это описано в одной или нескольких из упомянутых выше заявок, содержание которых включено в настоящее описание путем ссылки. Номер версии используется для осуществления процедуры начального и конечного преобразований (забеливание) как части расшифрования первых команд. Преимущество использования номера версии отображения кода начальной загрузки заключается в том, что при этом путем простого копирования и последующего воспроизведения предотвращается попытка проникновения в защищенную систему при повторном использовании ранее отображенного кода начальной загрузки.
На фиг.9 показана обработка данных в интегрированной системе, запущенной с использованием процедуры начальной загрузки, проиллюстрированной на фиг.8. После подачи питания в интегрированную систему сначала процессор 2101 направляет запрос на получение данных (кода начальной загрузки) из заранее определенного адреса. Такой запрос на получение внешних данных поступает в средство 240 управления доступом к данным, которое на основании адреса идентифицирует запрос как запрос на получение кода начальной загрузки и заменяет весь адрес или часть адреса заменяющим адресом кода начальной загрузки, содержащимся в постоянной памяти 243 средства управления. Далее измененный запрос поступает во внешнюю память 260. Заменяющий адрес кода начальной загрузки указывает область памяти, содержащую код, который был ранее зашифрован с использованием набора мастер-ключей. Такой зашифрованный код 710 постоянно хранится в защищенной области энергонезависимой памяти 260. Зашифрованный код возвращается в устройство управления доступом, который на основании заменяющего адреса кода начальной загрузки сконфигурирован для расшифрования возращенных данных с использованием набора мастер-ключей. Затем расшифрованный (и защищенный) код начальной загрузки возвращается в процессор для исполнения. В процессе выполнения процессором последовательности кода начальной загрузки перечисленные шаги осуществляются повторно.
На фиг.10 проиллюстрирован процесс приема новых версий (обновлений) кода в процессе работы интегрированной системы. Такая процедура 1000 контроля обновлений начинается одновременно с началом работы системы в защищенном режиме (шаг 1005). При наступлении условного события, такого как внутренний триггер, периодически срабатывающий при наступлении заданного времени, или внешнее уведомление и т.д., система проверяет (шаг 1010), доступно ли (шаг 1015) обновление. Если нет, интегрированная система возвращается к предшествующему защищенному режиму и продолжает работу. Если обновление доступно, его можно загрузить с использованием защищенных сетевых протоколов (шаг 1020), как это предусмотрено в данной области. Как вариант, обновление может быть считано с постоянных носителей. Затем (шаг 1025) ПО текущего уровня определяет, разрешено ли ему осуществлять запрошенное обновление. Как описано выше, аутентификация ПО определенного уровня может быть проведена лишь ПО с равным или более высоким уровнем полномочий.
Если ПО текущего уровня не разрешено совершать это обновление, ПО отмечает, что обновление доступно и сохраняет его для использования ПО верного уровня, когда такой уровень станет следующим уровнем, к которому перейдет управление интегрированным устройством. Следует отметить, что для того, чтобы обновление было доступно во время следующего сеанса, обычно требуется его хранить в энергонезависимой памяти.
Если ПО текущего уровня уполномочено вводить обновления, осуществляется процедура 1050 обновления. Данная процедура включает аутентификацию и расшифрование обновления с использованием процессов, описанных выше в отношении обновления кода начальной загрузки. Однако при этом шифровать обновление при помощи набора мастер-ключей не требуется. Вместо этого может использоваться динамический ключ. Номер версии обновления также не требуется сохранять во внутрикристальной постоянной памяти, он может быть зашифрован и сохранен во внешней защищенной памяти, так как он будет загружен кодом начальной загрузки (шаг 1060). Затем параметры аутентификации обновляют с целью использования при проверке обновленного кода перед его загрузкой в процессе инициализации системы.
На фиг.11 проиллюстрирован процесс управления ключами и обновления ключей по мере необходимости. В целом, в данном процессе в качестве средства перехода от одной формы шифрования к другой используется средство управления доступом к данным.
Слишком долгое использование секретного ключа в одном блоке данных увеличивает число выборок, потенциально доступных для криптоанализа. Таким образом, для защиты секретного ключа следует установить предельное число выборок с использованием ключа. Предельное число зависит от типа криптоанализа, который может использовать нарушитель, и от мощности алгоритма шифрования, ключей и физической защиты. В современной технологии считается практически нецелесообразным точно подсчитывать, сколько раз используется секретный ключ в одном блоке данных. Для достаточного приближения к данной величине, для чего требуется определенный объем памяти в пересчете на набор ключей, используют счетчик, регистрирующий число операций записи в пересчете на набор ключей, при этом результат подсчета превышает или равен числу созданных уникальных выборок. В качестве средства менее точного приближения подсчитывают количество операций считывания и записи, однако это не означает возможности увеличения предельного результата подсчета.
Как это показано в отношении процедуры 1100 управления ключами, изобретение предусматривает генерирование динамических ключей (как это описано выше применительно к процедуре начальной загрузки) для использования во время одного сеанса или нескольких сеансов (шаг 1105). В то же время происходит инициализация счетчика количества раз использования ключа, который ограничивает это количество определенным предельным, или пороговым значением. Такой счетчик может быть реализован программными средствами, однако более целесообразно, чтобы он был реализован аппаратными средствами как часть средства управления доступом, поскольку тем самым обеспечивается доступность информации, необходимой для запуска счетчика. Кроме того, счетчик может быть связан с внутрикристальной постоянной памятью, чтобы результаты подсчета сохранялись между сеансами, либо для сбора, шифрования и хранения результатов в периоды, когда система отключена, и их последующей повторной загрузки при очередном запуске системы может использоваться ПО.
При необходимости управление может быть передано программному обеспечению следующего уровня (шаг 1110). Следует отметить, что в другом варианте ПО текущего уровня может продолжать работать и непосредственно использовать ключ. Показатели счетчика количества раз использования ключа увеличиваются при каждом использовании ключа с целью записи зашифрованных данных (шаг 1120). При необходимости он может использоваться и для учета событий считывания, но лишь в дополнение к учету событий записи, а не вместо него.
В определенный момент показатели счетчика количества раз использования ключа превысят предельную величину (шаг 1125). Если в этот момент работает ПО того же уровня, что и ПО, которое первоначально генерировало ключ, на шаге 1130 вызывается процедура 1150 обновления ключа. Если текущий уровень ПО изменился, система возвращается к программному обеспечению того уровня, на котором был первоначально сгенерирован ключ, и с такого уровня вызывает процедуру обновления ключа (шаг 1135).
Для облегчения перехода от одного набора ключей к другому в процедуре 1150 обновления ключа используется средство управления доступом. Сначала вносятся изменения в таблицу доступа средства управления доступом с целью определить текущее местоположение перемещаемых данных для шифрования старым набором ключей и новое местоположение данных для шифрования с использованием нового набора ключей (шаг 1155). Следует учесть, что, поскольку таблица доступа может использоваться для перевода адреса, внутренние ведущие устройства интегрированной системы способны видеть в памяти текущее и новое местоположения данных в виде отдельных диапазонов адресов, тогда как после перевода адресов внешние запросы определяли бы оба местоположения как относящиеся к одному диапазону адресов.
Затем при помощи новых значений таблицы доступа данные считываются из текущего местоположения и записываются в новое местоположение, при этом данные эффективно повторно зашифровываются при помощи нового набора ключей (шаг 1160). Затем на шаге 1165 в таблицу доступа снова вносят изменения с целью определения нового местоположения для шифрования и расшифрования при помощи нового набора ключей, а все ссылки на старый набор ключей и соответствующие местоположения данных на шаге 1170 стираются.
На фиг.12А-12В проиллюстрирован соответствующий способ перевода поступивших из внешнего источника данных из одной формы шифрования и другую. В данном случае для внешнего шифрования может использоваться алгоритм и набор ключей, отличающийся от алгоритма и набора ключей, используемых для внутреннего шифрования. Как показано на фиг.12А, в этом случае данные поступают через порт связи 1200 из внешнего источника зашифрованными с использованием внешнего алгоритма. Средство 240 управления доступом сохраняет такие внешние данные непосредственно во внешней памяти 280 без изменений. Как показано на фиг.12Б, затем процессор 2101 блоками считывает внешние данные в свой кэш и расшифровывает каждый блок, используя программные средства расшифрования. После расшифрования незашифрованный блок записывается во внешнюю память 280, как это показано на фиг.12В. Тем не менее, средство управления доступом способно зашифровывать данные, используя внутренний алгоритм и набор ключей. В результате данного процесса все полученные извне данные преобразуются в уникальную зашифрованную форму и могут управляться одним таким интегрированным устройством. За этот счет обеспечивается защита зашифрованных данных и одновременно ускорение работы аппаратных средств, реализующих средство управления доступом.
На фиг.13 проиллюстрирован вариант осуществления процесса восстановления защищенного режима работы интегрированной системы после ее нахождения в эксплуатации и перехода из защищенного состояния в нулевое состояние, инициированного событием несанкционированного доступа, как это описано в одной или нескольких из упомянутых выше заявок, содержание которых включено в настоящее описание путем ссылки. Показано, что после инициирования (шаг 1300) процедуры начальной загрузки интегрированная система включается (шаг 1305) после события несанкционированного доступа и запрос на начальную загрузку более не переадресовывается (шаг 1310). Для инициализации системы из стандартного адреса начальной загрузки на шаге 1315 выполняется незащищенный (незашифрованный) код. Поскольку инициализированная система действует в режиме ограниченной функциональности, к защищенным данным или приложениям отсутствует доступ (шаг 1325). В качестве альтернативы, на шаге 1320 может быть предпринята попытка восстановления исходной функциональности интегрированной системы.
Если пользователь интегрированной системы желает осуществить восстановление в полном объеме, интегрированную систему перемещают в фирменный центр обслуживания, представляющий собой второе безопасное физическое местоположение 1350. В центре обслуживания при помощи инструментальных средств отладки (см. фиг.7А) загружают незашифрованный код инициализации, включающий код восстановления и начальной загрузки, а также открытый ключ разработчика (шаг 1355).
Затем с целью выполнения кода инициализации осуществляют повторный запуск интегрированной системы, которая сначала генерирует новый набор мастер-ключей, а затем записывает набор мастер-ключей во внутрикристальную постоянную память, связанную со средством управления доступом к данным (шаг 1360). Затем средство управления доступом конфигурируют для шифрования кода восстановления и начальной загрузки с использованием набора мастер-ключей, как это описано выше со ссылкой на фиг.7А. Местоположение нового кода начальной загрузки записывают в поле заменяющего адреса кода начальной загрузки. Затем код начальной загрузки внутренними средствами генерирует пару, состоящую из открытого и секретного ключа, и надежно сохраняет секретный ключ в энергонезависимой памяти. Генерированный открытый ключ зашифровывают с использованием открытого ключа разработчика (предварительно предоставленного вместе с кодом инициализации) и возвращают в центр обслуживания, из которого его передают разработчику (шаг 1365). На этом этапе интегрированную систему удаляют из безопасного физического местоположения 1350.
Осуществляют повторный запуск системы и выполнение (шаг 1370) кода восстановления и начальной загрузки. На шаге 1375 инициализированная система устанавливает защищенное сетевое соединение с разработчиком, а затем известными способами осуществляется загрузка в систему и установка данных и кода, необходимых для восстановления исходной функциональности интегрированной системы (шаг 1380).
Таким образом, в настоящем изобретении описаны способы, системы и программные продукты, служащие для инициализации, поддержания, обновления и восстановления защищенного режима работы интегрированной системы. В этих целях используется средство управления доступом к данным, расположенное внутри интегрированной системы. Ниже в общих чертах кратко описаны системы и программные продукты.
Одной из особенностей настоящего изобретения является система, обеспечивающая защищенный режим работы интегрированной системы, имеющей несколько уровней ПО. Такая система имеет средство аутентификации программным обеспечением текущего уровня программного обеспечения следующего уровня перед передачей управления интегрированной системой программному обеспечению следующего уровня. Также предусмотрен контроллер доступа к данным, имеющий средство ограничения возможностей ПО следующего уровня по изменению рабочей характеристики интегрированной системы.
Другой особенностью изобретения является система инициализации защищенного режима работы интегрированной системы. Такая система имеет средство генерирования по меньшей мере одного ключа для интегрированной системы и имеющееся в интегрированной системе средство управления доступом к данным. Начальный код поступает в интегрированную систему через средство управления доступом к данным, которое зашифровывает начальный код по меньшей мере одним ключом. Система инициализации также имеет средство повторной инициализации интегрированной системы с использованием зашифрованного начального кода.
Дополнительно предусмотрена система перевода данных, зашифрованных при помощи первого набора ключей, в данные, зашифрованные при помощи второго набора ключей. Такая система имеет средство расшифрования внутри интегрированной системы данных, зашифрованных с использованием первого набора ключей; и имеющееся в интегрированной системе средство управления доступом к данным со средством повторного шифрования данных с использованием второго набора ключей.
Другой особенностью изобретения является система восстановления функциональности интегрированной системы после инициирующего события. Такая система имеет средство автоматического установления пониженного уровня функциональности интегрированной системы, а также средство полного восстановления функциональности интегрированной системы за счет избирательного применения соответствующей процедуры восстановления.
Согласно другой особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа обеспечения защищенного режима работы интегрированной системы, имеющей несколько уровней ПО. Такой способ включает стадию, на которой при помощи ПО текущего уровня аутентифицируют ПО следующего из нескольких уровней ПО перед передачей управления интегрированной системой ПО следующего уровня, и стадию, на которой ограничивают возможности ПО следующего уровня по изменению рабочей характеристики интегрированной системы, при этом стадия ограничения реализована имеющимся в интегрированной системе средством управления доступом к данным.
Согласно другой особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа инициализации защищенного режима работы интегрированной системы. Способ включает генерирование по меньшей мере одного ключа для интегрированной системы; загрузку в интегрированную систему начального кода, при этом для шифрования начального кода при помощи средства управления доступом к данным, которое имеет интегрированная система, в процессе загрузки используют по меньшей мере один ключ, и повторно инициализируют интегрированную систему, используя зашифрованный начальный код.
Согласно еще одной особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа перевода данных, зашифрованных при помощи первого набора ключей, в данные, зашифрованные при помощи второго набора ключей. Способ включает расшифрование данных, зашифрованных с использованием первого набора ключей; и повторное шифрование данных с использованием второго набора ключей при помощи расположенного внутри интегрированной системы средства управления доступом к данным.
Согласно дополнительной особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа восстановления функциональности интегрированной системы после инициирующего события. Такой способ включает автоматическое установление пониженного уровня функциональности интегрированной системы и полное восстановление функциональности интегрированной системы за счет применения избирательной процедуры восстановления.
Из вышеизложенного описания настоящего изобретения специалисты в данной области техники сделают вывод о возможности его включения в изделие (например, один или несколько программных продуктов), имеющее, в частности, используемый ЭВМ-носитель. Такой носитель реализует, в частности, машиночитаемый программный код, обеспечивающий возможности настоящего изобретения. Изделие может входить в состав вычислительной системы или продаваться отдельно.
Дополнительно может быть предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления возможностей настоящего изобретения.
Приведенные в описании схемы последовательности операций являются лишь примерами. Существует множество вариаций таких описанных схем или шагов (или операций), не выходящих за пределы существа изобретения. В частности, шаги могут осуществляться в различной последовательности либо они могут быть добавлены, исключены или изменены. Все такие вариации рассматриваются как часть заявленного изобретения.
Несмотря на то, что выше подробно проиллюстрированы и описаны предпочтительные варианты осуществления изобретения, специалисты в соответствующей области техники согласятся с тем, что в него могут быть внесены различные изменения, дополнения и т.п., не выходящие за пределы существа изобретения и считающиеся входящими в объем изобретения, ограниченный следующей далее формулой изобретения.
Промышленная применимость
Настоящее изобретение широко применимо в защищенных интегрированных системах обработки уязвимых данных, которые необходимо зашифровывать до их обработки и переноса.
Формула изобретения
1. Способ обеспечения защищенного режима работы интегрированной системы с несколькими уровнями программного обеспечения, заключающийся в том, что инициализацию системы начинают расшифрованием хранящегося зашифрованного кода инициализации, причем расшифрование выполняют при помощи имеющегося в интегрированной системе средства управления доступом к данным, перед передачей управления интегрированной системой программному обеспечению следующего уровня аутентифицируют программное обеспечение этого следующего уровня и ограничивают возможности программного обеспечения указанного следующего уровня по изменению рабочей характеристики интегрированной системы, причем указанное ограничение осуществляют указанным средством управления доступом к данным, реализованным аппаратно.
2. Способ по п.1, в котором возможности программного обеспечения следующего уровня ограничивают в отношении изменения по меньшей мере одной из следующих характеристик: набора(ов) ключей, таблиц(ы) доступа, уровня(ей) доступа и параметра(ов) доступа, поддерживаемых функцией управления доступом к данным.
3. Способ по п.2, в котором ограничение возможностей программного обеспечения следующего уровня включает в себя по меньшей мере одну из следующих операций: ограничение доступа к набору(ам) ключей или блокирование доступа к таблице(ам) доступа, уровню(ям) доступа или параметру(ам) доступа, поддерживаемым функцией управления доступом к данным.
4. Способ по п.1, дополнительно предусматривающий аутентификацию кода инициализации, подлежащего использованию при инициализации параметров защищенного режима работы интегрированной системы, причем аутентификацию кода инициализации выполняют имеющимся в интегрированной системе средством управления доступом к данным.
5. Способ по п.1, осуществляемый в сочетании со способом обновления уровня программного обеспечения, заключающимся в том, что определяют, доступно ли обновление уровня программного обеспечения, определяют, разрешено ли программному обеспечению текущего уровня аутентифицировать программное обеспечение обновляемого уровня и, если это так, то переходят к приему в интегрированную систему новой версии программного обеспечения обновляемого уровня с использованием средства управления доступом к данным.
6. Способ по п.5, в котором новая версия программного обеспечения обновленного уровня содержит обновленный код инициализации, причем способ дополнительно предусматривает аутентификацию и расшифрование обновленного кода инициализации, шифрование обновленного кода инициализации набором мастер-ключей, который поддерживает средство управления доступом к данным, а также новым номером версии, и обновление адреса переадресации кода инициализации, поддерживаемого средством управления доступом к данным, с его заменой новым, обновленным адресом местоположения кода инициализации.
7. Способ по п.5, в котором при невозможности аутентификации новой версии программного обеспечения обновляемого уровня посредством программного обеспечения текущего уровня ввод новой версии программного обеспечения обновляемого уровня в интегрированную систему задерживают до тех пор, пока не будет запущено программное обеспечение соответствующего уровня, способное аутентифицировать новую версию программного обеспечения обновляемого уровня.
8. Способ по п.5, в котором при переходе к приему в интегрированную систему новой версии программного обеспечения обновляемого уровня эту версию зашифровывают для ее сохранения, причем это шифрование проводят с использованием нового номера версии.
9. Способ инициализации защищенного режима работы интегрированной системы, заключающийся в том, что для интегрированной системы генерируют по меньшей мере один ключ, в интегрированную систему загружают начальный код, причем во время записи начального кода интегрированной системой в память начальный код автоматически зашифровывают внутри интегрированной системы с использованием по меньшей мере одного сгенерированного ключа и с помощью имеющегося в интегрированной системе средства управления доступом к данным, и повторно инициализируют интегрированную систему, используя зашифрованный начальный код, при этом инициализацию системы начинают автоматическим расшифрованием хранящегося зашифрованного начального кода, выполняемым указанным средством управления доступом к данным.
10. Способ по п.9, в котором указанный по меньшей мере один ключ генерируют внутри интегрированной системы.
11. Способ по п.9, в котором средство управления доступом к данным представляет собой аппаратный компонент интегрированной системы.
12. Способ по п.9, в котором с использованием зашифрованного начального кода в интегрированную систему загружают дополнительный код.
13. Способ по п.12, в котором при загрузке дополнительного кода зашифрованный начальный код используют для реализации в интегрированной системе генерирования ключей в виде случайных чисел для его использования при шифровании дополнительного кода средством управления доступом к данным.
14. Способ по п.9, в котором на стадии загрузки дополнительно шифруют начальный код, используя по меньшей мере один ключ и адрес ячейки памяти для начальных и конечных преобразований над зашифровываемым кодом.
15. Способ перевода данных, зашифрованных с использованием первого набора ключей, в данные, зашифрованные с использованием второго набора ключей, заключающийся в том, что данные, зашифрованные с использованием первого набора ключей, расшифровывают, и расшифрованные данные повторно шифруют с использованием второго набора ключей при помощи имеющегося в интегрированной системе средства управления доступом к данным и изменяют по меньшей мере одну рабочую характеристику, связанную со средством управления доступом к данным и постоянно хранящуюся в таблице доступа, используемой средством управления доступом к данным, при этом в таблицу доступа вносят изменения для указания того, что зашифрованные данные, находящиеся по текущему адресу, должны быть расшифрованы с использованием первого набора ключей и повторно зашифрованы с использованием второго набора ключей при сохранении по новому адресу.
16. Способ по п.15, в котором средство управления доступом к данным представляет собой аппаратный компонент интегрированной системы.
17. Способ по п.15, в котором расшифрование также осуществляют при помощи имеющегося в интегрированной системе средства управления доступом к данным.
18. Способ по п.15, в котором данные, зашифрованные с использованием первого набора ключей, для расшифрования извлекают из памяти, связанной с интегрированной системой.
19. Способ по п.15, в котором операции расшифрования и повторного шифрования данных выполняют по достижении заданного количества раз, когда первый набор ключей использовался для шифрования и/или расшифрования данных, причем способ дополнительно предусматривает подсчет количества раз, когда первый набор ключей был использован для шифрования и/или расшифрования данных.
20. Способ по п.19, в котором подсчет ведут счетчиком количества раз использования ключа, поддерживаемым имеющимся в интегрированной системе средством управления доступом к данным.
21. Способ по п.15, в котором данные, зашифрованные с использованием первого набора ключей, принимают из внешнего по отношению к интегрированной системе источника.
22. Способ по п.21, в котором расшифрование выполняют в интегрированной системе программными средствами, а повторное шифрование выполняют при помощи средства управления доступом к данным и аппаратными средствами интегрированной системы.
23. Способ по п.22, в котором второй набор ключей является уникальным, однозначно определяющим интегрированную систему.
24. Способ восстановления функциональности интегрированной системы после инициирующего события, заключающийся в том, что в ответ на инициирующее событие блокируют доступ к имеющимся в интегрированной системе защищенному коду и данным, таким образом автоматически устанавливая в интегрированной системе пониженный уровень функциональности, и обеспечивают полное восстановление функциональности интегрированной системы путем использования избирательной процедуры восстановления для повторной инициализации интегрированной системы, таким образом восстанавливая доступ к защищенному коду и данным интегрированной системы, причем процедура восстановления включает загрузку в интегрированную систему незашифрованного кода инициализации, включающего в себя код восстановления и инициализаци, выполнение кода восстановления и инициализации с получением мастер-ключа и заменяющего адреса кода инициализации, шифрование кода восстановления и инициализации мастер-ключом и сохранение зашифрованного кода инициализации по заменяющему адресу кода инициализации, а также повторную инициализацию интегрированной системы с использованием кода инициализации, сохраненного по заменяющему адресу кода инициализации.
25. Способ по п.24, в котором процедура восстановления предусматривает загрузку в интегрированную систему кода инициализации в безопасном физическом местоположении.
26. Способ по п.24, в котором мастер-ключ и заменяющий адрес кода инициализации хранят в постоянной памяти, связанной с имеющимся в интегрированной системе средством управления доступом к данным.
27. Способ по п.24, в котором код инициализации содержит открытый код разработчика, а в интегрированной системе генерируют пару ключей: открытый ключ и секретный ключ, причем секретный ключ интегрированной системы надежно сохраняют, а открытый ключ интегрированной системы зашифровывают с использованием открытого ключа разработчика.
28. Способ по п.27, в котором между интегрированной системой и разработчиком с использованием сгенерированной пары ключей устанавливают защищенное сетевое соединение и через это соединение загружают код и данные, необходимые для полного восстановления функциональности интегрированной системы.
29. Способ по п.24, в котором при автоматическом установлении пониженного уровня функциональности интегрированной системы ограничивают доступ к защищенному коду и данным внутри интегрированной системы.
РИСУНКИ
|
|