ПРИВЯЗКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ К АППАРАТНЫМ СРЕДСТВАМ С ИСПОЛЬЗОВАНИЕМ КРИПТОГРАФИИ Российский патент 2009 года по МПК H04L9/00 

Описание патента на изобретение RU2356169C2

Область техники, к которой относится изобретение

Данное изобретение относится, в целом, к электронике (электронному оборудованию) и, более конкретно, к способам привязки программного обеспечения к аппаратным средствам.

Уровень техники

Электронные устройства широко доступны для различных областей применений, таких как радиосвязь, вычислений на персональном компьютере и так далее. Поскольку аппаратные средства становятся более мощными, то эти устройства могут поддерживать большее количество функций и/или более сложные функции. Например, современный сотовый телефон может обеспечивать радиосвязь, а также может дополнительно служить в качестве игрового устройства, "карманного" компьютера, предназначенного для выполнения некоторых специальных функций (PDA), цифровой камеры и так далее.

Сложное электронное устройство (например, сотовый телефон) обычно требует, чтобы программное обеспечение управляло аппаратными средствами и поддерживало различные исполнительные функции. Программное обеспечение может быть загружено в энергонезависимую память, внедренную в устройство в течение производства, и/или загружено в устройство в течение активации. Независимо от того, как программное обеспечение было загружено в устройство, оно может быть желательным или необходимым для выяснения того, действительно ли загруженное программное обеспечение является "подходящим" для аппаратных средств, причем эта пригодность может быть количественно определена посредством различных факторов как, например, описано ниже. Например, может быть желательно выяснить, что загруженное программное обеспечение является версией, которая была санкционирована изготовителем, и не допустить выполнения программного обеспечения в том случае, если это несанкционированная версия.

Поэтому в данном уровне техники существует потребность в способах привязки программного обеспечения к аппаратным средствам для электронного устройства.

Сущность изобретения

Здесь описаны способы привязки программного обеспечения к аппаратным средствам с использованием криптографии. Программное обеспечение идентифицируют посредством идентификатора (ID) программного обеспечения, который может быть номером версии выпуска программного обеспечения. Аппаратные средства идентифицируют посредством идентификатора (ID) аппаратных средств, который может быть номером модели (серийным номером) или номером компонента.

В одной конкретной схеме привязки программного обеспечения к аппаратным средствам программное обеспечение сначала хэшируют для получения профиля кода. Затем создают подпись (сигнатуру) кода для профиля кода, идентификатор программного обеспечения и идентификатор аппаратных средств. После этого образ кода формируют с программным обеспечением, идентификатором программного обеспечения, подписью кода и сертификатом. Сертификат содержит криптографическую информацию, используемую для (1) аутентификации центра сертификации, который создает подпись кода, и (2) подтверждения правильности подписи кода. Образ кода обеспечивают в устройство, а затем сохраняют в нем, например, в беспроводном устройстве, таком как сотовый телефон.

Устройство подтверждает правильность привязки программного обеспечения к аппаратным средствам до выполнения программного обеспечения. При включении устройство может каждый раз выполнять подтверждение правильности. Для подтверждения правильности устройство сначала аутентифицирует сертификат с открытым ключом для центра сертификации, который встроен в устройство. Затем устройство подтверждает правильность подписи кода, используя (1) криптографическую информацию, содержащуюся в сертификате, (2) информацию в образе кода и (3) идентификатор аппаратных средств, встроенный в устройство. Также подтверждение правильности может быть выполнено в другом порядке (например, сначала подтвердить правильность подписи, а затем аутентифицировать сертификат).

Далее подробно описаны различные аспекты и варианты осуществления изобретения.

Краткое описание чертежей

Признаки и сущность данного изобретения станут более очевидными из подробного описания, изложенного ниже, взятого совместно с чертежами, на которых ссылочные номера идентифицируют соответствующие элементы, и на которых изображено следующее:

Фиг.1 изображает схему с различными объектами, предназначенными для привязки программного обеспечения к аппаратным средствам;

Фиг.2 иллюстрирует образ кода, который посылают в беспроводное устройство, а затем сохраняют в нем;

Фиг.3 изображает обработку для создания образа кода для программного обеспечения;

Фиг.4 изображает блок, предназначенный для создания подписи кода;

Фиг.5 изображает блок, предназначенный для создания профиля, используемого для подписи кода;

Фиг.6 изображает процесс создания образа кода для программного обеспечения;

Фиг.7 изображает процесс создания подписи кода;

Фиг.8 изображает блок-схему логического объекта генератора кода, центра сертификации и беспроводного устройства;

Фиг.9 изображает блок, предназначенный для подтверждения правильности программного обеспечения на основании подписи кода; и

Фиг.10 изображает процесс подтверждения правильности программного обеспечения посредством беспроводного устройства.

Подробное описание изобретения

Слово «иллюстративный» используется здесь в значении «служить примером, частным случаем или иллюстрацией». Любой вариант осуществления или конструкция, описанные здесь, также являются «иллюстративными» и не должны быть рассмотрены в обязательном порядке, как предпочтительно или выгодно, согласно другим вариантам осуществления или конструкциям.

Описанные здесь способы привязки программного обеспечения к аппаратным средствам с использованием криптографии могут быть использованы в различных электронных устройствах, таких как беспроводное устройство, сотовый телефон, телефонная трубка, вычислительное устройство, «карманный» компьютер, предназначенный для выполнения некоторых специальных функций (PDA), и так далее. Для ясности, эти способы описаны конкретно для беспроводного устройства (например, сотового телефона).

Привязка программного обеспечения к аппаратным средствам достигается посредством использования способов криптографии. В целом, для привязки может быть использована как криптография с симметричными шифрами, так и криптография с асимметричными шифрами. В криптографии с асимметричными шифрами (которая также известна как криптография с открытым ключом) для функций секретности, таких как идентификация, кодирование и расшифровка, используется пара ключей, состоящая из личного ключа и открытого ключа. Личный ключ сохраняется тайно, а при необходимости обеспечивается открытый ключ. Другие функции секретности могут быть достигнуты на основании того, как ключи используются для обработки данных. В криптографии с симметричными шифрами (которая также известна как криптография с секретным ключом) и ведущим логическим объектом секретный ключ известен заранее (априори), и ключ сохраняется в тайне от других объектов. Криптография с асимметричными шифрами является более подходящей для областей применений, в которых данные подписей одного логического объекта и несколько логических объектов аутентифицируют подписи для подтверждения правильности данных. В связи с этим для следующего описания используется криптография с асимметричными шифрами.

Фиг.1 изображает схему 100 с различными логическими объектами, служащими для привязки программного обеспечения к аппаратным средствам. Логический объект 110 генератора кода создает код 112 программного обеспечения для конкретной платформы аппаратных средств (или просто «аппаратных средств»). Код программного обеспечения предназначен для его выполнения посредством аппаратных средств, для осуществления желательных функций. Код программного обеспечения определяет идентификатор (ID) программного обеспечения, который может быть номером версии выпуска программного обеспечения, ключом защиты программного продукта или любой другой информацией идентификации. Аппаратные средства могут быть интегральной схемой, набором микросхем, модулем, устройством и так далее. Подобным образом аппаратные средства определяются идентификатором аппаратных средств, который может быть номером модели, номером продукта и так далее. Каждая из различных платформ аппаратных средств определяется различным идентификатором аппаратных средств, но все экземпляры класса или модули той же самой платформы аппаратных средств имеют тот же самый идентификатор аппаратных средств. Точно так же каждый выпуск программного обеспечения определяется различным программным идентификатором, но все экземпляры или копии того же самого выпуска программного обеспечения имеют тот же самый идентификатор программного обеспечения. Таким образом, идентификатор программного обеспечения и идентификатор аппаратных средств идентифицируют выпуск программного обеспечения и платформу аппаратных средств, соответственно, и неопределенные экземпляры программного обеспечения и аппаратных средств.

Логический объект 110 генератора кода обрабатывает (например, хэширует) код программного обеспечения для получения профиля кода, который в результате хэширования является профилем сообщения. Хэширование преобразовывает потенциально большой файл переменного размера для кода программного обеспечения, с целью получить короткий профиль постоянного размера, который может быть более удобен для передачи и управления. Логический объект 110 генератора кода посылает в центр 120 сертификации (СА) запрос о подписи для кода программного обеспечения. Запрос включает в себя: (1) профиль кода, (2) идентификатор программного обеспечения для кода программного обеспечения и (3) идентификатор аппаратных средств для аппаратных средств, на которых код программного обеспечения предназначен для выполнения. Запрос может включать в себя эквивалентную информацию. Например, логический объект 110 генератора кода может послать код программного обеспечения вместо профиля кода, некой другой информации, идентифицирующей код программного обеспечения и намеченные аппаратные средства, и так далее.

Центр 120 сертификации представляет собой доверенный объект, который проверяет, действительно ли программное обеспечение может быть связано с аппаратными средствами. Центр 120 сертификации может сначала аутентифицировать логический объект 110 генератора кода на основании сертификата, посланного наряду с запросом посредством логического объекта 110 генератора кода. Для простоты этот сертификат не показан на Фиг.1. Проверка правильности для требуемой привязки может быть достигнута посредством сопоставления идентификатора программного обеспечения и идентификатора аппаратных средств, принятых от логического объекта 110 генератора кода, с информацией, сохраненной в таблице-конфигураторе 122. Например, таблица 122 может сохранить список привязок программного обеспечения к аппаратным средствам, который разрешен для логического объекта 110 генератора кода. Требуемая привязка может быть разрешена в случае, если она соответствует одной из разрешенных привязок, сохраненных в таблице. Как только требуемая привязка была подтверждена, центр 120 сертификации осуществляет привязку программного обеспечения к аппаратным средствам, используя криптографию и криптографические ключи 124. Криптографические ключи 124 включают в себя два набора ключей: (1) набор личных и открытых ключей, используемых для подписи и аутентификации кода программного обеспечения (которые упоминаются в настоящем описании как «код» личных и открытых ключей) и (2) набор личных и открытых ключей, используемых для идентификации и аутентификации центра 120 сертификации (который упоминает в настоящем описании как «СА» личных и открытых ключей). Центр 120 сертификации создает подпись согласно профилю кода, идентификатору программного обеспечения и идентификатору аппаратных средств, используя код личного ключа. Эта подпись упоминается в настоящем описании как «подпись кода». Затем центр 120 сертификации посылает подпись кода и сертификат 126 логическому объекту 110 генератора кода. Сертификат содержит (1) код открытого ключа, соответствующий коду личного ключа, используемый для создания подписи кода, (2) подпись, созданную согласно коду открытого ключа, используя СА личный ключ (который упоминается в настоящем описании как «СА подпись») и (3), возможно, другую информацию.

Логический объект 110 генератора кода принимает от центра 120 сертификации подпись кода и сертификат, и затем формирует образ кода с кодом программного обеспечения, идентификатором программного обеспечения, подписью кода и сертификатом. Затем логический объект 110 генератора кода посылает образ кода беспроводному устройству 130, который сохраняет его в энергонезависимой памяти 132. Устройство 130 содержит код 134 начальной загрузки, который выполняется, например, каждый раз при включении устройства. Код начальной загрузки подтверждает правильность кода программного обеспечения для выполнения посредством устройства 130 на основании (1) идентификатора программного обеспечения, подписи кода и сертификата, включенных в образ кода, (2) идентификатора 136 аппаратных средств и (3) СА открытого ключа 138, как описано ниже. Код начальной загрузки, идентификатор аппаратных средств и СА открытый ключ встроены в устройство 130 и являются устойчивыми к подделкам (искажениям). Устройство 130 выполняет только код программного обеспечения, если это подтверждено кодом начальной загрузки.

Логический объект 110 генератора кода может быть производителем беспроводных устройств 130, сетевым оператором или поставщиком услуг для сети радиосвязи, в которой используется беспроводное устройство 130, продавцом программного обеспечения третьего лица, оригинальным производителем комплексного оборудования (ОЕМ), лицом, обладающим патентом логического объекта с правами интеллектуальной собственности на аппаратные средства и/или технологию, используемую для сети связи, или неким другим объектом. Центр 120 сертификации может быть независимым доверенным логическим объектом (например, Geotrust, Verisign и так далее), служащим для выполнения привязок программного обеспечения к аппаратным средствам. А также центр 120 сертификации и логический объект 110 генератора кода могут быть частями того же самого объекта (например, сетевого оператора).

Фиг.2 иллюстрирует образ кода, который посылается в беспроводное устройство 130, а затем сохраняется в нем. Образ кода содержит поле 212 для кода программного обеспечения, поле 214 (SW ID) для идентификатора программного обеспечения, поле 216 для подписи кода, созданной посредством центра 120 сертификации, и поле 218 для сертификата, обеспеченного посредством центра 120 сертификации. Образ кода может быть сохранен в различных форматах, таких как, например, формат, определенный документом RFC 2315 «PKCS #7: Cryptographic Message Syntax Version 1.5», который является публично доступным. Образ кода может также содержать дополнительную информацию и/или информацию отличную от информации, представленной на Фиг.2. Например, идентификатор программного обеспечения может быть включен в код программного обеспечения и может не быть сохранен отдельно, как показано на Фиг.2.

Фиг.3 изображает обработку для создания образа кода для кода программного обеспечения. Хэш-функция 310 принимает и хэширует код программного обеспечения и обеспечивает профиль кода. Так как код программного обеспечения может быть большим файлом, размером в несколько мегабайт, то хэширование создает короткий профиль фиксированного размера, который можно более удобно посылать и управлять им. Хэш-функция 310 преобразовывает код программного обеспечения в соответствующий профиль кода. Важным свойством хэш-функции 310 должно быть сопротивление столкновениям, это означает то, что должно быть недопустимо нахождение двух сообщений x и x', соответствующих тому же самому профилю. Хэш-функция 310 может быть реализована с различными криптографическими хэш-функциями, такими как SHA-1 (алгоритм аутентификации и проверки целостности информации), MD-5 (алгоритм MD (профиля сообщения)) и другими алгоритмами хэширования, известными в данной области техники. SHA-1 обеспечивает 160-битовый профиль сообщения и описан в Федеральном стандарте обработки информации (FIPS) PUB 180-1 «Secure Hash Standard», который является публично доступным. MD-5 обеспечивает 128-битовый профиль сообщения и описан в документе RFC 1321 «The MD5 Message-Digest Algorithm», который также является публично доступным.

Функция 320 подписи (знаковая функция) принимает профиль кода, идентификатор программного обеспечения, идентификатор аппаратных средств и код личного ключа. Функция 320 подписи создает подпись кода на основании профиля кода, идентификатора программного обеспечения и идентификатора аппаратных средств, используя код личного ключа. Функция 320 подписи может быть осуществлена описанным ниже способом.

Генератор 330 сертификатов принимает код открытого ключа, соответствующий коду личного ключа, СА личный ключ и другую подходящую информацию (например, информацию, идентифицирующую логический объект, создающий сертификат, криптографические алгоритмы, используемые для сертификата, и так далее). Генератор 330 сертификатов создает подпись согласно коду открытого ключа и другой подходящей информации с СА личным ключом. Эта подпись упомянута в настоящем описании как «СА подпись». Затем генератор 330 сертификатов создает сертификат с кодом открытого ключа, СА подписью и другой информацией. Сертификат может быть сохранен в различных форматах, таких как, например, формат, определенный документом RFC 2459 «Internet X.509 Public Key Infrastructure Certificate and CRL Profile», который является публично доступным. Сертификат используется для аутентификации центра 120 сертификации так же, как код открытого ключа, описанным ниже способом.

Блок 340 объединения принимает и объединяет код программного обеспечения, идентификатор программного обеспечения, подпись кода и сертификат для получения образа кода (например, в формате PKCS #7).

Хэш-функция 310 и блок 340 объединения могут постоянно находиться в логическом объекте 110 генератора кода, изображенном на Фиг.1. Функция 320 подписи и генератор 330 сертификатов могут постоянно находиться в центре 120 сертификации. Альтернативно хэш-функция 310, функция 320 подписи, генератор 330 сертификатов и блок 340 объединения могут совместно постоянно находиться в том же самом логическом объекте.

Фиг.4 изображает блок 320a обработки данных (процессор), служащий для создания подписи кода. Блок 320a обработки данных может быть использован для функции 320 подписи, изображенной на Фиг.3.

В блоке 320a блок 410 хэширования выполняет конкатенацию и хэширование профиля кода, идентификатора программного обеспечения и идентификатора аппаратных средств. В варианте осуществления, изображенного на Фиг.4, находящийся в блоке 410 хэширования блок 412 конкатенации принимает и связывает профиль кода, идентификатор программного обеспечения и идентификатор аппаратных средств, для получения сообщения (M). Хэш-функция 414 хэширует сообщение (M) и обеспечивает профиль (D) сообщения. Профиль (D) содержит информацию, связывающую программное обеспечение с аппаратными средствами, и упоминается в настоящем описании как «профиль подписи». Затем блок 420 кодирования кодирует профиль (D) подписи с кодом личного ключа для создания подписи (S) кода.

Как правило, для создания профиля (D), который также посылается наряду с подписью (S) кода, используется целое сообщение. Однако для данной области применения используются три части информации для получения подписи кода, доступной для беспроводного устройства через другие средства. В частности, беспроводное устройство может получить профиль кода и идентификатор программного обеспечения из образа кода, а идентификатор аппаратных средств является встроенным в беспроводное устройство.

Блок 320a может выполнить RSA (Рон Райвест, Ади Шамир и Леонард Эйдельман) алгоритм. Для этого выполнения хэш-функция 414 может выполнить SHA-1, MD-5 или некую другую хэш-функцию, а блок 420 кодирования кодирует профиль (D) с кодом личного ключа. Блок 320a также может выполнить стандарт цифровой подписи (DSS), описанный в FIPS PUB 186 «Digital Signature Standard (DSS)», который является публично доступным. Для этого выполнения хэш-функция 414 выполняет SHA-1, а блок 420 кодирования выполняет алгоритм цифровой подписи (DSA). Блок 320a обработки данных также может выполнить некий другой криптографический (цифровая подпись или кодирование) алгоритм, и это находится в рамках объема изобретения.

Фиг.5 изображает блок 410a обработки данных, служащий для создания профиля подписи (D), используемого для подписи кода. Блок 410а обработки данных может быть использован для блока 410 хэширования, изображенного на Фиг.4. Блок 410a выполняет код аутентичности сообщения на основе хэширования (HMAC). HMAC описан в документе RFC 2104 «HMAC: Keyed-Hashing for Message Authentication» и в документе FIPS PUB 198 «The Keyed-Hash Message Authentication Code (HMAC)», каждый из которых публично доступен.

В блоке 410а обработки данных блок 512 принимает идентификатор программного обеспечения и выполняет операцию исключающее ИЛИ идентификатора программного обеспечения и значения «ipad». Это значение «ipad» может быть значением, определенным в RFC2401, которое является шестнадцатиричным байтом 0x36, повторяющимся 64 раза. Однако значение «ipad» может быть определено с некоторым другим базовым значением вместо 0x36, и базовое значение может быть повторено различное число раз вместо 64. Значение «ipad» также может быть определено как единственное значение без повторений. Нулевое заполнение выполняется в программном идентификаторе и идентификаторе аппаратных средств по мере необходимости, чтобы получить желательную длину, которая не показана на Фиг.5 для простоты. Операция исключающее ИЛИ может быть выполнена с добавкой поразрядного модуля-2. Блок 514 конкатенации принимает и связывает профиль кода с выходом блока 512 операции исключающей ИЛИ и обеспечивает первое сообщение (М1). Хэш-функция 516 принимает, хэширует первое сообщение и обеспечивает первый профиль (D1).

Блок 522 выполняет операцию исключающее ИЛИ идентификатора аппаратных средств и значения «opad». Это значение «opad» может быть значением, определенным в RFC2401, которое является шестнадцатиричным байтом Ox5c, повторяющимся 64 раза. Однако значение «opad» может быть определено с некоторым другим базовым значением вместо Ox5c, и базовое значение может быть повторено различное число раз вместо 64. Значение «opad» также может быть определено как единственное значение без повторений. Блок 518 конкатенации принимает и связывает первый профиль (Dl) хэш-функции 516 с выходом блока 522 операции исключающее ИЛИ и обеспечивает второе сообщение (M2). Хэш-функция 520 принимает и хэширует второе сообщение (M2) и обеспечивает второй профиль, который используется в качестве профиля (D) подписи. Хэш-функции 516 и 520 могут быть выполнены с различными криптографическими хэш-функциями, такими как SHA-1, MD-5, или неким другим алгоритмом хэширования.

Фиг.5 изображает использование HMAC определенным способом для создания профиля подписи. Структура HMAC также может быть использована другими способами для создания профиля подписи, и это находится в рамках изобретения. Например, идентификатор программного обеспечения и идентификатор аппаратных средств могут быть сцеплены, а затем обеспечены блоку 512 и выполнены командой исключающее ИЛИ со значением «ipad», а также профиль кода можно обеспечить блоку 522 и выполнить команду исключающее ИЛИ со значением «opad».

Фиг.4 и 5 изображают две иллюстративных схемы для создания профиля подписи. Блок 410а обработки данных, изображенный на Фиг.5, использует эти три элемента (то есть профиль кода, идентификатор программного обеспечения и идентификатор аппаратных средств) в качестве ключей к HMAC, для создания профиля подписи. Блок 410, изображенный на Фиг.4, связывает эти три элемента в одно сообщение (M) и выполняет хэширование каждого сообщения (M) для создания профиля подписи. Профиль подписи также может быть создан другими способами, и это находится в рамках изобретения.

Фиг.6 изображает блок-схему процесса 600 создания образа кода для кода программного обеспечения. Процесс 600 выполняется посредством логического объекта 110 генератора кода и центра 120 сертификации.

Первоначально логический объект 110 генератора кода хэширует код программного обеспечения для получения профиля кода (блок 612). Затем логический объект 110 генератора кода посылает профиль кода, идентификатор программного обеспечения и идентификатор аппаратных средств в запросе для подписи кода (блок 614), который принят центром 120 сертификации (блок 622). Центр 120 сертификации создает подпись кода (если подпись санкционирована) для профиля кода, идентификатор программного обеспечения и идентификатор аппаратных средств, используя код личного ключа (блок 624). Затем центр сертификации возвращает подпись кода и сертификат (блок 626), которые приняты логическим объектом 110 генератора кода (блок 632). Затем логический объект 110 генератора кода формирует образ кода с кодом программного обеспечения, идентификатором программного обеспечения, подписью кода и сертификатом, как изображено на Фиг.2 (блок 634). После этого логический объект 110 генератора кода может послать образ кода беспроводному устройству 130 (блок 636). Затем процесс заканчивается.

Фиг.7 изображает блок-схему процесса 700 создания подписи кода. Процесс 700 включает в себя блоки 622, 624 и 626, изображенные на Фиг.6, а также включает в себя блок 710 для аутентификации логического объекта 110 генератора кода и определения того, действительно ли код программного обеспечения может быть связан с аппаратными средствами. Процесс 700 может быть выполнен посредством центра 120 сертификации.

Центр 120 сертификации принимает запрос для подписи кода от логического объекта 110 генератора кода (блок 622). Этот запрос включает в себя профиль кода, идентификатор программного обеспечения, идентификатор аппаратных средств и сертификат для логического объекта 110 генератора кода (который упомянут в настоящем описании как «CG сертификат»). Центр 120 сертификации аутентифицирует логический объект 110 генератора кода на основании CG сертификата (блок 712). Если логический объект 110 генератора кода не аутентифицирован на основании CG сертификата (то есть ответ «Нет» для блока 714), то сообщение об ошибке отсылается назад (блок 720), и процесс заканчивается.

Если логический объект 110 генератора кода аутентифицирован (то есть ответ «Да» для блока 714), то осуществляется определение того, действительно ли программное обеспечение, представленное профилем программного обеспечения и идентификатором программного обеспечения, может быть связано с аппаратными средствами, указанными посредством идентификатора аппаратных средств (блок 716). Это может быть достигнуто на основании таблицы-конфигуратора, обслуживаемой центром 120 сертификации, как описано выше. Если привязка программного обеспечения к аппаратным средствам не разрешена (то есть ответ «Нет» для блока 718), то сообщение об ошибке отсылается назад (блок 720), и процесс заканчивается. В противном случае, центр 120 сертификации создает подпись кода, согласно требованиям, на основании профиля кода, идентификатора программного обеспечения и идентификатора аппаратных средств (блок 624). Затем центр 120 сертификации посылает подпись кода и сертификат логическому объекту 110 генератора кода (блок 626). После этого процесс заканчивается.

Фиг.8 изображает блок-схему логического объекта 110 генератора, центра 120 сертификации и беспроводного устройства 130. Логический объект 110 генератора кода включает в себя контроллер 810, блок 812 памяти и блок 814 связи. Контроллер 810 выполняет обработку для создания профиля кода и образа кода. Блок 812 памяти сохраняет код программного обеспечения так же, как код программы и данные, используемые контроллером 810. Блок 814 связи предоставляет связь между центром 120 сертификации и беспроводным устройством 130.

Центр 120 сертификации включает в себя контроллер 820, блок 822 памяти и блок 824 связи. Контроллер 820 выполняет обработку для создания подписи кода и сертификата. Блок 822 памяти сохраняет таблицу-конфигуратор 122, криптографические ключи 124, сертификат 126, код программы и данные, используемые контроллером 820. Блок 824 связи предоставляет связь с логическим объектом 110 генератора кода.

Устройство 130 может обмениваться информацией с одной или несколькими беспроводными системами связи, такими как система связи с множественным доступом с кодовым разделением каналов (CDMA), глобальная система мобильной связи (GSM), система с технологией Bluetooth, система со многими входами и многими выходами (MIMO), система множественного доступа с ортогональным частотным разделением каналов (OFDMA) и так далее. Система связи с множественным доступом с кодовым разделением каналов (CDMA) может реализовать один или несколько стандартов множественного доступа с кодовым разделением каналов, таких как IS-2000 (также известный как «CDMA 1x-EV»), IS-856 (также известный как «CDMA 1x-EVDO»), IS-95, Широкополосный CDMA (W-CDMA) и так далее. Устройство 130 выполнено с возможностью обеспечения двухсторонней связи по пути приема и пути передачи.

Для пути передачи модемный процессор 850 обрабатывает (например, кодирует и модулирует) данные, которые будут переданы посредством устройства 130, и обеспечивает кадры данных блоку 852 передатчика (TMTR). Блок 852 передатчика обрабатывает (например, преобразует в аналоговый сигнал, фильтрует, усиливает и преобразует с повышением частоты) кадры данных и формирует модулированный сигнал, который передается через антенну 854. Для пути приема сигналы, переданные посредством базовых станций в одну или несколько систем, принимаются посредством антенны 854 и обеспечиваются блоку 856 приемника (RCVR). Блок 856 приемника обрабатывает (например, фильтрует, усиливает и преобразовывает с понижением частоты) принятый сигнал, оцифровывает обработанный сигнал и предоставляет выборку данных модемному процессору 850 для демодуляции и декодирования.

Блок 830 обеспечения секретности выполняет безопасную обработку и обеспечивает безопасное сохранение для устройства 130. Для варианта осуществления, изображенного на Фиг.8, блок 830 обеспечения секретности включает в себя процессор 832, выполняющий безопасную обработку и, возможно, другую обработку, постоянное запоминающее устройство 834 (ROM), сохраняющее код начальной загрузки, блок 836, сохраняющий идентификатор аппаратных средств для устройства 130, и блок 838, сохраняющий открытый ключ для центра 120 сертификации. Блоки 836 и 838 могут быть реализованы c постоянным запоминающим устройством (ROM), плавкими предохранителями и так далее. Код начальной загрузки, находящийся в постоянном запоминающем устройстве 834 (ROM), идентификатор аппаратных средств, находящийся в блоке 836, и СА открытый ключ, находящийся в блоке 838, соответствуют коду 134 начальной загрузки, идентификатору 136 аппаратных средств и СА открытому ключу 138, соответственно, как изображено на Фиг.1.

Код начальной загрузки, идентификатор аппаратных средств и СА открытый ключ составляют защищенные данные для устройства 130 и сохранены безопасным способом (например, внедрены) в одном или нескольких защищенных блоках памяти, находящихся в блоке 830 обеспечения секретности. Таким путем, защищенные данные защищены от атак и объектов имитации соединения (спуфинга) (например, взломы кодов программного обеспечения, вирусы и так далее), которые могут совершить попытку проникновения в блок 830 обеспечения секретности, с целью умышленной порчи защищенных данных. Блок 830 обеспечения секретности может быть реализован в отдельной интегральной схеме (ИС). Также блок 830 обеспечения секретности может быть реализован в качестве блока или модуля обеспечения секретности и/или сопротивления вмешательству.

Блок 830 обеспечения секретности может быть частью специализированной интегральной схемы (ASIC), которая выполняет различные функции для беспроводного устройства 130. Например, специализированная интегральная схема может включать в себя блок 830 обеспечения секретности, модемный процессор 850 и так далее. Процессор 832 выполняет безопасную обработку, для подтверждения правильности кода программного обеспечения при начальной загрузке. Процессор 832 также может выполнять другие функции в течение нормальной работы. Таким образом, процессор 832 не должен быть специализированным (выделенным) блоком, выполняющим только безопасную обработку. Например, процессор 832 может самостоятельно быть аппаратными средствами, которые выполняют весь или части кода программного обеспечения, и с которыми связан код программного обеспечения.

Контроллер 840 выполняет различные функции, а также координирует и управляет работой различных процессоров в устройстве 130. Например, контроллер 840 может предписать модемному процессору 850 обработать данные для путей приема и передачи. Блок 842 памяти сохраняет код программы и данные, используемые различными процессорами в устройстве 130. Например, блок 842 памяти может сохранить образ кода с кодом программного обеспечения, идентификатор программного обеспечения, подпись кода и сертификат. Блок 844 ввода/вывода (I/O) обеспечивает интерфейс внешним блокам. Например, блок 844 ввода/вывода (I/O) может обеспечить механизм (например, порт, такой как Универсальной Последовательной Шины (USB)) для загрузки образа кода в устройство 130. Шина 862 соединяет различные блоки в устройстве 130.

Устройство 130 подтверждает правильность кода программного обеспечения в образе кода каждый раз при включении устройства для гарантии того, что код программного обеспечения является правильной версией. Процессор 832 выполняет подтверждение правильности на основании кода начальной загрузки, сохраненного в ROM 834, и использует идентификатор аппаратных средств и СА открытый ключ, встроенные в блок 830 обеспечения секретности, как описано ниже. Это позволяет процессору 832 устанавливать доверие в беспроводном устройстве 130 от известного состояния, которое определено кодом начальной загрузки, идентификатором аппаратных средств и СА открытым ключом. Процессор 832 санкционирует выполнение кода программного обеспечения только после подтверждения правильности программного обеспечения.

Фиг.9 изображает блок 900 обработки данных, служащий для подтверждения правильности кода программного обеспечения в образе кода на основании подписи кода. Блок 900 обработки данных может быть реализован посредством процессора 832, изображенного на Фиг.8. В блоке 900 хэш-функция 910 принимает и хэширует код программного обеспечения из образа кода и обеспечивает профиль кода. Хэш-функция 910 выполняет тот же самый алгоритм хэширования, который используется для хэш-функции 310, изображенной на Фиг.3. Хэш-функция 920 принимает и хэширует профиль кода из хэш-функции 910, идентификатор программного обеспечения из образа кода и идентификатор аппаратных средств из блока 830 обеспечения секретности, и обеспечивает «восстановленный» профиль (D') подписи. Хэш-функция 920 выполняет тот же самый алгоритм хэширования, который используется для блока 410 хэширования, изображенного на Фиг.4.

Блок 930 декодирования принимает и декодирует подпись кода из образа кода с кодом открытого ключа из сертификата и обеспечивает «принятый» профиль (D) подписи. Затем блок 940 сравнения сравнивает восстановленный профиль (D') подписи с принятым профилем (D) подписи и обеспечивает флажок подтверждения правильности, который устанавливает значение «истина», если эти два профиля соответствуют друг другу, а в противном случае устанавливает значение «ложь».

Фиг.10 изображает блок-схему процесса 1000 подтверждения правильности кода программного обеспечения в образе кода посредством беспроводного устройства 130. Процесс 1000 может быть выполнен посредством процессора 832 на основании кода начальной загрузки, он также упоминается в настоящем описании как процесс начальной загрузки.

Первоначально сертификат получают из образа кода и подтверждают его правильность, используя СА открытый ключ, который сохранен в устройстве 130 (блок 1012). Сертификат содержит СА подпись, которая была создана с СА личным ключом центра 120 сертификации. Эта СА подпись может быть аутентифицирована с использованием соответствующего СА открытого ключа, который встроен в модуль 830 обеспечения секретности. Затем осуществляется определение того, действительно ли подтверждена СА подпись (блок 1014). Если ответ «Нет», то создается сообщение об ошибке (блок 1016), и процесс начальной загрузки заканчивается.

Если СА подпись подтверждена, то подпись кода подтверждает правильность в блоке 1020. Для подтверждения правильности подписи кода код программного обеспечения получают из образа кода, а затем хэшируют, используя ту же самую хэш-функцию 310, используемую логическим объектом 110 генератора кода для получения профиля кода (блок 1022). Идентификатор программного обеспечения получают из образа кода, а идентификатор аппаратных средств получают из блока 830 обеспечения секретности. Профиль кода из блока 1022, идентификатор программного обеспечения и идентификатор аппаратных средств затем хэшируют, используя ту же самую хэш-функцию 410, используемую центром 120 сертификации для получения восстановленного профиля (D') подписи (блок 1024).

Код открытого ключа получают из сертификата, а подпись кода получают из образа кода. Так как СА подпись создана согласно коду открытого ключа, код открытого ключа аутентифицирован, если СА подпись аутентифицирована посредством СА открытого ключа. Затем подпись кода декодируется с кодом открытого ключа, для получения «принятого» профиля (D) подписи, который используется центром 120 сертификации для создания подписи кода (блок 1026). Затем принятый профиль (D) подписи сравнивается с восстановленным профилем (D') подписи (блок 1028).

Затем осуществляется определение, действительно ли принятый профиль подписи соответствует восстановленному профилю подписи (блок 1030). Если ответ «Нет», то создается сообщение об ошибке (блок 1016), и процесс начальной загрузки заканчивается. В противном случае, код программного обеспечения указывается как подтвержденный и может в дальнейшем быть выполнен (блок 1032), затем процесс начальной загрузки заканчивается.

Описанные здесь способы привязки программного обеспечения к аппаратным средствам могут быть использованы для различных областей применений. Некоторые иллюстративные области применения описаны ниже.

Одна область применения служит для загрузки программного обеспечения в беспроводное устройство через незащищенную линию связи. Может быть желательным обновление программного обеспечения для беспроводного устройства, например, для фиксирования ошибок, обеспечения новых возможностей и выполняемых функций и так далее. Описанные здесь способы могут быть использованы для посылки новых версий программного обеспечения через незащищенную линию связи (например, беспроводную линию связи) на беспроводное устройство. Беспроводное устройство может утвердить принятое программное обеспечение в качестве исходящих из легального источника и немодифицированных, используя криптографические способы, как описано выше. После подтверждения правильности беспроводное устройство выполняет только программное обеспечение.

Другая область применения служит для принудительного санкционирования (например, лицензирования) использования различных платформ аппаратных средств. Первый объект может иметь различные платформы аппаратных средств, причем каждой платформе назначается различный идентификатор аппаратных средств. Первый объект может предоставить второй объект лицензий для некоторых платформ аппаратных средств и не предоставить лицензий для некоторых других платформ аппаратных средств. Информация о лицензировании может быть сохранена в таблице-конфигураторе, поддерживаемой центром 120 сертификации. Всякий раз, когда второй объект запрашивает подпись кода для конкретного программного обеспечения и конкретной платформы аппаратных средств, центр 120 сертификации создает подпись кода только в случае, если второй объект лицензирован для требуемой платформы аппаратных средств. Этим путем, обладатель лицензии не может удалить лицензию для базовой платформы аппаратных средств, а затем осуществить попытку установить и использовать программное обеспечение на более сложной платформе аппаратных средств.

В этой же области применения, служащей для принудительного санкционирования (например, лицензирования) использования данной платформы аппаратных средств, аппаратные средства для беспроводного устройства могут быть сконструированы с возможностью выполнения широкого набора функций. Эти функции можно выборочно разрешить или запретить посредством программного обеспечения. Можно предоставить различные лицензии для различных наборов функций. Каждый из этих наборов функций может быть связан с другой программной версией. Центр сертификации может обслуживать список обладателей лицензий, их определенные лицензии и разрешенную программную версию(и) для каждого обладателя лицензии. Затем центр сертификации создает подписи только для лицензированной версии(й) кода программного обеспечения. Таким образом, обладатель лицензии не может удалить лицензию для базового набора функций, а затем осуществить попытку установить и использовать программное обеспечение для более сложного набора функций.

Описанные здесь способы привязки программного обеспечения к аппаратным средствам могут быть реализованы различными средствами в различных объектах. Например, эти способы могут быть реализованы с аппаратными средствами, встроенным программным обеспечением, программным обеспечением или с их комбинациями. В реализации аппаратных средств используются процессоры для достижения привязки программного обеспечения к аппаратным средствам (в логическом объекте 110 генератора кода и центре 120 сертификации), а подтверждение правильности привязки (в устройстве 130) может быть реализовано в специализированных интегральных схемах (ASIC), цифровых процессорах обработки сигналов (DSP), устройствах цифровой обработки сигналов (DSPD), программируемых логических устройствах (PLD), программируемых вентильных матрицах (FPGA), процессорах, контроллерах, микроконтроллерах, микропроцессорах, других электронных блоках, сконструированных для выполнения описанных здесь функций или их комбинаций.

Описанные здесь способы для реализации программного обеспечения могут быть реализованы с модулями (например, процедурами, функциями и так далее), выполняющими описанные здесь функции. Коды программного обеспечения могут быть сохранены в блоках памяти (например, блоках 812, 822 и 842 памяти, изображенных на Фиг.8) и выполняться посредством процессоров (например, контроллерами 810, 820 и 840 и процессором 832). Блоки памяти могут быть реализованы в процессорах или внешним способом на процессоры, в этом случае они могут быть коммуникабельно соединены с процессорами через различные средства, как известно в данной области техники.

Предыдущее описание раскрытых вариантов осуществления обеспечивается для того, чтобы дать возможность любому специалисту в данной области техники создать или использовать данное изобретение. Различные модификации этих вариантов осуществления будут очевидны специалистам в данной области техники, и общие принципы, определенные здесь, могут быть применены к другим вариантам осуществления, не отступая от сущности или объема изобретения. Таким образом, данное изобретение не предназначено, чтобы быть ограниченным раскрытыми здесь вариантами осуществления, но в то же время должно получить самые широкие возможности, в соответствии с раскрытыми здесь принципами и новыми признаками.

Похожие патенты RU2356169C2

название год авторы номер документа
ЗАЩИЩЕННЫЕ ЗАГРУЗКА И ХРАНЕНИЕ ДАННЫХ В УСТРОЙСТВЕ ОБРАБОТКИ ДАННЫХ 2005
  • Германн Кристиан
  • Сметс Бернард
RU2408071C2
ДОСТУП НЕ ОТВЕЧАЮЩЕГО СПЕЦИФИКАЦИЯМ 3GPP УСТРОЙСТВА К БАЗОВОЙ СЕТИ 2019
  • Бернсен, Йоханнес Арнольдус Корнелис
  • Дис, Уолтер
RU2779029C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ОРГАНИЗАЦИИ ЗАЩИТЫ ИНФОРМАЦИИ О МЕСТОПОЛОЖЕНИИ И УПРАВЛЕНИЯ ДОСТУПОМ С ИСПОЛЬЗОВАНИЕМ ИНФОРМАЦИИ О МЕСТОПОЛОЖЕНИИ 2008
  • Ча Инхиок
  • Шах Йоджендра К.
  • Е Чуньсюань
RU2428808C2
УПРАВЛЕНИЕ ЦИФРОВЫМИ ПРАВАМИ С ИСПОЛЬЗОВАНИЕМ МЕТОДИК ДОВЕРИТЕЛЬНОЙ ОБРАБОТКИ 2007
  • Сингхал Амит Кс.
  • Ча Инхиок
  • Шах Йоджендра С.
RU2419235C2
ФОРМИРОВАНИЕ КЛЮЧА В ЗАВИСИМОСТИ ОТ ПАРАМЕТРА 2012
  • Рот Грегори Б.
  • Бехм Брэдли Джеффри
  • Крахен Эрик Д.
  • Илак Кристиан М.
  • Фитч Натан Р.
  • Брандуайн Эрик Джейсон
  • О`Нейлл Кевин Росс
RU2636105C1
СПОСОБ УСТАНОВКИ ВЫЧИСЛИТЕЛЬНОГО КОМПОНЕНТА И СОПУТСТВУЮЩЕЕ ЭЛЕКТРОННОЕ УСТРОЙСТВО 2020
  • Абади, Эрик
  • Бессьер, Себастьян
  • Меньер, Паскаль
RU2812276C2
ФОРМИРОВАНИЕ КЛЮЧА В ЗАВИСИМОСТИ ОТ ПАРАМЕТРА 2018
  • Рот, Грегори, Б.
  • Бехм, Брэдли, Джеффри
  • Крахен, Эрик, Д.
  • Илак, Кристиан, М.
  • Фитч, Натан, Р.
  • Брандуайн, Эрик, Джейсон
  • О`Нейлл, Кевин, Росс
RU2709162C1
СПОСОБЫ, ПРЕДНАЗНАЧЕННЫЕ ДЛЯ ТОГО, ЧТОБЫ ДАВАТЬ ВОЗМОЖНОСТЬ БЕЗОПАСНОЙ САМОСТОЯТЕЛЬНОЙ ИНИЦИАЛИЗАЦИИ АБОНЕНТСКИХ УСТРОЙСТВ В СИСТЕМЕ СВЯЗИ 2010
  • Химаван Эрвин
  • Метке Энтони Р.
RU2515809C2
ФОРМИРОВАНИЕ КЛЮЧА В ЗАВИСИМОСТИ ОТ ПАРАМЕТРА 2017
  • Рот Грегори Б.
  • Бехм Брэдли Джеффри
  • Крахен Эрик Д.
  • Илак Кристиан М.
  • Фитч Натан Р.
  • Брандуайн Эрик Джейсон
  • О'Нейлл Кевин Росс
RU2670778C9
СИСТЕМА ДЛЯ ПРОВЕРКИ ЦЕЛОСТНОСТИ БЕСПИЛОТНЫХ ЛЕТАТЕЛЬНЫХ АППАРАТОВ 2017
  • Олсон Ерленд
RU2721185C2

Реферат патента 2009 года ПРИВЯЗКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ К АППАРАТНЫМ СРЕДСТВАМ С ИСПОЛЬЗОВАНИЕМ КРИПТОГРАФИИ

Программное обеспечение идентифицируют посредством идентификатора (ID) программного обеспечения (ИПО), а аппаратные средства идентифицируют посредством идентификатора (ID) аппаратных средств (ИАС). Программное обеспечение хэшируют для получения профиля кода. Подпись кода создают для профиля кода, ИПО и ИАС. Образ кода формируют с программным обеспечением, ИПО, подписью кода и сертификатом. Сертификат содержит криптографическую информацию, используемую для аутентификации сертификата и подтверждения правильности подписи кода. Образ кода загружают в устройство. Устройство подтверждает правильность программного обеспечения для привязки к аппаратным средствам до выполнения программного обеспечения. Для подтверждения правильности устройство аутентифицирует сертификат с открытым ключом центра сертификации, встроенным в устройство. Устройство также подтверждает правильность подписи кода с использованием криптографической информации, содержащейся в сертификате, информации в образе кода и идентификаторе аппаратных средств, встроенном в устройство. 7 н. и 19 з.п. ф-лы, 10 ил.

Формула изобретения RU 2 356 169 C2

1. Способ подтверждения правильности программного обеспечения для аппаратных средств, заключающийся в том, что аутентифицируют сертификат с первым открытым ключом; получают подпись, созданную для программного обеспечения, первый идентификатор для программного обеспечения и второй идентификатор для аппаратных средств, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам; и подтверждают правильность подписи со вторым открытым ключом из сертификата, причем привязку программного обеспечения к аппаратным средствам подтверждают лишь в том случае, если подпись подтверждена.

2. Способ по п.1, в котором программное обеспечение выполняют посредством аппаратных средств только лишь в том случае, если привязка подтверждена.

3. Способ по п.1, в котором подтверждение правильности подписи включает в себя этапы, на которых хэшируют информацию для программного обеспечения, первый идентификатор и второй идентификатор для получения первого профиля, декодируют подпись со вторым открытым ключом для получения второго профиля, и сравнивают первый профиль со вторым профилем, причем подпись подтверждают лишь в том случае, если первый профиль соответствует второму профилю.

4. Способ по п.3, в котором подтверждение правильности подписи дополнительно включает в себя этап, на котором хэшируют программное обеспечение для получения третьего профиля, используемого в качестве информации для программного обеспечения.

5. Способ по п.1, в котором подпись создают с использованием схемы криптографии, которая включает в себя код аутентичности сообщения на основе хэширования (НМАС).

6. Способ по п.1, в котором первый идентификатор представляет собой номер версии выпуска программного обеспечения.

7. Способ по п.1, в котором аппаратные средства представляют собой интегральную схему конкретной конструкции.

8. Способ по п.1, в котором второй идентификатор представляет собой серийный номер или номер компонента аппаратных средств.

9. Устройство, для подтверждения правильности программного обеспечения для аппаратных средств, содержащее первый блок памяти, сконфигурированный с возможностью сохранения первого открытого ключа; и процессор, выполненный с возможностью аутентификации сертификата с первым открытым ключом, получения подписи, созданной для программного обеспечения, первого идентификатора для программного обеспечения и второго идентификатора для аппаратных средств, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам, и подтверждения правильности подписи со вторым открытым ключом из сертификата, причем привязка программного обеспечения к аппаратным средствам является подтвержденной в том случае, если подпись подтверждена.

10. Устройство по п.9, в котором первый блок памяти дополнительно сконфигурирован с возможностью сохранения второго идентификатора для аппаратных средств, и в котором процессор дополнительно выполнен с возможностью хэширования информации для программного обеспечения, первого идентификатора и второго идентификатора из первого блока памяти для получения первого профиля, декодирования подписи со вторым открытым ключом для получения второго профиля, и сравнения первого профиля со вторым профилем, причем подпись является подтвержденной лишь в том случае, если первый профиль соответствует второму профилю.

11. Устройство по п.9, дополнительно содержащее второй блок памяти, сконфигурированный с возможностью сохранения кода начальной загрузки, выполняемого процессором для аутентификации сертификата и подтверждения правильности подписи.

12. Устройство по п.11, в котором первый и второй блоки памяти и процессор реализованы в интегральной схеме.

13. Устройство по п.9, реализованное в устройстве радиосвязи.

14. Устройство для подтверждения правильности программного обеспечения для аппаратных средств, содержащее средство для аутентификации сертификата с первым открытым ключом; средство для получения подписи, созданной для программного обеспечения, первого идентификатора для программного обеспечения и второго идентификатора для аппаратных средств, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам; и средство для подтверждения правильности подписи со вторым открытым ключом из сертификата, причем привязка программного обеспечения к аппаратным средствам является подтвержденной лишь в том случае, если подпись подтверждена.

15. Устройство по п.14, в котором средство для подтверждения правильности подписи включает в себя средство для хэширования информации для программного обеспечения, первого идентификатора и второго идентификатора для получения первого профиля, средство для декодирования подписи со вторым открытым ключом для получения второго профиля, и средство для сравнения первого профиля со вторым профилем, причем подпись является подтвержденной лишь в том случае, если первый профиль соответствует второму профилю.

16. Устройство для привязки программного обеспечения к аппаратным средствам, содержащее блок связи, выполненный с возможностью получения информации от логического объекта генератора кода для кода программного обеспечения, первого идентификатора для программного обеспечения и второго идентификатора для аппаратных средств; и контроллер, выполненный с возможностью создания подписи для программного обеспечения, первого идентификатора и второго идентификатора с использованием криптографии, причем подпись используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам.

17. Устройство по п.16, в котором контроллер дополнительно выполнен с возможностью определения, действительно ли разрешена привязка программного обеспечения к аппаратным средствам, и создания подписи только лишь в том случае, если привязка разрешена.

18. Устройство по п.16, в котором контроллер дополнительно выполнен с возможностью аутентификации логического объекта генератора кода до создания подписи.

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

20. Способ привязки программного обеспечения к аппаратным средствам, заключающийся в том, что обеспечивают информацию для программного обеспечения; обеспечивают первый идентификатор для программного обеспечения; обеспечивают второй идентификатор для аппаратных средств; принимают подпись, созданную для программного обеспечения, первый идентификатор и второй идентификатор, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам; принимают сертификат, содержащий криптографическую информацию, используемую для подтверждения правильности подписи; и формируют образ, содержащий программное обеспечение, подпись и сертификат.

21. Способ по п.20, в котором дополнительно хэшируют программное обеспечение для получения первого профиля, причем первый профиль обеспечивают в качестве информации для программного обеспечения.

22. Способ по п.21, в котором подпись создают с использованием схемы криптографии, которая включает в себя код аутентичности сообщения на основе хэширования (НМАС), причем НМАС принимает первый профиль, первый идентификатор и второй идентификатор в качестве входных сигналов и обеспечивает второй профиль, используемый для создания подписи.

23. Устройство для привязки программного обеспечения к аппаратным средствам, содержащее блок связи, выполненный с возможностью обеспечения информации для программного обеспечения, первого идентификатора для программного обеспечения и второго идентификатора для аппаратных средств, приема подписи, созданной для программного обеспечения, первого идентификатора и второго идентификатора, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам, и приема сертификата, содержащего криптографическую информацию, используемую для подтверждения правильности подписи; и контроллер, выполненный с возможностью формирования образа, содержащего программное обеспечение, подпись, и сертификат.

24. Устройство по п.23, в котором контроллер дополнительно выполнен с возможностью хэширования программного обеспечения для получения профиля, который обеспечивают в качестве информации для программного обеспечения.

25. Устройство для привязки программного обеспечения к аппаратным средствам, содержащее средство для обеспечения информации для программного обеспечения; средство для обеспечения первого идентификатора для программного обеспечения; средство для обеспечения второго идентификатора для аппаратных средств; средство для приема подписи, созданной для программного обеспечения, первого идентификатора и второго идентификатора, причем подпись создают с использованием криптографии и используют для подтверждения правильности привязки программного обеспечения к аппаратным средствам; средство для приема сертификата, содержащего криптографическую информацию, используемую для подтверждения правильности подписи; и средство для формирования образа, содержащего программное обеспечение, подпись, и сертификат.

26. Устройство по п.25, дополнительно содержащее средство для хэширования программного обеспечения для получения первого профиля, причем первый профиль обеспечивают в качестве информации для программного обеспечения.

Документы, цитированные в отчете о поиске Патент 2009 года RU2356169C2

US 4243468 B1, 05.06.2001
ПЕРЕДАЧА ЛИЦЕНЗИИ НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ ЭЛЕМЕНТА АППАРАТНОГО ОБЕСПЕЧЕНИЯ 1995
  • Дерек Л.Дэвис
RU2147790C1
JP 2001216042 A1, 10.08.2001
WO 9915947 A1, 01.04.1999.

RU 2 356 169 C2

Авторы

Михаэлис Оливер

Моро Энтони

Даты

2009-05-20Публикация

2004-04-08Подача