RU2295834C2 - Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным - Google Patents

Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным Download PDF

Info

Publication number
RU2295834C2
RU2295834C2 RU2004133759/09A RU2004133759A RU2295834C2 RU 2295834 C2 RU2295834 C2 RU 2295834C2 RU 2004133759/09 A RU2004133759/09 A RU 2004133759/09A RU 2004133759 A RU2004133759 A RU 2004133759A RU 2295834 C2 RU2295834 C2 RU 2295834C2
Authority
RU
Russia
Prior art keywords
integrated system
data
code
software
encrypted
Prior art date
Application number
RU2004133759/09A
Other languages
English (en)
Other versions
RU2004133759A (ru
Inventor
Эрик М. ФОСТЕР (US)
Эрик М. ФОСТЕР
Уилль м Э. ХОЛЛ (US)
Уилльям Э. ХОЛЛ
Марсель-Каталин РОСУ (US)
Марсель-Каталин РОСУ
Original Assignee
Интернэшнл Бизнес Машинз Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Интернэшнл Бизнес Машинз Корпорейшн filed Critical Интернэшнл Бизнес Машинз Корпорейшн
Publication of RU2004133759A publication Critical patent/RU2004133759A/ru
Application granted granted Critical
Publication of RU2295834C2 publication Critical patent/RU2295834C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

Изобретение относится к обработке запросов и передаче данных в рамках интегрированной системы. Техническим результатом является расширение функциональных возможностей. Способ обеспечения защищенного режима работы интегрированной системы с несколькими уровнями программного обеспечения заключается в расшифровке кода инициализации, аутентификации программного обеспечения следующего уровня и ограничении возможности программного обеспечения этого следующего уровня по изменению рабочей характеристики системы. Способ инициализации защищенного режима работы указанной системы заключается в генерировании по меньшей мере одного ключа, загрузке начального кода, повторной инициализации системы. Способ перевода данных заключается в шифровании данных с использованием первого набора ключей, в расшифровке, повторном шифровании с использованием второго набора ключей, изменении по меньшей мере одной рабочей характеристики, связанной со средством управления доступом к данным. Способ восстановления функциональности интегрированной системы заключается в блокировке доступа к имеющимся в интегрированной системе защищенному коду и данным и обеспечении полного восстановления функциональности этой системы. 4 н. и 25 з.п. ф-лы, 16 ил.

Description

Настоящее изобретение в целом относится к обработке запросов на получение данных и передаче данных в рамках интегрированной системы, более точно к способам инициализации, поддержания, обновления и восстановления защищенного режима работы интегрированной системы, которые по меньшей мере частично реализуются при помощи имеющегося в интегрированной системе средства управления доступом к данным.
В настоящее время принято объединять несколько ведущих (активных) устройств системы на общей микросхеме, т.е. чипе или кристалле. При начальной разработке структуры объединения множества дискретных компонентов на общей микросхеме может возникнуть проблема доступа к внешним устройствам. Например, в системах видеодекодирования 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).
Таким образом, в настоящем изобретении описаны способы, системы и программные продукты, служащие для инициализации, поддержания, обновления и восстановления защищенного режима работы интегрированной системы. В этих целях используется средство управления доступом к данным, расположенное внутри интегрированной системы. Ниже в общих чертах кратко описаны системы и программные продукты.
Одной из особенностей настоящего изобретения является система, обеспечивающая защищенный режим работы интегрированной системы, имеющей несколько уровней ПО. Такая система имеет средство аутентификации программным обеспечением текущего уровня программного обеспечения следующего уровня перед передачей управления интегрированной системой программному обеспечению следующего уровня. Также предусмотрен контроллер доступа к данным, имеющий средство ограничения возможностей ПО следующего уровня по изменению рабочей характеристики интегрированной системы.
Другой особенностью изобретения является система инициализации защищенного режима работы интегрированной системы. Такая система имеет средство генерирования по меньшей мере одного ключа для интегрированной системы и имеющееся в интегрированной системе средство управления доступом к данным. Начальный код поступает в интегрированную систему через средство управления доступом к данным, которое зашифровывает начальный код по меньшей мере одним ключом. Система инициализации также имеет средство повторной инициализации интегрированной системы с использованием зашифрованного начального кода.
Дополнительно предусмотрена система перевода данных, зашифрованных при помощи первого набора ключей, в данные, зашифрованные при помощи второго набора ключей. Такая система имеет средство расшифрования внутри интегрированной системы данных, зашифрованных с использованием первого набора ключей; и имеющееся в интегрированной системе средство управления доступом к данным со средством повторного шифрования данных с использованием второго набора ключей.
Другой особенностью изобретения является система восстановления функциональности интегрированной системы после инициирующего события. Такая система имеет средство автоматического установления пониженного уровня функциональности интегрированной системы, а также средство полного восстановления функциональности интегрированной системы за счет избирательного применения соответствующей процедуры восстановления.
Согласно другой особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа обеспечения защищенного режима работы интегрированной системы, имеющей несколько уровней ПО. Такой способ включает стадию, на которой при помощи ПО текущего уровня аутентифицируют ПО следующего из нескольких уровней ПО перед передачей управления интегрированной системой ПО следующего уровня, и стадию, на которой ограничивают возможности ПО следующего уровня по изменению рабочей характеристики интегрированной системы, при этом стадия ограничения реализована имеющимся в интегрированной системе средством управления доступом к данным.
Согласно другой особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа инициализации защищенного режима работы интегрированной системы. Способ включает генерирование по меньшей мере одного ключа для интегрированной системы; загрузку в интегрированную систему начального кода, при этом для шифрования начального кода при помощи средства управления доступом к данным, которое имеет интегрированная система, в процессе загрузки используют по меньшей мере один ключ, и повторно инициализируют интегрированную систему, используя зашифрованный начальный код.
Согласно еще одной особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа перевода данных, зашифрованных при помощи первого набора ключей, в данные, зашифрованные при помощи второго набора ключей. Способ включает расшифрование данных, зашифрованных с использованием первого набора ключей; и повторное шифрование данных с использованием второго набора ключей при помощи расположенного внутри интегрированной системы средства управления доступом к данным.
Согласно дополнительной особенности изобретения предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления способа восстановления функциональности интегрированной системы после инициирующего события. Такой способ включает автоматическое установление пониженного уровня функциональности интегрированной системы и полное восстановление функциональности интегрированной системы за счет применения избирательной процедуры восстановления.
Из вышеизложенного описания настоящего изобретения специалисты в данной области техники сделают вывод о возможности его включения в изделие (например, один или несколько программных продуктов), имеющее, в частности, используемый ЭВМ-носитель. Такой носитель реализует, в частности, машиночитаемый программный код, обеспечивающий возможности настоящего изобретения. Изделие может входить в состав вычислительной системы или продаваться отдельно.
Дополнительно может быть предусмотрено по меньшей мере одно машиночитаемое запоминающее устройство для хранения программ, в котором материально реализована по меньшей мере одна программа команд, выполняемых ЭВМ с целью осуществления возможностей настоящего изобретения.
Приведенные в описании схемы последовательности операций являются лишь примерами. Существует множество вариаций таких описанных схем или шагов (или операций), не выходящих за пределы существа изобретения. В частности, шаги могут осуществляться в различной последовательности либо они могут быть добавлены, исключены или изменены. Все такие вариации рассматриваются как часть заявленного изобретения.
Несмотря на то, что выше подробно проиллюстрированы и описаны предпочтительные варианты осуществления изобретения, специалисты в соответствующей области техники согласятся с тем, что в него могут быть внесены различные изменения, дополнения и т.п., не выходящие за пределы существа изобретения и считающиеся входящими в объем изобретения, ограниченный следующей далее формулой изобретения.
Промышленная применимость
Настоящее изобретение широко применимо в защищенных интегрированных системах обработки уязвимых данных, которые необходимо зашифровывать до их обработки и переноса.

Claims (29)

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, в котором при автоматическом установлении пониженного уровня функциональности интегрированной системы ограничивают доступ к защищенному коду и данным внутри интегрированной системы.
RU2004133759/09A 2002-04-18 2003-04-16 Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным RU2295834C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/125,803 2002-04-18
US10/125,803 US6715085B2 (en) 2002-04-18 2002-04-18 Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function

Publications (2)

Publication Number Publication Date
RU2004133759A RU2004133759A (ru) 2005-08-27
RU2295834C2 true RU2295834C2 (ru) 2007-03-20

Family

ID=29214852

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004133759/09A RU2295834C2 (ru) 2002-04-18 2003-04-16 Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным

Country Status (11)

Country Link
US (3) US6715085B2 (ru)
EP (2) EP1500225A4 (ru)
JP (2) JP4464689B2 (ru)
KR (1) KR100809977B1 (ru)
CN (1) CN1647443B (ru)
AU (1) AU2003223671A1 (ru)
CA (1) CA2481569C (ru)
IL (1) IL164718A (ru)
PL (1) PL372374A1 (ru)
RU (1) RU2295834C2 (ru)
WO (1) WO2003090402A1 (ru)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2541196C2 (ru) * 2010-07-22 2015-02-10 Награвисьон С.А. Способ обеспечения целостности программного обеспечения
RU2673969C2 (ru) * 2013-09-12 2018-12-03 Зе Боинг Компани Устройство мобильной связи и способ работы с ним

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996670B1 (en) 1999-07-08 2011-08-09 Broadcom Corporation Classification engine in a cryptography acceleration chip
US6993007B2 (en) * 1999-10-27 2006-01-31 Broadcom Corporation System and method for suppressing silence in voice traffic over an asynchronous communication medium
EP1338939A1 (en) * 2002-02-22 2003-08-27 Hewlett-Packard Company State validation device for a computer
US7444682B2 (en) * 2002-07-03 2008-10-28 Macronix International Co., Ltd. Security memory device and method for making same
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
AU2003209885A1 (en) * 2002-09-20 2004-04-08 Mks Inc. Version control system for software development
US7266786B2 (en) * 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US8140824B2 (en) * 2002-11-21 2012-03-20 International Business Machines Corporation Secure code authentication
US7194626B2 (en) * 2002-11-21 2007-03-20 International Business Machines Corporation Hardware-based secure code authentication
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US7137109B2 (en) * 2002-12-17 2006-11-14 Hewlett-Packard Development Company, L.P. System and method for managing access to a controlled space in a simulator environment
US7568110B2 (en) 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US7434043B2 (en) 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US7392404B2 (en) * 2002-12-20 2008-06-24 Gemalto, Inc. Enhancing data integrity and security in a processor-based system
AU2004213886A1 (en) * 2003-02-21 2004-09-02 Research In Motion Limited System and method of multiple-level control of electronic devices
US7509644B2 (en) * 2003-03-04 2009-03-24 Secure 64 Software Corp. Operating system capable of supporting a customized execution environment
JP2004287590A (ja) * 2003-03-19 2004-10-14 Matsushita Electric Ind Co Ltd デバッグシステム、マイクロプロセッサ及びデバッガ
US7171563B2 (en) * 2003-05-15 2007-01-30 International Business Machines Corporation Method and system for ensuring security of code in a system on a chip
US7478433B2 (en) * 2003-06-19 2009-01-13 Panasonic Corporation Program execution system having authentication function
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US7900250B1 (en) * 2003-09-12 2011-03-01 Nortel Networks Limited Method of providing secure groups using a combination of group and pair-wise keying
US7369815B2 (en) * 2003-09-19 2008-05-06 Qualcomm Incorporated Power collapse for a wireless terminal
US7571484B2 (en) * 2003-12-04 2009-08-04 Microsoft Corporation System and method for image authentication of a resource-sparing operating system
JP4574994B2 (ja) * 2004-01-26 2010-11-04 東芝マイクロエレクトロニクス株式会社 メモリ外付けマイコン
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
JP2005332221A (ja) * 2004-05-20 2005-12-02 Renesas Technology Corp 記憶装置
JP4612461B2 (ja) * 2004-06-24 2011-01-12 株式会社東芝 マイクロプロセッサ
US7461268B2 (en) * 2004-07-15 2008-12-02 International Business Machines Corporation E-fuses for storing security version data
US20060026417A1 (en) * 2004-07-30 2006-02-02 Information Assurance Systems L.L.C. High-assurance secure boot content protection
US8954751B2 (en) 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7958369B2 (en) * 2004-10-22 2011-06-07 Hewlett-Packard Development Company, L.P. Systems and methods for multiple level control of access of privileges to protected media content
EP1659472A1 (en) * 2004-11-22 2006-05-24 Research In Motion Limited Method and Device for Authenticating Software
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
CN101084504B (zh) * 2004-12-21 2010-04-14 Nxp股份有限公司 具有改进的器件安全性的集成电路
US20060136705A1 (en) * 2004-12-21 2006-06-22 Motorola, Inc. Multiple stage software verification
JP4606339B2 (ja) * 2005-02-07 2011-01-05 株式会社ソニー・コンピュータエンタテインメント セキュアなプロセッサの処理の移行を実施する方法および装置
JP4522372B2 (ja) * 2005-02-07 2010-08-11 株式会社ソニー・コンピュータエンタテインメント プロセッサと外部のデバイスとの間にセキュアセッションを実現する方法および装置
WO2006082985A2 (en) * 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
JP4669708B2 (ja) * 2005-02-16 2011-04-13 株式会社日立製作所 ストレージシステム、データ移動方法及び管理計算機
CN100358303C (zh) * 2005-02-28 2007-12-26 联想(北京)有限公司 一种对被管理设备进行监控的方法
CN1703004B (zh) * 2005-02-28 2010-08-25 联想(北京)有限公司 一种实现网络接入认证的方法
US8364792B2 (en) * 2005-03-09 2013-01-29 Vudu, Inc. Method and system for distributing restricted media to consumers
US7509250B2 (en) * 2005-04-20 2009-03-24 Honeywell International Inc. Hardware key control of debug interface
US20070005987A1 (en) * 2005-06-30 2007-01-04 Durham Lenitra M Wireless detection and/or containment of compromised electronic devices in multiple power states
JP4728060B2 (ja) * 2005-07-21 2011-07-20 株式会社日立製作所 ストレージ装置
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US20070055862A1 (en) * 2005-09-08 2007-03-08 Interdigital Technology Corporation Method and system for distributing data
US8656487B2 (en) * 2005-09-23 2014-02-18 Intel Corporation System and method for filtering write requests to selected output ports
KR100746012B1 (ko) * 2005-11-07 2007-08-06 삼성전자주식회사 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치
US8627109B2 (en) * 2005-11-23 2014-01-07 Hewlett-Packard Development Company, L.P. Method of securing access to a hard disk drive of a computer system with an enhanced security mode
US20070136609A1 (en) * 2005-12-13 2007-06-14 Rudelic John C Methods and apparatus for providing a secure channel associated with a flash device
US7900060B2 (en) * 2006-02-17 2011-03-01 Vudu, Inc. Method and system for securing a disk key
EP1826697A1 (en) * 2006-02-24 2007-08-29 Giga Games System, SL Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines
US8239686B1 (en) 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
GB0615392D0 (en) * 2006-08-03 2006-09-13 Wivenhoe Technology Ltd Pseudo random number circuitry
US8032940B1 (en) * 2006-10-25 2011-10-04 Chaperon, LLC Method and system for generating and employing a secure integrated development environment
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8056143B2 (en) * 2007-01-19 2011-11-08 Research In Motion Limited Selectively wiping a remote device
US8615665B2 (en) * 2007-01-26 2013-12-24 Harris Corporation Method for providing high assurance integrity of installed software images in a software defined radio
EA010331B1 (ru) * 2007-02-13 2008-08-29 Общество С Ограниченной Ответственностью "Крипто-Про" Способ обновления средства обеспечения безопасности программного средства
EP1970782B1 (de) * 2007-03-12 2010-08-18 Secunet Security Networks Aktiengesellschaft Schutzeinrichtung für eine programmierbare datenverarbeitende Einheit
JP4903071B2 (ja) * 2007-03-15 2012-03-21 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US8095816B1 (en) 2007-04-05 2012-01-10 Marvell International Ltd. Processor management using a buffer
US8443187B1 (en) 2007-04-12 2013-05-14 Marvell International Ltd. Authentication of computing devices in server based on mapping between port identifier and MAC address that allows actions-per-group instead of just actions-per-single device
US8145903B2 (en) * 2007-05-25 2012-03-27 Red Hat, Inc. Method and system for a kernel lock validator
US8422674B2 (en) * 2007-05-29 2013-04-16 International Business Machines Corporation Application-specific secret generation
US8433927B2 (en) * 2007-05-29 2013-04-30 International Business Machines Corporation Cryptographically-enabled privileged mode execution
US8332635B2 (en) * 2007-05-29 2012-12-11 International Business Machines Corporation Updateable secure kernel extensions
US8522043B2 (en) * 2007-06-21 2013-08-27 Microsoft Corporation Hardware-based computer theft deterrence
JP4956292B2 (ja) * 2007-06-25 2012-06-20 パナソニック株式会社 情報セキュリティ装置およびカウンタ制御方法
US8321706B2 (en) * 2007-07-23 2012-11-27 Marvell World Trade Ltd. USB self-idling techniques
JP2009032038A (ja) * 2007-07-27 2009-02-12 Hitachi Ltd リムーバブルな暗号化/復号化モジュールが接続されるストレージシステム
US20090055639A1 (en) * 2007-08-20 2009-02-26 Kimmo Kuusilinna Methods and system for modular device booting
JP2009053901A (ja) * 2007-08-27 2009-03-12 Seiko Epson Corp プリンタ
US8332636B2 (en) * 2007-10-02 2012-12-11 International Business Machines Corporation Secure policy differentiation by secure kernel design
JP5385148B2 (ja) * 2007-10-05 2014-01-08 パナソニック株式会社 セキュアブート端末、セキュアブート方法、セキュアブートプログラム、記録媒体及び集積回路
US20090119503A1 (en) * 2007-11-06 2009-05-07 L3 Communications Corporation Secure programmable hardware component
US8171309B1 (en) * 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
US8656190B2 (en) * 2008-01-31 2014-02-18 Microsoft Corporation One time settable tamper resistant software repository
US8661234B2 (en) * 2008-01-31 2014-02-25 Microsoft Corporation Individualized per device initialization of computing devices in avoidance of mass exploitation of vulnerabilities
US8090108B2 (en) * 2008-04-15 2012-01-03 Adaptive Chips, Inc. Secure debug interface and memory of a media security circuit and method
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
CN102160035A (zh) 2008-09-18 2011-08-17 马维尔国际贸易有限公司 至少部分地在引导期间向存储器预加载应用
US10255463B2 (en) * 2008-11-17 2019-04-09 International Business Machines Corporation Secure computer architecture
US10452844B2 (en) * 2008-11-26 2019-10-22 International Business Machines Corporation Protecting isolated secret data of integrated circuit devices
CN102265263A (zh) * 2008-12-24 2011-11-30 松下电器产业株式会社 总线控制器及初始引导程序的修补方法
WO2010077787A1 (en) * 2009-01-05 2010-07-08 Marvell World Trade Ltd. Method and system for hibernation or suspend using a non-volatile-memory device
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US9058491B1 (en) * 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
JP4747288B2 (ja) * 2009-04-03 2011-08-17 株式会社バッファロー 外付け記憶装置及びその制御方法
US8424071B2 (en) * 2009-04-15 2013-04-16 International Business Machines Corporation Method and apparatus for secure and reliable computing
GB2474250B (en) * 2009-10-07 2015-05-06 Advanced Risc Mach Ltd Video reference frame retrieval
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9336410B2 (en) 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
US8442235B2 (en) * 2010-04-14 2013-05-14 Microsoft Corporation Extensible management of self-encrypting storage devices
US8555059B2 (en) * 2010-04-16 2013-10-08 Microsoft Corporation Secure local update of content management software
CA2759971A1 (en) * 2010-11-29 2012-05-29 Groupe Cgi Inc. Method for storing (hiding) a key in a table and corresponding method for retrieving the key from the table
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
WO2013012435A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Security parameter zeroization
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US8732527B2 (en) 2011-08-16 2014-05-20 Google Inc. Secure recovery apparatus and method
US8756594B2 (en) * 2011-10-28 2014-06-17 Microsoft Corporation Reactive anti-tampering system for protected services in an enterprise computing system
US9021246B2 (en) * 2011-10-28 2015-04-28 GM Global Technology Operations LLC Method to replace bootloader public key
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
KR101301609B1 (ko) * 2012-05-31 2013-08-29 서울대학교산학협력단 비밀키 생성 장치 및 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
WO2014177905A1 (en) 2013-04-30 2014-11-06 Freescale Semiconductor, Inc. Device having a security module
US20140344581A1 (en) * 2013-05-16 2014-11-20 Cisco Technology, Inc. Secure Upgrades for Field Programmable Devices
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
EP3028145A1 (en) 2013-07-31 2016-06-08 Marvell World Trade Ltd. Parallelizing boot operations
US9607177B2 (en) * 2013-09-30 2017-03-28 Qualcomm Incorporated Method for securing content in dynamically allocated memory using different domain-specific keys
EP3087471A4 (en) * 2013-12-27 2017-10-11 Intel Corporation Controlled customization of silicon initialization
US20150286823A1 (en) * 2014-04-07 2015-10-08 Qualcomm Incorporated System and method for boot sequence modification using chip-restricted instructions residing on an external memory device
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
US10192062B2 (en) * 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
CN104320248A (zh) * 2014-11-14 2015-01-28 中国建设银行股份有限公司 一种系统间密钥同步的方法及系统
EP3040896A1 (en) 2014-12-30 2016-07-06 Gemalto Sa Secure element
US10541811B2 (en) * 2015-03-02 2020-01-21 Salesforce.Com, Inc. Systems and methods for securing data
US10114958B2 (en) * 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US20160378151A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Rack scale architecture (rsa) and shared memory controller (smc) techniques of fast zeroing
US9996479B2 (en) * 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9917687B2 (en) * 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
WO2017168228A1 (en) 2016-03-08 2017-10-05 Marvell World Trade Ltd. Methods and apparatus for secure device authentication
SG10201602449PA (en) * 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
CN107808099B (zh) * 2016-09-08 2021-03-16 北京自动化控制设备研究所 嵌入式软件加密/解密系统及方法
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
US10872043B2 (en) * 2017-08-17 2020-12-22 Microchip Technology Incorporated Systems and methods for integrity checking of code or data in a mixed security system while preserving confidentiality
CN108108631A (zh) * 2017-11-29 2018-06-01 晨星半导体股份有限公司 一种根密钥处理方法及相关装置
US10757087B2 (en) 2018-01-02 2020-08-25 Winbond Electronics Corporation Secure client authentication based on conditional provisioning of code signature
US11314858B2 (en) * 2018-10-10 2022-04-26 Comcast Cable Communications, Llc Event monitoring
FR3098613A1 (fr) * 2019-07-09 2021-01-15 STMicroelectronics (Grand Ouest) SAS Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant
CN112241272B (zh) * 2019-07-17 2023-08-01 宇通客车股份有限公司 一种车载仪表及其升级方法、系统
CN113496016A (zh) * 2020-04-08 2021-10-12 深圳市中兴微电子技术有限公司 一种内存的访问方法、系统级芯片和电子设备
US11416621B2 (en) * 2020-06-18 2022-08-16 Micron Technology, Inc. Authenticating software images
US11728997B2 (en) * 2020-09-08 2023-08-15 Micron Technology, Inc. Cloud-based creation of a customer-specific symmetric key activation database
JP7391802B2 (ja) * 2020-09-11 2023-12-05 株式会社東芝 情報処理装置、情報処理方法及びコンピュータプログラム
US11580215B2 (en) * 2020-09-14 2023-02-14 Micron Technology, Inc. Authenticating software images

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4168396A (en) 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4465901A (en) 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
US6822553B1 (en) 1985-10-16 2004-11-23 Ge Interlogix, Inc. Secure entry system with radio reprogramming
US4920483A (en) 1985-11-15 1990-04-24 Data General Corporation A computer memory for accessing any word-sized group of contiguous bits
US4797853A (en) 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
US4951249A (en) * 1986-10-24 1990-08-21 Harcom Security Systems Corp. Method and apparatus for controlled access to a computer system
US5144659A (en) 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
EP0463966B1 (en) * 1990-06-29 1998-11-25 Digital Equipment Corporation High-performance multi-processor having floating point unit and operation method
GB2255260B (en) 1991-04-24 1995-06-14 Mars Inc Transaction systems
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5918007A (en) 1992-05-27 1999-06-29 International Business Machines Corporation Trusted personal computer system with limited accessibility
US5440713A (en) 1992-05-29 1995-08-08 Industrial Technology Research Institute M-way N-port paged-interleaved memory system
US5603081A (en) 1993-11-01 1997-02-11 Telefonaktiebolaget Lm Ericsson Method for communicating in a wireless communication system
SG48838A1 (en) 1992-12-30 1998-05-18 Telstra Corp Ltd A method and apparatus for generating a cipher
US5561817A (en) 1993-08-16 1996-10-01 Thermo King Corporation Method of securely controlling direct memory access (DMA) of a shared memory by a DMA device on an expansion board
US5841868A (en) 1993-09-21 1998-11-24 Helbig, Sr.; Walter Allen Trusted computer system
US5491827A (en) 1994-01-14 1996-02-13 Bull Hn Information Systems Inc. Secure application card for sharing application data and procedures among a plurality of microprocessors
US5805706A (en) * 1996-04-17 1998-09-08 Intel Corporation Apparatus and method for re-encrypting data without unsecured exposure of its non-encrypted format
US5564054A (en) * 1994-08-25 1996-10-08 International Business Machines Corporation Fail-safe computer boot apparatus and method
US5544255A (en) 1994-08-31 1996-08-06 Peripheral Vision Limited Method and system for the capture, storage, transport and authentication of handwritten signatures
US5893921A (en) 1995-02-10 1999-04-13 International Business Machines Corporation Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
US5610980A (en) * 1995-02-13 1997-03-11 Eta Technologies Corporation Method and apparatus for re-initializing a processing device and a storage device
US5757915A (en) 1995-08-25 1998-05-26 Intel Corporation Parameterized hash functions for access control
DE19536169A1 (de) 1995-09-29 1997-04-03 Ibm Multifunktionale Chipkarte
US6577734B1 (en) * 1995-10-31 2003-06-10 Lucent Technologies Inc. Data encryption key management system
US5809230A (en) * 1996-01-16 1998-09-15 Mclellan Software International, Llc System and method for controlling access to personal computer system resources
US5825878A (en) 1996-09-20 1998-10-20 Vlsi Technology, Inc. Secure memory management unit for microprocessor
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US6101543A (en) 1996-10-25 2000-08-08 Digital Equipment Corporation Pseudo network adapter for frame capture, encapsulation and encryption
US5757919A (en) 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JPH10177560A (ja) 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US5887131A (en) 1996-12-31 1999-03-23 Compaq Computer Corporation Method for controlling access to a computer system by utilizing an external device containing a hash value representation of a user password
US5930824A (en) * 1997-02-04 1999-07-27 International Business Machines Corporation System and method for demand-base data recovery
DE19708616C2 (de) 1997-03-03 1999-09-02 Siemens Ag Elektronische Datenverarbeitungseinrichtung und -system
GB2325061B (en) 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
US5935247A (en) 1997-09-18 1999-08-10 Geneticware Co., Ltd. Computer system having a genetic code that cannot be directly accessed and a method of maintaining the same
US6438666B2 (en) * 1997-09-26 2002-08-20 Hughes Electronics Corporation Method and apparatus for controlling access to confidential data by analyzing property inherent in data
US6023510A (en) 1997-12-24 2000-02-08 Philips Electronics North America Corporation Method of secure anonymous query by electronic messages transported via a public network and method of response
US6230269B1 (en) 1998-03-04 2001-05-08 Microsoft Corporation Distributed authentication system and method
US6226742B1 (en) 1998-04-20 2001-05-01 Microsoft Corporation Cryptographic technique that provides fast encryption and decryption and assures integrity of a ciphertext message through use of a message authentication code formed through cipher block chaining of the plaintext message
US6141756A (en) * 1998-04-27 2000-10-31 Motorola, Inc. Apparatus and method of reading a program into a processor
US6775778B1 (en) * 1998-05-29 2004-08-10 Texas Instruments Incorporated Secure computing device having boot read only memory verification of program code
EP0961193B1 (en) * 1998-05-29 2010-09-01 Texas Instruments Incorporated Secure computing device
US6182142B1 (en) 1998-07-10 2001-01-30 Encommerce, Inc. Distributed access management of information resources
US6385727B1 (en) * 1998-09-25 2002-05-07 Hughes Electronics Corporation Apparatus for providing a secure processing environment
US6116402A (en) 1998-10-23 2000-09-12 Coinstar, Inc. Voucher coding for self-service coin discriminator
US20020013911A1 (en) * 1998-11-24 2002-01-31 Cordella Robert H. Compact hardware architecture for secure exchange of information and advanced computing
US20020032867A1 (en) * 1998-11-24 2002-03-14 Kellum Charles W. Multi-system architecture using general purpose active-backplane and expansion-bus compatible single board computers and their peripherals for secure exchange of information and advanced computing
US6408387B1 (en) * 1999-01-22 2002-06-18 Intel Corporation Preventing unauthorized updates to a non-volatile memory
US6311255B1 (en) 1999-04-29 2001-10-30 International Business Machines Corporation System and method for selectively restricting access to memory for bus attached unit IDs
US6711684B1 (en) * 1999-06-08 2004-03-23 General Instrument Corporation Variable security code download for an embedded processor
US6609169B1 (en) * 1999-06-14 2003-08-19 Jay Powell Solid-state audio-video playback system
US20020042882A1 (en) * 2000-10-10 2002-04-11 Dervan R. Donald Computer security system
US7055038B2 (en) * 2001-05-07 2006-05-30 Ati International Srl Method and apparatus for maintaining secure and nonsecure data in a shared memory system
US20020184512A1 (en) * 2001-05-31 2002-12-05 Cardoso Augusto C. Method and apparatus for supporting remote configuration to facilitate subscriber management
US6971051B2 (en) * 2002-01-10 2005-11-29 Agilent Technologies, Inc. System and method of recovering from soft memory errors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Девис Д. и др. Вычислительные сети и сетевые протоколы. - М.: Мир, 1982, с.480-483, рис.9.9. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2541196C2 (ru) * 2010-07-22 2015-02-10 Награвисьон С.А. Способ обеспечения целостности программного обеспечения
RU2673969C2 (ru) * 2013-09-12 2018-12-03 Зе Боинг Компани Устройство мобильной связи и способ работы с ним

Also Published As

Publication number Publication date
EP1648109A2 (en) 2006-04-19
JP2009032282A (ja) 2009-02-12
US20030200454A1 (en) 2003-10-23
US7356707B2 (en) 2008-04-08
KR20040101342A (ko) 2004-12-02
WO2003090402A8 (en) 2004-12-29
CN1647443B (zh) 2010-05-05
US20040083375A1 (en) 2004-04-29
CA2481569C (en) 2008-10-07
JP2005523537A (ja) 2005-08-04
RU2004133759A (ru) 2005-08-27
CN1647443A (zh) 2005-07-27
EP1500225A4 (en) 2007-12-12
IL164718A (en) 2009-11-18
JP4464689B2 (ja) 2010-05-19
KR100809977B1 (ko) 2008-03-07
PL372374A1 (en) 2005-07-25
US6715085B2 (en) 2004-03-30
CA2481569A1 (en) 2003-10-30
IL164718A0 (en) 2005-12-18
AU2003223671A1 (en) 2003-11-03
US6957335B2 (en) 2005-10-18
EP1648109A3 (en) 2007-12-26
WO2003090402A1 (en) 2003-10-30
EP1648109B1 (en) 2013-03-27
JP4473330B2 (ja) 2010-06-02
US20040088559A1 (en) 2004-05-06
EP1500225A1 (en) 2005-01-26

Similar Documents

Publication Publication Date Title
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
EP2062191B1 (en) System and method for securely restoring a program context from a shared memory
EP2706478B1 (en) Protecting secure software in a multi-security-CPU system
US20130254906A1 (en) Hardware and Software Association and Authentication
WO2009107330A1 (ja) 情報処理装置及びその制御方法
KR20050085678A (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
JP2009225439A (ja) 安全キーの知識なしのブート映像の安全更新
US9171170B2 (en) Data and key separation using a secure central processing unit
US20090204803A1 (en) Handling of secure storage key in always on domain
EP2062185A1 (en) System and method for securely saving a program context to a shared memory
US9881142B2 (en) Method and apparatus for preventing and investigating software piracy
US20020169976A1 (en) Enabling optional system features
GB2457172A (en) Securely downloading boot code to a locked system
CA2638979C (en) Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20140417