RU2408071C2 - Protected data loading and storage in data processing device - Google Patents
Protected data loading and storage in data processing device Download PDFInfo
- Publication number
- RU2408071C2 RU2408071C2 RU2007117505/08A RU2007117505A RU2408071C2 RU 2408071 C2 RU2408071 C2 RU 2408071C2 RU 2007117505/08 A RU2007117505/08 A RU 2007117505/08A RU 2007117505 A RU2007117505 A RU 2007117505A RU 2408071 C2 RU2408071 C2 RU 2408071C2
- Authority
- RU
- Russia
- Prior art keywords
- data
- version
- value
- processing device
- reference value
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 133
- 230000008569 process Effects 0.000 claims abstract description 59
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 23
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000000126 substance Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 100
- 239000013078 crystal Substances 0.000 description 28
- 238000012795 verification Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008672 reprogramming Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis 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/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
-
- 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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
Description
Раскрыты способ, программный продукт и устройство для защищенной загрузки и хранения данных в устройстве обработки данных.A method, software product and device for securely loading and storing data in a data processing device are disclosed.
Встроенные системы, такие как мобильные телефоны и другие устройства обработки данных, зависят от выполнения правильного программного обеспечения, которое не подвергалось воздействию запрещенным способом. Несанкционированные манипуляции с программным обеспечением могут привести к неправильной работе устройства или даже к нарушению основных особенностей обеспечения безопасности устройства. Следовательно, особенно важно защищать основное программное обеспечение устройства. Этого можно достичь, например, с помощью хранения программы в защищенной памяти. Память можно или физически защищать от незаконного доступа, или защищать криптографическими способами. Практически трудно или дорого создавать память с хорошей физической защитой и особенно защищать интерфейсы памяти. Следовательно, самое привлекательное решение состоит в том, чтобы использовать некоторый вид криптографической защиты программного обеспечения, хранящегося в памяти.Embedded systems, such as mobile phones and other data processing devices, depend on the execution of the correct software that has not been exposed in a prohibited manner. Unauthorized manipulations with the software can lead to malfunctioning of the device or even to a violation of the main features of ensuring the security of the device. Therefore, it is especially important to protect the basic software of the device. This can be achieved, for example, by storing the program in protected memory. The memory can either be physically protected from illegal access, or protected by cryptographic methods. It is almost difficult or expensive to create memory with good physical protection, and especially to protect memory interfaces. Therefore, the most attractive solution is to use some kind of cryptographic protection of the software stored in memory.
Кроме того, программное обеспечение даже для довольно маленьких систем становится все более и более сложным, таким образом увеличивая риск ошибок и непреднамеренных действий, особенно в ранних выпусках в течение цикла жизни программного обеспечения. Кроме того, функциональные возможности ранних выпусков программ обычно ограничиваются. Следовательно, существует увеличивающаяся потребность в частых обновлениях программного обеспечения, хранящегося во встроенных устройствах.In addition, software for even fairly small systems is becoming more and more complex, thus increasing the risk of errors and unintentional actions, especially in earlier releases during the software life cycle. In addition, the functionality of earlier releases is usually limited. Consequently, there is an increasing need for frequent software updates stored in embedded devices.
Потребность в частых обновлениях и желание обеспечивать достаточную защиту для программного обеспечения устройства обработки данных создают потребность в решениях по обеспечению безопасности, которые защищают программное обеспечение устройства обработки данных при хранении, и это учитывают при защищенных обновлениях программного обеспечения.The need for frequent updates and the desire to provide sufficient protection for the software of the data processing device create the need for security solutions that protect the software of the data processing device during storage, and this is taken into account with protected software updates.
Патент США №6026293 раскрывает способ для предотвращения вмешательства в электронную память электронного устройства. Согласно этому способу предшествующего уровня техники когда требуется перепрограммировать электронное устройство с помощью устройства передачи данных, электронное устройство инициирует схему аутентификации с запросом и подтверждением открытого/закрытого ключа для аутентификации устройства передачи данных. После аутентификации устройству передачи данных разрешают доступ для перепрограммирования памяти. После перепрограммирования памяти электронное устройство выполняет вычисление хэш-функции измененного содержимого памяти. Вычисленное значение хэш-функции посылают устройству передачи данных для цифровой подписи, и подписанное значение хэш-функции возвращают на электронное устройство для хранения. Подписанное значение хэш-функции впоследствии используют для контроля целостности содержимого памяти, например, во время начальной загрузки или периодически.US patent No. 6026293 discloses a method for preventing interference with the electronic memory of an electronic device. According to this prior art method, when it is desired to reprogram an electronic device using a data transmission device, the electronic device initiates an authentication scheme requesting and confirming a public / private key for authenticating the data transmission device. After authentication, the data device is allowed access to reprogram the memory. After reprogramming the memory, the electronic device calculates the hash function of the modified memory contents. The calculated hash value is sent to the data device for digital signature, and the signed hash value is returned to the electronic storage device. The signed hash value is subsequently used to monitor the integrity of the contents of the memory, for example, at boot time or periodically.
Даже при том, что приведенный выше способ предшествующего уровня техники обеспечивает и защиту аутентификации во время этапа загрузки, и защиту целостности содержимого памяти электронного устройства, он вовлекает довольно сложную схему генерации и подписания сгенерированного значения хэш-функции, таким образом приводя к тому, что процесс загрузки занимает довольно длительное время.Even though the above prior art method provides both authentication protection during the boot phase and protection of the integrity of the contents of the electronic device’s memory, it involves a rather complicated scheme for generating and signing the generated hash value, thus leading to the process loading takes quite a long time.
Следовательно, проблемой является обеспечение более эффективного в вычислительном отношении механизма обеспечения безопасности, который защищает программное обеспечение и во время загрузки программного обеспечения в устройство, и впоследствии, когда программное обеспечение хранится в устройстве.Therefore, the problem is to provide a more computationally efficient security mechanism that protects the software both during the downloading of software to the device and subsequently when the software is stored in the device.
Указанные выше и другие проблемы решены с помощью способа загрузки данных в устройство обработки данных, данный способ содержит этапы:The above and other problems are solved using the method of loading data into a data processing device, this method comprises the steps of:
- принимают элемент данных полезной нагрузки с помощью устройства обработки;- receive the payload data element using the processing device;
- выполняют процесс криптографической аутентификации для обеспечения подлинности элемента данных полезной нагрузки;- perform the cryptographic authentication process to ensure the authenticity of the payload data element;
- сохраняют аутентифицированный принятый элемент данных полезной нагрузки в устройстве обработки данных и- save the authenticated received payload data element in the data processing device and
- защищают целостность сохраненного элемента данных полезной нагрузки,- protect the integrity of the stored payload data item,
в котором выполнение процесса криптографической аутентификации содержит вычисление контрольного (проверочного) значения хэш-функции по меньшей мере для принятого элемента данных иin which the execution of the cryptographic authentication process includes calculating a control (verification) value of the hash function for at least the received data element and
в котором защита целостности дополнительно содержит вычисление эталонного значения кода аутентификации сообщения по меньшей мере для контрольного значения хэш-функции, используя в качестве входных данных секретный ключ, хранящийся в устройстве обработки данных.in which the integrity protection further comprises calculating a reference value of the message authentication code for at least the hash control value using the secret key stored in the data processing device as input.
В частности, так как вычисленное во время процесса загрузки контрольное значение хэш-функции вычисляют из принятых данных полезной нагрузки и данное контрольное значение хэш-функции впоследствии многократно используют во время вычисления кода аутентификации сообщения, количество необходимых вычислений, выполняемых во время загрузки программного обеспечения, сокращается, таким образом увеличивая вычислительную эффективность способа.In particular, since the hash control value calculated during the download process is calculated from the received payload data and this hash control value is subsequently reused during the calculation of the message authentication code, the number of necessary calculations performed during the software download is reduced , thus increasing the computational efficiency of the method.
Кроме того, так как регулярная защита целостности основана на секретном ключе, хранящемся в устройстве обработки данных, защита целостности не зависит ни от каких внешних криптографических ключей и, в частности, не зависит от механизма подписи с открытым ключом. Преимуществом является то, что проверка целостности, основанная на симметричном ключе, т.е. проверка целостности, основанная на коде аутентификации сообщения, является в вычислительном отношении более эффективной, чем проверка целостности, основанная на открытом ключе, которая вовлекает проверку подписи.In addition, since regular integrity protection is based on a secret key stored in the data processing device, integrity protection does not depend on any external cryptographic keys and, in particular, does not depend on the public key signing mechanism. The advantage is that the integrity check based on a symmetric key, i.e. an integrity check based on a message authentication code is computationally more efficient than a public key based integrity check that involves signing verification.
Термин «устройство обработки данных» содержит любое электронное устройство, содержащее память для хранения данных, в которую можно загружать данные из внешнего источника, например из системы передачи данных. В частности, термин «устройство обработки данных» содержит любое электронное оборудование, портативное оборудование радиосвязи и другие карманные или портативные устройства. Термин портативное оборудование радиосвязи включает в себя все оборудование, такое как мобильные телефоны, пейджеры, коммуникаторы, электронные записные книжки, смартфоны (интеллектуальные мобильные телефоны), персональные цифровые помощники (PDA), карманные персональные компьютеры или подобные устройства.The term "data processing device" includes any electronic device containing a memory for storing data into which data can be downloaded from an external source, for example, from a data transmission system. In particular, the term “data processing device” includes any electronic equipment, portable radio communication equipment, and other handheld or portable devices. The term portable radio equipment includes all equipment, such as mobile phones, pagers, communicators, electronic notebooks, smartphones (smart mobile phones), personal digital assistants (PDAs), personal digital assistants, or similar devices.
Термин элемент данных полезной нагрузки включает в себя любые данные, загружаемые в устройство обработки данных. В частности, термин элемент данных полезной нагрузки включает в себя данные конфигурации, код программы, например программное обеспечение среды операционной системы или прикладное программное обеспечение, предназначенное для выполнения устройством, или подобные данные.The term payload data element includes any data loaded into a data processing device. In particular, the term payload data element includes configuration data, program code, for example, operating system environment software or application software designed to be executed by a device, or the like.
Процесс криптографической аутентификации может быть любым соответствующим криптографическим процессом для проверки подлинности принятых данных, т.е. для того, чтобы удостовериться в том, что данные на самом деле отправил объект, имя которого они переносят, и что они не были подделаны или изменены.The cryptographic authentication process may be any appropriate cryptographic process for verifying the authenticity of the received data, i.e. in order to make sure that the data is actually sent by the object whose name they transfer, and that they have not been tampered with or modified.
В некоторых вариантах осуществления процесс криптографической аутентификации включает в себя этапы:In some embodiments, the cryptographic authentication process includes the steps of:
- принимают эталонное значение хэш-функции и- take the reference value of the hash function and
- сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.- comparing the received reference value of the hash function with the calculated control value of the hash function to verify the authenticity of the received payload data element.
В дополнительном варианте осуществления процесс криптографической аутентификации включает в себя подписание с помощью цифровой подписи элемента данных в соответствии с криптосистемой с открытым ключом. Подписание с помощью цифровой подписи программного обеспечения является эффективным и надежным принципом проверки программного обеспечения, загружаемого в мобильное устройство. Успешная проверка подписи гарантирует, что программное обеспечение выпущено законным источником. Кроме того, цифровые подписи, основанные на методиках открытого ключа, имеют преимущество, что открытый ключ, используемый для проверки, не должен быть надежно защищен при перемещении или хранении. Следовательно, тот же самый открытый ключ может быть установлен в большое количество устройств, не ставя под угрозу безопасность. Это предоставляет возможность эффективного выполнения процедур быстрого и защищенного обновления программного обеспечения.In a further embodiment, the cryptographic authentication process includes digitally signing a data item in accordance with a public key cryptosystem. Digitally signing software is an effective and reliable principle for verifying software downloaded to a mobile device. Successful verification of the signature ensures that the software is released by a legitimate source. In addition, digital signatures based on public key techniques have the advantage that the public key used for verification does not have to be reliably protected during movement or storage. Consequently, the same public key can be installed in a large number of devices without compromising security. This provides the ability to efficiently perform fast and secure software updates.
В некоторых вариантах осуществления способ содержит этапы:In some embodiments, the method comprises the steps of:
- принимают элемент данных полезной нагрузки, элемент данных цифровой подписи и подписанный с помощью цифровой подписи элемент данных цифрового сертификата, причем элемент данных цифрового сертификата включает в себя первый открытый ключ и элемент данных цифровой подписи включает в себя эталонное значение хэш-функции, зашифрованное с первым закрытым ключом, соответствующим первому открытому ключу;- receive a payload data element, a digital signature data element and a digital certificate signed by digital signature, the digital certificate data element includes a first public key and the digital signature data element includes a hash reference value encrypted with the first private key corresponding to the first public key;
- аутентифицируют подписанный с помощью цифровой подписи элемент данных цифрового сертификата по отношению к корневому открытому ключу, хранящемуся в устройстве обработки данных;- authenticate the digital certificate data element signed with a digital signature with respect to the root public key stored in the data processing device;
- аутентифицируют элемент данных цифровой подписи по отношению к аутентифицированному цифровому сертификату;- authenticate the digital signature data element with respect to the authenticated digital certificate;
- сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.- comparing the received reference value of the hash function with the calculated control value of the hash function to verify the authenticity of the received payload data element.
Следовательно, подлинность цифровой подписи обеспечивают цифровым сертификатом, таким образом дополнительно увеличивая защищенность процесса загрузки. Следует понимать, что устройство обработки данных может принимать больше одного цифрового сертификата, формируя цепочку сертификатов, причем один сертификат в цепочке проверяют с помощью открытого корневого ключа, хранящегося в устройстве обработки данных.Therefore, the authenticity of the digital signature is provided with a digital certificate, thereby further enhancing the security of the download process. It should be understood that the data processing device can accept more than one digital certificate, forming a chain of certificates, and one certificate in the chain is checked using the public root key stored in the data processing device.
В дополнительном варианте осуществления выполняют криптографическую аутентификацию эталонного значения хэш-функции и вычисление эталонного значения кода аутентификации сообщения выполняют, только если эталонное значение хэш-функции успешно аутентифицировано. Следовательно, выполнение процедуры кода аутентификации сообщения в устройстве обработки данных обусловлено получением аутентифицированного эталонного значения хэш-функции, таким образом сокращая риск использования противником процедуры кода аутентификации сообщения устройства обработки данных для вычисления неразрешенных значений кода аутентификации сообщения.In a further embodiment, cryptographic authentication of the hash reference value is performed, and the calculation of the message authentication code reference value is performed only if the hash reference value is successfully authenticated. Therefore, the execution of the message authentication code procedure in the data processing device is caused by obtaining an authenticated hash function reference value, thereby reducing the risk of the adversary using the message authentication code procedure of the data processing device to calculate unauthorized values of the message authentication code.
Коды аутентификации сообщения (MAC, КАС) - известный механизм для защиты целостности сообщений. MAC является функцией, которая использует входные данные переменной длины и ключ для создания выходных данных фиксированной длины, так называемого значения MAC, или значения метки. MAC обычно используются двумя участниками, которые совместно используют секретный ключ для подтверждения достоверности информации, передаваемой между этими участниками. В некоторых вариантах осуществления MAC вычисляют, применяя одностороннюю хэш-функцию к данным полезной нагрузки и шифруя результат, используя секретный ключ. Примеры соответствующих функций MAC, которые можно объединять с криптографической хэш-функцией, включают в себя HMAC (основанное на ключе хэширование для аутентификации сообщений), MAC сцепления блоков шифра (CBC), используя, например, AES или надежную одностороннюю хэш-функцию. В описанном способе загрузки код аутентификации сообщения используют для проверки целостности данных, хранящихся в ненадежном или незащищенном носителе, т.е. в этой ситуации MAC использует только один участник, т.е. устройство обработки данных, когда сохраняет и извлекает элемент данных полезной нагрузки.Message Authentication Codes (MAC, CAS) are a well-known mechanism for protecting message integrity. A MAC is a function that uses variable-length input and a key to create fixed-length output, a so-called MAC value, or label value. MACs are typically used by two participants who share a secret key to validate the information transmitted between these participants. In some embodiments, the MAC is computed by applying a one-way hash function to the payload data and encrypting the result using a secret key. Examples of relevant MAC functions that can be combined with a cryptographic hash function include HMAC (Key Based Hashing for Message Authentication), Cipher Block MAC (CBC) using, for example, AES or a robust one-way hash function. In the described download method, the message authentication code is used to verify the integrity of data stored in an unreliable or insecure medium, i.e. in this situation, the MAC uses only one participant, i.e. a data processing device when it stores and retrieves a payload data element.
Следовательно, в некоторых вариантах осуществления защита целостности содержит хранение вычисленного эталонного значения кода аутентификации сообщения относительно принятого элемента данных полезной нагрузки, таким образом делая его доступным для последующего контроля памяти с элементом данных полезной нагрузки с помощью устройства обработки данных. Следовательно, при контроле содержимого памяти устройство вычисляет значение кода аутентификации сообщения сохраненного элемента данных полезной нагрузки, используя секретный ключ, хранящийся в устройстве, и сравнивает результат с предварительно сохраненным эталонным значением MAC. Следовательно, в данном варианте осуществления секретный ключ должен быть известен только цифровому устройству обработки. В некоторых вариантах осуществления секретный ключ является секретным элементом данных, уникальным для устройства обработки данных, например секретным элементом данных, известным только устройству обработки данных.Therefore, in some embodiments, the integrity protection comprises storing a computed message authentication code reference value with respect to a received payload data element, thereby making it available for subsequent memory monitoring with the payload data element using a data processing device. Therefore, when monitoring the contents of the memory, the device calculates the value of the authentication code of the message of the stored payload data element using the secret key stored in the device, and compares the result with the previously stored MAC reference value. Therefore, in this embodiment, the secret key should be known only to the digital processing device. In some embodiments, the secret key is a secret data element unique to a data processing device, for example a secret data element known only to a data processing device.
В другом варианте осуществления вычисление эталонного значения кода аутентификации сообщения дополнительно содержит вычисление эталонного значения кода аутентификации сообщения объединенного элемента данных, полученного по меньшей мере из контрольного значения хэш-функции и случайного числа. Преимуществом данного варианта осуществления является то, что входные данные к MAC не полностью зависят от результата процесса аутентификации, таким образом дополнительно увеличивая надежность защиты данных.In another embodiment, the calculation of the reference value of the message authentication code further comprises calculating the reference value of the message authentication code of the combined data item obtained from at least the hash control value and a random number. An advantage of this embodiment is that the input to the MAC is not completely dependent on the result of the authentication process, thereby further increasing the reliability of data protection.
Когда вычисление эталонного значения кода аутентификации сообщения дополнительно содержит вычисление эталонного значения кода аутентификации сообщения объединенного элемента данных, полученного по меньшей мере из контрольного значения хэш-функции и элемента данных контроля версии, защиту целостности эффективно объединяют с механизмом контроля версии, так как последующий контроль памяти будет успешным только тогда, когда и содержимое памяти, и информация контроля версии будут непротиворечивыми.When the calculation of the reference value of the message authentication code further comprises the calculation of the reference value of the message authentication code of the combined data item obtained from at least the control value of the hash function and the version control data item, the integrity protection is effectively combined with the version control mechanism, since subsequent memory control will successful only when both the contents of the memory and the version control information are consistent.
В некоторых вариантах осуществления запись данных контроля версии хранится в структуре данных контроля версии, запись данных контроля версии включает в себя информацию о принятом элементе данных полезной нагрузки, включающем в себя по меньшей мере элемент данных контроля версии. В некоторых вариантах осуществления обеспечивают защиту целостности структуры данных контроля.In some embodiments, the version control data record is stored in the version control data structure, the version control data record includes information about a received payload data element including at least a version control data element. In some embodiments, the implementation provides protection for the integrity of the control data structure.
В некоторых вариантах осуществления запись данных контроля версии содержит счетчик версии. В некоторых вариантах осуществления запись данных контроля версии дополнительно содержит обратный счетчик, идентифицирующий количество предыдущих версий, которыми можно заменять текущую версию элемента данных полезной нагрузки, таким образом обеспечивая простой и эффективный механизм контроля версии, включающий в себя механизм контроля совместимости вниз.In some embodiments, the version control data recording comprises a version counter. In some embodiments, the version control data recording further comprises a countdown identifying the number of previous versions with which the current version of the payload data item can be replaced, thereby providing a simple and efficient version control mechanism including a downward compatibility control mechanism.
В известных схемах обновления программного обеспечения, где существующее программное обеспечение обновляют с помощью новой версии программного обеспечения, обновление программного обеспечения часто принимают как так называемый дельта-файл (разностный файл) или дельта-обновление. Такие дельта-обновления включают в себя отличия нового (обновленного) программного обеспечения от текущего программного обеспечения, таким образом сокращая размер пакета обновления. В некоторых методиках дельта-файла файл обновления также включает в себя команды для управления генерацией обновленной версии программного обеспечения из текущего программного обеспечения и принятого обновления. Методика дельта-файла также известна из предшествующего уровня техники и описана, например, в «Delta storage for arbitrary non-text files», by Christian Reichenberger, Proc. Of the 3rd International Workshop on Software Configuration Management, p. 144-152, Norway, June 1991. Желательно обеспечить эффективный механизм обеспечения безопасности, который может также применяться к дельта-обновлениям. Эта проблема решена, когда прием элемента данных полезной нагрузки содержит прием дельта-обновления ранее принятого текущего элемента данных, и элемент данных полезной нагрузки генерируют как обновленный элемент данных полезной нагрузки из ранее принятого текущего элемента данных и принятого дельта-обновления. Следовательно, согласно данному варианту осуществления генерируют обновленный элемент данных полезной нагрузки и контрольное значение хэш-функции вычисляют из сгенерированного обновленного элемента данных полезной нагрузки. Следовательно, контрольное значение хэш-функции может снова многократно использоваться для вычисления эталонного кода аутентификации сообщения обновленных данных полезной нагрузки, которые хранятся в устройстве.In known software update schemes, where existing software is updated with a new software version, a software update is often adopted as a so-called delta file (delta file) or delta update. Such delta updates include differences between the new (updated) software and the current software, thereby reducing the size of the update package. In some delta file techniques, the update file also includes commands for controlling the generation of the updated software version from the current software and the received update. The delta file technique is also known in the art and is described, for example, in “Delta storage for arbitrary non-text files”, by Christian Reichenberger, Proc. Of the 3rd International Workshop on Software Configuration Management, p. 144-152, Norway, June 1991. It is desirable to provide an effective security mechanism that can also apply to delta updates. This problem is resolved when receiving a payload data element includes receiving a delta update of a previously received current data element, and a payload data element is generated as an updated payload data element from a previously received current data element and a received delta update. Therefore, according to this embodiment, an updated payload data element is generated and a hash control value is calculated from the generated updated payload data element. Therefore, the hash check value can be reused again to calculate the authentication authentication code message of the updated payload data that is stored in the device.
Согласно второму аспекту проблемой указанной выше системы предшествующего уровня техники является обеспечение эффективного и надежного способа защиты целостности текущей версии элемента данных, хранящегося в устройстве обработки данных, в ситуации, когда происходят частые обновления различных версий хранящегося элемента данных.According to a second aspect, the problem of the aforementioned prior art system is to provide an effective and reliable way to protect the integrity of the current version of a data item stored in a data processing device in a situation where frequent updates of different versions of a stored data item occur.
Указанные выше и другие проблемы решены с помощью способа защиты целостности текущей версии элемента данных, хранящегося в устройстве обработки данных, данный способ содержит этапы:The above and other problems are solved using the method of protecting the integrity of the current version of the data item stored in the data processing device, this method comprises the steps of:
- определяют эталонное значение хэш-функции по меньшей мере элемента данных;- determine the reference value of the hash function of at least the data item;
- вычисляют эталонное значение кода аутентификации сообщения из определенного эталонного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;- calculate the reference value of the authentication code of the message from the determined reference value of the hash function using the secret key stored in the data processing device;
- сохраняют вычисленное эталонное значение кода аутентификации сообщения для элемента данных;- save the calculated reference message authentication code value for the data item;
отличающегося тем, что вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из части записи данных контроля версии, запись данных контроля версии включает в себя информацию контроля версии о текущей версии элемента данных.characterized in that the calculation of the reference value of the message authentication code comprises calculating the reference value of the message authentication code from the combined data item obtained from the determined hash function reference value and at least from the version control data recording part, the version control data recording includes control information version of the current version of the data item.
Следовательно, с помощью вычисления эталонного кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из части записи данных контроля версии, защиту целостности сохраненных данных полезной нагрузки эффективно объединяют с надежным контролем версии сохраненных данных.Therefore, by calculating the reference authentication code of the message from the combined data item obtained from the determined hash function reference value and at least from the recording part of the version control data, the integrity protection of the stored payload data is effectively combined with reliable version control of the stored data.
Эталонное значение хэш-функции по меньшей мере элемента данных можно определять, вычисляя значение хэш-функции для элемента данных или принимая значение хэш-функции вместе с элементом данных или из процесса аутентификации в связи с получением элемента данных, который описан в данной работе.The reference value of the hash function of at least the data item can be determined by calculating the value of the hash function for the data item or taking the value of the hash function together with the data item or from the authentication process in connection with obtaining the data item that is described in this paper.
Термин объединенный элемент данных содержит любой элемент данных, сгенерированный как функция двух или большего количества элементов данных, например как соединение двух или большего количества элементов данных, где один элемент данных присоединяют к другому. Следовательно, объединенный элемент данных, полученный из определенного эталонного значения хэш-функции и по меньшей мере из части записи данных контроля версии, генерируют как функцию по меньшей мере эталонного значения хэш-функции и по меньшей мере части записи данных контроля версии.The term combined data element contains any data element generated as a function of two or more data elements, for example, as a combination of two or more data elements, where one data element is attached to another. Therefore, the combined data item obtained from the determined hash function reference value and at least a part of the version control data record is generated as a function of at least the hash function reference value and at least a part of the version control data record.
В некоторых вариантах осуществления обеспечивают защиту целостности записи данных контроля версии.In some embodiments, implementation provide protection of the integrity of the record of version control data.
В некоторых вариантах осуществления запись данных контроля версии содержит счетчик версии и вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного контрольного значения хэш-функции и по меньшей мере из счетчика версии.In some embodiments, the version control data recording comprises a version counter and calculating a message authentication code reference value, comprising calculating a message authentication code reference value from a combined data item obtained from a specific hash control value and at least a version counter.
В некоторых вариантах осуществления запись данных контроля версии дополнительно содержит обратный счетчик, идентифицирующий множество предыдущих версий, которыми можно заменять текущую версию элемента данных полезной нагрузки, таким образом обеспечивая простой и эффективный механизм контроля версии, включающий в себя механизм контроля совместимости вниз. В некоторых вариантах осуществления вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из обратного счетчика.In some embodiments, the recording of version control data further comprises a countdown counter identifying a plurality of previous versions with which to replace the current version of the payload data element, thereby providing a simple and efficient version control mechanism including a downward compatibility control mechanism. In some embodiments, calculating a reference value of a message authentication code comprises computing a reference value of a message authentication code from a combined data item obtained from a specific hash reference value and at least a count back.
В другом варианте осуществления запись данных контроля версии дополнительно содержит эталонное значение хэш-функции для текущей версии элемента данных, таким образом обеспечивая компактный «отпечаток пальца» (контрольную сумму) элемента данных.In another embodiment, the version control data record further comprises a hash reference value for the current version of the data item, thereby providing a compact “fingerprint” (checksum) of the data item.
В некоторых вариантах осуществления секретный ключ известен только цифровому устройству обработки. Кроме того, секретный ключ может быть секретным элементом данных, уникальным для устройства обработки данных.In some embodiments, the secret key is known only to a digital processing device. In addition, the secret key may be a secret data item unique to the data processing device.
В некоторых вариантах осуществления данные полезной нагрузки загружают указанным вначале способом, таким образом эффективно объединяя защищенную загрузку и хранение с надежным контролем версии.In some embodiments, the payload data is loaded in the manner indicated initially, thereby effectively combining secure loading and storage with reliable version control.
В еще одном варианте осуществления способ дополнительно содержит этапы:In yet another embodiment, the method further comprises the steps of:
- принимают дельта-обновление ранее принятого текущего элемента данных и- accept a delta update of a previously received current data item and
- генерируют элемент данных как обновленный элемент данных из ранее принятого текущего элемента данных и принятого дельта-обновления.- generate a data item as an updated data item from a previously received current data item and a received delta update.
В еще одном варианте осуществления способ дополнительно содержит генерацию записи данных контроля версии и хранение записи данных контроля версии в структуре данных контроля версии, таким образом делая ее доступной для последующей проверки памяти.In yet another embodiment, the method further comprises generating a record of version control data and storing a record of version control data in a version control data structure, thereby making it available for subsequent memory verification.
Соответственно, в другом аспекте способ проверки целостности элемента данных текущей версии, хранящегося в устройстве обработки данных, содержит этапы:Accordingly, in another aspect, a method for checking the integrity of a data element of a current version stored in a data processing device comprises the steps of:
- вычисляют контрольное значение хэш-функции элемента данных;- calculate the control value of the hash function of the data item;
- вычисляют контрольное значение кода аутентификации сообщения из вычисленного контрольного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;- calculate the control value of the authentication code of the message from the calculated control value of the hash function using the secret key stored in the data processing device;
- сравнивают вычисленное контрольное значение кода аутентификации сообщения с эталонным значением кода аутентификации сообщения, хранящегося для элемента данных.- comparing the calculated control value of the message authentication code with the reference value of the message authentication code stored for the data item.
Согласно данному аспекту способ дополнительно содержит извлечение записи данных контроля версии, запись данных контроля версии включает в себя информацию контроля версии о текущей версии элемента данных иAccording to this aspect, the method further comprises retrieving the version control data record, the version control data record including version control information about the current version of the data item and
вычисление контрольного значения кода аутентификации сообщения содержит вычисление контрольного значения кода аутентификации сообщения из объединенного элемента данных, полученного из вычисленного контрольного значения хэш-функции и по меньшей мере из части записи данных контроля версии.the calculation of the control value of the message authentication code contains the calculation of the control value of the message authentication code from the combined data item obtained from the calculated control value of the hash function and at least from the version control data recording part.
Настоящее изобретение относится к различным аспектам, включающим в себя описанные выше и далее способы, соответствующие устройства и компьютерные программы, каждый из которых приводит к одному или большему количеству преимуществ и выгод, описанных в связи с одним из указанных выше способов, и каждый из которых имеет один или большее количество вариантов осуществления, соответствующих вариантам осуществления, описанным в связи с одним из указанных выше способов.The present invention relates to various aspects, including the methods described above and further, corresponding devices and computer programs, each of which leads to one or more of the advantages and benefits described in connection with one of the above methods, and each of which has one or more embodiments corresponding to the embodiments described in connection with one of the above methods.
Более конкретно, согласно другому аспекту устройство обработки данных содержит первую схему обработки, выполненную с возможностью выполнения способа загрузки данных в описанное выше и далее устройство обработки данных.More specifically, according to another aspect, the data processing device comprises a first processing circuit configured to perform a method of loading data into the data processing device described above and below.
В частности обнаружено, что описанный механизм обеспечения безопасности может преимущественно применяться к устройству, имеющему многокристальную архитектуру. В частности, когда первый из кристаллов обращается к памяти через второй из кристаллов, первому кристаллу особенно важно гарантировать подлинность данных и целостность содержимого памяти.In particular, it has been found that the described security mechanism can advantageously be applied to a device having a multi-chip architecture. In particular, when the first of the crystals accesses the memory through the second of the crystals, it is especially important for the first crystal to guarantee the authenticity of the data and the integrity of the contents of the memory.
Следовательно, в некоторых вариантах осуществления устройство обработки данных дополнительно содержит средство хранения, выполненное с возможностью хранения принятого элемента данных полезной нагрузки, и вторую схему обработки, связанную со средством хранения и с первой схемой обработки; причем вторая схема обработки выполнена с возможностью обеспечения первой схеме обработки по меньшей мере доступа для чтения к средству хранения.Therefore, in some embodiments, the data processing apparatus further comprises storage means configured to store the received payload data element and a second processing circuit associated with the storage means and the first processing circuit; moreover, the second processing circuit is configured to provide the first processing circuit with at least read access to the storage medium.
В дополнительном варианте осуществления первая схема обработки содержит локальное средство хранения, предназначенное для хранения корневого открытого ключа асимметричной криптографической системы. В дополнительном варианте осуществления первая схема обработки содержит локальное средство хранения, предназначенное для хранения указанного секретного ключа, таким образом обеспечивая защищенное хранение под управлением первого кристалла криптографических ключей, используемых в механизме обеспечения подлинности и целостности данных.In a further embodiment, the first processing scheme comprises local storage means for storing the root public key of an asymmetric cryptographic system. In a further embodiment, the first processing circuit comprises local storage means for storing said secret key, thereby providing secure storage under the control of the first crystal of cryptographic keys used in the mechanism for ensuring the authenticity and integrity of the data.
Согласно другому аспекту устройство обработки данных содержит средство хранения, предназначенное для хранения текущей версии элемента данных и записи данных контроля версии, запись данных контроля версии включает в себя информацию контроля версии о текущей версии элемента данных, и средство обработки, выполненное с возможностью выполнения описанного выше и далее способа проверки целостности элемента данных текущей версии.According to another aspect, the data processing device comprises storage means for storing the current version of the data item and recording version control data, the recording of version control data includes version control information about the current version of the data item, and processing means configured to perform the above and Further, a method for checking the integrity of a current version data item.
Следует отметить, что особенности описанных выше и далее способов могут воплощаться в программном обеспечении и выполняться в устройстве обработки данных или в другом средстве обработки на основе выполнения кода программы, например выполняемых компьютером команд. В данном описании термин средство обработки содержит любую схему и/или устройство, соответственно выполненное с возможностью выполнения указанных выше функций. В частности, указанный выше термин содержит программируемые микропроцессоры специального или общего назначения, цифровые процессоры сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые логические матрицы (PLA), программируемые пользователем вентильные матрицы (FPGA), специальные электронные схемы и т.д., или их комбинацию.It should be noted that the features of the methods described above and further can be embodied in software and executed in a data processing device or other processing means based on the execution of program code, for example, computer-executed instructions. In this description, the term processing means comprises any circuit and / or device, respectively, configured to perform the above functions. In particular, the above term contains special or general purpose programmable microprocessors, digital signal processors (DSP), specialized integrated circuits (ASIC), programmable logic arrays (PLA), user programmable gate arrays (FPGAs), special electronic circuits, etc. ., or a combination thereof.
Следовательно, согласно другому аспекту компьютерная программа содержит код программы, выполненный с возможностью побуждения устройства обработки данных к выполнению этапов описанного выше и далее способа, когда указанную компьютерную программу выполняют в устройстве обработки данных.Therefore, according to another aspect, the computer program comprises program code configured to cause the data processing device to perform the steps of the above and further described method when said computer program is executed in the data processing device.
Например, код программы можно загружать в память, такую как оперативная память (RAM, ОП), с носителя данных или с другого компьютера через компьютерную сеть. Альтернативно, описанные особенности могут осуществляться аппаратной схемой вместо программного обеспечения или в комбинации с программным обеспечением.For example, program code can be loaded into memory, such as random access memory (RAM, OP), from a storage medium or from another computer through a computer network. Alternatively, the described features may be implemented in hardware instead of software or in combination with software.
Указанные выше и другие аспекты будут очевидны и понятны из вариантов осуществления, описанных далее относительно чертежей, на которых:The above and other aspects will be apparent and understandable from the embodiments described below in relation to the drawings, in which:
фиг.1 показывает схематическую структурную схему системы для загрузки данных в мобильный терминал;figure 1 shows a schematic structural diagram of a system for downloading data to a mobile terminal;
фиг.2 показывает схематическую структурную схему примера мобильного терминала с однокристальной архитектурой;figure 2 shows a schematic structural diagram of an example of a mobile terminal with a single-chip architecture;
фиг.3 показывает схематическую структурную схему примера мобильного терминала с двукристальной архитектурой;figure 3 shows a schematic structural diagram of an example mobile terminal with a dual-chip architecture;
фиг.4 показывает схематическую структурную схему другого примера мобильного терминала с двукристальной архитектурой;4 shows a schematic structural diagram of another example of a dual-chip mobile terminal;
фиг.5 иллюстрирует пример структуры сообщения, используемого в процессе загрузки программного обеспечения в мобильный терминал;5 illustrates an example message structure used in the process of downloading software to a mobile terminal;
фиг.6 показывает последовательность операций процесса загрузки программного обеспечения для загрузки новой версии программного обеспечения;6 shows a flowchart of a software download process for downloading a new software version;
фиг.7 иллюстрирует вариант осуществления вычисления кода аутентификации сообщения;7 illustrates an embodiment of calculating a message authentication code;
фиг.8 иллюстрирует другой вариант осуществления вычисления кода аутентификации сообщения, включающий в себя механизм контроля версии;FIG. 8 illustrates another embodiment of a message authentication code calculation including a version control mechanism; FIG.
фиг.9 показывает последовательность операций процесса контроля версии;9 shows a flowchart of a version control process;
фиг.10 иллюстрирует пример механизма контроля версии, и10 illustrates an example version control mechanism, and
фиг.11 показывает последовательность операций процесса загрузки программного обеспечения для обновления программного обеспечения.11 shows a flowchart of a software download process for updating a software.
Фиг.1 показывает схематическую структурную схему системы для загрузки данных в мобильный терминал. Система содержит станцию 101 загрузки и мобильный терминал 102.Figure 1 shows a schematic structural diagram of a system for downloading data to a mobile terminal. The system comprises a
Устройство загрузки может быть обычным, соответствующим образом запрограммированным компьютером, например ПК (персональным компьютером), содержащим соответствующий интерфейс связи. В некоторых вариантах осуществления устройство загрузки может генерировать данные полезной нагрузки, например версию программного обеспечения, данные конфигурации и/или подобные данные, которые будут загружать. В частности, устройство загрузки может генерировать цифровую подпись и сертификат, которые будут загружаться вместе с данными полезной нагрузки. В других вариантах осуществления устройство загрузки принимает данные полезной нагрузки и информацию заголовка от удаленного компьютера, например от персонального компьютера, рабочего места, сетевого сервера и т.д. Например, данные можно принимать через компьютерную сеть, например Интернет, локальную сеть, корпоративную сеть, экстрасеть и т.д., или с помощью любого другого подходящего средства, например, на считываемом компьютером носителе, таком как гибкий диск, компакт-диск (CD-ROM) и т.д. В данном варианте осуществления вычисление подписи и генерация сертификата могут выполняться удаленным компьютером, а не станцией загрузки. Устройство загрузки выполняет вместе с мобильным терминалом загрузку данных в мобильный терминал.The boot device may be a conventional, suitably programmed computer, such as a PC (personal computer), containing the appropriate communication interface. In some embodiments, the download device may generate payload data, such as software version, configuration data, and / or similar data that will download. In particular, the download device can generate a digital signature and certificate that will be downloaded along with the payload data. In other embodiments, the download device receives payload data and header information from a remote computer, such as a personal computer, workstation, network server, etc. For example, data can be received via a computer network, such as the Internet, a local area network, a corporate network, an extranet, etc., or by any other suitable means, for example, on computer-readable media such as a floppy disk, CD-ROM -ROM) etc. In this embodiment, signature calculation and certificate generation may be performed by a remote computer, rather than a download station. The download device, together with the mobile terminal, downloads data to the mobile terminal.
Мобильный терминал 102 содержит интерфейс 104 связи, содержащий схемы и/или устройства, подходящие для предоставления возможности мобильному терминалу обмениваться данными со станцией загрузки через проводной канал связи или через канал 103 радиосвязи, такой как прямой канал связи, система связи или подобный канал связи. Например, данные можно загружать через локальный канал беспроводной связи ближнего радиуса действия, например через соединение стандарта Bluetooth, инфракрасное соединение или подобное соединение, или через проводной интерфейс. В других вариантах осуществления данные можно загружать в мобильный терминал через систему связи, например по радиосвязи (OTA) через сотовую сеть передачи данных, например GSM (глобальную систему связи с подвижными объектами), WCDMA (широкополосный множественный доступ с кодовым разделением каналов) или подобную сеть.The
Следовательно, примеры соответствующих модулей связи включают в себя проводное последовательное соединение, такое как канал связи стандарта RS-232 (стандартный интерфейс последовательной передачи данных), соединение стандарта USB (универсальной последовательной шины), соединение FireWire, которое описано в стандарте IEEE 1394, или подобное соединение. Дополнительные примеры включают в себя беспроводной инфракрасный интерфейс или радиочастотный (РЧ) интерфейс, такой как основная антенна мобильного телефона (не показан) или другая антенна в мобильном телефоне, например приемопередатчик стандарта Bluetooth, или подобное устройство. Другие примеры соответствующих интерфейсов включают в себя кабельный модем, телефонный модем, адаптер цифровой сети связи с комплексными услугами (ISDN), адаптер цифровой абонентской линии (DSL), спутниковый приемопередатчик, адаптер стандарта Ethernet или подобное устройство.Therefore, examples of suitable communication modules include a wired serial connection, such as an RS-232 communication channel (standard serial data interface), a USB (universal serial bus) connection, a FireWire connection as described in IEEE 1394, or the like. compound. Additional examples include a wireless infrared interface or radio frequency (RF) interface, such as a main antenna of a mobile phone (not shown) or another antenna in a mobile phone, such as a Bluetooth transceiver, or the like. Other examples of suitable interfaces include a cable modem, telephone modem, integrated digital services network (ISDN) adapter, digital subscriber line adapter (DSL), satellite transceiver, Ethernet adapter, or the like.
Мобильный терминал дополнительно содержит процессор 105, предназначенный для управления работой мобильного терминала, и запоминающее устройство 106. Например, процессор может содержать программируемый микропроцессор специального или общего назначения, процессор цифровых сигналов (DSP), специализированную интегральную схему (ASIC), программируемую логическую матрицу (PLA), программируемую пользователем вентильную матрицу (FPGA) и т.д. или их комбинацию. Запоминающее устройство 106 может быть флэш-памятью, стираемым программируемым постоянным запоминающим устройством (СППЗУ), электрически стираемым программируемым постоянным запоминающим устройством (ЭСППЗУ) или любым другим видом памяти или запоминающего устройства, например энергонезависимой памятью.The mobile terminal further comprises a
Когда данные загружают в мобильный терминал, процессор 105 выполняет описанные аутентификацию данных и защиту целостности и сохраняет данные в запоминающем устройстве 106.When data is downloaded to the mobile terminal, the
Во время последующей работы мобильного терминала процессор может извлекать загруженные данные из запоминающего устройства 106. Например, в случае программного обеспечения процессор загружает программное обеспечение из запоминающего устройства 106 в оперативную память для выполнения.During the subsequent operation of the mobile terminal, the processor may retrieve the downloaded data from the
Фиг.2 показывает структурную схему примера мобильного терминала с однокристальной архитектурой. Мобильный терминал 101 содержит контроллер 105 для управления работой мобильного терминала. Контроллер 105 работает вместе с флэш-памятью 106 для хранения программ и оперативной памятью (ОП) 209. Контроллер 105 включает в себя микропроцессор 208, внутреннее постоянное запоминающее устройство (ПЗУ, ROM) 207 и надежно сохраненный секретный ключ 218. Например, секретный ключ 218 может быть уникальным ключом кристалла, например, хранящимся в аппаратных средствах, например, используя так называемую технологию e-fuse (электрически пережигаемых перемычек). Альтернативно, секретный ключ может храниться в ПЗУ 207. ПЗУ 207 содержит загрузочный код, код хэширования, код MAC, код аутентификации и открытый корневой ключ. В некоторых вариантах осуществления код хэширования и/или код MAC могут воплощаться по меньшей мере частично в аппаратных средствах вместо или в дополнение к воплощению в ПЗУ. Система команд, связанная с обычной работой мобильного телефона, содержится во флэш-памяти 106 программ. Оперативная память 209 используется для операций, которые являются частью нормальной обработки вызовов мобильного терминала. В некоторых вариантах осуществления операции, в которых участвуют уязвимые данные, вычисления значений хэш-функции и процессы аутентификации выполняют вместе с защищенной статической оперативной памятью (PSRAM) (не показана), которую включает в себя микроконтроллер 105. Контроллер 105 осуществляет связь с флэш-памятью 106 программ и оперативной памятью 209 через шину 219 памяти.Figure 2 shows a block diagram of an example of a mobile terminal with a single-chip architecture. The
Фиг.3 показывает схематическую структурную схему примера мобильного терминала с двукристальной архитектурой. В данном варианте осуществления контроллер 105 содержит два кристалла 310 и 313 соответственно, внешнее запоминающее устройство 106 и внутреннее запоминающее устройство 209. Каждый из этих двух кристаллов содержит по меньшей мере один микропроцессор 312 и 315 соответственно и ПЗУ 311 и 314 соответственно. Внешнее запоминающее устройство 106 - любой соответствующий вид энергонезависимой памяти, например флэш-память. Внутреннее запоминающее устройство 209 - запоминающее устройство с быстрым доступом, например оперативная память. В варианте осуществления на фиг.3 эти два кристалла совместно используют внутреннее запоминающее устройство 209. Кроме того, в данном варианте осуществления только кристалл 313 имеет прямой доступ к внешнему запоминающему устройству 106. Следовательно, когда процессор 312 из кристалла 310 должен выполнять программное обеспечение, хранящееся во внешнем запоминающем устройстве 106, прежде чем программное обеспечение сможет выполняться, его загружают во внутреннее запоминающее устройство 209 через кристалл 313. В данном варианте осуществления оба ПЗУ 311 и 314 содержат загрузочный код, но только ПЗУ 311 содержит код хэширования, код MAC, код аутентификации и открытый корневой ключ, и только кристалл 310 содержит секретный ключ 318. Как описано выше, секретный ключ 318 может храниться в аппаратных средствах, например, используя так называемую технологию e-fuse (электрически пережигаемых перемычек). Альтернативно, секретный ключ может храниться в ПЗУ 311. Кроме того, в некоторых вариантах осуществления код хэширования и/или код MAC могут воплощаться по меньшей мере частично в аппаратных средствах вместо или в дополнение к воплощению в ПЗУ.FIG. 3 shows a schematic structural diagram of an example dual-chip mobile terminal architecture. In this embodiment, the
Фиг.4 показывает схематическую структурную схему другого примера мобильного терминала с двукристальной архитектурой. Данный вариант осуществления подобен варианту осуществления на фиг.3 за исключением того, что эти два кристалла 310 и 313 из данного варианта осуществления не используют совместно обычную внутреннюю память. Вместо этого каждый кристалл имеет свою собственную внутреннюю память 416 и 417 соответственно. Как в варианте осуществления на фиг.3, только кристалл 313 имеет прямой доступ к внешнему запоминающему устройству 106. Следовательно, когда процессор 312 из кристалла 310 должен выполнять программное обеспечение, хранящееся во внешнем запоминающем устройстве 106, программное обеспечение, которое должно выполняться, загружают во внутреннее запоминающее устройство 416 из кристалла 310 через кристалл 313 прежде, чем оно может выполняться.Figure 4 shows a schematic structural diagram of another example of a dual-chip mobile terminal. This embodiment is similar to the embodiment of FIG. 3 except that the two
В альтернативных вариантах осуществления с двумя кристаллами с общедоступной или отдельной оперативной памятью (ОП) оба кристалла могут иметь прямой доступ к внешнему энергонезависимому запоминающему устройству и непосредственно выполнять программное обеспечение, которое должно выполняться, из этого запоминающего устройства или сначала загружать его в оперативную память и затем выполнять.In alternative embodiments with two crystals with a public or separate random access memory (RAM), both crystals can have direct access to an external non-volatile storage device and directly execute software that must be executed from this storage device or first load it into RAM and then to perform.
Фиг.5 иллюстрирует пример структуры сообщения, используемого в процессе загрузки программного обеспечения в мобильный терминал. Сообщение 520 содержит раздел 521 заголовка, раздел 522 полезной нагрузки, раздел 523 цифрового сертификата и цифровую подпись 524.5 illustrates an example message structure used in the process of downloading software to a mobile terminal.
Раздел 522 полезной нагрузки содержит фактические данные полезной нагрузки, которые будут загружены в мобильный терминал. Данные полезной нагрузки могут содержать программное обеспечение, такое как прикладное программное обеспечение, программное обеспечение предварительной загрузки, предназначенное для организации и/или управления загрузкой другого программного обеспечения, части операционной системы мобильного терминала или подобное программное обеспечение. Альтернативно или дополнительно, данные полезной нагрузки могут содержать другие данные, например, данные конфигурации для хранения во флэш-памяти или в других блоках памяти мобильного терминала, например в СППЗУ, ЭСППЗУ или в подобных блоках памяти.The
Раздел 521 заголовка содержит информацию, соответствующую процессу загрузки, такую как информация о данных полезной нагрузки, например данные контроля версии, информация о мобильном терминале, параметры управления, которые определяют, как мобильный терминал должен обрабатывать данные, и/или подобную информацию.Section 521 of the header contains information corresponding to the loading process, such as information about payload data, for example version control data, information about the mobile terminal, control parameters that determine how the mobile terminal should process the data, and / or similar information.
Раздел подписи содержит цифровую подпись полезной нагрузки 522. Цифровую подпись вычисляют, используя пару ключей открытый/закрытый асимметричной криптосистемы, например системы RSA (Райвеста (Rivest), Шамира (Shamir) и Эйдельмана (Adleman)). Цифровую подпись вычисляют, первоначально вычисляя одностороннюю хэш-функцию данных полезной нагрузки, т.е. программного обеспечения и/или данных, которые будут загружены в мобильный терминал. Вычисленное значение хэш-функции затем шифруют с закрытым ключом пары ключей открытый/закрытый.The signature section contains a digital signature of
Одностороннюю хэш-функцию используют для создания значения хэш-функции, которое представляет данные полезной нагрузки 522. Систему с открытым/закрытым ключом используют для защиты для правильного значения хэш-функции и аутентификации станции загрузки или устройства передачи данных, от которого посылают сообщение 520.A one-way hash function is used to create a hash function value that represents
Односторонней хэш-функцией является функция, которую просто вычислять в прямом направлении, но трудно вычислять в обратном направлении. Односторонняя хэш-функция H(M) работает на входных данных произвольной длины М, которые в некоторых вариантах осуществления состоят из данных полезной нагрузки 522 или выбранных частей данных полезной нагрузки. Хэш-функция, выполняемая на М, возвращает значение хэш-функции фиксированной длины, h = H(M).A one-way hash function is a function that is simple to calculate in the forward direction, but difficult to calculate in the opposite direction. The one-way hash function H (M) operates on input data of arbitrary length M, which in some embodiments consists of
Существует много функций, которые берут входную информацию произвольной длины и возвращают выходную информацию фиксированной длины, но односторонние хэш-функции имеют следующие дополнительные характеристики: при заданном М просто вычислить h; при заданном h трудно вычислить М; и при заданном М трудно найти другое сообщение М', так чтобы H(M) = H(M'). Цель односторонней хэш-функции состоит в обеспечении уникальной подписи или «отпечатка пальца» М. Выходная информация хэш-функции упоминается как значение хэш-функции или как «дайджест» сообщения.There are many functions that take input information of arbitrary length and return output information of a fixed length, but one-way hash functions have the following additional characteristics: for a given M, it is easy to calculate h; for a given h, it is difficult to calculate M; and for a given M it is difficult to find another message M ', so that H (M) = H (M'). The purpose of a one-way hash function is to provide a unique signature or “fingerprint” M. The output of the hash function is referred to as the value of the hash function or as the digest of the message.
В вариантах осуществления описанного способа перед передачей сообщения 520 на мобильный терминал надежную одностороннюю хэш-функцию выполняют с данными полезной нагрузки 522 или с выбранным содержимым для создания эталонного значения хэш-функции. Сообщение 520 включает в себя эталонное значение хэш-функции как цифровую подпись, как дополнительно описано ниже. При получении сообщения 520 мобильный терминал вычисляет контрольное значение хэш-функции данных 522 полезной нагрузки (или выбранного их содержимого) и сравнивает контрольное значение хэш-функции с эталонным значением хэш-функции, принятым как часть сообщения 520.In embodiments of the described method, before sending
Соответствующей односторонней хэш-функцией является, например, функция SHA-1. Другие примеры соответствующих функций включают в себя алгоритмы MD5, Snerfu, H-Hash, MD2, MD4 или подобные алгоритмы.The corresponding one-way hash function is, for example, the SHA-1 function. Other examples of related functions include MD5, Snerfu, H-Hash, MD2, MD4, or similar algorithms.
Алгоритмы с открытым ключом используют два ключа: один доступный всем и один закрытый (секретный ключ) для таких задач, как шифровка и расшифровка сообщений, аутентификация сообщений и цифровых подписей. Когда передатчик зашифровал сообщение с закрытым ключом, любой получатель с соответствующим открытым ключом может быть уверен в подлинности передатчика, так как только передатчик, имеющий закрытый ключ, может зашифровать сообщение. Последнюю схему используют для проверки подлинности данных полезной нагрузки в соответствии с описанным процессом загрузки. Соответствующим алгоритмом с открытым ключом является алгоритм RSA. Другие соответствующие примеры включают в себя алгоритмы Fiat-Shamir (FS), ELGAMAL, DSA (алгоритм цифровой подписи), Fiege-Fiat-Shamir или подобные алгоритмы.Public key algorithms use two keys: one available to everyone and one private (secret key) for tasks such as encrypting and decrypting messages, authenticating messages and digital signatures. When the transmitter has encrypted the message with the private key, any receiver with the corresponding public key can be sure of the authenticity of the transmitter, since only the transmitter having the private key can encrypt the message. The latter scheme is used to authenticate payload data in accordance with the loading process described. The corresponding public key algorithm is the RSA algorithm. Other relevant examples include Fiat-Shamir (FS), ELGAMAL, DSA (Digital Signature Algorithm), Fiege-Fiat-Shamir, or similar algorithms.
В частности, в описанном процессе загрузки вычисленное значение хэш-функции шифруют с закрытым ключом устройства загрузки (или генератора полезной нагрузки) для создания цифровой подписи 524, которую включает в себя сообщение 520.In particular, in the described download process, the calculated hash value is encrypted with the private key of the download device (or payload generator) to create a
Раздел 523 цифрового сертификата сообщения 520 включает в себя сертификат, который включает в себя соответствующий открытый ключ. Цифровой сертификат является структурой данных, используемой в криптосистеме с открытым ключом для того, чтобы связать определенного аутентифицированного человека с определенным открытым ключом. Цифровой сертификат является цифровым представлением информации, которая идентифицирует центр сертификации, который его выпустил, называет или идентифицирует человека, открытый ключ которого он включает в себя, и содержит открытый ключ данного человека. Цифровой сертификат подписывают с помощью цифровой подписи центром сертификации, выпустившим его, таким образом предоставляя возможность получателю проверять подлинность сертификата при использовании открытого ключа центра сертификации.
Следует понимать, что раздел цифрового сертификата может содержать один цифровой сертификат или цепочку сертификатов. В любом случае сертификат или цепочку сертификатов можно аутентифицировать с помощью мобильного терминала посредством корневого открытого ключа, соответствующего одному сертификату или последнему сертификату в цепочке сертификатов. Пример ключевой иерархии в связи с загрузкой программного обеспечения в мобильные телефоны описан в WO 03/060673.It should be understood that the digital certificate section may contain one digital certificate or a chain of certificates. In any case, the certificate or certificate chain can be authenticated using the mobile terminal using the root public key corresponding to one certificate or the last certificate in the certificate chain. An example of a key hierarchy in connection with downloading software to mobile phones is described in WO 03/060673.
Следует понимать, что в некоторых вариантах осуществления полезную нагрузку для вычисления цифровой подписи можно разделять на меньшие части, как описано, например, в WO 03/060673, или можно просто вычислять данную подпись.It should be understood that in some embodiments, the payload for computing the digital signature can be divided into smaller parts, as described, for example, in WO 03/060673, or you can simply calculate this signature.
Обычно желательно защищать данные 521 заголовка, а также данные 522 полезной нагрузки. В некоторых вариантах осуществления это достигают с помощью защиты самих данных 521 заголовка с помощью цифровой подписи. В других вариантах осуществления указанное выше шифрование вычисленного значения хэш-функции дополнительно содержит шифрование значения хэш-функции, вычисленного для данных 521 заголовка, например, с помощью шифрования/подписания объединения h(SW) | h(H) значения h(SW) хэш-функции, вычисленного для программного обеспечения (и данных) 522, и значения h(H) хэш-функции, вычисленного для данных 521 заголовка.It is generally desirable to protect header data 521 as well as
Фиг.6 показывает последовательность операций процесса загрузки программного обеспечения для загрузки новой версии программного обеспечения.6 shows a flowchart of a software download process for downloading a new software version.
На начальном этапе 601 мобильный терминал принимает пакет данных программного обеспечения от средства перепрограммирования по локальному или удаленному интерфейсу, например GSM, WCDMA и т.д., как описано выше. Пакет содержит новое программное обеспечение SW, один или большее количество сертификатов C и цифровую подпись S(hr) защищенного программного обеспечения и данных, как описано выше в связи с фиг.5. Дополнительно новое программное обеспечение может включать в себя данные, например данные конфигурации. Подпись S(hr) содержит по меньшей мере зашифрованное значение хэш-функции, вычисленное из программного обеспечения и данных. Подпись вычисляют так, что сначала вычисляют значение hr=H(SW) односторонней хэш-функции программного обеспечения и данных SW, а потом по меньшей мере вычисленное значение хэш-функции шифруют с закрытым ключом пары ключей открытый/закрытый, например пары ключей открытый/закрытый RSA. Пакет данных программного обеспечения включает в себя сертификат, который включает в себя соответствующий открытый ключ. При получении пакета программного обеспечения и данных мобильный терминал сохраняет программное обеспечение, данные, сертификат(ы) и подпись во внешнем запоминающем устройстве 106. Как указано выше в связи с фиг.5, в некоторых вариантах осуществления подпись может защищать не только полезную нагрузку, но также и данные заголовка, например, с помощью шифрования объединения значения хэш-функции, вычисленного для программного обеспечения, и значения хэш-функции, вычисленного для заголовка.At an initial step 601, the mobile terminal receives a software data packet from the reprogramming means via a local or remote interface, for example GSM, WCDMA, etc., as described above. The package contains new SW software, one or more C certificates and a digital signature S (h r ) of secure software and data, as described above in connection with FIG. Additionally, new software may include data, such as configuration data. The signature S (h r ) contains at least an encrypted hash value calculated from software and data. The signature is calculated so that first the value h r = H (SW) of the one-way hash function of the software and the SW data is calculated, and then at least the calculated value of the hash function is encrypted with the private key public / private key pairs, for example public / closed RSA. The software data package includes a certificate that includes the corresponding public key. Upon receipt of the software package and data, the mobile terminal stores the software, data, certificate (s) and signature in the
На этапе 602 процессор мобильного терминала считывает недавно сохраненное программное обеспечение и данные SW, сертификат(ы) C и подпись S(hr) в свое внутреннее запоминающее устройство.At 602, the mobile terminal processor reads the recently stored software and data SW, certificate (s) C, and signature S (h r ) into its internal storage device.
На этапе 603 процессор вычисляет контрольное значение ha=H(SW) односторонней хэш-функции нового программного обеспечения и данных SW.At step 603, the processor calculates a control value h a = H (SW) of the one-way hash function of the new software and SW data.
На этапе 604 процессор считывает корневой открытый ключ PK из памяти 605. В некоторых вариантах осуществления корневой открытый ключ надежно сохраняют, т.е. защищают целостность. В одном из вариантов осуществления корневой открытый ключ сохраняют во внутреннем ПЗУ процессора, как описано выше. Процессор использует корневой открытый ключ PK для проверки подписи S(hr) нового программного обеспечения и данных. Если используется только один сертификат, то подпись S(hr) проверяют относительно открытого ключа в сертификате C. Сертификат C, в свою очередь, затем проверяют относительно корневого открытого ключа PK. Если используется несколько сертификатов, то проверяют всю цепочку сертификатов. В этом случае подпись последнего сертификата в цепочке проверяют относительно корневого открытого ключа. Затем на этапе 604 процессор проверяет открытый ключ, используемый для подписи нового программного обеспечения и данных. Если проверка заканчивается успешно, то процессор на этапе 606 продолжает проверку подписи. Иначе процесс загрузки программного обеспечения прекращают.At 604, the processor reads the root public key PK from the memory 605. In some embodiments, the root public key is securely stored, i.e. protect integrity. In one embodiment, the root public key is stored in the internal ROM of the processor, as described above. The processor uses the PK root public key to verify the S (h r ) signature of the new software and data. If only one certificate is used, then the signature S (h r ) is checked against the public key in certificate C. Certificate C, in turn, is then checked against the PK root public key. If multiple certificates are used, then the entire certificate chain is checked. In this case, the signature of the last certificate in the chain is checked against the root public key. Then, at 604, the processor checks the public key used to sign the new software and data. If the verification is successful, then the processor continues to verify the signature in step 606. Otherwise, the software download process is stopped.
На этапе 606 процессор расшифровывает цифровую подпись S(hr) программного обеспечения и данных, используя открытый ключ, проверенный на этапе 604, получая эталонное значение hr хэш-функции.At 606, the processor decrypts the digital signature S (h r ) of the software and data using the public key verified at 604 to obtain a hash reference value h r .
На этапе 607 расшифрованную подпись, т.е. эталонное значение hr хэш-функции, проверяют по отношению к контрольному значению ha односторонней хэш-функции, вычисленному на этапе 603. Если проверка заканчивается успешно, т.е. если контрольное значение ha хэш-функции и эталонное значение hr хэш-функции равны, то процессор продолжает работу на этапе 608 с вычислением эталонного кода аутентификации сообщения (MAC). Иначе процесс загрузки программного обеспечения прекращают.At step 607, the decrypted signature, i.e. the reference value h r of the hash function is checked with respect to the control value h a of the one-way hash function calculated in step 603. If the verification is successful, i.e. if the hash reference value h a and the hash reference value h r are equal, then the processor continues at step 608 with the calculation of the message authentication code (MAC). Otherwise, the software download process is stopped.
На этапе 608 процессор использует проверенное значение ha (=hr) односторонней хэш-функции и уникальный ключ кристалла K (или значение, полученное из K) в качестве входного значения функции вычисления MAC, получая эталонное значение кода аутентификации сообщения tr=MAC (ha; K). Значение выходных данных функции MAC - эталонное значение MAC нового программного обеспечения и данных. В некоторых вариантах осуществления уникальный ключ кристалла K хранят в защищенной памяти, которая доступна только процессору. Например, уникальный ключ K может прожигаться в кристалле во время процесса изготовления, используя, например, так называемую технологию e-fuse (электрически пережигаемых перемычек). Варианты осуществления кода аутентификации сообщения будут описаны ниже. Процессор хранит новое эталонное значение MAC tr во внешнем запоминающем устройстве 106 вместе с новым программным обеспечением и данными SW. Дополнительно сертификат(ы) и значения цифровой подписи можно удалять из внешнего запоминающего устройства.At 608, the processor uses the verified value of h a (= h r ) of the one-way hash function and the unique key of the crystal K (or the value obtained from K) as the input value of the MAC calculation function, obtaining the reference value of the message authentication code t r = MAC ( h a ; K). MAC Function Output Value — The MAC reference value of new software and data. In some embodiments, the unique K chip is stored in secure memory, which is accessible only to the processor. For example, a unique key K can be burned in the crystal during the manufacturing process, using, for example, the so-called e-fuse (electrically burnable jumpers) technology. Embodiments of the message authentication code will be described below. The processor stores the new reference value MAC t r in the
Описанным выше процессом загрузки управляет процессор мобильного терминала. В двукристальной архитектуре, как описано в связи с фиг.3 и 4, указанные выше этапы выполняют с помощью кристалла 311, который предназначен для того, чтобы впоследствии выполнять программное обеспечение.The download process described above is controlled by the processor of the mobile terminal. In a dual-chip architecture, as described in connection with FIGS. 3 and 4, the above steps are performed using a
Криптографические функции для аутентификации принятых данных и, в частности, функции MAC могут выполняться с помощью программного обеспечения специального назначения, которое хранится, например, как часть загрузочного кода во внутреннем ПЗУ процессора, который выполняет указанные выше этапы.Cryptographic functions for authenticating received data and, in particular, MAC functions can be performed using special-purpose software, which is stored, for example, as part of the boot code in the internal ROM of the processor, which performs the above steps.
Следовательно, сохраненное эталонное значение MAC теперь доступно для последующей проверки программного обеспечения и данных процессором. Например, для проверки целостности сохраненного программного обеспечения процессор вычисляет контрольное значение h(SW) хэш-функции сохраненного программного обеспечения и данных и контрольное значение MAC ta = MAC (h(SW); K) вычисленного контрольного значения хэш-функции, используя уникальный ключ кристалла K. Процессор сравнивает вычисленное контрольное значение MAC ta с сохраненным эталонным значением MAC tr. Если два значения равны, то проверяют целостность программного обеспечения.Consequently, the stored MAC reference value is now available for subsequent verification of the software and data by the processor. For example, to verify the integrity of stored software, the processor calculates a hash control value h (SW) of the stored software and data hash and a MAC control value t a = MAC (h (SW); K) of the calculated hash control value using a unique key K crystal. The processor compares the calculated MAC t a reference value with the stored MAC t r reference value. If the two values are equal, then check the integrity of the software.
Например, такая проверка может выполняться во время процесса загрузки мобильного терминала, и/или каждый раз, когда программное обеспечение должно выполняться, и/или периодически в предопределенные промежутки времени, например, как описано в патенте США №6026293.For example, such verification may be performed during the download process of the mobile terminal, and / or each time the software is to be executed, and / or periodically at predetermined intervals, for example, as described in US Pat. No. 6,026,293.
Фиг.7 иллюстрирует вариант осуществления вычисления кода аутентификации сообщения (MAC). MAC является функцией, которая берет входные данные переменной длины М и ключ K для создания выходных данных фиксированной длины t, так называемого значения MAC, или значения метки (тэга): t=MAC (М; K). В некоторых вариантах осуществления MAC определяют так, что для злоумышленника, который знает М, но не имеет информации о значении K, трудно (невозможно) в вычислительном отношении найти сообщение М', отличающееся от М, но с тем же самым значением метки. Кроме того, функция MAC может определяться так, что злоумышленнику, который знает сообщение М, но не имеет информации о значении K, трудно предсказать правильное значение метки t. В описанном способе загрузки MAC используют для проверки целостности данных, хранящихся на ненадежном или незащищенном носителе, т.е. в этой ситуации MAC используется только одним участником, т.е. мобильным терминалом, при сохранении и извлечении данных полезной нагрузки. В некоторых вариантах осуществления функция MAC основана на криптографической хэш-функции и, в частности, на хэш-функции H, используемой для проверки подлинности принятых данных полезной нагрузки, как описано выше. Это предоставляет возможность многократного использования значения хэш-функции, вычисленного во время аутентификации принятых данных полезной нагрузки, вычисляя значение MAC для последующей защиты целостности, таким образом значительно сокращая объем вычислительных работ для вычисления значения MAC и, таким образом, сокращая время инсталляции.7 illustrates an embodiment of a Message Authentication Code (MAC) code calculation. MAC is a function that takes input of variable length M and key K to create output of a fixed length t, the so-called MAC value, or label (tag) value: t = MAC (M; K). In some embodiments, the MAC is determined so that for an attacker who knows M but does not have information about the value of K, it is computationally difficult (impossible) to find a message M 'different from M but with the same label value. In addition, the MAC function can be determined so that it is difficult for an attacker who knows the message M, but does not have information about the value of K, to predict the correct value of the label t. In the described download method, MACs are used to verify the integrity of data stored on insecure or insecure media, i.e. in this situation, the MAC is used by only one participant, i.e. a mobile terminal while storing and retrieving payload data. In some embodiments, the MAC function is based on a cryptographic hash function and, in particular, on the hash function H used to validate the received payload data, as described above. This makes it possible to reuse the value of the hash function calculated during authentication of the received payload data, calculating the MAC value for subsequent integrity protection, thereby significantly reducing the amount of computational work needed to calculate the MAC value and thus reducing installation time.
Фиг.7 показывает структурную схему модуля вычисления MAC. Модуль вычисления MAC содержит блок 732 вычисления функции MAC. Блок 732 вычисления функции MAC принимает h в качестве входных данных, h является проверенным значением хэш-функции, которое было вычислено во время предыдущего процесса 736 проверки подписи для принятой полезной нагрузки, т.е. h=ha или h=hr. В качестве второй порции входных данных функция 732 MAC принимает секретный ключ K', который получают из уникального ключа кристалла K. В частности, ключ K' можно генерировать, используя псевдослучайную функцию 731, например псевдослучайную функцию, которая основана на хэш-функции, например, SHA-1, из уникального ключа кристалла K и идентификатора 735 режима. Например, уникальный ключ кристалла K может быть случайным числом, сгенерированным во время производства кристалла СпИС. Получение ключа K' из главного ключа K имеет преимущество, что различные ключи K' могут использоваться для различных целей, например для защиты различных видов программного обеспечения, различных частей программного обеспечения и т.д., таким образом обеспечивая криптографическое разделение и увеличивая гибкость способа. Идентификатор 735 режима позволяет выбирать различные режимы. Например, в многокристальном сценарии различные режимы могут использоваться для каждого заданного кристалла, для которого предназначено программное обеспечение. Примеры соответствующих функций MAC включают в себя HMAC (основанное на ключе хэширование для аутентификации сообщения), MAC сцепления блоков шифра (CBC), используя, например, AES или надежную одностороннюю хэш-функцию, например CBC-MAC, как определено в «Handbook of Cryptology», by A.J.Menezes, P.C van Oorschot, S.A.Vanstone, p.353, CRC Press, 1997, где шифр блочного шифрования AES используется как блочный шифр E. Функция 732 MAC производит соответствующее значение метки t, как описано выше.7 shows a block diagram of a MAC calculation module. The MAC computing unit comprises a MAC
Для предотвращения вычислений неразрешенных значений MAC схема MAC выдает вычисленное значение MAC t только тогда, когда успешная проверка подписи предшествует вычислениям. Следовательно, модуль вычисления MAC принимает в дальнейшем входные данные 733 от процесса 736 проверки подписи, указывая, была ли успешно проверена цифровая подпись принятых данных полезной нагрузки. Блок 734 принимает значение метки и сигнал 733 в качестве входных данных и выдает вычисленное значение метки, только если сигнал 733 указывает, что значение h хэш-функции является проверенным, т.е. подлинным значением хэш-функции. Например, в способе на фиг.6 сигнал 733 генерируют на этапе 607.To prevent the calculation of unresolved MAC values, the MAC circuit only provides the calculated MAC t when the successful verification of the signature precedes the calculations. Therefore, the MAC computing module subsequently receives
Следует отметить, что модуль вычисления MAC может воплощаться как отдельная схема вычисления MAC в кристалле процессора. Кроме того, последующее сравнение между вычисленным значением MAC и эталонным значением можно выполнять в схеме сравнения, присоединенной к схеме MAC. Кроме того, секретный ключ K может храниться как часть этой схемы. Следовательно, все вычисление MAC может быть ограничено в специальной схеме и, таким образом, не требует предъявления/передачи вычисленного MAC за пределы схемы.It should be noted that the MAC computing module may be implemented as a separate MAC computing circuit in the processor chip. In addition, a subsequent comparison between the calculated MAC value and the reference value can be performed in the comparison circuit attached to the MAC circuit. In addition, the secret key K can be stored as part of this scheme. Therefore, all MAC computation may be limited in a special design and thus does not require presentation / transmission of the computed MAC outside the design.
Вычисление MAC на фиг.7 может быть дополнительно улучшено с очень небольшими затратами вычислительной мощности, чтобы оно дополнительно включало в себя надежный контроль версии и нарушало предсказуемость входных данных h для вычисления MAC. Этот альтернативный вариант осуществления вычисления MAC будет теперь описан в отношении фиг.8 и фиг.9.The MAC calculation in FIG. 7 can be further improved with very little processing power so that it further includes reliable version control and disrupts the predictability of the input data h for MAC calculation. This alternative embodiment of the MAC calculation will now be described with respect to FIG. 8 and FIG. 9.
Фиг.8 иллюстрирует другой вариант осуществления вычисления кода аутентификации сообщения, включающий в себя механизм контроля версии, и фиг.9 показывает последовательность операций процесса контроля версии.FIG. 8 illustrates another embodiment of calculating a message authentication code including a version control mechanism, and FIG. 9 shows a flowchart of a version control process.
Согласно данному варианту осуществления схемы 800 MAC вычисление MAC в блоке 732 выполняют на кортеже 844 из четырех элементов (rand, h, cnt, back_cnt). Кортеж 844 из четырех элементов содержит короткое (например, 64 бита) случайное значение, rand, которое обеспечивает ситуацию, при которой входные данные для вычисления MAC не находились под полным управлением входных данных от процесса 736 проверки подписи. Кортеж из четырех элементов дополнительно содержит проверенное значение h хэш-функции, как в предыдущем варианте осуществления. Наконец, кортеж из четырех элементов содержит счетчик контроля версии, cnt, и обратный счетчик контроля версии, back_cnt, механизма контроля версии, описанного далее. Функция 732 MAC, например HMAC, CBC-MAC или подобная функция, дополнительно принимает секретный ключ K', как описано в связи с фиг.7, и вычисляет значение MAC t из кортежа из четырех элементов и секретного ключа K'. Аналогично, как описано в связи с фиг.7, вычисленное значение метки t выдают, только если сигнал 703 подписи указывает, что процесс проверки подписи проверил значение h хэш-функции.According to this embodiment of the
Кортеж 844 из четырех элементов генерируют с помощью модуля 841 контроля версии, который поддерживает список 842 контроля версии ранее принятых версий программ. В частности, список 841 контроля версии содержит список записей данных, где каждая запись данных содержит кортеж из четырех элементов, соответствующий ранее отмеченному значению хэш-функции. Запись с новым значением хэш-функции упоминается как верхний элемент списка 842, который соответствует программному обеспечению, которое фактически установлено/используется.A four-
Модуль 841 контроля версии принимает проверенное значение h хэш-функции и цифровой сигнал 733, указывающий, что подпись была успешно проверена, от процесса проверки подписи, как описано выше. Кроме того, модуль 841 контроля версии принимает от процесса 736 проверки подписи счетчик версии программы, cnt, и число back_cnt. Число back_cnt указывает, сколько предыдущих версий можно еще установить, когда установлена данная версия программы. Например, back_cnt может быть числом между 0 и CMAX, например CMAX=15, где back_cnt=0 подразумевает, что новое программное обеспечение вообще не позволяет, чтобы его заменяли предыдущей версией. Следовательно, back_cnt воплощает простой, но эффективный механизм контроля совместимости вниз и вверх загружаемого программного обеспечения. В некоторых вариантах осуществления значения cnt и back_cnt принимают как часть пакета программного обеспечения, который принимают в процессе загрузки, например, как часть раздела заголовка принятого пакета программного обеспечения.The
После получения (этап 901) нового значения h хэш-функции, нового счетчика cnt, нового значения back_cnt и сигнала 733 от процесса 736 проверки подписи во время процесса загрузки модуль 841 контроля версии использует сигнал 733 проверки (этап 902) о том, было ли значение h хэш-функции проверено во время процесса 736 проверки подписи. Если это не так, то модуль 841 контроля версии блокирует значение h, т.е. процесс контроля версии и вычисления MAC прекращают. Если сигнал 733 указывает, что значение хэш-функции является подлинным, то модуль 841 контроля версии продолжает работу на этапе 903.After receiving (step 901) a new hash value h, a new cnt counter, a new back_cnt value and a
На этапе 903 модуль 841 контроля версии сравнивает принятое значение хэш-функции со значениями хэш-функции в списке 842 контроля версии. Если принятое значение h хэш-функции равняется одному из предыдущих значений hprev хэш-функции в списке 842 контроля версии, то модуль 841 контроля версии продолжает работу на этапе 904; иначе процесс продолжается на этапе 906.At 903, the
На этапе 904, т.е. в случае если принятое значение h хэш-функции равняется одному из предыдущих значений hprev хэш-функции, процесс извлекает соответствующий кортеж из четырех элементов (rand, h, cnt, back_cnt)prev и определяет, находится ли значение cntprev счетчика предыдущей версии в разрешенном диапазоне, который определен значениями cnt и back_cnt, принятыми от процесса 736 проверки подписи. В некоторых вариантах осуществления разрешенный диапазон определяют как диапазон [cnttop-back_cnt, ∞), где cnttop является значением cnt текущего верхнего элемента списка. Для простоты предполагается, что нет никакого верхнего предела для диапазона разрешенных значений. Однако следует понимать, что в других вариантах осуществления верхний предел может быть определен.At
Если cntprev находится в разрешенном диапазоне, то модуль 841 контроля версии генерирует (этап 905) новый кортеж из четырех элементов (rand, h, cnt, back_cnt)new с компонентами randnew - новым случайным значением, сгенерированным модулем 841 контроля версии, hnew = h, cntnew = cntprev, back_cntnew = back_cntprev, и модуль контроля версии заменяет предыдущий кортеж с тем же самым значением h новым кортежем и устанавливает новый кортеж в качестве верхнего элемента в списке.If cnt prev is in the allowed range, then
В случае если проверка на этапе 903 показывает, что h не равно ни одному из предыдущих значений хэш-функции, то новое случайное значение, значение h хэш-функции и счетчик сохраняют вместе с разрешенным back_cnt (связанным с этим h) в списке контроля версии (этап 906). В этом случае новый кортеж из четырех элементов (rand, h, cnt, back_cnt)new создают согласно: randnew = новое случайное значение, hnew = h, cntnew = cnt, back_cntnew = минимальное значение (back_cnt, cnt - min_allowed_version), и новый кортеж становится верхним элементом в списке. В данном случае min_allowed_version - текущая самая младшая разрешенная любым кортежем версия в списке обновления. После того как запись была помещена на верх в списке обновления, min_allowed_version повторно вычисляют, как cnttop-back_cnttop, т.е. из счетчиков cnttop и back_cnt версии верхнего элемента (этап 907). Наконец, все элементы в списке обновляют (этап 908) так, чтобы их значения back_cnt были наибольшими значениями, которые не задают номер версии, который ниже наименьшей разрешенной версии min_allowed_version. Если список будет содержать запись с версией, которая выходит из разрешенного диапазона, то эта запись будет удалена.If the check in
В некоторых вариантах осуществления значение проверки MAC (MACLIST) связано со списком контроля версии для предотвращения неправомочной подделки записей в списке, таким образом дополнительно увеличивая защищенность способа. Значение MACLIST обновляют только тогда, когда список обновлен, т.е. после успешной проверки подписи. Перед доступом/использованием списка контроля версии текущее значение проверки MAC может быть проверено по отношению к значению MACLIST. Для предотвращения неразрешенных вычислений значения MACLIST схема MAC выдает вычисленное значение MAC только тогда, когда успешная проверка подписи предшествовала вычислениям (которой управляет блок 734 на фиг.7 и 8).In some embodiments, the MAC Validation Value (MACLIST) is associated with a version control list to prevent unauthorized forgery of entries in the list, thereby further increasing the security of the method. The value of MACLIST is updated only when the list is updated, i.e. after successful verification of the signature. Before accessing / using the version control list, the current MAC check value can be checked against the MACLIST value. To prevent unauthorized calculations of the MACLIST value, the MAC circuit only provides the calculated MAC value when the successful signature verification preceded the calculations (which is controlled by
Следовательно, сохраненное эталонное значение MAC и список контроля версии теперь доступны для последующей проверки программного обеспечения и данных процессором. Например, для проверки целостности сохраненного программного обеспечения процессор вычисляет контрольное значение ha=h(SW) хэш-функции сохраненного программного обеспечения и данных и генерирует контрольный кортеж (rand, ha, cnt, back_cnt) со значениями rand, cnt и back_cont, извлеченными из списка контроля версии. Из этого процессор вычисляет контрольное значение MAC ta = MAC ((rand, ha, cnt, back_cnt); K) вычисленного контрольного кортежа, используя уникальный ключ кристалла K. Процессор сравнивает вычисленное контрольное значение MAC ta с сохраненным эталонным значением MAC tr. Если два значения равны, то проверяют целостность программного обеспечения.Consequently, the stored MAC reference value and version control list are now available for subsequent verification of the software and data by the processor. For example, to verify the integrity of stored software, the processor calculates the control value h a = h (SW) of the hash function of the stored software and data and generates a control tuple (rand, h a , cnt, back_cnt) with the values rand, cnt and back_cont extracted from the version control list. From this, the processor calculates the MAC control value t a = MAC ((rand, h a , cnt, back_cnt); K) of the computed control tuple using the unique key of the crystal K. The processor compares the calculated MAC t a control value with the stored reference value MAC t r . If the two values are equal, then check the integrity of the software.
Как описано выше, такая проверка может выполняться во время процесса загрузки мобильного терминала, и/или каждый раз, когда программное обеспечение должно выполняться, и/или периодически в предопределенные интервалы времени.As described above, such verification may be performed during the download process of the mobile terminal, and / or each time the software is to be executed, and / or periodically at predetermined time intervals.
Указанный выше процесс будет теперь дополнительно иллюстрирован посредством примера и в отношении фиг.10.The above process will now be further illustrated by way of example and with respect to FIG. 10.
Фиг.10 иллюстрирует пример механизма контроля версии, где используется список контроля версии размера 3, т.е. список контроля версии может хранить три кортежа. В данном примере дополнительно предполагается, что существует последовательность из 8 выпусков версии программного обеспечения со следующими значениями (h, cnt, back_cnt) значения h хэш-функции, счетчика cnt версии и обратного счетчика back_cnt, принятыми от процесса проверки подписи:10 illustrates an example version control mechanism where a
версия 1: (H1, 1, 0),version 1: (H1, 1, 0),
версия 2: (H2, 2, 1),version 2: (H2, 2, 1),
версия 3: (H3, 3, 2),version 3: (H3, 3, 2),
версия 4: (H4, 4, 3),version 4: (H4, 4, 3),
версия 5: (H5, 5, 2),version 5: (H5, 5, 2),
версия 6: (H6, 6, 3),version 6: (H6, 6, 3),
версия 7: (H7, 7, 4) иversion 7: (H7, 7, 4) and
версия 8: (H8, 8, 4).version 8: (H8, 8, 4).
Дополнительно предполагается, что указанные выше версии были применены последовательно, кроме версии 7, которая не была применена. Фиг.10 показывает список 1001 контроля версии после инсталляции версии 8. Каждая строка списка 1001 контроля версии включает в себя соответствующий кортеж из четырех элементов для одной из установленных версий: строка 1002, верхний элемент списка, соответствует версии 8, строка 1003 соответствует версии 6, и строка 1004 соответствует версии 5. R8, R6 и R5 - случайные числа, сгенерированные модулем контроля версии, как описано выше. После того как версия 8 была применена, самой младшей разрешенной версией стала 4 (так как значение cnt версии 8 равно 8, и значение back_cnt версии 8 равно 4, и 8-4=4), таким образом, min_allowed_version = 4. Соответственно, значения back_cnt остальных записей в списке были откорректированы во время инсталляции версии 8, чтобы соответствовать ограничению на самую младшую разрешенную версию после того, как версия 8 была добавлена. В частности, значение back_cnt в строке 1002 устанавливают в 2, а значение back_cnt в строке 1003 устанавливают в 1. До обновления версией 8 самой младшей разрешенной версией была 3, но это значение было поднято к 4 через версию 8.Additionally, it is assumed that the above versions were applied sequentially, except for
Фиг.10 дополнительно показывает таблицу 1011 контроля версии после инсталляции версии 7. Прежде всего значение cnt счетчика версии 7 равно 7, т.е. находится в разрешенном диапазоне текущей версии. Значение H7 хэш-функции еще не существует в списке 1001 контроля версии, следовательно, новый кортеж 1007 из четырех элементов с новым значением H7 хэш-функции сохраняют в качестве нового верхнего элемента 1012 таблицы 1011 контроля версии. Предыдущий верхний элемент перемещают вниз в списке, и он соответствует строке 1013. Версию 6 теперь помещают в строку 1014, в то время как версию 5 удаляют из списка, потому что в этом примере существует место только для трех кортежей из четырех элементов в списке контроля версии. Значение back_cnt нового верхнего элемента 1012 устанавливают в 3, чтобы удовлетворить ограничению текущей самой младшей разрешенной версии (min_allowed_version=4).10 further shows a version control table 1011 after installing
Фиг.11 показывает последовательность операций процесса загрузки программного обеспечения для обновления программного обеспечения. Процесс подобен показанному на фиг.6 процессу начальной загрузки программного обеспечения.11 shows a flowchart of a software download process for updating a software. The process is similar to the software bootstrap process shown in FIG.
На начальном этапе 1101 мобильный терминал принимает пакет данных обновления программного обеспечения от средства перепрограммирования по локальному или удаленному интерфейсу, например GSM, WCDMA и т.д., как описано выше. Пакет содержит новое обновление Δ программного обеспечения, один или большее количество сертификатов C и цифровую подпись S(hr) защищенного программного обеспечения, как описано выше в связи с фиг.5. Кроме того, программное обеспечение может дополнительно включать в себя данные, например обновленные данные конфигурации. В одном из вариантов осуществления новое программное обеспечение загружают как так называемый дельта-файл, включающий в себя отличия нового программного обеспечения от текущего программного обеспечения, таким образом сокращая размер пакета обновления. Методика дельта-файла известна из предшествующего уровня техники и описана, например, в «Delta storage for arbitrary non-text files», by Christian Reichenberger, Proc. Of the 3rd International Workshop on Software Configuration Management, p. 144-152, Norway, June 1991. Альтернативно могут использоваться другие способы генерации файла обновления, или можно принимать новое программное обеспечение целиком. Подпись S(hr) содержит зашифрованное значение хэш-функции, вычисленное из нового программного обеспечения. Подпись вычисляют так, что сначала вычисляют значение hr=H(SW) односторонней хэш-функции нового программного обеспечения SW, а впоследствии значение хэш-функции шифруют с закрытым ключом пары ключей открытый/закрытый, например пары ключей открытый/закрытый RSA. Пакет обновления программного обеспечения включает в себя сертификат, который включает в себя соответствующий открытый ключ. При получении пакета обновления программного обеспечения мобильный терминал сохраняет обновление программного обеспечения, сертификат(ы) и подпись во внешнем запоминающем устройстве 106.At an
На этапе 1102 процессор мобильного терминала считывает недавно сохраненное обновление программного обеспечения, сертификат(ы) C и подпись S(hr) в свое внутреннее запоминающее устройство.At 1102, the mobile terminal processor reads the recently saved software update, certificate (s) C, and signature S (h r ) into its internal storage device.
На этапе 1122 процессор выполняет контроль версии. Мобильный терминал принимает номер новой версии программного обеспечения как часть пакета обновления. Номер версии нового программного обеспечения проверяют по отношению к номеру версии текущего программного обеспечения, сохраненного во внешнем запоминающем устройстве (защищенном с помощью MAC). Если новый номер версии программного обеспечения ниже старого номера версии программного обеспечения, то мобильный терминал прекращает процесс обновления. В другом варианте осуществления выполняют процесс контроля версии, описанный в связи с фиг.8 и 9.At 1122, the processor performs version control. The mobile terminal accepts the new software version number as part of the service pack. The version number of the new software is checked against the version number of the current software stored in an external storage device (protected by MAC). If the new software version number is lower than the old software version number, then the mobile terminal stops the update process. In another embodiment, the version control process described in connection with FIGS. 8 and 9 is performed.
Если этап 1122 контроля версии закончился успешно, то процесс продолжается на этапе 1123, где процессор генерирует новое программное обеспечение SWnew из принятого дельта-файла Δ и текущей версии программного обеспечения SWprev, сохраненного во внешнем запоминающем устройстве (защищенном с помощью MAC).If the
На этапе 1103 процессор вычисляет контрольное значение ha=H(SWnew) односторонней хэш-функции нового программного обеспечения SWnew.At
На этапе 1104 процессор считывает корневой открытый ключ PK из запоминающего устройства 1105. В некоторых вариантах осуществления корневой открытый ключ надежно сохраняют, т.е. защищают целостность. В одном из вариантов осуществления корневой открытый ключ сохраняют во внутреннем ПЗУ процессора, как описано выше. Процессор использует корневой открытый ключ PK для проверки подписи S(hr) нового программного обеспечения. Если используется только один сертификат, то подпись S(hr) проверяют по отношению к открытому ключу в сертификате C. Сертификат C, в свою очередь, затем проверяют по отношению к корневому открытому ключу PK. Если используется несколько сертификатов, то проверяют всю цепочку сертификатов. В этом случае подпись последнего сертификата в цепочке проверяют по отношению к корневому открытому ключу. Затем на этапе 1104 процессор проверяет открытый ключ, используемый для подписи нового программного обеспечения. Если проверка заканчивается успешно, то процессор продолжает работу на этапе 1106 с проверкой подписи. Иначе процесс загрузки программного обеспечения прекращают.At 1104, the processor reads the root public key PK from the
На этапе 1106 процессор расшифровывает цифровую подпись S(hr) программного обеспечения, используя открытый ключ, проверенный на этапе 1104, получая эталонное значение hr хэш-функции.At 1106, the processor decrypts the digital signature S (h r ) of the software using the public key verified at 1104 to obtain a hash reference value h r .
На этапе 1107 расшифрованную подпись, т.е. эталонное значение hr хэш-функции, проверяют по отношению к контрольному значению ha односторонней хэш-функции, вычисленному на этапе 1103. Если проверка заканчивается успешно, т.е. если контрольное значение ha хэш-функции и эталонное значение hr хэш-функции равны, то процессор продолжает работу на этапе 1108 с вычислением эталонного кода аутентификации сообщения (MAC). Иначе процесс загрузки программного обеспечения прекращают.At
На этапе 1108 процессор использует проверенное значение ha односторонней хэш-функции и уникальный ключ кристалла K (или значение, полученное из K) в качестве входного значения функции вычисления MAC, получая эталонное значение tr = MAC (ha; K) кода аутентификации сообщения. Выходное значение функции MAC - эталонное значение MAC нового программного обеспечения. В некоторых вариантах осуществления уникальный ключ кристалла K прожигают в кристалле во время процесса изготовления, используя, например, так называемую технологию e-fuse (электрически пережигаемых перемычек). Альтернативно, ключ K сохраняют в другой защищенной памяти, которая доступна только процессору. Варианты осуществления кода аутентификации сообщения были описаны выше. Процессор хранит новое эталонное значение MAC tr во внешнем запоминающем устройстве 106 вместе с новым программным обеспечением. Предыдущее значение MAC удаляют. Дополнительно сертификат(ы) и значения цифровой подписи можно удалять из внешней памяти. Новую версию программного обеспечения SWnew сохраняют во внешнем запоминающем устройстве, а старую версию программного обеспечения удаляют.At 1108, the processor uses the verified value of h a one-way hash function and the unique chip of the crystal K (or the value obtained from K) as the input value of the MAC calculation function, obtaining the reference value t r = MAC (h a ; K) of the message authentication code . The output value of the MAC function is the MAC reference value of the new software. In some embodiments, the unique K key of the crystal is burned in the crystal during the manufacturing process using, for example, the so-called e-fuse (electrically fired jumper) technology. Alternatively, the K key is stored in another secure memory that is accessible only to the processor. Embodiments of the message authentication code have been described above. The processor stores the new reference value MAC t r in the
Описанным выше процессом загрузки управляет процессор мобильного терминала. В двухкристальной архитектуре, как описано в связи с фиг.3 и 4, указанные выше этапы выполняют с помощью кристалла 311, который должен впоследствии выполнять программное обеспечение.The download process described above is controlled by the processor of the mobile terminal. In a dual-chip architecture, as described in connection with FIGS. 3 and 4, the above steps are performed using a
Следовательно, выше описан мощный механизм подписания программного обеспечения для защиты программного обеспечения для многих различных систем. Данный механизм эффективно объединяют с механизмом защиты целостности, основанном на симметричном ключе для надежного хранения программного обеспечения. Как только SW установлено на платформу, используется механизм, основанный на симметричном ключе, и используют преимущества сделанных ранее вычислений. Кроме того, в данной работе описан объединенный механизм защиты программного обеспечения и контроля версии.Therefore, the powerful software signing mechanism for protecting software for many different systems is described above. This mechanism is effectively combined with an integrity protection mechanism based on a symmetric key for reliable software storage. As soon as SW is installed on the platform, a mechanism based on a symmetric key is used and the advantages of the calculations made earlier are used. In addition, this paper describes an integrated software protection and version control mechanism.
Обеспечиваемая защита целостности при хранении особенно выгодна в связи с архитектурой с двумя ЦП, когда энергонезависимая память связана с ненадежным ЦП и когда существует потребность в обновлениях SW.Provided storage integrity protection is particularly beneficial in connection with a dual-CPU architecture, when non-volatile memory is associated with an unreliable CPU, and when there is a need for SW updates.
Хотя некоторые варианты осуществления подробно описаны и показаны, изобретение не ограничено ими, но может также воплощаться другими способами в рамках объекта изобретения, определенного в последующей формуле изобретения.Although some embodiments are described and shown in detail, the invention is not limited to them, but may also be embodied in other ways within the scope of the invention defined in the following claims.
В частности, варианты осуществления описаны главным образом в отношении мобильного терминала как примера устройства обработки данных. Следует понимать, однако, что описанные способ, программный продукт и устройство могут также применяться к другим устройствам обработки данных.In particular, embodiments are described mainly with respect to a mobile terminal as an example of a data processing device. It should be understood, however, that the described method, software product and device can also be applied to other data processing devices.
Описанные способ, программный продукт и устройство могут воплощаться посредством аппаратных средств, содержащих несколько отличающихся элементов, и посредством соответствующим образом запрограммированного микропроцессора. В формуле изобретения устройства перечисляют несколько средств, некоторые из этих средств могут воплощаться с помощью одного и того же элемента аппаратных средств, например с помощью соответствующим образом запрограммированного микропроцессора, одного или большего количества процессоров цифровых сигналов или подобных устройств. Тот факт, что определенные критерии перечислены в отличающихся зависимых пунктах формулы изобретения или описаны в различных вариантах осуществления, не указывает, что комбинация этих критериев не может использоваться для получения преимущества.The described method, software product and device can be implemented through hardware containing several different elements, and through an appropriately programmed microprocessor. Several devices are listed in the claims, some of these tools can be implemented using the same hardware element, for example using a suitably programmed microprocessor, one or more digital signal processors, or similar devices. The fact that certain criteria are listed in the different dependent claims or described in various embodiments does not indicate that a combination of these criteria cannot be used to advantage.
Следует подчеркнуть, что термины «содержит/содержащий», которые используют в данном описании, используют для определения присутствия заявленных особенностей, этапов или компонентов, что не препятствует присутствию или добавлению одной или большего количества других особенностей, этапов, компонентов или их групп.It should be emphasized that the terms "contains / containing", which are used in this description, are used to determine the presence of the claimed features, steps or components, which does not impede the presence or addition of one or more other features, steps, components or groups thereof.
Claims (34)
принимают элемент данных полезной нагрузки с помощью устройства обработки данных; выполняют процесс криптографической аутентификации для обеспечения подлинности элемента данных полезной нагрузки, причем выполнение процесса криптографической аутентификации содержит вычисление контрольного значения хэш-функции по меньшей мере для принятого элемента данных;
сохраняют аутентифицированный принятый элемент данных полезной нагрузки в устройстве обработки данных; и
защищают целостность сохраненного элемента данных полезной нагрузки,
отличающийся тем, что
защита целостности дополнительно содержит вычисление эталонного значения кода аутентификации сообщения по меньшей мере для контрольного значения хэш-функции, вычисленного во время указанного процесса криптографической аутентификации, причем вычисление значения кода аутентификации сообщения использует в качестве входных данных секретный ключ, хранящийся в устройстве обработки данных.1. A method of loading data into a data processing device, the method comprising the steps of:
receiving a payload data element using a data processing device; performing a cryptographic authentication process to ensure the authenticity of the payload data element, wherein the cryptographic authentication process comprises computing a hash control value for at least the received data element;
storing the authenticated received payload data element in the data processing device; and
protect the integrity of the stored payload data item,
characterized in that
integrity protection further comprises calculating a reference value of the message authentication code for at least the hash control value calculated during said cryptographic authentication process, the calculation of the message authentication code value using a secret key stored in the data processing device as input.
принимают эталонное значение хэш-функции; и
сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.2. The method according to claim 1, in which the cryptographic authentication process includes the steps of:
accept the reference value of the hash function; and
comparing the received reference value of the hash function with the calculated control value of the hash function to verify the authenticity of the received payload data element.
принимают элемент данных полезной нагрузки, элемент данных цифровой подписи и подписанный с помощью цифровой подписи элемент данных цифрового сертификата, причем элемент данных цифрового сертификата включает в себя первый открытый ключ, и причем элемент данных цифровой подписи включает в себя эталонное значение хэш-функции, зашифрованное с первым закрытым ключом, соответствующим первому открытому ключу;
аутентифицируют подписанный с помощью цифровой подписи элемент данных цифрового сертификата по отношению к корневому открытому ключу, хранящемуся в устройстве обработки данных;
аутентифицируют элемент данных цифровой подписи по отношению к аутентифицированному цифровому сертификату;
сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.4. The method according to claim 3, containing stages in which:
receiving a payload data element, a digital signature data element and a digitally signed digital certificate data element, the digital certificate data element including a first public key, and the digital signature data element including a hash reference value encrypted with the first private key corresponding to the first public key;
authenticating the digital certificate signed data item with respect to the root public key stored in the data processing device;
authenticating the digital signature data element with respect to the authenticated digital certificate;
comparing the received reference value of the hash function with the calculated control value of the hash function to verify the authenticity of the received payload data element.
определяют эталонное значение хэш-функции по меньшей мере элемента данных;
вычисляют эталонное значение кода аутентификации сообщения из определенного эталонного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;
сохраняют вычисленное эталонное значение кода аутентификации сообщения для элемента данных,
отличающийся тем, что
вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из части записи данных контроля версии, причем запись данных контроля версии включает в себя счетчик версии; и в котором вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции, и по меньшей мере счетчик версии.21. A method for protecting the integrity of the current version of a data item stored in a data processing device, the method comprising the steps of:
determining a reference value of the hash function of at least the data item;
calculating the reference value of the message authentication code from the determined reference hash value using the secret key stored in the data processing device;
storing the calculated reference message authentication code value for the data item,
characterized in that
calculating a reference value of the message authentication code comprises calculating a reference value of the message authentication code from the combined data item obtained from the determined hash function reference value and at least a part of the version control data record, the version control data recording including a version counter; and in which the calculation of the reference value of the authentication code of the message comprises calculating the reference value of the authentication code of the message from the combined data item obtained from the determined reference value of the hash function, and at least a version counter.
принимают дельта-обновление ранее принятого текущего элемента данных; и
генерируют элемент данных, как обновленный элемент данных, из ранее принятого текущего элемента данных и принятого дельта-обновления.28. The method according to item 21, further comprising stages in which:
receive a delta update of a previously received current data item; and
generating a data item as an updated data item from a previously received current data item and a received delta update.
вычисляют контрольное значение хэш-функции элемента данных;
вычисляют контрольное значение кода аутентификации сообщения из вычисленного контрольного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;
сравнивают вычисленное контрольное значение кода аутентификации сообщения с эталонным значением кода аутентификации сообщения, хранящимся для элемента данных,
отличающийся тем, что
способ дополнительно содержит извлечение записи данных контроля версии, причем запись данных контроля версии включает в себя счетчик версии, указывающий текущую версию элемента данных; и
что вычисление контрольного значения кода аутентификации сообщения содержит вычисление контрольного значения кода аутентификации сообщения из объединенного элемента данных, полученного из вычисленного контрольного значения хэш-функции, и по меньшей мере счетчик версии.29. A method for checking the integrity of the current version of a data item stored in a data processing device, the method comprising the steps of:
calculating the control value of the hash function of the data item;
calculating a control value of the message authentication code from the calculated control value of the hash function using a secret key stored in the data processing device;
comparing the calculated control value of the message authentication code with the reference value of the message authentication code stored for the data item,
characterized in that
the method further comprises extracting a record of version control data, wherein the record of version control data includes a version counter indicating a current version of the data item; and
that the calculation of the control value of the authentication code of the message includes the calculation of the control value of the authentication code of the message from the combined data item obtained from the calculated control value of the hash function, and at least a version counter.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04388069.9 | 2004-10-11 | ||
EP04388069A EP1645931A1 (en) | 2004-10-11 | 2004-10-11 | Secure loading and storing of data in a data processing device |
US61803704P | 2004-10-12 | 2004-10-12 | |
US60/618,037 | 2004-10-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007117505A RU2007117505A (en) | 2008-11-20 |
RU2408071C2 true RU2408071C2 (en) | 2010-12-27 |
Family
ID=35355897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007117505/08A RU2408071C2 (en) | 2004-10-11 | 2005-09-07 | Protected data loading and storage in data processing device |
Country Status (3)
Country | Link |
---|---|
KR (1) | KR20070074617A (en) |
RU (1) | RU2408071C2 (en) |
WO (1) | WO2006039967A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2464628C1 (en) * | 2011-06-24 | 2012-10-20 | Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Method of controlling software operation |
RU2475838C1 (en) * | 2011-11-07 | 2013-02-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Иркутский государственный университет путей сообщения (ФГБОУ ВПО ИрГУПС) | Device for cryptographic information protection |
RU2808198C1 (en) * | 2023-04-28 | 2023-11-24 | Общество с ограниченной ответственностью "Открытая мобильная платформа" | Method of trusted device boot with ability to certify different boot stages by several independent key owners |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8583929B2 (en) * | 2006-05-26 | 2013-11-12 | Alcatel Lucent | Encryption method for secure packet transmission |
US8316442B2 (en) | 2008-01-15 | 2012-11-20 | Microsoft Corporation | Preventing secure data from leaving the network perimeter |
RU2424554C2 (en) * | 2009-10-05 | 2011-07-20 | Федеральное государственное учреждение "Государственный научно-исследовательский испытательный институт проблем технической защиты информации Федеральной службы по техническому и экспортному контролю" | Anti-peep user authentication method |
EP2879074A1 (en) * | 2013-11-29 | 2015-06-03 | Gemalto SA | Method for loading a native code on a secure element |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2144269C1 (en) * | 1994-07-19 | 2000-01-10 | Сертко, Ллс | Method of secret use of digital signatures in commercial cryptographic system |
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6401206B1 (en) * | 1997-03-06 | 2002-06-04 | Skylight Software, Inc. | Method and apparatus for binding electronic impressions made by digital identities to documents |
US20040025010A1 (en) * | 2002-07-30 | 2004-02-05 | Texas Instruments Incorporated | Computing platform certificate |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6367012B1 (en) * | 1996-12-06 | 2002-04-02 | Microsoft Corporation | Embedding certifications in executable files for network transmission |
US7124408B1 (en) * | 2000-06-28 | 2006-10-17 | Microsoft Corporation | Binding by hash |
KR100455566B1 (en) * | 2000-06-30 | 2004-11-09 | 인터내셔널 비지네스 머신즈 코포레이션 | Device and method for updating code |
US7069445B2 (en) * | 2001-11-30 | 2006-06-27 | Lenovo (Singapore) Pte. Ltd | System and method for migration of a version of a bootable program |
-
2005
- 2005-09-07 RU RU2007117505/08A patent/RU2408071C2/en active
- 2005-09-07 WO PCT/EP2005/009624 patent/WO2006039967A1/en active Application Filing
- 2005-09-07 KR KR1020077010632A patent/KR20070074617A/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2144269C1 (en) * | 1994-07-19 | 2000-01-10 | Сертко, Ллс | Method of secret use of digital signatures in commercial cryptographic system |
US6026293A (en) * | 1996-09-05 | 2000-02-15 | Ericsson Inc. | System for preventing electronic memory tampering |
US6401206B1 (en) * | 1997-03-06 | 2002-06-04 | Skylight Software, Inc. | Method and apparatus for binding electronic impressions made by digital identities to documents |
US20040025010A1 (en) * | 2002-07-30 | 2004-02-05 | Texas Instruments Incorporated | Computing platform certificate |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2464628C1 (en) * | 2011-06-24 | 2012-10-20 | Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военная академия связи имени маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Method of controlling software operation |
RU2475838C1 (en) * | 2011-11-07 | 2013-02-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Иркутский государственный университет путей сообщения (ФГБОУ ВПО ИрГУПС) | Device for cryptographic information protection |
RU2808198C1 (en) * | 2023-04-28 | 2023-11-24 | Общество с ограниченной ответственностью "Открытая мобильная платформа" | Method of trusted device boot with ability to certify different boot stages by several independent key owners |
Also Published As
Publication number | Publication date |
---|---|
KR20070074617A (en) | 2007-07-12 |
WO2006039967A1 (en) | 2006-04-20 |
RU2007117505A (en) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8627086B2 (en) | Secure loading and storing of data in a data processing device | |
JP4856080B2 (en) | Secure loading and storage of data to data processing equipment | |
JP4854677B2 (en) | Updating the memory content of the processing device | |
CN101076807B (en) | Method and system for verifying one-time password | |
TWI667586B (en) | System and method for verifying changes to uefi authenticated variables | |
US8443204B2 (en) | Ticket authorized secure installation and boot | |
US20060059547A1 (en) | Method of verifying downloaded software and corresponding device | |
US12294657B2 (en) | Software integrity protection method and apparatus, and software integrity verification method and apparatus | |
US20080082828A1 (en) | Circuit arrangement and method for starting up a circuit arrangement | |
US20080195868A1 (en) | Rollback-Resistant Code-Signing | |
EP2372592B1 (en) | integrated circuit and system for installing computer code thereon | |
CN111611593A (en) | Secure data processing equipment | |
JP2004280284A (en) | Control processor, electronic equipment, and program starting method for electronic equipment, and system module updating method for electronic equipment | |
US20080189695A1 (en) | Updating of Data Instructions | |
JP2007512787A (en) | Trusted mobile platform architecture | |
WO2007050206A2 (en) | Mobile wireless communications device with software installation and verification features and related methods | |
WO2020177116A1 (en) | Counterfeit app identification method and apparatus | |
RU2408071C2 (en) | Protected data loading and storage in data processing device | |
Bin et al. | Research and design of Bootrom supporting secure boot mode | |
HK1115208A (en) | Secure loading and storing of data in a data processing device | |
CN117311753A (en) | POS machine remote upgrade management system | |
HK1141111A (en) | Ticket authorized secure installation and boot |