[go: up one dir, main page]

RU2408071C2 - Protected data loading and storage in data processing device - Google Patents

Protected data loading and storage in data processing device Download PDF

Info

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
Application number
RU2007117505/08A
Other languages
Russian (ru)
Other versions
RU2007117505A (en
Inventor
Кристиан ГЕРМАНН (SE)
Кристиан ГЕРМАНН
Бернард СМЕТС (SE)
Бернард СМЕТС
Original Assignee
Телефонактиеболагет Лм Эрикссон (Пабл)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP04388069A external-priority patent/EP1645931A1/en
Application filed by Телефонактиеболагет Лм Эрикссон (Пабл) filed Critical Телефонактиеболагет Лм Эрикссон (Пабл)
Publication of RU2007117505A publication Critical patent/RU2007117505A/en
Application granted granted Critical
Publication of RU2408071C2 publication Critical patent/RU2408071C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

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

FIELD: information technology. ^ SUBSTANCE: method involves reception of a payload data element using a processing device; performing cryptographic authentication of the payload data element; storing the authenticated received payload data element in a data processing device, and protecting integrity of the stored payload data element. The cryptographic authentication process involves calculation of a control hash function value of at least the received data element. Protection of integrity also involves calculation the standard value of a message authentication code at least for the control hash function value using a secret key stored in the data processing device as input data. ^ EFFECT: more computationally efficient mechanism for providing security, which protects software and when loading software into a device. ^ 34 cl, 11 dwg

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 loading station 101 and a mobile terminal 102.

Устройство загрузки может быть обычным, соответствующим образом запрограммированным компьютером, например ПК (персональным компьютером), содержащим соответствующий интерфейс связи. В некоторых вариантах осуществления устройство загрузки может генерировать данные полезной нагрузки, например версию программного обеспечения, данные конфигурации и/или подобные данные, которые будут загружать. В частности, устройство загрузки может генерировать цифровую подпись и сертификат, которые будут загружаться вместе с данными полезной нагрузки. В других вариантах осуществления устройство загрузки принимает данные полезной нагрузки и информацию заголовка от удаленного компьютера, например от персонального компьютера, рабочего места, сетевого сервера и т.д. Например, данные можно принимать через компьютерную сеть, например Интернет, локальную сеть, корпоративную сеть, экстрасеть и т.д., или с помощью любого другого подходящего средства, например, на считываемом компьютером носителе, таком как гибкий диск, компакт-диск (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 mobile terminal 102 comprises a communication interface 104 comprising circuits and / or devices suitable for enabling the mobile terminal to communicate with the download station via a wired communication channel or via a radio communication channel 103, such as a direct communication channel, a communication system, or a similar communication channel. For example, data can be downloaded via a local short-range wireless channel, for example via a Bluetooth connection, an infrared connection or the like, or via a wired interface. In other embodiments, data can be downloaded to a mobile terminal via a communications system, such as radio communication (OTA) via a cellular data network, such as GSM (Global System for Mobile Communications), WCDMA (Code Division Multiple Access) or a similar network .

Следовательно, примеры соответствующих модулей связи включают в себя проводное последовательное соединение, такое как канал связи стандарта 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 processor 105 for controlling the operation of the mobile terminal and a memory 106. For example, the processor may comprise a special or general purpose programmable microprocessor, a digital signal processor (DSP), a specialized integrated circuit (ASIC), a programmable logic matrix (PLA ), Field Programmable Gate Array (FPGA), etc. or a combination thereof. The storage device 106 may be flash memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or any other type of memory or storage device, such as non-volatile memory.

Когда данные загружают в мобильный терминал, процессор 105 выполняет описанные аутентификацию данных и защиту целостности и сохраняет данные в запоминающем устройстве 106.When data is downloaded to the mobile terminal, the processor 105 performs the described data authentication and integrity protection and stores the data in the storage device 106.

Во время последующей работы мобильного терминала процессор может извлекать загруженные данные из запоминающего устройства 106. Например, в случае программного обеспечения процессор загружает программное обеспечение из запоминающего устройства 106 в оперативную память для выполнения.During the subsequent operation of the mobile terminal, the processor may retrieve the downloaded data from the storage device 106. For example, in the case of software, the processor loads the software from the storage device 106 into RAM for execution.

Фиг.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 mobile terminal 101 comprises a controller 105 for controlling the operation of the mobile terminal. The controller 105 works together with flash memory 106 for storing programs and random access memory (RAM) 209. The controller 105 includes a microprocessor 208, internal read-only memory (ROM) 207, and a securely stored private key 218. For example, private key 218 can be a unique crystal key, for example, stored in hardware, for example, using the so-called technology of e-fuse (electrically burned jumpers). Alternatively, the secret key may be stored in ROM 207. ROM 207 comprises a boot code, a hash code, a MAC code, an authentication code, and a public root key. In some embodiments, the hash code and / or MAC code may be embodied at least partially in hardware instead of or in addition to being embodied in ROM. The command system associated with the normal operation of the mobile phone is contained in the flash memory 106 programs. Random access memory 209 is used for operations that are part of the normal call processing of a mobile terminal. In some embodiments, operations involving sensitive data, hash function calculations, and authentication processes are performed together with secure static random access memory (PSRAM) (not shown), which includes the microcontroller 105. The controller 105 communicates with the flash memory 106 programs and RAM 209 via the memory bus 219.

Фиг.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 controller 105 comprises two crystals 310 and 313, respectively, an external memory 106 and an internal memory 209. Each of these two crystals contains at least one microprocessor 312 and 315, respectively, and a ROM 311 and 314, respectively. External storage device 106 is any suitable type of non-volatile memory, such as flash memory. Internal storage device 209 is a quick access storage device such as random access memory. In the embodiment of FIG. 3, these two crystals share an internal storage device 209. In addition, in this embodiment, only the crystal 313 has direct access to the external storage device 106. Therefore, when the processor 312 from the crystal 310 has to execute software stored in the external storage device 106, before the software can be executed, it is loaded into the internal storage device 209 through the chip 313. In this embodiment, both P 311 and 314 contain boot code, but only ROM 311 contains a hash code, MAC code, authentication code, and public root key, and only crystal 310 contains private key 318. As described above, private key 318 can be stored in hardware, for example, using the so-called technology of e-fuse (electrically burnable jumpers). Alternatively, the secret key may be stored in ROM 311. Furthermore, in some embodiments, the hash code and / or MAC code may be embodied at least partially in hardware instead of or in addition to being embodied in ROM.

Фиг.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 crystals 310 and 313 of this embodiment do not share common internal memory. Instead, each crystal has its own internal memory 416 and 417, respectively. As in the embodiment of FIG. 3, only the chip 313 has direct access to the external storage device 106. Therefore, when the processor 312 from the chip 310 needs to execute software stored in the external storage device 106, the software to be executed is downloaded into an internal memory 416 of the crystal 310 through the crystal 313 before it can be executed.

В альтернативных вариантах осуществления с двумя кристаллами с общедоступной или отдельной оперативной памятью (ОП) оба кристалла могут иметь прямой доступ к внешнему энергонезависимому запоминающему устройству и непосредственно выполнять программное обеспечение, которое должно выполняться, из этого запоминающего устройства или сначала загружать его в оперативную память и затем выполнять.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. Message 520 contains header section 521, payload section 522, digital certificate section 523, and digital signature 524.

Раздел 522 полезной нагрузки содержит фактические данные полезной нагрузки, которые будут загружены в мобильный терминал. Данные полезной нагрузки могут содержать программное обеспечение, такое как прикладное программное обеспечение, программное обеспечение предварительной загрузки, предназначенное для организации и/или управления загрузкой другого программного обеспечения, части операционной системы мобильного терминала или подобное программное обеспечение. Альтернативно или дополнительно, данные полезной нагрузки могут содержать другие данные, например, данные конфигурации для хранения во флэш-памяти или в других блоках памяти мобильного терминала, например в СППЗУ, ЭСППЗУ или в подобных блоках памяти.The payload section 522 contains actual payload data that will be downloaded to the mobile terminal. The payload data may include software, such as application software, pre-loading software, designed to organize and / or control the loading of other software, part of the operating system of a mobile terminal, or similar software. Alternatively or additionally, the payload data may contain other data, for example, configuration data for storage in flash memory or in other memory blocks of a mobile terminal, for example, EPROM, EEPROM, or similar memory blocks.

Раздел 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 payload 522. The digital signature is computed using an open / closed key pair of an asymmetric cryptosystem, such as the RSA system (Rivest, Shamir and Adleman). The digital signature is calculated by initially calculating a one-way hash function of the payload data, i.e. software and / or data to be downloaded to the mobile terminal. The calculated hash value is then encrypted with the private key of the public / private key pair.

Одностороннюю хэш-функцию используют для создания значения хэш-функции, которое представляет данные полезной нагрузки 522. Систему с открытым/закрытым ключом используют для защиты для правильного значения хэш-функции и аутентификации станции загрузки или устройства передачи данных, от которого посылают сообщение 520.A one-way hash function is used to create a hash function value that represents payload data 522. A public / private key system is used to protect the correct hash function and authenticate the loading station or data device from which message 520 is sent.

Односторонней хэш-функцией является функция, которую просто вычислять в прямом направлении, но трудно вычислять в обратном направлении. Односторонняя хэш-функция 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 payload data 522 or selected pieces of payload data. The hash function executed on M returns the value of the hash function of a fixed length, h = H (M).

Существует много функций, которые берут входную информацию произвольной длины и возвращают выходную информацию фиксированной длины, но односторонние хэш-функции имеют следующие дополнительные характеристики: при заданном М просто вычислить 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 message 520 to the mobile terminal, a reliable one-way hash function is performed with payload data 522 or with selected content to create a hash reference value. Message 520 includes a reference hash value as a digital signature, as further described below. Upon receipt of message 520, the mobile terminal calculates the hash control value of the payload data 522 (or its selected content) and compares the hash control value with the hash reference value received as part of the message 520.

Соответствующей односторонней хэш-функцией является, например, функция 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 digital signature 524, which includes message 520.

Раздел 523 цифрового сертификата сообщения 520 включает в себя сертификат, который включает в себя соответствующий открытый ключ. Цифровой сертификат является структурой данных, используемой в криптосистеме с открытым ключом для того, чтобы связать определенного аутентифицированного человека с определенным открытым ключом. Цифровой сертификат является цифровым представлением информации, которая идентифицирует центр сертификации, который его выпустил, называет или идентифицирует человека, открытый ключ которого он включает в себя, и содержит открытый ключ данного человека. Цифровой сертификат подписывают с помощью цифровой подписи центром сертификации, выпустившим его, таким образом предоставляя возможность получателю проверять подлинность сертификата при использовании открытого ключа центра сертификации.Section 523 of the digital certificate of message 520 includes a certificate that includes a corresponding public key. A digital certificate is a data structure used in a public key cryptosystem in order to associate a specific authenticated person with a specific public key. A digital certificate is a digital representation of information that identifies the certification authority that issued it, names or identifies the person whose public key it includes, and contains the public key of that person. A digital certificate is signed using a digital signature by the certification authority that issued it, thus allowing the recipient to verify the authenticity of the certificate using the public key of the certification authority.

Следует понимать, что раздел цифрового сертификата может содержать один цифровой сертификат или цепочку сертификатов. В любом случае сертификат или цепочку сертификатов можно аутентифицировать с помощью мобильного терминала посредством корневого открытого ключа, соответствующего одному сертификату или последнему сертификату в цепочке сертификатов. Пример ключевой иерархии в связи с загрузкой программного обеспечения в мобильные телефоны описан в 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 payload data 522. In some embodiments, this is achieved by protecting the header data 521 itself with a digital signature. In other embodiments, the above encryption of the calculated hash value further comprises encrypting the hash value calculated for the header data 521, for example, by encrypting / signing the union h (SW) | h (H) of a hash function h (SW) calculated for software (and data) 522, and a hash function h (H) calculated for header data 521.

Фиг.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 external storage device 106. As indicated above in connection with FIG. 5, in some embodiments, the signature can protect not only the payload, but also the header data, for example, by encrypting the union of the hash function value calculated for the software and the hash function value calculated for the header.

На этапе 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 external storage device 106 together with new software and data SW. Additionally, the certificate (s) and digital signature values can be deleted from the external storage device.

Описанным выше процессом загрузки управляет процессор мобильного терминала. В двукристальной архитектуре, как описано в связи с фиг.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 chip 311, which is intended to subsequently execute software.

Криптографические функции для аутентификации принятых данных и, в частности, функции 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 function calculating unit 732. The MAC function calculator 732 takes h as input, h is a validated hash value that was calculated during the previous signature verification process 736 for the received payload, i.e. h = h a or h = h r . As a second portion of the input, the MAC function 732 receives the secret key K ', which is obtained from the unique key of the crystal K. In particular, the key K' can be generated using a pseudo-random function 731, for example, a pseudo-random function that is based on a hash function, for example, SHA-1, from a unique K crystal key and mode identifier 735. For example, the unique key of a K crystal may be a random number generated during the production of an LIS crystal. Obtaining the key K 'from the master key K has the advantage that different keys K' can be used for various purposes, for example, to protect different types of software, different pieces of software, etc., thus providing cryptographic separation and increasing the flexibility of the method. The identifier 735 mode allows you to select various modes. For example, in a multi-chip scenario, different modes may be used for each given chip for which the software is intended. Examples of appropriate MAC functions include HMAC (Key Based Hashing for Message Authentication), Cipher Block Interlocking MAC (CBC) using, for example, AES or a robust one-way hash function, such as CBC-MAC, as defined in the Handbook of Cryptology ", By AJMenezes, PC van Oorschot, SAVanstone, p. 353, CRC Press, 1997, where the AES block cipher is used as the block cipher E. The MAC function 732 produces the corresponding tag value t, as described above.

Для предотвращения вычислений неразрешенных значений 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 input 733 from the signature verification process 736, indicating whether the digital signature of the received payload data has been successfully verified. Block 734 accepts the tag value and signal 733 as input and provides the calculated tag value only if signal 733 indicates that the hash value h is verified, i.e. genuine hash value. For example, in the method of FIG. 6, a signal 733 is generated in step 607.

Следует отметить, что модуль вычисления 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 MAC circuit 800, the MAC calculation in block 732 is performed on a four-element tuple 844 (rand, h, cnt, back_cnt). A four-element tuple 844 contains a short (eg, 64 bits) random value, rand, which provides a situation in which the input for calculating the MAC was not completely controlled by the input from the signature verification process 736. The four-element tuple further comprises a verified value h of the hash function, as in the previous embodiment. Finally, the four-element tuple contains the version control counter, cnt, and the reverse version control counter, back_cnt, the version control mechanism described later. A MAC function 732, such as an HMAC, a CBC-MAC, or a similar function, further receives the secret key K ', as described in connection with FIG. 7, and calculates the MAC t value from the four-element tuple and the secret key K'. Similarly, as described in connection with FIG. 7, the calculated label value t is issued only if the signature signal 703 indicates that the signature verification process has verified the hash value h.

Кортеж 844 из четырех элементов генерируют с помощью модуля 841 контроля версии, который поддерживает список 842 контроля версии ранее принятых версий программ. В частности, список 841 контроля версии содержит список записей данных, где каждая запись данных содержит кортеж из четырех элементов, соответствующий ранее отмеченному значению хэш-функции. Запись с новым значением хэш-функции упоминается как верхний элемент списка 842, который соответствует программному обеспечению, которое фактически установлено/используется.A four-element tuple 844 is generated using a version control module 841, which maintains a version control list 842 of previously adopted program versions. In particular, the version control list 841 contains a list of data records, where each data record contains a tuple of four elements corresponding to the previously noted value of the hash function. An entry with a new hash value is referred to as the top of list 842, which corresponds to the software that is actually installed / used.

Модуль 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 version control module 841 receives the verified hash value h and a digital signal 733 indicating that the signature has been successfully verified from the signature verification process, as described above. In addition, the version control module 841 receives a program version counter, cnt, and the number back_cnt from the signature verification process 736. The back_cnt number indicates how many previous versions can still be installed when this version of the program is installed. For example, back_cnt can be a number between 0 and C MAX , for example C MAX = 15, where back_cnt = 0 implies that new software does not allow it to be replaced with a previous version. Consequently, back_cnt embodies a simple but effective mechanism for controlling downward and upward compatibility of downloadable software. In some embodiments, cnt and back_cnt are accepted as part of the software package that is received during the download process, for example, as part of the header section of the received software package.

После получения (этап 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 signal 733 from the signature verification process 736 during the boot process, the version control module 841 uses the verification signal 733 (step 902) to indicate whether there was a value h hash functions were verified during the signature verification process 736. If this is not the case, then version control module 841 blocks the value of h, i.e. the version control process and the MAC calculation stop. If signal 733 indicates that the hash value is genuine, then version control module 841 continues to operate at 903.

На этапе 903 модуль 841 контроля версии сравнивает принятое значение хэш-функции со значениями хэш-функции в списке 842 контроля версии. Если принятое значение h хэш-функции равняется одному из предыдущих значений hprev хэш-функции в списке 842 контроля версии, то модуль 841 контроля версии продолжает работу на этапе 904; иначе процесс продолжается на этапе 906.At 903, the version control module 841 compares the received hash value with the hash values in the version control list 842. If the accepted value h of the hash function equals one of the previous values h prev of the hash function in the version control list 842, then the version control module 841 continues to operate at block 904; otherwise, the process continues to block 906.

На этапе 904, т.е. в случае если принятое значение h хэш-функции равняется одному из предыдущих значений hprev хэш-функции, процесс извлекает соответствующий кортеж из четырех элементов (rand, h, cnt, back_cnt)prev и определяет, находится ли значение cntprev счетчика предыдущей версии в разрешенном диапазоне, который определен значениями cnt и back_cnt, принятыми от процесса 736 проверки подписи. В некоторых вариантах осуществления разрешенный диапазон определяют как диапазон [cnttop-back_cnt, ∞), где cnttop является значением cnt текущего верхнего элемента списка. Для простоты предполагается, что нет никакого верхнего предела для диапазона разрешенных значений. Однако следует понимать, что в других вариантах осуществления верхний предел может быть определен.At step 904, i.e. if the accepted value of the hash function h is equal to one of the previous values of the prev prev of the hash function, the process extracts the corresponding tuple of four elements (rand, h, cnt, back_cnt) prev and determines whether the counter cnt prev value of the previous version is in the allowed the range that is determined by the cnt and back_cnt values received from the signature verification process 736. In some embodiments, the allowed range is defined as the range [cnt top -back_cnt, ∞), where cnt top is the cnt value of the current top element of the list. For simplicity, it is assumed that there is no upper limit to the range of allowed values. However, it should be understood that in other embodiments, the upper limit can be determined.

Если 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 version control module 841 generates (step 905) a new tuple of four elements (rand, h, cnt, back_cnt) new with rand new components — a new random value generated by version control module 841, h new = h, cnt new = cnt prev , back_cnt new = back_cnt prev , and the version control module replaces the previous tuple with the same value of h with a new tuple and sets the new tuple as the top item in the list.

В случае если проверка на этапе 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 step 903 shows that h is not equal to any of the previous values of the hash function, then the new random value, the value of h of the hash function and the counter are stored together with the allowed back_cnt (associated with this h) in the version control list ( step 906). In this case, a new tuple of four elements (rand, h, cnt, back_cnt) new is created according to: rand new = new random value, h new = h, cnt new = cnt, back_cnt new = minimum value (back_cnt, cnt - min_allowed_version) , and the new tuple becomes the top item in the list. In this case, min_allowed_version is the current lowest version allowed by any tuple in the update list. After the entry has been placed on the top of the update list, min_allowed_version is recalculated as cnt top -back_cnt top , i.e. from the cnt top and back_cnt counters of the version of the top element (step 907). Finally, all the items in the list are updated (step 908) so that their back_cnt values are the highest values that do not specify a version number that is lower than the lowest allowed version of min_allowed_version. If the list contains an entry with a version that is out of the allowed range, then this entry will be deleted.

В некоторых вариантах осуществления значение проверки 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 block 734 in FIGS. 7 and 8).

Следовательно, сохраненное эталонное значение 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 version 3 version control list is used, i.e. a version control list can store three tuples. In this example, it is additionally assumed that there is a sequence of 8 releases of the software version with the following values (h, cnt, back_cnt) of the h values of the hash function, cnt version counter and back_cnt counter, received from the signature verification process:

версия 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 version 7, which was not applied. 10 shows a version control list 1001 after installing version 8. Each row of the version control list 1001 includes a corresponding tuple of four elements for one of the installed versions: line 1002, the top of the list corresponds to version 8, line 1003 corresponds to version 6, and line 1004 corresponds to version 5. R8, R6 and R5 are random numbers generated by the version control module, as described above. After version 8 was applied, the youngest allowed version was 4 (since the cnt value of version 8 is 8, and the value of back_cnt version 8 is 4, and 8-4 = 4), so min_allowed_version = 4. Accordingly, the values The back_cnt of the rest of the entries in the list were adjusted during the installation of version 8 to match the limitation on the lowest permitted version after version 8 was added. In particular, the back_cnt value in line 1002 is set to 2, and the back_cnt value in line 1003 is set to 1. Prior to version 8 upgrade, the smallest permitted version was 3, but this value was raised to 4 through version 8.

Фиг.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 version 7. First of all, the cnt value of the counter of version 7 is 7, i.e. is in the allowed range of the current version. The H7 value of the hash function does not yet exist in the version control list 1001, therefore, the new four-element tuple 1007 with the new H7 value of the hash function is stored as the new top element 1012 of the version control table 1011. The previous top item is moved down in the list, and it corresponds to line 1013. Version 6 is now placed on line 1014, while version 5 is removed from the list, because in this example there is only three tuples of four items in the version control list . The back_cnt value of the new top element 1012 is set to 3 in order to satisfy the limitation of the current smallest permitted version (min_allowed_version = 4).

Фиг.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 initial step 1101, the mobile terminal receives a software update data packet from the reprogramming means via a local or remote interface, for example GSM, WCDMA, etc., as described above. The package contains a new software update Δ, one or more C certificates and a digital signature S (h r ) of the protected software, as described above in connection with FIG. In addition, the software may further include data, such as updated configuration data. In one embodiment, the new software is downloaded as a so-called delta file, including the differences between the new software and the current software, thereby reducing the size of the update package. The delta file technique is known from the prior 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. Alternatively, other methods for generating the update file may be used, or the whole new software may be accepted. The signature S (h r ) contains the encrypted hash value calculated from the new software. The signature is calculated so that first the value h r = H (SW) of the one-way hash function of the new SW software is calculated, and subsequently, the value of the hash function is encrypted with the private key of the public / private key pair, for example, the public / private RSA key pair. The software update package includes a certificate that includes the corresponding public key. Upon receipt of the software update package, the mobile terminal stores the software update, certificate (s) and signature in the external storage device 106.

На этапе 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 version control step 1122 is successful, the process continues to step 1123, where the processor generates new SW new software from the received delta file Δ and the current SW prev software version stored in an external memory device (protected by MAC).

На этапе 1103 процессор вычисляет контрольное значение ha=H(SWnew) односторонней хэш-функции нового программного обеспечения SWnew.At step 1103, the processor calculates a control value h a = H (SW new ) of the one-way hash function of the new SW new software.

На этапе 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 storage device 1105. 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 signature S (h r ) of the new software. 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 verified against the root public key. Then, at 1104, the processor checks the public key used to sign the new software. If the verification is successful, then the processor continues to step 1106 with the verification of the signature. Otherwise, the software download process is stopped.

На этапе 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 step 1107, 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 1103. 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 1108 with the calculation of the message authentication code (MAC). Otherwise, the software download process is stopped.

На этапе 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 external storage device 106 along with new software. The previous MAC value is deleted. Additionally, the certificate (s) and digital signature values can be deleted from external memory. The new SW new software version is stored in the external storage device, and the old software version is deleted.

Описанным выше процессом загрузки управляет процессор мобильного терминала. В двухкристальной архитектуре, как описано в связи с фиг.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 chip 311, which will subsequently execute the software.

Следовательно, выше описан мощный механизм подписания программного обеспечения для защиты программного обеспечения для многих различных систем. Данный механизм эффективно объединяют с механизмом защиты целостности, основанном на симметричном ключе для надежного хранения программного обеспечения. Как только 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. Способ загрузки данных в устройство обработки данных, причем способ содержит этапы, на которых:
принимают элемент данных полезной нагрузки с помощью устройства обработки данных; выполняют процесс криптографической аутентификации для обеспечения подлинности элемента данных полезной нагрузки, причем выполнение процесса криптографической аутентификации содержит вычисление контрольного значения хэш-функции по меньшей мере для принятого элемента данных;
сохраняют аутентифицированный принятый элемент данных полезной нагрузки в устройстве обработки данных; и
защищают целостность сохраненного элемента данных полезной нагрузки,
отличающийся тем, что
защита целостности дополнительно содержит вычисление эталонного значения кода аутентификации сообщения по меньшей мере для контрольного значения хэш-функции, вычисленного во время указанного процесса криптографической аутентификации, причем вычисление значения кода аутентификации сообщения использует в качестве входных данных секретный ключ, хранящийся в устройстве обработки данных.
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. Способ по п.1, в котором процесс криптографической аутентификации включает в себя этапы, на которых:
принимают эталонное значение хэш-функции; и
сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.
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.
3. Способ по п.2, в котором процесс криптографической аутентификации включает в себя подписание с помощью цифровой подписи элемента данных в соответствии с криптосистемой с открытым ключом.3. The method of claim 2, wherein the cryptographic authentication process includes digitally signing a data item in accordance with a public key cryptosystem. 4. Способ по п.3, содержащий этапы, на которых:
принимают элемент данных полезной нагрузки, элемент данных цифровой подписи и подписанный с помощью цифровой подписи элемент данных цифрового сертификата, причем элемент данных цифрового сертификата включает в себя первый открытый ключ, и причем элемент данных цифровой подписи включает в себя эталонное значение хэш-функции, зашифрованное с первым закрытым ключом, соответствующим первому открытому ключу;
аутентифицируют подписанный с помощью цифровой подписи элемент данных цифрового сертификата по отношению к корневому открытому ключу, хранящемуся в устройстве обработки данных;
аутентифицируют элемент данных цифровой подписи по отношению к аутентифицированному цифровому сертификату;
сравнивают принятое эталонное значение хэш-функции с вычисленным контрольным значением хэш-функции для проверки подлинности принятого элемента данных полезной нагрузки.
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.
5. Способ по п.3 или 4, дополнительно содержащий криптографическую аутентификацию эталонного значения хэш-функции; и в котором вычисление эталонного значения кода аутентификации сообщения выполняют, только если эталонное значение хэш-функции успешно аутентифицировано.5. The method according to claim 3 or 4, further comprising cryptographic authentication of the reference value of the hash function; and in which the calculation of the reference value of the authentication code of the message is performed only if the reference value of the hash function is successfully authenticated. 6. Способ по п.1, в котором защита целостности дополнительно содержит хранение вычисленного эталонного значения кода аутентификации сообщения для принятого элемента данных полезной нагрузки.6. The method of claim 1, wherein the integrity protection further comprises storing a computed message authentication code reference value for a received payload data element. 7. Способ по п.1, в котором вычисление эталонного значения кода аутентификации сообщения дополнительно содержит вычисление эталонного значения кода аутентификации сообщения для объединенного элемента данных, полученного по меньшей мере из контрольного значения хэш-функции и случайного числа.7. The method according to claim 1, in which the calculation of the reference value of the authentication code of the message further comprises calculating the reference value of the authentication code of the message for the combined data item obtained from at least the control value of the hash function and a random number. 8. Способ по п.1, в котором вычисление эталонного значения кода аутентификации сообщения дополнительно содержит вычисление эталонного значения кода аутентификации сообщения для объединенного элемента данных, полученного по меньшей мере из контрольного значения хэш-функции и элемента данных контроля версии.8. The method according to claim 1, wherein calculating a reference value of the message authentication code further comprises calculating a reference value of the message authentication code for the combined data item obtained from at least the hash control value and the version control data item. 9. Способ по п.8, дополнительно содержащий хранение записи данных контроля версии в структуре данных контроля версии, причем запись данных контроля версии включает в себя информацию о принятом элементе данных полезной нагрузки, включающем в себя по меньшей мере элемент данных контроля версии.9. The method of claim 8, further comprising storing a record of the version control data in the structure of the version control data, wherein the record of the version control data includes information about a received payload data element including at least a version control data element. 10. Способ по п.9, в котором обеспечивают защиту целостности сохраненной записи данных контроля версии.10. The method according to claim 9, in which the integrity of the stored record of version control data is protected. 11. Способ по п.9 или 10, в котором запись данных контроля версии содержит счетчик версии.11. The method according to claim 9 or 10, wherein the recording of version control data comprises a version counter. 12. Способ по п.11, в котором запись данных контроля версии дополнительно содержит обратный счетчик, идентифицирующий количество предыдущих версий, которыми можно заменять текущую версию элемента данных полезной нагрузки.12. The method according to claim 11, in which the recording of version control data further comprises a countdown counter identifying the number of previous versions with which the current version of the payload data element can be replaced. 13. Способ по п.1, в котором секретный ключ является секретным элементом данных, уникальным для устройства обработки данных.13. The method according to claim 1, in which the secret key is a secret data element that is unique to the data processing device. 14. Способ по п.1, в котором секретный ключ является секретным элементом данных, известным только устройству обработки данных.14. The method according to claim 1, in which the secret key is a secret data element, known only to the data processing device. 15. Способ по п.1, в котором прием элемента данных полезной нагрузки содержит прием дельта-обновления ранее принятого текущего элемента данных и генерацию элемента данных полезной нагрузки как обновленного элемента данных полезной нагрузки из ранее принятого текущего элемента данных и принятого дельта-обновления.15. The method according to claim 1, wherein receiving a payload data element comprises receiving a delta update of a previously received current data element and generating a payload data element as an updated payload data element from a previously received current data element and a received delta update. 16. Считываемый компьютером носитель, содержащий средства кода программы, выполненные с возможностью побуждения устройства обработки данных выполнять этапы способа по любому из пп.1-15, когда указанную компьютерную программу выполняют в устройстве обработки данных.16. A computer-readable medium comprising program code means configured to cause the data processing device to perform the steps of the method according to any one of claims 1 to 15, when said computer program is executed in the data processing device. 17. Устройство обработки данных, содержащее первую схему обработки, выполненную с возможностью выполнения способа по любому из пп.1-15.17. A data processing device containing a first processing circuit, configured to perform the method according to any one of claims 1 to 15. 18. Устройство обработки данных по п.17, дополнительно содержащее средство хранения, выполненное с возможностью хранения принятого элемента данных полезной нагрузки; и вторую схему обработки, связанную со средством хранения и с первой схемой обработки; причем вторую схему обработки выполняют с возможностью обеспечения первой схеме обработки по меньшей мере доступа для чтения к средству хранения.18. The data processing apparatus according to claim 17, further comprising 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. 19. Устройство обработки данных по п.17 или 18, в котором первая схема обработки содержит локальное средство хранения, предназначенное для хранения корневого открытого ключа асимметричной криптографической системы.19. The data processing device according to claim 17 or 18, wherein the first processing circuit comprises a local storage means for storing the root public key of an asymmetric cryptographic system. 20. Устройство обработки данных по п.17, в котором первая схема обработки содержит локальное средство хранения, предназначенное для хранения указанного секретного ключа.20. The data processing apparatus according to claim 17, wherein the first processing circuit comprises a local storage means for storing said secret key. 21. Способ защиты целостности текущей версии элемента данных, хранящегося в устройстве обработки данных, причем способ содержит этапы, на которых:
определяют эталонное значение хэш-функции по меньшей мере элемента данных;
вычисляют эталонное значение кода аутентификации сообщения из определенного эталонного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;
сохраняют вычисленное эталонное значение кода аутентификации сообщения для элемента данных,
отличающийся тем, что
вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из части записи данных контроля версии, причем запись данных контроля версии включает в себя счетчик версии; и в котором вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции, и по меньшей мере счетчик версии.
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.
22. Способ по п.21, в котором запись данных контроля версии дополнительно содержит обратный счетчик, идентифицирующий количество предыдущих версий, которыми можно заменять текущую версию; и в котором вычисление эталонного значения кода аутентификации сообщения содержит вычисление эталонного значения кода аутентификации сообщения из объединенного элемента данных, полученного из определенного эталонного значения хэш-функции и по меньшей мере из обратного счетчика.22. The method according to item 21, in which the record of version control data further comprises a countdown counter identifying the number of previous versions with which the current version can be replaced; and in which the calculation of the reference value of the authentication code of the message includes the calculation of the reference value of the authentication code of the message from the combined data item obtained from a specific reference value of the hash function and at least from a countdown counter. 23. Способ по любому из пп.21 и 22, в котором запись данных контроля версии дополнительно содержит эталонное значение хэш-функции для текущей версии элемента данных.23. The method according to any one of paragraphs.21 and 22, in which the record version control data further comprises a reference hash value for the current version of the data item. 24. Способ по п.21, дополнительно содержащий генерацию записи данных контроля версии; и сохранение записи данных контроля версии в структуре данных контроля версии.24. The method of claim 21, further comprising generating a version control data record; and storing the version control data record in the version control data structure. 25. Способ по п.24, дополнительно содержащий обеспечение защиты целостности записи данных контроля версии.25. The method according to paragraph 24, further comprising protecting the integrity of the record data version control. 26. Способ по п.21, в котором секретный ключ является секретным элементом данных, уникальным для устройства обработки данных.26. The method according to item 21, in which the secret key is a secret data element that is unique to a data processing device. 27. Способ по п.21, в котором секретный ключ является секретным элементом данных, известным только устройству обработки данных.27. The method according to item 21, in which the secret key is a secret data element, known only to the data processing device. 28. Способ по п.21, дополнительно содержащий этапы, на которых:
принимают дельта-обновление ранее принятого текущего элемента данных; и
генерируют элемент данных, как обновленный элемент данных, из ранее принятого текущего элемента данных и принятого дельта-обновления.
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. Способ проверки целостности текущей версии элемента данных, хранящегося в устройстве обработки данных, причем способ содержит этапы, на которых:
вычисляют контрольное значение хэш-функции элемента данных;
вычисляют контрольное значение кода аутентификации сообщения из вычисленного контрольного значения хэш-функции, используя секретный ключ, хранящийся в устройстве обработки данных;
сравнивают вычисленное контрольное значение кода аутентификации сообщения с эталонным значением кода аутентификации сообщения, хранящимся для элемента данных,
отличающийся тем, что
способ дополнительно содержит извлечение записи данных контроля версии, причем запись данных контроля версии включает в себя счетчик версии, указывающий текущую версию элемента данных; и
что вычисление контрольного значения кода аутентификации сообщения содержит вычисление контрольного значения кода аутентификации сообщения из объединенного элемента данных, полученного из вычисленного контрольного значения хэш-функции, и по меньшей мере счетчик версии.
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.
30. Способ по п.21 или 29, в котором элемент данных загружают с помощью выполнения способа по любому из пп.1-15.30. The method according to item 21 or 29, in which the data item is loaded using the method according to any one of claims 1 to 15. 31. Устройство обработки данных, содержащее средство хранения, для хранения текущей версии элемента данных и записи данных контроля версии, причем запись данных контроля версии включает в себя информацию контроля версии о текущей версии элемента данных; и средство обработки, выполненное с возможностью выполнения способа по любому из пп.21-28.31. A data processing device comprising storage means for storing a current version of a data item and recording version control data, the recording of version control data including version control information about a current version of the data item; and processing means configured to perform the method according to any one of paragraphs.21-28. 32. Устройство обработки данных, содержащее средство хранения, для хранения текущей версии элемента данных и записи данных контроля версии, причем запись данных контроля версии включает в себя информацию контроля версии о текущей версии элемента данных; и средство обработки, выполненное с возможностью выполнения способа по любому из пп.29 и 30.32. A data processing device comprising storage means for storing a current version of a data item and recording version control data, the recording of version control data including version control information about a current version of the data item; and processing means configured to perform the method according to any one of claims 29 and 30. 33. Считываемый компьютером носитель, содержащий средства кода программы, выполненные с возможностью предписывания устройству обработки данных выполнять этапы способа по любому из пп.21-28, когда указанную компьютерную программу выполняют в устройстве обработки данных.33. A computer-readable medium comprising program code means configured to cause a data processing device to perform the steps of a method according to any one of claims 21 to 28 when said computer program is executed on the data processing device. 34. Считываемый компьютером носитель, содержащий средства кода программы, выполненные с возможностью предписывания устройству обработки данных выполнять этапы способа по любому из пп.29 и 30, когда указанную компьютерную программу выполняют в устройстве обработки данных. 34. A computer-readable medium comprising program code means configured to cause the data processing device to perform the steps of the method according to any of claims 29 and 30 when said computer program is executed on the data processing device.
RU2007117505/08A 2004-10-11 2005-09-07 Protected data loading and storage in data processing device RU2408071C2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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