RU2356169C2 - Привязка программного обеспечения к аппаратным средствам с использованием криптографии - Google Patents
Привязка программного обеспечения к аппаратным средствам с использованием криптографии Download PDFInfo
- Publication number
- RU2356169C2 RU2356169C2 RU2005134362/09A RU2005134362A RU2356169C2 RU 2356169 C2 RU2356169 C2 RU 2356169C2 RU 2005134362/09 A RU2005134362/09 A RU 2005134362/09A RU 2005134362 A RU2005134362 A RU 2005134362A RU 2356169 C2 RU2356169 C2 RU 2356169C2
- Authority
- RU
- Russia
- Prior art keywords
- software
- signature
- hardware
- identifier
- profile
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 47
- 230000027455 binding Effects 0.000 claims description 34
- 238000009739 binding Methods 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 20
- 238000012795 verification Methods 0.000 claims 2
- 238000012790 confirmation Methods 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 49
- 230000008569 process Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 20
- 238000010200 validation analysis Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- VBMOHECZZWVLFJ-GXTUVTBFSA-N (2s)-2-[[(2s)-6-amino-2-[[(2s)-6-amino-2-[[(2s,3r)-2-[[(2s,3r)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-6-amino-2-[[(2s)-2-[[(2s)-2-[[(2s)-2,6-diaminohexanoyl]amino]-5-(diaminomethylideneamino)pentanoyl]amino]propanoyl]amino]hexanoyl]amino]propanoyl]amino]hexan Chemical compound NC(N)=NCCC[C@@H](C(O)=O)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CCCCN)NC(=O)[C@H]([C@@H](C)O)NC(=O)[C@H]([C@H](O)C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCCN)NC(=O)[C@H](C)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@@H](N)CCCCN VBMOHECZZWVLFJ-GXTUVTBFSA-N 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 108010068904 lysyl-arginyl-alanyl-lysyl-alanyl-lysyl-threonyl-threonyl-lysyl-lysyl-arginine Proteins 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013514 software validation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
Программное обеспечение идентифицируют посредством идентификатора (ID) программного обеспечения (ИПО), а аппаратные средства идентифицируют посредством идентификатора (ID) аппаратных средств (ИАС). Программное обеспечение хэшируют для получения профиля кода. Подпись кода создают для профиля кода, ИПО и ИАС. Образ кода формируют с программным обеспечением, ИПО, подписью кода и сертификатом. Сертификат содержит криптографическую информацию, используемую для аутентификации сертификата и подтверждения правильности подписи кода. Образ кода загружают в устройство. Устройство подтверждает правильность программного обеспечения для привязки к аппаратным средствам до выполнения программного обеспечения. Для подтверждения правильности устройство аутентифицирует сертификат с открытым ключом центра сертификации, встроенным в устройство. Устройство также подтверждает правильность подписи кода с использованием криптографической информации, содержащейся в сертификате, информации в образе кода и идентификаторе аппаратных средств, встроенном в устройство. 7 н. и 19 з.п. ф-лы, 10 ил.
Description
Область техники, к которой относится изобретение
Данное изобретение относится, в целом, к электронике (электронному оборудованию) и, более конкретно, к способам привязки программного обеспечения к аппаратным средствам.
Уровень техники
Электронные устройства широко доступны для различных областей применений, таких как радиосвязь, вычислений на персональном компьютере и так далее. Поскольку аппаратные средства становятся более мощными, то эти устройства могут поддерживать большее количество функций и/или более сложные функции. Например, современный сотовый телефон может обеспечивать радиосвязь, а также может дополнительно служить в качестве игрового устройства, "карманного" компьютера, предназначенного для выполнения некоторых специальных функций (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). Блоки памяти могут быть реализованы в процессорах или внешним способом на процессоры, в этом случае они могут быть коммуникабельно соединены с процессорами через различные средства, как известно в данной области техники.
Предыдущее описание раскрытых вариантов осуществления обеспечивается для того, чтобы дать возможность любому специалисту в данной области техники создать или использовать данное изобретение. Различные модификации этих вариантов осуществления будут очевидны специалистам в данной области техники, и общие принципы, определенные здесь, могут быть применены к другим вариантам осуществления, не отступая от сущности или объема изобретения. Таким образом, данное изобретение не предназначено, чтобы быть ограниченным раскрытыми здесь вариантами осуществления, но в то же время должно получить самые широкие возможности, в соответствии с раскрытыми здесь принципами и новыми признаками.
Claims (26)
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, дополнительно содержащее средство для хэширования программного обеспечения для получения первого профиля, причем первый профиль обеспечивают в качестве информации для программного обеспечения.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46134103P | 2003-04-08 | 2003-04-08 | |
US60/461,341 | 2003-04-08 | ||
US10/815,256 | 2004-03-31 | ||
US10/815,256 US8041957B2 (en) | 2003-04-08 | 2004-03-31 | Associating software with hardware using cryptography |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2005134362A RU2005134362A (ru) | 2006-05-27 |
RU2356169C2 true RU2356169C2 (ru) | 2009-05-20 |
Family
ID=33555123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2005134362/09A RU2356169C2 (ru) | 2003-04-08 | 2004-04-08 | Привязка программного обеспечения к аппаратным средствам с использованием криптографии |
Country Status (6)
Country | Link |
---|---|
US (1) | US8041957B2 (ru) |
EP (1) | EP1618451B1 (ru) |
JP (1) | JP4814083B2 (ru) |
CA (1) | CA2521821A1 (ru) |
RU (1) | RU2356169C2 (ru) |
WO (1) | WO2004092886A2 (ru) |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7885896B2 (en) | 2002-07-09 | 2011-02-08 | Avaya Inc. | Method for authorizing a substitute software license server |
US8041642B2 (en) | 2002-07-10 | 2011-10-18 | Avaya Inc. | Predictive software license balancing |
US7707116B2 (en) * | 2002-08-30 | 2010-04-27 | Avaya Inc. | Flexible license file feature controls |
US7698225B2 (en) * | 2002-08-30 | 2010-04-13 | Avaya Inc. | License modes in call processing |
US7681245B2 (en) | 2002-08-30 | 2010-03-16 | Avaya Inc. | Remote feature activator feature extraction |
US7966520B2 (en) * | 2002-08-30 | 2011-06-21 | Avaya Inc. | Software licensing for spare processors |
US7890997B2 (en) * | 2002-12-26 | 2011-02-15 | Avaya Inc. | Remote feature activation authentication file system |
US7260557B2 (en) * | 2003-02-27 | 2007-08-21 | Avaya Technology Corp. | Method and apparatus for license distribution |
US20040250073A1 (en) * | 2003-06-03 | 2004-12-09 | Cukier Johnas I. | Protocol for hybrid authenticated key establishment |
US20050171961A1 (en) * | 2004-01-30 | 2005-08-04 | Microsoft Corporation | Fingerprinting software applications |
US7836121B2 (en) * | 2004-04-14 | 2010-11-16 | Ipass Inc. | Dynamic executable |
US20050235357A1 (en) * | 2004-04-19 | 2005-10-20 | Securemedia International | Preventing cloning of high value software using embedded hardware and software functionality |
US8554889B2 (en) * | 2004-04-21 | 2013-10-08 | Microsoft Corporation | Method, system and apparatus for managing computer identity |
US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
GB2414138B (en) * | 2004-05-12 | 2006-11-22 | Nec Technologies | Software update apparatus and method |
US7818574B2 (en) * | 2004-09-10 | 2010-10-19 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
US7707405B1 (en) | 2004-09-21 | 2010-04-27 | Avaya Inc. | Secure installation activation |
US8229858B1 (en) | 2004-09-30 | 2012-07-24 | Avaya Inc. | Generation of enterprise-wide licenses in a customer environment |
US7747851B1 (en) * | 2004-09-30 | 2010-06-29 | Avaya Inc. | Certificate distribution via license files |
US10477151B2 (en) | 2004-10-18 | 2019-11-12 | Inside Secure | Method and apparatus for supporting multiple broadcasters independently using a single conditional access system |
US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
US8243925B2 (en) * | 2004-10-18 | 2012-08-14 | Syphermedia International, Inc. | Method and apparatus for supporting multiple broadcasters independently using a single conditional access system |
US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
US20060106920A1 (en) * | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Method and apparatus for dynamically activating/deactivating an operating system |
US20060107327A1 (en) * | 2004-11-16 | 2006-05-18 | Sprigg Stephen A | Methods and apparatus for enforcing application level restrictions on local and remote content |
US8108691B2 (en) | 2005-02-07 | 2012-01-31 | Sandisk Technologies Inc. | Methods used in a secure memory card with life cycle phases |
US8321686B2 (en) | 2005-02-07 | 2012-11-27 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
US8423788B2 (en) | 2005-02-07 | 2013-04-16 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
US8666900B1 (en) * | 2005-03-30 | 2014-03-04 | Intuit Inc. | Secure product enablement over channels with narrow bandwidth |
US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US7743409B2 (en) | 2005-07-08 | 2010-06-22 | Sandisk Corporation | Methods used in a mass storage device with automated credentials loading |
US7814023B1 (en) | 2005-09-08 | 2010-10-12 | Avaya Inc. | Secure download manager |
JP5089593B2 (ja) * | 2005-09-14 | 2012-12-05 | サンディスク テクノロジィース インコーポレイテッド | メモリカードコントローラファームウェアのハードウェアドライバ完全性チェック |
US20070061597A1 (en) | 2005-09-14 | 2007-03-15 | Micky Holtzman | Secure yet flexible system architecture for secure devices with flash mass storage memory |
US8966284B2 (en) | 2005-09-14 | 2015-02-24 | Sandisk Technologies Inc. | Hardware driver integrity check of memory card controller firmware |
US7921303B2 (en) | 2005-11-18 | 2011-04-05 | Qualcomm Incorporated | Mobile security system and method |
DE602005019307D1 (de) * | 2005-11-29 | 2010-03-25 | Research In Motion Ltd | Überprüfung von drahtloser Zugangssoftware mittels Hashing von Kennungen |
US7389426B2 (en) * | 2005-11-29 | 2008-06-17 | Research In Motion Limited | Mobile software terminal identifier |
US20070162964A1 (en) * | 2006-01-12 | 2007-07-12 | Wang Liang-Yun | Embedded system insuring security and integrity, and method of increasing security thereof |
US7970138B2 (en) | 2006-05-26 | 2011-06-28 | Syphermedia International | Method and apparatus for supporting broadcast efficiency and security enhancements |
US20080008321A1 (en) * | 2006-07-10 | 2008-01-10 | Syphermedia International, Inc. | Conditional access enhancements using an always-on satellite backchannel link |
US20080080711A1 (en) * | 2006-09-28 | 2008-04-03 | Syphermedia International, Inc. | Dual conditional access module architecture and method and apparatus for controlling same |
US7900032B2 (en) * | 2006-10-06 | 2011-03-01 | Broadcom Corporation | Method and system for NAND flash support in autonomously loaded secure reprogrammable system |
US9277259B2 (en) | 2006-10-13 | 2016-03-01 | Syphermedia International, Inc. | Method and apparatus for providing secure internet protocol media services |
US8761393B2 (en) * | 2006-10-13 | 2014-06-24 | Syphermedia International, Inc. | Method and apparatus for providing secure internet protocol media services |
US9135413B2 (en) * | 2006-11-02 | 2015-09-15 | Bally Gaming, Inc. | Data protection in a wagering game machine |
US9509512B1 (en) * | 2006-12-22 | 2016-11-29 | Marvell International Ltd. | Message digest generator |
US8423794B2 (en) | 2006-12-28 | 2013-04-16 | Sandisk Technologies Inc. | Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications |
US8254568B2 (en) | 2007-01-07 | 2012-08-28 | Apple Inc. | Secure booting a computing device |
US8239688B2 (en) | 2007-01-07 | 2012-08-07 | Apple Inc. | Securely recovering a computing device |
US8307411B2 (en) * | 2007-02-09 | 2012-11-06 | Microsoft Corporation | Generic framework for EAP |
US9319418B2 (en) | 2007-04-23 | 2016-04-19 | Thomson Licensing | Method and apparatus for software downloads in a network |
US8560823B1 (en) | 2007-04-24 | 2013-10-15 | Marvell International Ltd. | Trusted modular firmware update using digital certificate |
US9112681B2 (en) * | 2007-06-22 | 2015-08-18 | Fujitsu Limited | Method and apparatus for secure information transfer to support migration |
US8620818B2 (en) * | 2007-06-25 | 2013-12-31 | Microsoft Corporation | Activation system architecture |
US8528109B2 (en) * | 2007-10-09 | 2013-09-03 | Microsoft Corporation | Optimizing amount of data passed during software license activation |
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
AU2009222009B2 (en) * | 2008-03-04 | 2013-02-07 | Apple Inc. | System and method of authorizing execution of software code in a device based on entitlements granted to a carrier |
US8150039B2 (en) | 2008-04-15 | 2012-04-03 | Apple Inc. | Single security model in booting a computing device |
US20090259855A1 (en) * | 2008-04-15 | 2009-10-15 | Apple Inc. | Code Image Personalization For A Computing Device |
US20090262926A1 (en) * | 2008-04-16 | 2009-10-22 | Infineon Technologies Ag | Method and apparatus for generating a cryptographic key |
JP2009260688A (ja) * | 2008-04-17 | 2009-11-05 | Dialogue Technology Corp | ワイヤレス広域通信網におけるリモート端末装置のセキュリティシステムとその方法 |
US9256728B2 (en) * | 2008-11-26 | 2016-02-09 | Nokia Technologies Oy | Method, apparatus, and computer program product for managing software versions |
US8442218B2 (en) * | 2009-02-27 | 2013-05-14 | Red Hat, Inc. | Method and apparatus for compound hashing via iteration |
US8984296B1 (en) * | 2009-03-29 | 2015-03-17 | Cypress Semiconductor Corporation | Device driver self authentication method and system |
US20110099423A1 (en) * | 2009-10-27 | 2011-04-28 | Chih-Ang Chen | Unified Boot Code with Signature |
EP2341459A1 (en) * | 2010-01-04 | 2011-07-06 | Thomson Licensing | Method and device for detecting if a computer file has been copied and method and device for enabling such detection |
US8955152B1 (en) | 2010-09-07 | 2015-02-10 | Symantec Corporation | Systems and methods to manage an application |
US9043863B1 (en) | 2010-09-07 | 2015-05-26 | Symantec Corporation | Policy enforcing browser |
US8832855B1 (en) | 2010-09-07 | 2014-09-09 | Symantec Corporation | System for the distribution and deployment of applications with provisions for security and policy conformance |
US20120158415A1 (en) * | 2010-12-17 | 2012-06-21 | Flexera Software Inc. | method and system for license server synchronization |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
WO2012152979A1 (en) * | 2011-05-06 | 2012-11-15 | Nokia Corporation | Determination of apparatus configuration and programming data |
US20130031371A1 (en) * | 2011-07-25 | 2013-01-31 | Alcatel-Lucent Usa Inc. | Software Run-Time Provenance |
US9183393B2 (en) * | 2012-01-12 | 2015-11-10 | Facebook, Inc. | Multiple system images for over-the-air updates |
US8631239B2 (en) * | 2012-01-12 | 2014-01-14 | Facebook, Inc. | Multiple system images for over-the-air updates |
US9760939B2 (en) | 2012-03-23 | 2017-09-12 | The Toronto-Dominion Bank | System and method for downloading an electronic product to a pin-pad terminal using a directly-transmitted electronic shopping basket entry |
US9842335B2 (en) | 2012-03-23 | 2017-12-12 | The Toronto-Dominion Bank | System and method for authenticating a payment terminal |
US9152957B2 (en) | 2012-03-23 | 2015-10-06 | The Toronto-Dominion Bank | System and method for downloading an electronic product to a pin-pad terminal after validating an electronic shopping basket entry |
US8954732B1 (en) | 2012-06-27 | 2015-02-10 | Juniper Networks, Inc. | Authenticating third-party programs for platforms |
GB2508052A (en) | 2012-11-18 | 2014-05-21 | Nds Ltd | Glitch resistant device |
US9116841B2 (en) * | 2012-11-28 | 2015-08-25 | Infineon Technologies Ag | Methods and systems for securely transferring embedded code and/or data designed for a device to a customer |
EP2750065A1 (en) * | 2012-12-27 | 2014-07-02 | Telefonica S.A. | Method, system and computer program product for managing operations of service terminals |
US9609080B2 (en) * | 2013-03-12 | 2017-03-28 | Cyberlink Corp. | Systems and methods for device identity delegation for application software |
US9088574B2 (en) * | 2013-07-18 | 2015-07-21 | International Business Machines Corporation | Subscriber identity module-based authentication of a wireless device and applications stored thereon |
EP3025235B1 (en) | 2013-07-25 | 2020-10-28 | Siemens Healthcare Diagnostics Inc. | Anti-piracy protection for software |
EP2854066B1 (en) * | 2013-08-21 | 2018-02-28 | Nxp B.V. | System and method for firmware integrity verification using multiple keys and OTP memory |
CN103455401B (zh) * | 2013-08-25 | 2015-11-04 | 浙江大学 | 一种dsp和fpga紧耦合架构的协同验证方法 |
US9390246B2 (en) * | 2013-09-25 | 2016-07-12 | Intel Corporation | Creating secure original equipment manufacturer (OEM) identification |
US9961073B2 (en) * | 2013-09-30 | 2018-05-01 | Digicert, Inc. | Dynamic certificate generation on a certificate authority cloud |
US9760501B2 (en) * | 2014-11-05 | 2017-09-12 | Google Inc. | In-field smart device updates |
EP3197089B1 (en) * | 2014-11-06 | 2019-08-07 | Huawei Technologies Co., Ltd. | Secure information configuration method, secure authentication method and related chip |
US10149159B1 (en) * | 2015-03-19 | 2018-12-04 | Proxidyne, Inc. | Trusted beacon system and method |
US9887842B2 (en) | 2015-06-30 | 2018-02-06 | International Business Machines Corporation | Binding software application bundles to a physical execution medium |
EP3378190A4 (en) * | 2015-11-22 | 2019-06-26 | Unbound Tech Ltd | METHOD OF IMPLEMENTING KEY MESSAGE AUTHENTICATION CODE (HMAC) USING A MULTIPARTITE CALCULATION WITHOUT BOOLEAN DOORS |
DE102015225651A1 (de) * | 2015-12-17 | 2017-06-22 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Übertragen einer Software |
US10484181B2 (en) * | 2016-12-12 | 2019-11-19 | Datiphy Inc. | Streaming non-repudiation for data access and data transaction |
US10491401B2 (en) * | 2017-02-21 | 2019-11-26 | Google Llc | Verification of code signature with flexible constraints |
US10938560B2 (en) | 2017-06-21 | 2021-03-02 | Microsoft Technology Licensing, Llc | Authorization key escrow |
US10558812B2 (en) | 2017-06-21 | 2020-02-11 | Microsoft Technology Licensing, Llc | Mutual authentication with integrity attestation |
US10440006B2 (en) | 2017-06-21 | 2019-10-08 | Microsoft Technology Licensing, Llc | Device with embedded certificate authority |
US11374760B2 (en) | 2017-09-13 | 2022-06-28 | Microsoft Technology Licensing, Llc | Cyber physical key |
US10638313B2 (en) * | 2017-10-26 | 2020-04-28 | Robert Bosch Gmbh | Systems and methods for confirming a cryptographic key |
TWI716918B (zh) * | 2019-06-27 | 2021-01-21 | 旺宏電子股份有限公司 | 電子裝置、記憶體裝置及其記憶資料的讀取方法 |
US10897361B1 (en) * | 2019-09-04 | 2021-01-19 | Garantir LLC | Automated hash validation |
JP2022025599A (ja) * | 2020-07-29 | 2022-02-10 | キヤノン株式会社 | 情報処理装置、アプリケーションの起動方法及びプログラム |
US20220222348A1 (en) * | 2021-01-13 | 2022-07-14 | Microsoft Technology Licensing, Llc | Attesting update of a firmware layer |
US11057215B1 (en) | 2021-01-27 | 2021-07-06 | Garantir LLC | Automated hash validation |
EP4037284A1 (de) * | 2021-02-02 | 2022-08-03 | Siemens Mobility GmbH | Verfahren, vorrichtungen und computerprogrammprodukt zum ausführen einer software auf einem rechner für eine steuerung eines technischen systems, insbesondere eines systems zur bahnsteuerung |
US11451402B1 (en) | 2021-07-29 | 2022-09-20 | IPAssets Technology Holdings Inc. | Cold storage cryptographic authentication apparatus and system |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4658093A (en) | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
US5398285A (en) * | 1993-12-30 | 1995-03-14 | Motorola, Inc. | Method for generating a password using public key cryptography |
US5473692A (en) | 1994-09-07 | 1995-12-05 | Intel Corporation | Roving software license for a hardware agent |
US5638446A (en) * | 1995-08-28 | 1997-06-10 | Bell Communications Research, Inc. | Method for the secure distribution of electronic files in a distributed environment |
US5805699A (en) | 1996-05-20 | 1998-09-08 | Fujitsu Limited | Software copying system |
JP3540543B2 (ja) | 1996-05-20 | 2004-07-07 | 富士通株式会社 | ソフトウェアコピー処理装置、ソフトウェアコピー処理方法およびソフトウェアをコピーするプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JPH10301773A (ja) | 1997-04-30 | 1998-11-13 | Sony Corp | 情報処理装置および情報処理方法、並びに記録媒体 |
JPH10311773A (ja) | 1997-05-09 | 1998-11-24 | Natl Aerospace Lab | 衝撃波位置推定方法および衝撃波位置推定装置 |
JP2001517822A (ja) | 1997-09-19 | 2001-10-09 | パク,ヒョ,ジョーン | 独立的ソフトウェア登録サーバを利用したソフトウェア使用権管理システム |
US6243468B1 (en) * | 1998-04-29 | 2001-06-05 | Microsoft Corporation | Software anti-piracy system that adapts to hardware upgrades |
JP3713141B2 (ja) | 1998-05-19 | 2005-11-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムの不正実行防止方法 |
US6510236B1 (en) * | 1998-12-11 | 2003-01-21 | International Business Machines Corporation | Authentication framework for managing authentication requests from multiple authentication devices |
US6711684B1 (en) | 1999-06-08 | 2004-03-23 | General Instrument Corporation | Variable security code download for an embedded processor |
US6460023B1 (en) | 1999-06-16 | 2002-10-01 | Pulse Entertainment, Inc. | Software authorization system and method |
US6728880B1 (en) * | 1999-09-17 | 2004-04-27 | Adobe Systems Incorporated | Secure time on computers with insecure clocks |
JP3740931B2 (ja) | 2000-03-01 | 2006-02-01 | 日本電信電話株式会社 | アプリケーションプログラム管理方法及びシステム及びコンピュータ読み取り可能な記録媒体 |
US7177421B2 (en) * | 2000-04-13 | 2007-02-13 | Broadcom Corporation | Authentication engine architecture and method |
JP4681105B2 (ja) | 2000-07-07 | 2011-05-11 | パナソニック電工株式会社 | 電子機器組み込みソフトウェアの保護方法及び電子機器 |
US20020136401A1 (en) * | 2000-07-25 | 2002-09-26 | Jeffrey Hoffstein | Digital signature and authentication method and apparatus |
US6931545B1 (en) | 2000-08-28 | 2005-08-16 | Contentguard Holdings, Inc. | Systems and methods for integrity certification and verification of content consumption environments |
US20020150253A1 (en) * | 2001-04-12 | 2002-10-17 | Brezak John E. | Methods and arrangements for protecting information in forwarded authentication messages |
JP2002312052A (ja) | 2001-04-13 | 2002-10-25 | Nippon Telegraph & Telephone West Corp | コンピュータプログラム、コンピュータプログラムの生成方法、コンピュータプログラムの提供方法 |
JP2003084984A (ja) | 2001-09-12 | 2003-03-20 | Canon Inc | 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体 |
US7114051B2 (en) * | 2002-06-01 | 2006-09-26 | Solid State System Co., Ltd. | Method for partitioning memory mass storage device |
GB2405007A (en) | 2002-07-19 | 2005-02-16 | Ritech Internat Ltd | Process of encryption and decryption of data in a portable data storage device with layered memory architecture |
WO2004075525A1 (en) | 2003-02-20 | 2004-09-02 | Ase R & D Europe | Method for offering time on smart card and method for time registration by means of mobile communication device |
TW200502758A (en) * | 2003-07-07 | 2005-01-16 | Yuen Foong Paper Co Ltd | Portable secure information accessing system and method thereof |
US7321957B2 (en) * | 2003-10-24 | 2008-01-22 | Intel Corporation | Debugging a trusted component in a system |
TWI234979B (en) | 2003-12-19 | 2005-06-21 | Inst Information Industry | Digital content protection method |
US20050138409A1 (en) * | 2003-12-22 | 2005-06-23 | Tayib Sheriff | Securing an electronic device |
-
2004
- 2004-03-31 US US10/815,256 patent/US8041957B2/en not_active Expired - Lifetime
- 2004-04-08 EP EP04749901.7A patent/EP1618451B1/en not_active Expired - Lifetime
- 2004-04-08 WO PCT/US2004/010867 patent/WO2004092886A2/en active Application Filing
- 2004-04-08 CA CA002521821A patent/CA2521821A1/en not_active Abandoned
- 2004-04-08 JP JP2006509824A patent/JP4814083B2/ja not_active Expired - Lifetime
- 2004-04-08 RU RU2005134362/09A patent/RU2356169C2/ru not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20050005098A1 (en) | 2005-01-06 |
US8041957B2 (en) | 2011-10-18 |
WO2004092886A3 (en) | 2005-12-01 |
RU2005134362A (ru) | 2006-05-27 |
CA2521821A1 (en) | 2004-10-28 |
JP4814083B2 (ja) | 2011-11-09 |
EP1618451A2 (en) | 2006-01-25 |
EP1618451A4 (en) | 2009-05-13 |
WO2004092886A2 (en) | 2004-10-28 |
JP2006522988A (ja) | 2006-10-05 |
EP1618451B1 (en) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2356169C2 (ru) | Привязка программного обеспечения к аппаратным средствам с использованием криптографии | |
JP4912879B2 (ja) | プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法 | |
CN108809646B (zh) | 安全共享密钥共享系统 | |
US9281949B2 (en) | Device using secure processing zone to establish trust for digital rights management | |
JP6509197B2 (ja) | セキュリティパラメータに基づくワーキングセキュリティキーの生成 | |
US7886355B2 (en) | Subsidy lock enabled handset device with asymmetric verification unlocking control and method thereof | |
US7506381B2 (en) | Method for securing an electronic device, a security system and an electronic device | |
CN101018125B (zh) | 一种基于椭圆曲线公钥密码的无线终端安全锁网锁卡方法 | |
US7299358B2 (en) | Indirect data protection using random key encryption | |
CN101145906B (zh) | 对单向网络中的接收终端进行合法性认证的方法及系统 | |
US8775812B2 (en) | Received message verification | |
US20080077592A1 (en) | method and apparatus for device authentication | |
WO2012109640A2 (en) | System and method for secure software update | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
US20130019110A1 (en) | Apparatus and method for preventing copying of terminal unique information in portable terminal | |
CN117436043A (zh) | 待执行文件的来源验证方法、设备以及可读存储介质 | |
KR20130100032A (ko) | 코드 서명 기법을 이용한 스마트폰 어플리케이션 배포 방법 | |
CN117335991A (zh) | 可执行程序的无证书认证 | |
KR20070017455A (ko) | 프로세서 내에서의 보호된 리소스들로의 억세스에 대한안전한 보호 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20110409 |