ВЗАИМНАЯ АУТЕНТИФИКАЦИЯ ПРОГРАММНЫХ УРОВНЕЙ

1. Способ установления взаимной аутентификации между первым программным уровнем и вторым программным уровнем приложения с использованием ключа шифрования данных, сформированного на основе первого специального значения, сгенерированного первым программным уровнем, и второго специального значения, сгенерированного вторым программным уровнем, во время инициализации приложения, содержащий:
извлечение первым программным уровнем приложения, исполняемого на вычислительном устройстве, связывающей информации, сохраненной первым программным уровнем во время инициализации приложения;
расшифровку первым программным уровнем связывающей информации для получения второго специального значения;
прием первым программным уровнем зашифрованного первого специального значения со второго программного уровня приложения;
расшифровку первым программным уровнем зашифрованного первого специального значения для получения первого специального значения;
формирование первым программным уровнем ключа шифрования данных на основе первого специального значения и второго специального значения; и
шифрование первым программным уровнем данных, отправляемых с первого программного уровня на второй программный уровень, с использованием ключа шифрования данных.
2. Способ по п. 1, дополнительно содержащий:
расшифровку первым программным уровнем связывающей информации для получения информации о времени инициализации; и
определение первым программным уровнем динамической временной информации на основе информации о времени инициализации, причем ключ шифрования данных дополнительно формируют на основе динамической временной информации.
3. Способ по п. 2, в котором ключ шифрования данных формируют путем:
сочетания первого специального значения и второго специального значения для генерирования комбинированного специального значения;
соединения комбинированного специального значения с динамической временной информацией; и
хеширования результата соединения.
4. Способ по п. 2, дополнительно содержащий:
перед извлечением связывающей информации:
прием со второго программного уровня зашифрованного второго специального значения и зашифрованной информации о времени инициализации;
расшифровку первым программным уровнем зашифрованного второго специального значения и зашифрованной информации о времени инициализации для получения второго специального значения и информации о времени инициализации;
повторное шифрование первым программным уровнем второго специального значения и информации о времени инициализации для генерирования повторно зашифрованного второго специального значения и повторно зашифрованной информации о времени инициализации; и
сохранение повторно зашифрованного второго специального значения и повторно зашифрованной информации о времени инициализации в качестве связывающей информации.
5. Способ по п. 1, дополнительно содержащий:
перед извлечением связывающей информации:
генерирование первым программным уровнем первого специального значения;
шифрование первым программным уровнем первого специального значения; и
отправку первым программным уровнем зашифрованного первого специального значения на второй программный уровень.
6. Способ по п. 4, в котором первое специальное значение шифруют с использованием связывающего ключа, сформированного, по меньшей мере, из связанного с вычислительным устройством идентификатора вычислительного устройства.
7. Способ по п. 4, в котором первое специальное значение шифруют с использованием связывающего ключа, сформированного, по меньшей мере, из связанного с эмитентом приложения идентификатора эмитента.
8. Способ установления взаимной аутентификации между первым программным уровнем и вторым программным уровнем приложения с использованием ключа шифрования данных, сформированного на основе первого специального значения, сгенерированного первым программным уровнем, и второго специального значения, сгенерированного вторым программным уровнем, во время инициализации приложения, содержащий:
извлечение вторым программным уровнем, исполняемым на вычислительном устройстве, связывающей информации, сохраненной вторым программным уровнем во время инициализации приложения;
расшифровку вторым программным уровнем связывающей информации для получения первого специального значения;
прием вторым программным уровнем зашифрованного второго специального значения с первого программного уровня;
расшифровку вторым программным уровнем зашифрованного второго специального значения для получения второго специального значения;
формирование вторым программным уровнем ключа шифрования данных на основе первого специального значения и второго специального значения; и
шифрование вторым программным уровнем данных, отправляемых со второго программного уровня на первый программный уровень, с использованием ключа шифрования данных.
9. Способ по п. 8, дополнительно содержащий:
расшифровку вторым программным уровнем связывающей информации для получения информации о времени инициализации; и
определение вторым программным уровнем динамической временной информации на основе информации о времени инициализации, причем ключ шифрования данных дополнительно формируют на основе динамической временной информации.
10. Способ по п. 9, в котором ключ шифрования данных формируют путем:
сочетания первого специального значения и второго специального значения для генерирования комбинированного специального значения;
соединения комбинированного специального значения с динамической временной информацией; и
хеширования результата соединения.
11. Способ по п. 8, дополнительно содержащий:
перед извлечением связывающей информации:
прием с первого программного уровня зашифрованного первого специального значения;
расшифровку вторым программным уровнем зашифрованного первого специального значения для получения первого специального значения;
повторное шифрование вторым программным уровнем первого специального значения для генерирования повторно зашифрованного первого специального значения;
шифрование информации о времени инициализации для генерирования зашифрованной информации о времени инициализации; и
сохранение повторно зашифрованного первого специального значения и зашифрованной информации о времени инициализации в качестве связывающей информации.
12. Способ по п. 8, дополнительно содержащий:
перед извлечением связывающей информации:
генерирование вторым программным уровнем второго специального значения;
шифрование вторым программным уровнем второго специального значения;
шифрование вторым программным уровнем информации о времени инициализации; и
отправку зашифрованного второго специального значения и зашифрованной информации о времени инициализации на первый программный уровень.
13. Способ по п. 12, в котором второе специальное значение и информацию о времени инициализации шифруют с использованием связывающего ключа, сформированного, по меньшей мере, из связанного с вычислительным устройством идентификатора вычислительного устройства.
14. Способ по п. 12, в котором первое специальное значение шифруют с использованием связывающего ключа, сформированного, по меньшей мере, из первого специального значения, сгенерированного первым программным уровнем.
15. Вычислительное устройство, содержащее:
процессор; и
память, соединенную с процессором и хранящую машиночитаемый код для реализации приложения, имеющего первый программный уровень и второй программный уровень;
причем машиночитаемый код при его исполнении процессором приводит к выполнению первым программным уровнем:
приема зашифрованного первого специального значения со второго программного уровня;
расшифровки зашифрованного первого специального значения для получения первого специального значения;
извлечения первой связывающей информации, сохраненной первым программным уровнем во время инициализации приложения;
расшифровки первой связывающей информации для получения второго специального значения; и
формирования ключа шифрования данных на основе первого специального значения и второго специального значения;
при этом код при его исполнении процессором приводит к выполнению вторым программным уровнем:
извлечения второй связывающей информации, сохраненной вторым программным уровнем во время инициализации приложения;
расшифровки второй связывающей информации для получения первого специального значения;
приема зашифрованного второго специального значения с первого программного уровня;
расшифровки зашифрованного второго специального значения для получения второго специального значения;
формирования ключа шифрования данных на основе первого специального значения и второго специального значения; и
при этом данные, передаваемые между первым и вторым программными уровнями, шифруются с использованием ключа шифрования данных.
16. Вычислительное устройство по п. 15, в котором ключ шифрования данных формируется дополнительно на основе динамической временной информации, представляющей время, прошедшее с момента инициализации приложения.
17. Вычислительное устройство по п. 16, в котором информация о времени инициализации, представляющая время инициализации приложения, генерируется вторым программным уровнем во время инициализации приложения и предоставляется на первый программный уровень вторым программным уровнем.
18. Вычислительное устройство по п. 17, в котором информация о времени инициализации шифруется перед предоставлением на первый программный уровень.
19. Вычислительное устройство по п. 18, в котором информация о времени инициализации шифруется с использованием связывающего ключа, сформированного по меньшей мере из первого специального значения.
20. Вычислительное устройство по п. 18, в котором связывающий ключ формируется, по меньшей мере, из связанного с вычислительным устройством идентификатора вычислительного устройства.