карта с интегральной схемой, имеющая модифицируемую рабочую программу, и соответствующий способ модификации
Классы МПК: | G07F7/10 вместе с кодовым сигналом |
Автор(ы): | ПЕПЕН Сириль (FR), РУДЬЕР Гийом (FR) |
Патентообладатель(и): | МОРФО (FR) |
Приоритеты: |
подача заявки:
2009-03-11 публикация патента:
27.05.2013 |
Изобретение относится к области карт с интегральной схемой. Техническим результатом является повышение надежности. Раскрывается смарт-карта, включающая в себя модуль (3) обработки, ассоциированный с ROM (4) и с программируемым ROM (5), ROM, содержащее рабочую программу, которая может быть выполнена модулем обработки и которая включает в себя функциональные части, каждая из которых определяет функцию модуля обработки. В соответствии с изобретением программа включает в себя точку входа/выхода для каждой функциональной части, и с каждой функциональной частью ассоциирован идентификатор, программируемое ROM содержит по меньшей мере одну заменяющую функциональную часть, пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM, и модуль обработки выполнен с возможностью выполнения заменяющей функциональной части вместо соответствующей функциональной части ROM. 4 н. и 11 з.п. ф-лы, 3 ил.
Формула изобретения
1. Смарт-карта, включающая в себя модуль (3) обработки, ассоциированный с постоянным запоминающим устройством (ROM) (4) и с программируемым ROM (5), причем ROM содержит рабочую программу (10), выполняемую модулем обработки и включающую в себя функциональные части (8), каждая из которых определяет одну функцию модуля обработки, характеризующаяся тем, что программа включает в себя точку (9) входа/выхода для каждой функциональной части, и с каждой функциональной частью ассоциирован идентификатор, причем программируемое ROM содержит по меньшей мере одну заменяющую функциональную часть (8'), пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM, при этом модуль обработки выполнен с возможностью выполнения заменяющей функциональной части вместо соответствующей функциональной части ROM и запрограммирован для аутентификации заменяющей функциональной части (8) по меньшей мере перед первым ее выполнением, причем в случае успешной аутентификации заменяющих функциональных частей (8') модуль обработки выполнен с возможностью выполнения заменяющих функциональных частей (8') вместо соответствующей функциональной части (8) ROM, а в противном случае модуль (3) обработки выполнен с возможностью выполнения соответствующей функциональной части (8).
2. Смарт-карта по п.1, в которой заменяющая функциональная часть (части) (8') загружена в начальную зону (11) программируемого ROM (5).
3. Смарт-карта по п.1, в которой программируемое ROM (5) включает в себя индикатор (20) для обозначения наличия заменяющей функциональной части.
4. Смарт-карта по п.1, в которой с заменяющей функциональной частью (8') или с каждой заменяющей функциональной частью (8') ассоциирована подпись, а модуль (3) обработки запрограммирован для аутентификации подписи или каждой подписи.
5. Смарт-карта по п.4, в которой заменяющая функциональная часть (8') или каждая заменяющая функциональная часть (8') зашифрована, а аутентификация содержит этап дешифрования заменяющей функциональной части (8') или каждой заменяющей функциональной части (8') и проверки битов заполнения, использованных при шифровании.
6. Способ проверки программы, содержащейся в постоянном запоминающем устройстве (ROM) (4) и выполняемой модулем (3) обработки в интегральной схеме (2), причем программа включает в себя функциональные части, каждая из которых ассоциирована с идентификатором и точкой (9) входа/выхода, характеризующийся тем, что содержит этапы, на которых:
сохраняют в программируемом ROM по меньшей мере одну заменяющую функциональную часть (8'), пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM; и
при выполнении программы модулем обработки выполняют заменяющую функциональную часть вместо соответствующей функциональной части, при этом после сохранения заменяющей функциональной части (8') способ содержит этап аутентификации заменяющей функциональной части модулем (3) обработки и в случае успешной аутентификации этап удостоверения заменяющей функциональной части, обеспечивающий ее последующее выполнение.
7. Способ по п.6, в котором заменяющая функциональная часть (8') хранится в зашифрованном виде, и способ включает в себя этап дешифрования заменяющей функциональной части модулем (3) обработки.
8. Способ по п.6, включающий в себя этап удаления заменяющей функциональной части (8') после по меньшей мере одного использования.
9. Смарт-карта, включающая в себя модуль (3) обработки, ассоциированный с постоянным запоминающим устройством (ROM) (4) и с программируемым ROM (5), причем ROM содержит рабочую программу (10), выполняемую модулем обработки и включающую в себя функциональные части (8), каждая из которых определяет одну функцию модуля обработки, характеризующаяся тем, что программа включает в себя точку входа/выхода (9) для каждой функциональной части, и с каждой функциональной частью ассоциирован идентификатор, причем программируемое ROM содержит по меньшей мере одну заменяющую функциональную часть (8'), пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM, при этом заменяющая функциональная часть (части) (8') загружена в начальную зону (11) программируемого ROM (5) в виде повторяющихся структур, содержащих последовательно идентификатор (13) заменяющей функциональной части (8'), индикатор (14) длины заменяющей функциональной части, заменяющую функциональную часть и значение целостности, рассчитываемое по идентификатору, индикатору и заменяющей функциональной части, при этом модуль (3) обработки запрограммирован для аутентификации заменяющей функциональной части (8') или каждой заменяющей функциональной части (8') по меньшей мере перед первым их выполнением, и в случае успешной аутентификации модуль обработки выполнен с возможностью выполнения заменяющей функциональной части вместо соответствующей функциональной части ROM, а в противном случае модуль (3) обработки выполнен с возможностью выполнения соответствующей функциональной части (8).
10. Смарт-карта по п.9, в которой программируемое ROM (5) включает в себя индикатор (20) для обозначения наличия заменяющей функциональной части.
11. Смарт-карта по п.9, в которой подпись ассоциирована с заменяющей функциональной частью (8') или каждой заменяющей функциональной частью (8'), а модуль (3) обработки запрограммирован для аутентификации подписи или каждой подписи
12. Смарт-карта по п.11, в которой заменяющая функциональная часть (8') или каждая заменяющая функциональная часть (8') зашифрована, а аутентификация содержит этап дешифрования и проверки битов заполнения.
13. Способ проверки программы, содержащейся в постоянном запоминающем устройстве ROM (4) и выполняемой модулем (3) обработки в интегральной схеме (2), причем программа включает в себя функциональные части, каждая из которых ассоциирована с идентификатором и точкой (9) входа/выхода, характеризующийся тем, что содержит этапы, на которых:
сохраняют в программируемом ROM по меньшей мере одну заменяющую функциональную часть (8'), пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM; причем идентификатор (13) заменяющей функциональной части (8'), индикатор (14) длины заменяющей функциональной части, заменяющую функциональную часть и значение целостности, рассчитываемое по идентификатору, индикатору и заменяющей функциональной части, сохраняют в начальной зоне программируемого ROM;
аутентифицируют при помощи модуля (3) обработки указанную по меньшей мере одну замещающую функциональную часть и в случае успешной аутентификации удостоверяют указанную замещающую функциональную часть для обеспечения ее последующего выполнения;
при выполнении программы модулем обработки выполняют заменяющую функциональную часть вместо соответствующей функциональной части.
14. Способ по п.13, в котором сохраненная заменяющая функциональная часть (8'), пригодная для замены одной из функциональных частей ROM, зашифрована, при этом заменяющая функциональная часть (8') хранится в зашифрованном виде, а способ включает в себя этап дешифрования заменяющей функциональной части и проверки битов заполнения, использованных при шифровании, модулем (3) обработки.
15. Способ по п.13, включающий в себя этап удаления заменяющей функциональной части (8') после по меньшей мере одного использования.
Описание изобретения к патенту
Настоящее изобретение относится к смарт-карте, пригодной для использования, в частности, в качестве носителя данных, например, для включения в состав средства идентификации держателя карты, средства для доступа в помещение или к оборудованию, средства для оплаты, такого как банковская карта или телефонная карта.
Уровень техники
Смарт-карта обычно содержит корпус, имеющий прикрепленную к нему интегральную микросхему, которая включает в себя процессор, который формирует модуль обработки, постоянное запоминающее устройство (ROM) и программируемое ROM, например электрически стираемое программируемое постоянное запоминающее устройство (EEPROM). Модуль обработки выполнен с возможностью выполнения рабочей программы, которая содержится в ROM и которая содержит функциональные части, каждая из которых определяет функцию модуля обработки. Данные, используемые модулем обработки, в общем, содержатся в программируемом ROM. ROM менее дорогостоящее устройство, чем программируемое ROM, поэтому использование ROM для сохранения рабочей программы позволяет снизить стоимость смарт-карты. Однако при этом рабочая программа должна быть сохранена в ROM во время изготовления интегральной микросхемы, и после этого ее больше невозможно модифицировать. Улучшение рабочей программы и, в более общем случае, выполнение над нею любых модификаций требует изготовления новых интегральных микросхем.
Цель изобретения
Цель изобретения состоит в том, чтобы обеспечить средство, позволяющее модифицировать рабочую программу простым и быстрым способом, и таким способом, который, в случае необходимости, можно было бы применять для существующих карт.
Сущность изобретения
С этой целью в изобретении предусмотрена смарт-карта, включающая в себя модуль обработки, ассоциированный с ROM и с программируемым ROM, причем ROM содержит рабочую программу, которая выполняется модулем обработки и которая включает в себя функциональные части, каждая из которых определяет функцию модуля обработки. Программа включает в себя точку входа/выхода для каждой функциональной части, и с каждой функциональной частью связан идентификатор. Программируемое ROM содержит, по меньшей мере, одну заменяющую функциональную часть, пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM. Модуль обработки выполнен с возможностью выполнения заменяющей функциональной части вместо соответствующей функциональной части ROM.
Точки входа/выхода рабочей программы таким образом расположены между каждой из функциональных частей, что модуль обработки может шунтировать исходную функциональную часть рабочей программы и вместо этого выполнять заменяющую функциональную часть, сохраненную в программируемом ROM. Кроме того, множество точек входа/выхода в рабочей программе позволяет ограничить размеры элементов программы, которые составляют заменяющие функциональные части, сохраненные в программируемом ROM, до размеров функциональных частей, которые должны быть заменены. Объем программируемой ROM, занятый заменяющими функциональными частями, таким образом является относительно небольшим. Заменяющие функциональные части могут быть сохранены в программируемом ROM не только изготовителем интегральной микросхемы, но также и предприятием, выпускающим карты, что упрощает работу с ними.
Предпочтительно, заменяющую функциональную часть загружают в начальную зону программируемого ROM.
Это позволяет ускорить поиск заменяющих функциональных частей таким образом, чтобы выполнение рабочей программы не замедлялась до опасного уровня.
Предпочтительно, программируемый ROM включает в себя индикатор, обозначающий присутствие заменяющей функциональной части.
Таким образом, модуль обработки может быстро определять, требуется ли считывать программируемое постоянное запоминающее устройство для поиска заменяющей функциональной части.
Также предпочтительно, модуль обработки запрограммирован для аутентификации заменяющей функциональной части, по меньшей мере, перед ее выполнением.
У злонамеренных лиц может возникнуть искушение использовать заменяющую функциональную часть для получения доступа к конфиденциальной информации, содержащейся в интегральной микросхеме, или для обеспечения выполнения модулем обработки операций, которые обычно не разрешены. Аутентификация заменяющей функциональной части позволяет проверять, что заменяющая функциональная часть была сохранена уполномоченным лицом, и поэтому априори является безвредной.
В таких обстоятельствах, предпочтительно, ассоциировать подпись с соответствующей или каждой заменяющей функциональной частью, и модуль обработки запрограммирован с возможностью проверки аутентификации подписи или каждой подписи, и/или заменяющая функциональная часть зашифрована, и аутентификация содержит этап дешифрования и проверки битов заполнения.
Такие технологии аутентификации являются надежными и быстровыполнимыми.
Изобретение также направлено на способ проверки программы, содержащейся в ROM и выполняемой модулем обработки интегральной микросхемы, причем программа включает в себя функциональные части, каждая из которых ассоциирована с идентификатором и точкой входа/выхода, и способ содержит следующие этапы:
сохраняют в программируемом ROM по меньшей мере одну заменяющую функциональную часть, пригодную для замены одной из функциональных частей ROM и ассоциированную с идентификатором, соответствующим идентификатору соответствующей функциональной части ROM; и
при выполнении программы модулем обработки выполняют заменяющую функциональную часть вместо соответствующей функциональной части.
Другие характеристики и преимущества изобретения будут понятны при чтении следующего описания частного, неограничивающего варианта выполнения изобретения.
Краткое описание чертежей
Будет сделана ссылка на приложенные чертежи, на которых:
на фиг.1 показана блок-схема, представляющая смарт-карту, в соответствии с изобретением;
на фиг.2 показана блок-схема содержимого постоянных запоминающих устройств карты; и
на фиг.3 показана блок-схема заменяющей функциональной части, используемой в карте.
Подробное описание изобретения
Как показано на чертежах, карта в соответствии с изобретением содержит корпус 1, на котором закреплена интегральная микросхема, в целом обозначенная номером 2 ссылочной позиции и содержащая модуль 3 обработки, такой как процессор, соединенный с ROM 4, программируемым ROM 5, в данном примере типа EEPROM, и оперативное запоминающее устройство (RAM) 6. Физическая структура карты в соответствии с изобретением хорошо известна.
ROM 4 содержит рабочую программу, в целом обозначенную номером 7 ссылочной позиции, которая имеет основной модуль 10 и функциональные части 8 (обозначены индексами А, В, С и D), причем точки 9 входа/выхода программы расположены между ними (и обозначены индексами А - Е).
Каждая функциональная часть 8 соединена с идентификатором, который является специфичным для нее.
Термин "рабочая программа" используется для обозначения программы, которая, при ее выполнении, обеспечивает выполнение модулем 3 обработки функций обработки, которые соответствуют каждой части программы, составляющей функциональную часть. Рабочая программа может содержать части, обеспечивающие основную операцию модуля обработки (операционная система), или части приложений. Программа может включать в себя функциональные модули, которые группируют вместе множество функциональных частей.
Программируемое ROM 5 содержит, как известно, в случае необходимости, конфиденциальные данные, которые используются модулем обработки при выполнении рабочей программы. RAM 6 содержит данные, принимаемые снаружи или предназначенные для вывода наружу, а также промежуточные результаты вычислений, выполняемых модулем обработки при выполнении рабочей программы.
Программируемое ROM 5 содержит начало 11, которое содержит блок данных, в целом обозначенный номером 12 ссылочных позиций, включающий в себя заменяющие функциональные части 8' (обозначены индексами В и D), которые предназначены для замены функциональных части 8В и 8D. Блок 12 сохранен в форме повторения структур, последовательно содержащих:
идентификатор 13В заменяющей функциональной части 8'В;
индикатор 14В длины данных заменяющей функциональной части 8'В;
соответствующие данные 15В;
значение целостности, рассчитываемое по идентификатору 13B, индикатору 14В и данным 15В (в качестве примера, значение целостности представляет собой результат способа проверки циклической избыточности (CRC));
идентификатор 13D заменяющей функциональной части 8'D;
индикатор 14D длины данных заменяющей функциональной части 8'D;
соответствующие данные 15D;
идентификатор 16 конца;
индикатор 17 длины конечных данных и
соответствующие данные, включающие в себя, в частности, подпись, и в случае необходимости, индикатор 19 ускорения и значение целостности.
Во время выполнения рабочей программы модуль 3 обработки проверяет присутствие в программируемом ROM 5 индикатора 20 присутствия заменяющих функциональных частей 8'. В соответствующих случаях модуль 3 обработки проверяет, для каждой функциональной части 8, существует ли заменяющая функциональная часть 8', и если таковая присутствует, выполняет заменяющую функциональную часть вместо соответствующей функциональной части 8.
Индикатор 19 ускорения идентифицирует функциональный модуль, в котором должна быть заменена функциональная часть, обеспечивая таким образом возможность ускорения выполняемой программы.
Перед выполнением каждой функциональной части перебирают идентификаторы заменяющих функциональных частей 8' и сравнивают их с идентификатором функциональной части, которую модуль 3 обработки готовится выполнять.
Для выполнения заменяющих функциональных частей 8', например заменяющей функциональной части 8'В, модуль обработки выходит из рабочей программы через точку 9В входа/выхода, которая предшествует соответствующей функциональной части 8В, и после выполнения заменяющей функциональной части 8'В возвращается в рабочую программу через точку 9C входа/выхода, которая следует после соответствующей функциональной части 8В.
Перед выполнением первой заменяющей функциональной части 8'В модуль 3 обработки переходит на этап аутентификации, который состоит в проверке подписи блока 12 заменяющих функциональных частей 8'. Если подпись аутентифицирована, заменяющие функциональные части 8' выполняют нормально. В противном случае модуль 3 обработки выполняет исходную рабочую программу 7. В одном варианте может быть предусмотрена возможность выработки модулем 3 обработки сигнала предупреждения, когда блок 12 заменяющих функциональных частей 8' не может быть аутентифицирован.
Кроме того, предусмотрена возможность проверки целостности заменяющих функциональных частей перед их выполнением, используя значения 19 целостности, рассчитанные по идентификатору 13В, индикатору 14В и данным 15В.
При каждом новом выполнении рабочей программы информацию из начальной зоны 11, где хранится блок 12 заменяющих функциональных частей 8', и его подпись восстанавливают с использованием специальной команды модуля 3 обработки. Ответ такой команды может принимать следующие формы:
заменяющая функциональная часть отсутствует, поэтому отклик может быть состоять, например, из строки байтов, имеющих значение FF;
хранится заменяющая функциональная часть, которая была проверена, при этом отклик может состоять из списка функциональных частей, которые должны быть заменены, и подписи блока подписи; и
имеется функциональная заменяющая часть, которая была загружена, но не была проверена, при этом отклик будет состоять, например, из строки байтов, имеющих значение 00.
Во втором случае подпись проверяют перед выполнением первой заменяющей функциональной части 8'.
Загрузка функциональных частей 8' в программируемое ROM описана ниже.
Перед загрузкой оператор должен быть аутентифицирован с использованием ключа.
Блок 12 заменяющих функциональных частей 8' передается в зашифрованной форме модулю 3 обработки для сохранения в начальной зоне 11 программируемого ROM 5. Модуль 3 обработки затем выполняет этап проверки блока 12 заменяющих функциональных частей 8'. Такой этап проверки выполняют путем дешифрования блока 12 заменяющих функциональных частей 8' и путем проверки, что биты заполнения соответствуют (битам, используемым во время шифрования). Проверка битов заполнения обеспечивает для карты проверку, что она действительно представляет собой предназначенное место назначения для блока 12. После этого модуль 3 обработки проверяет подпись и элемент целостности в блоке 12 заменяющих функциональных частей 8'. Следует отметить, что сама подпись может содержать элемент целостности. В качестве примера элемент целостности может быть получен с использованием способа CRC, который состоит в обработке модуля данных, как если бы они представляли строку двоичных коэффициентов многочлена.
В случае если любая из этих двух проверок не будет пройдена, загрузку прекращают, и блок делают недействительным, в результате чего становится невозможным его использование. После сохранения заменяющих функциональных частей 8' в программируемом ROM 5 размер доступной памяти рассчитывают и сохраняют. Индикатор того, что заменяющие функциональные части присутствуют, обновляют в заданной области в программируемом ROM 5.
Когда заменяющая функциональная часть 8' становится бесполезной (например, если она должна была быть выполнена только ограниченное количество раз), такая заменяющая функциональная часть может быть удалена, например при перезагрузке нового блока 12 заменяющих функциональных частей 8', который не содержит устаревшую заменяющую функциональную часть. Также возможно удалять все заменяющие функциональные части.
Шифрование блока заменяющих функциональных частей является предпочтительным, в частности, когда изготовление и/или обновление карт передают поставщику, который также изготовляет карты для конкурентов. Разные коды описания могут быть ассоциированы с каждым конкурентом, с тем, чтобы обеспечить, что ни один из них не сможет случайно или злонамеренно попытаться получить доступ к блокам заменяющих функциональных частей своих конкурентов. В более общем случае, это также предотвращает возможность получения доступа к содержанию блока заменяющих функциональных частей.
Естественно, изобретение не ограничено описанным выше вариантом выполнения, но наоборот, охватывает любой вариант, используя эквивалентное средство для воспроизведения существенных характеристик, представленных выше.
В частности, количество и формат заменяющих функциональных частей можно модифицировать. Архитектура блока заменяющих функциональных частей также может быть модифицирована.
Кроме того, можно использовать другой тип программируемых ROM, вместо EEPROM, и, в частности, возможно использовать стираемое перепрограммируемое запоминающее устройство (EPROM).
Класс G07F7/10 вместе с кодовым сигналом