ОБНОВЛЕНИЕ РАБОЧЕЙ СИСТЕМЫ ДЛЯ ЗАЩИЩЕННОГО ЭЛЕМЕНТА
UPDATE OF WORKING SYSTEM FOR SECURE ELEMENT

Уровень техники
Настоящее изобретение относится к области встроенных защищенных элементов, таких как смарт-карты.
Встроенный защищенный элемент, например, смарт-карта обычно имеет архитектуру компьютера и содержит, в частности, микропроцессор и энергонезависимое запоминающее устройство, содержащее компьютерные программы, исполняемые микропроцессором. В частности, энергонезависимое запоминающее устройство содержит рабочую систему, загружаемую производителем защищенного элемента до его предоставления в распоряжение пользователя.
После поставки защищенного элемента пользователю может возникнуть необходимость в обновлении рабочей системы.
В документе WO 2012/062632 описан способ обновления программы во встроенном элементе. Этот способ включает в себя стирание программы, загрузку программы управления обновлением вместо стертой программы, которая загружает программу инициирования обновления в момент запуска встроенного элемента. Защита этого решения основана только на отпечатке программы. Следовательно, это решение нельзя применять для приложений, требующих высокой степени защиты. Кроме того, этот способ требует осуществления двух запусков защищенного элемента.
Таким образом, существует потребность в надежном и защищенном способе обновления программы защищенного элемента.
Объект и раскрытие изобретения
Изобретением предлагается защищенный элемент, содержащий, по меньшей мере, микропроцессор, энергонезависимое запоминающее устройство и интерфейс связи, при этом защищенный элемент выполнен с возможностью установления связи с устройством обновления через интерфейс связи, запоминающее устройство содержит программу инициирования, а микропроцессор выполнен с возможностью исполнения программы инициирования во время запуска защищенного элемента. Этот защищенный элемент отличается тем, что программа инициирования содержит команды для осуществления:
- этапа запуска для определения, содержит ли энергонезависимое запоминающее устройство активную рабочую систему, и при положительном результате - для запуска исполнения рабочей системы,
- этапа аутентификации устройства обновления в зависимости от первых данных аутентификации, определяемых защищенным элементом, и от вторых данных аутентификации, получаемых устройством обновления,
- в ответ на этап аутентификации - этапа сохранения новой рабочей системы, получаемой от устройства обновления, в энергонезависимом запоминающем устройстве и этапа активации новой рабочей системы,
при исполнении указанных команд микропроцессором.
Таким образом, программа инициирования обеспечивает обновление рабочей системы надежным и безопасным образом. Действительно, поскольку это обновление требует аутентификации устройства обновления, постороннее лицо не может загрузить в защищенный элемент фальсифицированную версию рабочей системы.
Согласно варианту выполнения, этап аутентификации устройства обновления содержит:
- этап передачи сообщения, содержащего переменную, в устройство обновления,
- этап приема вторых данных аутентификации,
- этап определения первых данных аутентификации в зависимости от указанной переменной и от ключа, хранящегося в указанном энергонезависимом запоминающем устройстве, и
- этап сравнения первых данных аутентификации и вторых данных аутентификации.
Таким образом, сама программа инициирования содержит все команды, необходимые для осуществления аутентификации устройства обновления. Следовательно, обновление рабочей системы может быть инициировано и продолжено, если энергонезависимое запоминающее устройство не содержит рабочей системы или если рабочая система была деактивирована, например, во время неудачной предыдущей попытки обновления.
Программа инициирования может также содержать команды для осуществления этапа передачи сообщения, содержащего данные, зашифрованные в зависимости от ключа и от указанной переменной, в устройство обновления.
Это позволяет устройству обновления аутентифицировать защищенный элемент. Таким образом, происходит взаимная аутентификация между защищенным элементом и устройством обновления. Следовательно, только защищенный элемент может получить новую версию рабочей системы.
Согласно варианту выполнения, энергонезависимое запоминающее устройство содержит рабочую систему, включающую в себя команды для осуществления:
- этапа передачи сообщения, содержащего переменную, в устройство обновления,
- этапа приема вторых данных аутентификации,
- в случае необходимости, этапа передачи сообщения, содержащего данные, зашифрованные в зависимости от ключа и переменной, в устройство обновления.
В этом случае, если энергонезависимое запоминающее устройство содержит активную рабочую систему, последняя содержит команды, позволяющие ей участвовать в аутентификации во взаимодействии с программой инициирования. Следовательно, обновление рабочей системы может быть инициировано во время нормальной работы защищенного элемента, когда его работой управляет рабочая система.
Этап сохранения может содержать прием новой рабочей системы в зашифрованном виде.
Таким образом, постороннее лицо, которое перехватывает связь между устройством обновления и защищенным элементом, не может получить новую версию рабочей системы.
В этом случае этап аутентификации может включать в себя определение ключа сеанса связи в зависимости от указанного ключа и указанной переменной, а этап сохранения может включать в себя прием новой рабочей системы, зашифрованной при помощи указанного ключа сеанса связи.
Поскольку один и тот же ключ сеанса связи используют для аутентификации и для зашифрованной связи, это позволяет ограничить необходимые криптографические ресурсы в защищенном элементе.
Из соображений безопасности и надежности сохранение программы инициирования происходит без возможности ее изменения.
Например, сохранение программы инициирования происходит в неперезаписываемой части энергонезависимого запоминающего устройства.
В варианте выполнения сохранение программы инициирования происходит в перезаписываемой части энергонезависимого запоминающего устройства, при этом энергонезависимое запоминающее устройство содержит рабочую систему, выполненную с возможностью блокировки команд записи в программе инициирования.
Объектом изобретения является также терминал, содержащий, по меньшей мере, микропроцессор, энергонезависимое запоминающее устройство и защищенный элемент в соответствии с настоящим изобретением, при этом энергонезависимое запоминающее устройство терминала содержит программу управления обновлением и приложение, предназначенное для использования сервиса, предоставляемого защищенным элементом, при этом программа управления обновлением содержит команды для выполнения:
- этапа передачи, включающего в себя прием новой рабочей системы от устройства обновления и передачу принятой новой рабочей системы в защищенный элемент,
- этапа деактивации указанного сервиса, по меньшей мере, во время этапа передачи,
при исполнении указанных команд микропроцессором терминала.
Объектом изобретения является также система, содержащая, по меньшей мере, один защищенный элемент в соответствии с изобретением и устройство обновления, содержащее в памяти новую версию рабочей системы.
Краткое описание чертежей
Другие отличительные признаки и преимущества настоящего изобретения будут более очевидны из нижеследующего описания со ссылками на прилагаемые чертежи, иллюстрирующие не ограничительный пример выполнения, на которых:
фиг.1 - система, включающая в себя защищенный элемент согласно варианту выполнения изобретения;
фиг.2 - основные этапы исполнения программы инициирования защищенного элемента, показанного на фиг.1;
фиг.3 - взаимодействия в системе, показанной на фиг.1, во время обновления рабочей системы защищенного элемента;
фиг.4А, 4В, 4С и 4D - состояние энергонезависимого запоминающего устройства защищенного элемента, показанного на фиг.1, в разные моменты;
фиг.5А, 5В, 5С и 5D - энергонезависимое запоминающее устройство защищенного элемента, показанного на фиг.1, с иллюстрацией обработки команд;
фиг.6 и 7 - пример определения блока, содержащего зашифрованную новую версию рабочей системы.
Подробное описание варианта выполнения
На фиг.1 показана система, которая содержит устройство 10 обновления, терминал 20 и защищенный элемент 30, встроенный в терминал 20.
Устройство 10 обновления имеет материальную архитектуру компьютера и содержит, в частности, микропроцессор 11, интерфейс 12 связи, энергозависимое запоминающее устройство 13 и энергонезависимое запоминающее устройство 14. Микропроцессор 11 обеспечивает исполнение компьютерных программ, записанных в энергонезависимом запоминающем устройстве 14, используя энергозависимое запоминающее устройство 13 в качестве рабочего пространства. Интерфейс 12 связи позволяет устанавливать связь с терминалом 20.
Энергонезависимое запоминающее устройство 14 запоминает, в частности, новую версию рабочей системы для защищенного элемента, обозначенную OS(V2), а также секретный ключ К.
Устройство 10 обновления является, например, сервером обновления, расположенным в помещении производителя защищенных элементов. В этом случае интерфейс 12 связи позволяет устанавливать связь с терминалом 20 через телекоммуникационную сеть, например, через Интернет. В варианте устройство 10 обновления само представляет собой защищенный элемент, например, карту SD, карту NFS или память USB. В этом случае интерфейс 12 связи позволяет устанавливать связь с терминалом 20 через устройство считывания защищенного элемента.
Терминал 20 является, например, портативным терминалом, принадлежащим пользователю, например, мобильным телефоном.
Терминал 20 имеет материальную архитектуру компьютера и содержит, в частности, микропроцессор 21, интерфейс 22 связи, энергозависимое запоминающее устройство 23, энергонезависимое запоминающее устройство 24 и интерфейс 26 связи. Микропроцессор 21 обеспечивает исполнение компьютерных программ, записанных в энергонезависимом запоминающем устройстве 24, используя энергозависимое запоминающее устройство 23 в качестве рабочего пространства. Интерфейс 22 связи позволяет устанавливать связь с устройством 10 обновления. Интерфейс 26 связи позволяет устанавливать связь с защищенным элементом 30.
Энергонезависимое запоминающее устройство 24 запоминает, в частности, рабочую систему 25 терминала 20, программу Р1 управления обновлением, а также данные и приложения пользователя, из которых показано приложение А1.
Программа Р1 предназначена для управления связью между защищенным элементом 30 и устройством 10 обновления для обеспечения обновления рабочей системы защищенного элемента 30. Предпочтительно программа Р1 представляет собой модуль, интегрированный в рабочую систему 25 терминала 20, как показано на фиг.1.
Защищенный элемент 30 является, например, съемной смарт-картой, установленной в терминале 20.
Защищенный элемент 30 имеет материальную архитектуру компьютера и содержит, в частности, микропроцессор 31, интерфейс 36 связи, энергозависимое запоминающее устройство 33 и энергонезависимое запоминающее устройство 34. Микропроцессор 31 обеспечивает исполнение компьютерных программ, записанных в энергонезависимом запоминающем устройстве 34, используя энергозависимое запоминающее устройство 33 в качестве рабочего пространства. Интерфейс 36 связи позволяет устанавливать связь с терминалом 20.
i
i
Энергонезависимое запоминающее устройство 34 содержит, в частности, программу 38 инициирования (обозначенную BL от "Boot Loader"), рабочую систему 35, данные 37 пользователя, ключ MK, серийный номер N, индикатор 39 состояния рабочей системы 35 и переменную 70, характеризующую значение счетчика С аутентификации.
Рабочая система 35 в представленном виде является первой версией, обозначенной OS(V1), отличной от версии OS(V2), записанной в устройстве 10 обновления.
Индикатор 39 состояния рабочей системы 35 может принимать значение «активная» или «не активная». Например, речь идет о бите признака состояния, записанном в рабочей системе 35 или в другом месте в энергонезависимом запоминающем устройстве 34. Его роль будет описана ниже.
Счетчик С аутентификации первоначально устанавливают на определенное значение, например, на 50. Во время процесса обновления рабочей системы происходит декрементация счетчика С. В конце процесса обновления, в случае его удачного исхода, производят переустановку счетчика. Если значение счетчика С становится ниже определенного порога, например, 3, это значит, что слишком много попыток обновления рабочей системы 35 оказались неудачными. В этом случае процесс обновления блокируется. При этом обновление рабочей системы 35 становится невозможным посредством установления связи с устройством 10 обновления. Однако можно произвести повторную инициализацию защищенного элемента и загрузить в него новую рабочую систему, обратившись к сервисному провайдеру, имеющему специальные права доступа.
i
i
i
i
i
i
i
i
Ключ MK и серийный номер N соответствуют секретному ключу К, хранящемуся в устройстве 10 обновления, и записаны, например, в программе 38 инициирования. В частности, устройство 10 обновления содержит средства вывода данных, позволяющие определить ключ MK, соответствующий серийному номеру N защищенного элемента i, согласно процедуре, которая является секретной. В не представленном варианте устройство 10 обновления хранит ключи MK и серийные номера N множества защищенных элементов. В обоих случаях устройство 10 обновления может определить ключ MK, соответствующий серийному номеру N.
Данные 37 пользователя содержат, в частности, приложения, из которых показано приложение А2, и персональные данные, из которых показан набор D1. Рабочая система 35 обеспечивает управление приложениями, загруженными в защищенный элемент 30. Эти приложения являются, например, защищенными приложениями, обеспечивающими доступ к платежным и транспортным сервисам и использующими интерфейс связи терминала 20 типа NFC.
Программа 38 инициирования содержит, в частности, интерфейс API программирования, обеспечивающий взаимодействие между программой 38 инициирования и рабочей системой 35 во время их исполнения.
Связь между терминалом 20 и защищенным элементом 30 через интерфейсы 26 и 36 связи основана, например, на обмене данных ADPU в соответствии со стандартом ISO/IEC 7816-4.
Микропроцессор 31 конфигурирован с возможностью исполнения программы 38 инициирования во время запуска защищенного элемента 30. При нормальной работе программа 38 инициирования запускает исполнение рабочей системы 35. При этом рабочая система 35 управляет исполнением приложений и интерпретацией команд, принимаемых через интерфейс 36.
Программа 38 инициирования записана без возможности ее изменения. Например, программа 38 инициирования записана в части энергонезависимого запоминающего устройства 34 типа ROM. В этом случае программа 38 инициирования может входить в состав первоначальной программы инициирования, используемой производителем защищенного элемента 30 для загрузки рабочей системы 35 во время ввода в эксплуатацию защищенного элемента 30. В варианте программа 38 инициирования записана в перезаписываемой части энергонезависимого запоминающего устройства 24, например, типа памяти Flash. В этом случае рабочая система 35 конфигурирована с возможностью блокировки любой команды на запись в этой части запоминающего устройства.
Далее следует описание работы системы, показанной на фиг.1, в частности, обновления рабочей системы 35 с целью замены первой версии OS(V1) на вторую версию OS(V2).
На фиг.2 представлена блок-схема основных этапов способа работы защищенного элемента 30, соответствующих исполнению программы 38 инициирования. На фиг.3 представлена диаграмма сообщений, которыми обмениваются устройство 10 обновления, терминал 20 и защищенный элемент 30 во время способа работы, показанного на фиг.2.
Этот способ работы начинается на этапе Е0 во время запуска защищенного элемента 30. Как было указано выше, микропроцессор 31 выполнен с возможностью запуска исполнения программы 38 инициирования во время запуска защищенного элемента 30. Например, программа 38 инициирования находится в заранее определенном месте энергонезависимого запоминающего устройства 34, называемом сектором запуска, к которому первоначально обращается микропроцессор 31.
Затем на этапе Е1 защищенный элемент 30 определяет, является ли активной рабочая система 35. В частности, если энергонезависимое запоминающее устройство 34 содержит рабочую систему 35 и если индикатор 30 состояния показывает значение «активная», то считается, что рабочая система 35 является активной. В противном случае, если энергонезависимое запоминающее устройство 35 не содержит рабочую систему 35 или если индикатор 39 состояния показывает значение «не активная», считается, что рабочая система 35 является не активной.
Если рабочая система 35 является активной, то на этапе Е12 программа 38 инициирования запускает исполнение рабочей системы 35. Это соответствует режиму нормальной работы защищенного элемента 30, во время которой рабочая система 35 управляет исполнением приложений и команд, принимаемых через интерфейс 36 связи.
В противном случае, если рабочая система 35 является не активной, программа 38 инициирования не запускает исполнение рабочей системы 35. Иначе говоря, программа 38 инициирования остается главной программой. Это значит, в частности, что командами, принимаемыми через интерфейс 36 связи, управляет программа 38 инициирования.
Таким образом, когда программа Р1 управления обновлением терминала 20 передает сообщения М3 и М4, предназначенные для запуска процесса обновления рабочей системы 35, эти сообщения М3 и М4 принимает либо программа 38 инициирования (этап Е2), если рабочая система 35 является не активной, либо рабочая система 35 (этап F2), если она является активной. Ниже сначала следует описание процесса обновления рабочей системы 35 в случае, когда рабочая система 35 является не активной (этапы Е2-Е11), затем в случае, когда рабочая система 35 является активной (этапы F2-F5, Е13, Е14, F8, Е15 и Е9-Е11).
Как показано на фиг.3, терминал 20 отправляет сообщение M1 в устройство 10 обновления, запрашивая у него последнюю доступную версию рабочей системы. Передача сообщения M1 является частью исполнения программы Р1 и может осуществляться, например, периодически или при соблюдении заранее определенного условия.
Устройство 10 обновления отвечает на сообщение M1 сообщением М2, в котором уточняется доступная версия: V=V2.
Затем терминал 20 передает сообщение М3 в защищенный элемент 30 для выбора приложения обновления, то есть части программы 38 инициирования или рабочей системы 35, отвечающей за исполнение этапов Е2 и следующих или F2 и следующих. Сообщение М3 является, например, новой командой типа ADPU, называемой "OS loader Application Selection".
После этого терминал 20 отправляет сообщение М4 в защищенный элемент 30, чтобы информировать его о новой доступной версии V2. Защищенный элемент 30 принимает сообщение М4 на этапе 2. В частности, в настоящем примере, где рабочая система является не активной, сообщением М4 управляет напрямую программа 38 инициирования. Сообщение М4 является, например, новой командой типа ADPU, называемой "PUSH AVAILABLE VERSION".
Затем на этапе Е3 защищенный элемент 30 определяет версию рабочей системы. Например, программа 38 инициирования запрашивает рабочую систему 35, используя интерфейс API программирования. Если рабочая система 35 присутствует, она отвечает, общая свою версию V. Если рабочая система отсутствует, программа 38 инициирования учитывает версию V по умолчанию, которую она хранит и которая соответствует версии рабочей системы 35, первоначально загруженной в защищенный элемент 30 производителем. При этом защищенный элемент 30 проверяет, чтобы версия V, принятая в сообщении М4, была выше, чем текущая версия рабочей системы 35, то есть в данном примере V1.
i
Если версия V, принятая в сообщении М4, выше текущей версии рабочей системы 35, то на этапе Е4 защищенный элемент 30 передает сообщение М5 в устройство 10 обновления через терминал 20, который добавляет к нему сообщение М5’. Сообщение М5 содержит серийный номер N защищенного элемента 30, случайное число RAND и значение счетчика С аутентификации (переменная 70).
i
i
i
i
i
i
10
10
В зависимости от серийного номера N, содержащегося в сообщении М5’, устройство 10 обновления определяет соответствующий ключ MK либо в зависимости от серийного номера N и от секретного ключа К согласно вышеупомянутой процедуре вывода данных, либо сверяя хранящийся в нем ключ MK с принятым серийным номером N. После этого устройство 10 обновления определяет ключ SK сеанса связи в зависимости от определенного ключа MK и от принятого случайного числа RAND и данные аутентификации AUTH посредством шифрования случайного числа RAND при помощи ключа SK сеанса связи. При этом устройство 10 обновления отправляет сообщение М6, содержащее данные аутентификации AUTH, в защищенный элемент 30 через терминал 20, который добавляет к нему сообщение М6’. Сообщение М6’ является, например, новой командой типа ADPU, называемой "MUTUAL AUTHENTIFICATION".
i
30
Защищенный элемент 30 принимает сообщение М6’ на этапе Е5. В ответ на прием сообщения М6’ защищенный элемент 30 определяет на этапе Е6 ключ SK сеанса связи, обычный идентичный с ключом SK сеанса связи, определенным устройством 10 обновления, в зависимости от главного ключа MK и от случайного числа RAND, и данные аутентификации AUTH посредством шифрования случайного числа RAND при помощи определенного ключа SK сеанса связи. Защищенный элемент 30 производит также декрементацию счетчика С аутентификации.
10
30
Затем на этапе Е7 защищенный элемент 30 сравнивает данные аутентификации AUTH и AUTH. В случае соответствия происходит аутентификация устройства 10 обновления защищенным элементом 10 с определением ключа SK сеанса связи.
В случае аутентификации на этапе Е8 защищенный элемент 30 отправляет сообщение М7 в устройство 10 обновления через терминал 20, который дополняет его сообщением М7’. Сообщение М7 шифруется при помощи ключа SK сеанса связи и содержит текущую версию V1 рабочей системы 35, определенную на этапе Е3.
Полученное сообщение М7’ позволяет устройству 10 обновления аутентифицировать защищенный элемент 30. Например, если версия закодирована на двух байтах и сообщение содержит 16 байт, устройство 10 обновления может аутентифицировать защищенный элемент 30, убедившись, что 14 первых байт дешифрованного сообщения М7’ являются нулевыми. Таким образом, происходит взаимная аутентификация между защищенным элементом 30 и устройством 10 обновления.
После этого устройство 10 обновления определяет N блоков OSB1, OSB2, … OSBN. Каждый блок содержит часть рабочей системы, зашифрованную при помощи ключа SK сеанса связи. Число N выбирают таким образом, чтобы размер блока был достаточно ограниченным для обеспечения возможности его передачи в единственной команде типа ADPU. При этом устройство 10 обновления передает определенные блоки в терминал 20 в одном или нескольких сообщениях М8. Терминал 20 запоминает принимаемые блоки до получения всех блоков.
1
2
N
1
2
N
Затем терминал 20 передает последовательность сообщений M9, М9, … M9 в защищенный элемент 30, при этом каждое сообщение M9, М9, … M9 содержит один из блоков OSB1, OSB2, … OSBN. Защищенный элемент 30 дешифрует каждый блок, используя ключ SK сеанса связи, и запоминает его вместо версии V1 рабочей системы 35.
j
j
N
1
2
N
Каждое сообщение M9, где j составляет от 1 до N-1, является, например, новой командой типа ADPU, называемой "LOAD BLOCK", на которую защищенный элемент 30 отвечает сообщением подтверждения получения M9’. Сообщение M9 является, например, новой командой типа ADPU, называемой "LOAD LAST BLOCK". Получение защищенным элементом 30 сообщений M9, M9, … M9 является этапом Е9 получения новой версии рабочей системы.
N
После получения последнего сообщения M9 на этапе Е10 защищенный элемент 30 осуществляет проверку принятой новой версии рабочей системы, например, при помощи теста контроля циклической избыточности.
Если тест прошел проверку, на этапе Е11 защищенный элемент 30 переустанавливает счетчик С, активирует рабочую систему 35 и запускает ее исполнение. Таким образом, на этой стадии защищенный элемент 30 исполняет новую версию рабочей системы 35.
В случае, если на этапе Е1 определено, что рабочая система 35 является активной, работа является аналогичной описанной выше, и далее следует описание основных отличий. На этапе Е12 защищенный элемент 30 исполняет рабочую систему 35. Так, как было указано выше, принятым сообщением М4 управляет рабочая система 35. Этапы F2-F5, показанные на фиг.2, соответствуют описанным выше этапам Е2-Е5, но при этом касаются исполнения команд рабочей системы 35, а не программы 38 инициирования.
10
10
После получения данных AUTH аутентификации рабочая система 35 запрашивает программу 38 инициирования через интерфейс API программирования, чтобы она проверила данные AUTH аутентификации по время этапов Е13 и Е14, аналогичных этапам Е6 и Е7. Затем на этапе F8 рабочая система 35 отправляет в ответ сообщение М7. После этого на этапе Е15 управление переходит от рабочей системы 35 к программе 38 инициирования.
На этапе Е15 программа 38 инициирования деактивирует рабочую систему 35. Например, программа инициирования стирает рабочую систему 35 из энергонезависимого запоминающего устройства 34 или изменяет значение указателя 39 состояние на «не активная». Следующие этапы Е9-Е11 аналогичны описанным ранее этапам.
Этапы Е1-Е15 соответствуют исполнению микропроцессором 31 команд программы 38 инициирования. Этапы F2-F5 и F8 соответствуют исполнению микропроцессором 31 команд рабочей системы 35.
На фиг.4A-4D показано содержимое энергонезависимого запоминающего устройства 34 в различные моменты процесса изготовления защищенного элемента 30 и обновления рабочей системы 35. Как показано на фиг.4А и 4В, в этом примере энергонезависимое запоминающее устройство 34 содержит перезаписываемую часть 40, например, типа памяти Flash, и не перезаписываемую часть 41 типа ROM.
На фиг.4А показано исходное состояние энергонезависимого запоминающего устройства 34. Часть 40 является пустой, а часть 41 содержит исходную программу инициирования, записанную изготовителем карты. В этом исходном состоянии микропроцессор 41 конфигурирован с возможностью запуска исполнения этой исходной программы инициирования во время запуска защищенного элемента 30, что показано стрелкой 42. Функцией исходной программы инициирования является обеспечение загрузки программы 38 инициирования, рабочей системы 35 и данных пользователя 37 в часть 40 энергонезависимого запоминающего устройства 34 во время подготовки защищенного элемента 30 изготовителем для поставки конкретному заказчику.
На фиг.4В показано состояние энергонезависимого запоминающего устройства 34 после приведения в соответствие защищенного элемента 30 изготовителем в соответствие с требованиями пользователя. Часть 40 содержит программу 38 инициирования, рабочую систему 35 (версия OS(V1)), данные 37 пользователя и не использованную зону 44. Исходная программа инициирования части 41 деактивирована, и микропроцессор 31 конфигурирован с возможностью запуска исполнения программы 38 инициирования во время запуска защищенного элемента 30, что показано стрелкой 43. В этом состоянии рабочая система 35 активирована, и программа 38 инициирования запускает исполнение рабочей системы 35, как показано стрелкой 45. Это соответствует описанным выше этапам Е0, Е1 и Е12.
i
На фиг.4С показана часть 40 энергонезависимого запоминающего устройства 34 в ходе процесса обновления рабочей программы 35. В частности, в состоянии, показанном на фиг.4С, рабочая система 35 деактивирована (этап Е15 на фиг.2) либо посредством стирания, либо посредством изменения индикатора 39 состояния. Программа 38 инициирования принимает сообщения M9, что показано стрелкой 46, и записывает блоки OSBi, содержащиеся в этих сообщениях, вместо старой версии рабочей системы 35, что показано стрелкой 47. Это соответствует этапу Е9 на фиг.2.
На фиг.4D показана часть 40 энергонезависимого запоминающего устройства 34 после обновления рабочей системы 35 (этап Е11 на фиг.2). Часть 40 содержит программу 38 инициирования, рабочую систему 35 в версии OS(V2), данные 37 пользователя и не использованную зону 44. Поскольку версии OS(V1) и OS(V2) рабочей системы 35 не обязательно имеют одинаковый размер, не использованная зона 44 может иметь разный размер на фиг.4D и на фиг.4В. В представленном состоянии рабочая система 35 активирована. Микропроцессор 31 конфигурирован с возможностью запуска исполнения программы 38 инициирования во время запуска защищенного элемента 30, как показано стрелкой 43. В этом состоянии рабочая система 35 активирована, и программа 38 запускает исполнение рабочей системы 35, что показано стрелкой 45.
На фиг.5A-5D представлен пример обработки сообщений М4 (команда ADPU "PUSH AVAILABLE VERSION") и М6’ (команда ADPU "MUTUAL AUTHENTIFICATION") защищенным элементом 30.
В частности, на фиг.5А показана обработка сообщения М4 (команда ADPU "PUSH AVAILABLE VERSION"), когда рабочая система 35 является активной. Получение сообщения М4 соответствует этапу F2 на фиг.2. В ответ на сообщение М4 рабочая система 35 запрашивает программу 38 инициирования для определения версии рабочей системы 35 (стрелка 50). Программа 38 инициирования проверяет информацию о версии в рабочей системе 35 (стрелка 51) и отвечает рабочей системе (стрелка 52). Эти обмены осуществляются при помощи интерфейса API программирования. После этого рабочая система 35 отвечает сообщением М5, что соответствует этапу Е4 на фиг.2.
Для сравнения на фиг.5В показана обработка сообщения М4 (команда ADPU "PUSH AVAILABLE VERSION"), когда рабочая система 35 является не активной. В этом примере рабочая система 35 стерта. В ответ на сообщение М4 программа 38 инициирования пытается запросить рабочую систему 35 для определения версии рабочей системы 35 (стрелка 53). Поскольку рабочая система 35 стерта, программа 38 инициирования не получает ответа и поэтому по умолчанию использует записанную в ней версию. После этого программа 38 инициирования передает в ответ сообщение М5, что соответствует этапу Е4 на фиг.2.
10
10
i
На фиг.5С показана обработка сообщения М6’ (команда ADPU "MUTUAL AUTHENTICATION"), когда рабочая система 35 является активной. Таким образом, получение сообщения М6’ соответствует этапу Е5 на фиг.2. В ответ на сообщение М6’ рабочая система 35 запрашивает программу 38 инициирования для проверки данных аутентификации AUTH устройства 10 обновления (стрелка 54). Программа 38 инициирования проверяет данные аутентификации AUTH, используя главный ключ MK (стрелка 56). Это соответствует этапам Е13 и Е14 на фиг.2. Программа 38 инициирования подтверждает аутентификацию рабочей системе (стрелка 35). После этого рабочая система 35 отвечает сообщением М6, что соответствует этапу F8 на фиг.2.
10
i
Для сравнения на фиг.5D показана обработка сообщения М6’ (команда ADPU "MUTUAL AUTHENTICATION"), когда рабочая система 35 является не активной. Получение сообщения М6’ соответствует этапу Е6 на фиг.2. В ответ на сообщение М6’ программа 38 инициирования проверяет данные аутентификации AUTH, используя главный ключ MK (стрелка 57). Это соответствует этапам Е6 и Е7 на фиг.2. Программа 38 инициирования подтверждает аутентификацию и передает в ответ сообщение М7, что соответствует этапу Е8 на фиг.2.
Со ссылками на фиг.2 и 3 описано осуществление взаимной аутентификации и шифрованной связи между защищенным элементом 20 и устройством 10 обновления. Специалист может выбирать соответствующие форматы ключей и криптографических алгоритмов для реализации этих функций. Ниже для иллюстрации приведен не ограничительный пример.
i
i
i
i
i
i
i
i
i
i
Устройство 10 обновления хранит в памяти секретный ключ К на 32 байта. Когда устройство 10 обновления получает серийный номер N на 16 байт, оно может определить ключ MK на 32 байта, соответствующий защищенному элементу 30, имеющему серийный номер N, в зависимости от К и от N. Алгоритм, позволяющий вычислять MK в зависимости от К и от N, могут выбирать разработчики системы и сохранять его в тайне для обеспечения безопасности. Использование серийного номера N позволяет дифференцировать данные аутентификации и шифрование для разных защищенных элементов. Защищенный элемент напрямую запоминает ключ MK и, следовательно, не должен вычислять MK в зависимости от К и от N.
i
i
Ключ SK сеанса связи можно определить, используя алгоритм AES-256, в зависимости от ключа MK и от случайного номера RAND на 32 байта. Устройство 10 обновления и защищенный элемент 30 одновременно вычисляют: SK=AES-256(MK, RAND).
Вместо случайного номера RAND можно использовать другую переменную (псевдослучайная переменная, дата, инкрементный номер…).
10
30
10
30
10
30
Данные аутентификации AUTH и AUTH можно тоже определять, используя алгоритм AES-256, в зависимости от ключа SK сеанса связи и от случайного номера RAND. Таким образом, устройство 10 обновления вычисляет AUTH=AES-256(SK, RAND). Соответственно, защищенный элемент 30 вычисляет AUTH=AES-256(SK, RAND). Сравнивая принятые данные аутентификации AUTH и определенные данные аутентификации AUTH, защищенный элемент 30 осуществляет аутентификацию устройства 10 обновления.
Сообщение М7, передаваемое защищенным элементом 30 в устройство 10 обновления, содержит текущую версию V1 рабочей системы 35, зашифрованную при помощи ключа SK сеанса связи с использованием алгоритма AES-256-CBC-ISO9797-M1: М7=AES-256-CBC-ISO9797-M1 (SK, V1). Это обеспечивает аутентификацию защищенного элемента 30 устройством 10 обновления. Для этого используют режим СВС (”Cipher-block chaining”) и криптограмму ICV, которую определяют в зависимости от случайного номера RAND. Например, ICV определяют путем применения алгоритма AES-256 к 16 центральным байтам случайного номера RAND.
Таким образом, можно осуществить взаимную аутентификацию между защищенным элементом 30 и устройством 10 обновления.
На фиг.6 и 7 представлен пример определения устройством 10 обновления блоков OSB1, OSB2, … OSBN, которые содержат в зашифрованном виде новую версию OS(V2) рабочей системы 35.
Код рабочей системы, обозначенный OS(V2), представляет собой набор не зашифрованных данных, содержащий, в частности, команды, исполняемые микропроцессором 31. Устройство 10 обновления добавляет отпечаток 60 в конце кода OS(V2). Отпечаток 60 определяют, например, используя алгоритм SHA-512.
После этого устройство 10 обновления добавляет в начале кода OS(V2) секретный номер 61, размер 62 кода OS(V2) и версию 63 рабочей системы с кодом OS(V2). Секретный номер 61 закодирован, например, на четырех байтах и известен устройству 10 обновления и защищенному элементу 30. Он обеспечивает дополнительную защиту во время проверки рабочей системы, полученной защищенным элементом 30. Размер 61 закодирован, например, на четырех байтах. Версия 63 рабочей системы с кодом OS(V2) закодирована, например, на двух байтах.
После этого в конце набора, образованного секретным номером 61, устройство 10 обновления добавляет размер 62, версию 63, код OS(V2) и отпечаток 61, а также данные 64 заполнения (например, байты со значениями «0») для получения общего числа байтов, которое должно быть кратным N по 16. Таким образом, можно разложить сформированный набор данных на N блоков Data1, Data2, … DataN по 16 байт, которые содержат код OS(V2) в незашифрованном виде.
На основании блоков Data1, Data2, … DataN устройство 10 обновления определяет блоки OSB1, OSB2, … OSBN, которые содержат в зашифрованном виде код OS(V2), как показано, например, на фиг.7.
На фиг.7 ICV является криптограммой, определяемой в зависимости от случайного номера RAND. Например, ICV определяют путем применения алгоритма AES-256 к 16 центральным байтам случайного номера RAND.
После этого осуществляют шифрование блоков Data1, Data2, … DataN при помощи алгоритма AES-256 в режиме СВС ("Cipher-block chaining"), используя ключ SK и криптограмму ICV. Так, криптограмму ICV и блок Data1 комбинируют при помощи операции XOR (исключающее ИЛИ). Затем результат этой операции XOR шифруют, используя ключ SK сеанса связи и алгоритм AES-256 для определения блока OSB1.
Для каждого следующего блока Data(i) аналогично определяют соответствующий блок OSB(i), но используя при этом блок OSB(i-1) вместо криптограммы ICV.
После приема каждого блока OSB(i) на этапе Е9, показанном на фиг.2, защищенный элемент 30 может дешифровать полученные данные при помощи ключа SK сеанса связи. Затем на этапе Е10 проверка, в частности, отпечатка 60 и секретного номера 61 позволяет обнаружить возможную фальсификацию.
Система, представленная на фиг.1, имеет целый ряд преимуществ.
В частности, можно обновлять рабочую систему 35 защищенного элемента 30. Это обновление можно осуществлять, когда защищенный элемент 30 уже работает в терминале 20 пользователя. В случае установления связи между терминалом 20 и устройством 10 обновления через телекоммуникационную сеть пользователю нет необходимости посещать определенное место, такое как офис провайдера сервиса. Рабочую систему 35 можно заменить в полном объеме. Во время обновления данные 37 пользователя не меняются. Таким образом, после обновления пользователь продолжает иметь в своем распоряжении свои приложения и свои персональные данные. Кроме того, работа терминала 20 не должна прерываться.
Благодаря взаимной аутентификации устройства 10 обновления и защищенного элемента 30 и зашифрованной связи между устройством 10 обновления и защищенным элементом 30, постороннее лицо не может получить новую версию OS(V2) рабочей системы или загрузить фальсифицированную версию в защищенный элемент 30, выдав себя за устройство 10 обновления. В частности, если программа Р1 терминала 20 заменена фальсифицированной версией, эта версия в лучшем случае может принять зашифрованные блоки OSB(i). Иначе говоря, обеспечена защита конфиденциальности и целостности рабочей системы. Эти характеристики позволяют получить сертификацию защищенного элемента и/или системы.
Устройство 10 обновления может подсчитывать неудачные попытки аутентификации. Если это число достигает определенного порога, устройство 10 обновления может предпринять защитную меру, например, выдать тревожный сигнал или даже поместить защищенный элемент в черный список.
Поскольку взаимная аутентификация и шифрование основаны на серийном номере защищенного элемента, они различаются по каждому защищенному элементу. Таким образом, отдельное слабое место не влияет на совокупность защищенных элементов, связанных с устройством обновления.
Случайный номер RAND генерируется защищенным элементом, а не устройством 10 обновления. Это ограничивает рабочую нагрузку на устройство обновления, что представляет особый интерес в случае устройства обновления, связанного со многими защищенными элементами.
Использование одного и того же ключа SK сеанса связи для взаимной аутентификации и зашифрованной связи между защищенным элементом и устройством обновления позволяет ограничить ресурсы, необходимые на уровне защищенного элемента. Вместе с тем, в варианте выполнения для взаимной аутентификации зашифрованной связи можно использовать разные ключи.
Наличие программы Р1 в терминале 20 позволяет адаптировать поведение терминала 20 во время обновления рабочей системы. Например, во время обновления можно деактивировать приложения терминала 20, которые обращаются к приложениям защищенного элемента 30.