Способ передачи исполняемого кода в приемное устройство и способ выполнения такого кода

Иллюстрации

Показать все

Настоящее изобретение касается пересылки исполняемого кода модулю безопасности, непосредственно соединенному с приемным устройством. Техническим результатом является повышение безопасности при передаче информации. Модуль безопасности содержит микроконтроллер и запоминающее устройство, а запоминающее устройство содержит, по меньшей мере, одну исполнительную область, выполненную с возможностью сохранения в ней команд, которые могут быть исполнены микроконтроллером, и, по меньшей мере, одну неисполнительную область, в которой микроконтроллер не может исполнять команды, включающий в себя разбиение исполняемого кода на блоки; присоединение к каждому из блоков, по меньшей мере, одного управляющего кода блока с образованием расширенного блока, причем размер такого расширенного блока не превышает размера исполнительной области запоминающего устройства; ввод содержимого расширенного блока в сообщение типа, пригодного к обработке в приемном устройстве, так, что весь исполняемый код содержится в нескольких сообщениях. 2 н. и 10 з.п. ф-лы, 14 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение касается пересылки исполняемого кода приемному устройству, содержащему модуль безопасности, а также обработки и исполнения такого кода в модуле безопасности, содержащем микроконтроллер, соединенный с запоминающим устройством. В частности, изобретение направлено на максимальное ограничение необходимого размера исполнительной области запоминающего устройства при обеспечении возможности исполнения программ большого размера.

Настоящее изобретение может быть применено, в частности, в модуле безопасности, используемом в области телевидения с ограниченным (условным) доступом.

Уровень техники

Некоторые из известных в настоящее время модулей безопасности используют запоминающие устройства, по меньшей мере, одного из следующих трех типов: запоминающие устройства типа RAM, ROM или EEPROM. Как правило, объем запоминающего устройства типа RAM делится на две области. Одна из этих двух областей, называемая исполнительной областью запоминающего устройства, может содержать исполняемый код, а вторая область, называемая неисполнительной областью запоминающего устройства, устроена так, что исполнение кода в ней запрещено.

Выделение исполнительной области большого размера в запоминающих устройствах модулей безопасности может приводить к нарушениям безопасности системы. Действительно, непредусмотренное исполнение кода злонамеренного лица иногда может приводить к раскрытию содержащейся в модуле безопасности информации, которая должна содержаться в тайне. В частности, к такой информации могут относиться ключи дешифрования. Знание таких ключей может, например, позволить использовать контент, доступ к которому должен быть ограниченным (условным).

Во избежание раскрытия такой конфиденциальной информации желательно использовать исполнительную область запоминающего устройства малого размера. Недостаток такого решения заключается в невозможности сохранения исполняемых программ, размер которых превышает объем исполнительной области запоминающего устройства, что накладывает ограничения на размер программ. Таким образом, необходим компромисс между степенью безопасности, определяемой объемом запоминающего устройства, и выбором исполняемых программ, которые могут быть сохранены в запоминающем устройстве.

Документ D1 (EP 1256042) описывает способ, в котором производят передачу программы устройству, например декодеру системы платного телевидения. В соответствии с этим способом исполняемую программу разбивают на блоки, после чего такие блоки передают декодеру. Декодер содержит два процессора. Один из таких процессоров, которому передают полученные сообщения, представляет собой защищенный процессор, который осуществляет проверку целостности и подлинности блоков. В случае поступления некорректных блоков могут быть приняты соответствующие контрмеры. В случае подтверждения целостности и подлинности блока он может быть передан запоминающему устройству для сохранения или другому процессору, который исполняет команды, содержащиеся в данном блоке.

Указанный документ не содержит сведений о размере исполнительной области запоминающего устройства процессора. В нем описан только этап проверки, предшествующий исполнению кода. Таким образом, данное решение не устраняет недостатка, присущего уровню техники. Действительно, в нем ничто не препятствует использованию аутентичного, т.е. успешно прошедшего этапы проверки на подлинность и целостность, кода и его исполнения непредусмотренным образом. Такое непредусмотренное исполнение может привести к получению злонамеренными лицами полезной информации, причем полезность такой информации только возрастает вследствие того, что использованный код был подлинным.

Раскрытие изобретения

Задача, на решение которой направлено настоящее изобретение, заключается в устранении недостатков, присущих уровню техники, путем предложения запоминающего устройства, в котором малый размер исполнительной области запоминающего устройства, обеспечивающий высокий уровень безопасности, сочетается с возможностью исполнения программ большого размера, в частности, размера, превышающего размер исполнительной области запоминающего устройства.

Для решения поставленной задачи в соответствии с изобретением предлагается способ пересылки исполняемого кода модулю безопасности, непосредственно соединенному с приемным устройством, причем модуль безопасности содержит микроконтроллер и запоминающее устройство, включающее в себя, по меньшей мере, одну исполнительную область, выполненную с возможностью сохранения в ней команд, которые могут быть исполнены микроконтроллером, и, по меньшей мере, одну неисполнительную область, в которой микроконтроллер не может исполнять команды, отличающийся тем, что включает в себя следующие стадии:

a) разбивают исполняемый код на блоки;

b) присоединяют к каждому из блоков, по меньшей мере, один управляющий код блока с образованием расширенного блока, причем размер такого расширенного блока не превышает размера исполнительной области запоминающего устройства;

c) вводят содержимое расширенного блока в сообщение типа, пригодного к обработке в приемном устройстве, так, что весь исполняемый код содержится в нескольких сообщениях;

d) пересылают приемному устройству сообщение, содержащее один из расширенных блоков, отличных от первого расширенного блока, который содержит начало исполняемой программы;

e) обрабатывают указанное сообщение с обеспечением извлечения из него расширенного блока;

f) сохраняют в исполнительной области запоминающего устройства исполняемый код и, по меньшей мере, один из управляющих кодов полученного блока;

g) производят исполнение, по меньшей мере, одного из управляющих кодов расширенного блока, причем этот управляющий код осуществляет перемещение содержимого блока в неисполнительную область запоминающего устройства;

h) повторяют шаги от d) до g) до тех пор, пока все расширенные блоки, кроме указанного первого расширенного блока, не будут сохранены в неисполнительной области запоминающего устройства;

i) пересылают приемному устройству сообщение, содержащее первый расширенный блок;

j) обрабатывают указанное сообщение с обеспечением извлечения из него расширенного блока;

k) сохраняют исполняемый код полученного блока в исполнительной области запоминающего устройства.

Кроме того, для решения поставленной задачи в соответствии с изобретением предлагается способ исполнения исполняемого кода модулем безопасности, непосредственно соединенным с приемным устройством, причем модуль безопасности содержит микроконтроллер и запоминающее устройство, включающее в себя, по меньшей мере, одну исполнительную область, выполненную с возможностью сохранения в ней команд, которые могут быть исполнены микроконтроллером, и, по меньшей мере, одну неисполнительную область, в которой микроконтроллер не может исполнять команды, причем исполняемый код был переслан в соответствии с вышеописанным способом, отличающийся тем, что включает в себя следующие стадии:

a) производят исполнение исполняемого кода, сохраненного в исполнительной области запоминающего устройства;

b) производят исполнение, по меньшей мере, одного управляющего кода, который осуществляет перемещение блока из неисполнительной области запоминающего устройства в исполнительную область запоминающего устройства, причем указанный блок представляет собой блок, следующий за последним исполненным до этого блоком;

c) шаги a) и b) повторяют вплоть до завершения исполнения кода.

В настоящем изобретении максимальный размер исполняемой программы не зависит от размера исполнительной области запоминающего устройства. Этот максимальный размер зависит от суммарного объема запоминающего устройства, т.е. исполнительной и неисполнительной областей запоминающего устройства, вместе взятых. Это позволяет использовать запоминающее устройство большого размера, что обеспечивает возможность применения крупноразмерных исполняемых кодов, в то же время ограничивая размер исполнительной области запоминающего устройства, что обеспечивает высокую степень безопасности и снижает риск доступа к конфиденциальной информации, содержащейся в запоминающем устройстве, со стороны злонамеренных лиц.

Краткое описание чертежей

Настоящее изобретение и его преимущества станут более ясными из нижеследующего описания одного из конкретных вариантов его осуществления, приведенного со ссылками на прилагаемые чертежи.

На чертежах:

- фиг.1 иллюстрирует первый шаг способа по изобретению, соответствующий подготовке к пересылке исполняемого кода;

- фиг.2a-2g иллюстрируют состояние запоминающего устройства на различных шагах пересылки кода, предназначенного для исполнения;

- фиг.3a-3d иллюстрируют состояние запоминающего устройства на различных шагах исполнения исполняемого кода;

- на фиг.4 представлена блок-схема, иллюстрирующая способ пересылки исполняемого кода по настоящему изобретению; и

фиг.5 иллюстрирует способ исполнения исполняемого кода по настоящему изобретению.

Осуществление изобретения

Изобретение может быть разделено на две части. Первая часть касается пересылки исполняемого кода приемному устройству, с которым непосредственно соединен модуль безопасности, содержащий микроконтроллер и запоминающее устройство. Вторая часть касается исполнения такого кода в модуле безопасности.

Ниже со ссылками на прилагаемые чертежи приведено описание варианта осуществления изобретения, в котором производят пересылку исполняемого кода «большого размера» приемному устройству. Последнее содержит, в частности, модуль безопасности, оборудованный микроконтроллером, причем данный микроконтроллер осуществляет исполнение кода. Модуль безопасности также содержит запоминающее устройство, разделенное на две области, а именно, исполнительную область запоминающего устройства, исполнение исполняемого кода в которой разрешено, и неисполнительную область запоминающего устройства, исполнение исполняемого кода в которой запрещено. В контексте настоящего изобретения выражение «большой размер» означает, что размер исполняемого кода больше, чем размер исполнительной области запоминающего устройства или доступной части исполнительной области запоминающего устройства.

Кроме того, настоящее изобретение описано в контексте системы платного телевидения, в котором исполняемый код может представлять собой, например, код обновления для получения доступа к данным с условным доступом. Тем не менее, следует отметить, что тот же способ может быть использован и в других приложениях, а именно, в любых приложениях, в которых производят пересылку исполняемого кода микроконтроллеру в форме сообщений.

В контексте настоящего изобретения исполняемый код пересылают в сообщении, которое обычно представляет собой управляющее сообщение типа EMM (Entitlement Management Message). Как правило, такие сообщения имеют фиксированный размер или максимальный разрешенный размер, который не может быть превышен, т.к. в противном случае сообщение не сможет быть обработано. Такой размер может быть определен типом оборудования или типом используемых сообщений и соответствующими нормами.

На первом шаге способа пересылки по изобретению полный исполняемый код, представленный в левой части фиг.1 и под числовым обозначением 10 на фиг.4, разбивают на блоки, размер которых меньше максимального разрешенного размера управляющего сообщения. Кроме того, в соответствии с предпочтительным вариантом осуществления изобретения размер блока выбирают так, чтобы он не превышал размера исполнительной области запоминающего устройства, в которую направляют данный код. На практике размер блока выбирают так, чтобы при добавлении к нему дополнительных элементов, как описано ниже, размер блока с учетом добавленных к нему элементов по-прежнему не превышал размера доступной исполнительной области запоминающего устройства. Шаг разбиения на блоки обозначен на фиг.4 числовым обозначением 11.

Следующий шаг данного способа состоит в добавлении к каждому блоку, по меньшей мере, одного управляющего кода блока. На практике в оптимальном варианте к блоку добавляют два управляющих кода, один из которых размещают в начале блока, а второй - в его конце. Блок исполняемого кода вместе с управляющим кодом или управляющими кодами называют в нижеследующем описании расширенным блоком. Управляющие коды могут содержать различные команды, могут быть размещены в разных местах блока и могут различаться для разных блоков. В частности, управляющие коды первого блока, т.е. блока, содержащего начало исполняемой программы, в принципе отличаются от управляющих кодов последнего блока, т.е. блока, содержащего последние команды программы. Блоки, расположенные между первым и последним блоками, могут быть одинаковыми или, напротив, отличаться друг от друга.

Например, первый блок может содержать управляющий код CHK, осуществляющий проверку подлинности и/или целостности данного блока или всей программы. Проведение такой проверки подробно описано ниже. Первый блок также может содержать управляющий код, образованный командой CP NXT копирования следующего блока, которая также описана ниже. Шаг присоединения этих управляющих кодов обозначен на фиг.4 числовым обозначением 12.

На шаге 13 на фиг.4 каждый из расширенных блоков, т.е. блоков, содержащих исполняемый код и, по меньшей мере, один управляющий код, обрабатывают так, чтобы сформировать управляющее сообщение EMM. Готовые сообщения могут быть пересланы приемному устройству.

Сообщения управления пересылают так, чтобы сообщение, содержащее первый блок исполняемой программы, т.е. тот блок, который должен быть исполнен первым, был переслан последним. Порядок пересылки остальных блоков исполняемой программы значения не имеет. Как правило, управляющие сообщения EMM пересылают по несколько раз в циклическом процессе. Это означает, что порядок следования сообщений теряется. Последнее сообщение содержит средства для проверки наличия и целостности остальных сообщений. В случае получения положительного результата такой проверки выполнение процедуры продолжают. В противном случае необходимо дождаться получения недостающих сообщений в одном из последующих циклов пересылки.

В конкретном примере осуществления изобретения, представленном на фиг.1, исполняемый код по изобретению разбит на четыре блока, пронумерованных от 1 до 4. К каждому из блоков добавлено по два управляющих кода, после чего каждый блок с присоединенными к нему соответствующими управляющими кодами вставлен в управляющее сообщение EMM. Блок 1 вставлен в последнее сообщение, а именно, в управляющее сообщение EMM4. Блок 2 вставлен, например, в сообщение EMM1, блок 3 - в сообщение EMM3, и, наконец, блок 4 - в сообщение EMM2.

При пересылке исполняемого кода приемному устройству с микроконтроллером, например декодеру, соединенному с модулем безопасности, первым пересылают сообщение EMM1 авторизации. Данное действие соответствует шагу 14 на фиг.4. В представленном примере данное сообщение EMM1 содержит блок 2 исполняемого кода. После приема сообщения EMM1 соответствующим устройством его обрабатывают так, чтобы извлечь из него содержимое блока 2 и коды управления, которые оно содержит. Данный шаг обозначен на фиг.4 числовым обозначением 15.

Извлеченное содержимое помещают в исполнительную область запоминающего устройства, т.к. только она приспособлена к приему и обработке такого блока. Запись содержимого блока 2 в исполнительную область запоминающего устройства соответствует шагу 16 на фиг.4. Фиг.2a иллюстрирует состояние запоминающего устройства после приема и записи блока 2 в запоминающее устройство.

На фиг.2a-2g верхняя часть, обозначенная «Ex.», соответствует исполнительной области запоминающего устройства. Нижняя часть, обозначенная «N.ex.», соответствует неисполнительной области запоминающего устройства или части такой неисполнительной области запоминающего устройства. Таким образом, на фиг.2a исполнительная область запоминающего устройства содержит блок 2 и его управляющий код, в то время как неисполнительная область запоминающего устройства или, по меньшей мере, некоторая ее часть пуста и/или доступна для использования.

На следующем шаге, обозначенном на фиг.4 числовым обозначением 17, осуществляют исполнение одного из управляющих кодов блока 2. Данный код, обозначенный на фиг.1 и 2 символом MOV, производит перемещение или копирование содержимого блока 2 из исполнительной области запоминающего устройства в неисполнительную область запоминающего устройства. Результат данного действия представлен на фиг.2b.

Адрес, по которому происходит перемещение блока, может быть определен заранее, во время подготовки блоков, производимой на шаге 11. Кроме того, он может быть выбран в зависимости от наличия свободного места в неисполнительной области запоминающего устройства. Также могут быть предусмотрены и другие варианты, например, разбиение объема запоминающего устройства на области, размер которых равен размеру расширенного блока. В таком случае каждый из блоков помещают в одну из зон, выделенных для этой цели.

После перемещения или копирования содержимого исполнительной области запоминающего устройства она снова становится пустой или, по меньшей мере, доступной для использования, как схематически показано на фиг.2b. Перемещение содержимого запоминающего устройства, как правило, осуществляют посредством операции копирования. В настоящем описании термины «перемещение» и «копирование» рассматриваются как близкие по значению. Затем производят проверку для определения того, является ли пересланное сообщение последним. Данная проверка соответствует шагу 18 на фиг.4. На практике проверку на последнее сообщение обычно не производят с использованием внешних средств. Вместо этого проверку производят при помощи управляющего кода самого сообщения. Как указано выше, проверка состоит в установлении наличия всех необходимых сообщений, а также их подлинности и/или целостности. В дальнейшем описании предполагается, что в результате проверки получен отрицательный результат, т.е. имеются другие сообщения, которые необходимо переслать.

Затем на приемник пересылают следующее управляющее сообщение (в данном примере - сообщение EMM2). Данное управляющее сообщение содержит блок 4 исполняемого кода и связанные с ним управляющие коды. По получении данного сообщения блок программы извлекают из него и сохраняют в исполнительной области запоминающего устройства. Данное состояние представлено на фиг.2c.

После этого содержимое исполнительной области запоминающего устройства (блок 4) перемещают или копируют в неисполнительную область запоминающего устройства посредством исполнения команды MOV управляющего кода. Фиг.2d иллюстрирует случай, в котором содержимое блока 4 перемещено по определенному адресу в запоминающем устройстве.

В соответствии с данным способом аналогичным образом производят обработку третьего управляющего сообщения EMM3, которое содержит блок 3 исполняемого кода. Данное сообщение пересылают в исполнительную область запоминающего устройства, как показано на фиг.2e, а затем перемещают в свободную часть неисполнительной области запоминающего устройства, как показано на фиг.2f.

Затем производят пересылку последнего сообщения EMM4. Такое последнее сообщение содержит первый блок кода с числовым обозначением 1 в данном примере. Приемное устройство получает данное сообщение, после чего его обрабатывают так, чтобы извлечь его содержимое и сохранить его в исполнительной области запоминающего устройства

В отличие от других сообщений, данный блок не содержит в качестве управляющего кода команду перемещения. Поэтому содержимое данного блока не перемещают в неисполнительную область запоминающего устройства, а оставляют в исполнительной области запоминающего устройства. Таким образом, результат проверки шага 18 на фиг.4 для блока 1 будет положительным. Состояние запоминающего устройства на данном этапе представлено на фиг.2g.

На фиг.5 представлена процедура исполнения исполняемого кода, пересланного в соответствии с вышеописанным способом пересылки. Фиг.3a-3d иллюстрируют содержимое запоминающего устройства на различных этапах исполнения исполняемого кода.

Начало процедуры исполнения представлено на фиг.5 под числовым обозначением 20. Содержимое запоминающего устройства представлено на фиг.3a. Следует отметить, что содержимое запоминающего устройства идентично его содержимому, представленному на фиг.2g.

Исполнительная область запоминающего устройства содержит блок 1 и его управляющие коды. Один из управляющих кодов содержит набор команд проверки СНК. Команды проверки СНК предназначены для проверки подлинности и/или целостности исполняемой программы или блока команд. Такая проверка может быть произведена, например, путем вычисления сигнатуры или другого показателя целостности, сформированного в соответствии с командами, относящимися к блоку 1 или ко всем блокам, после чего вычисленную сигнатуру сравнивают с сигнатурой, содержащейся в самом блоке. Разумеется, в настоящем изобретении могут быть использованы и любые другие методы проверки. На фиг.5 шаг проверки обозначен числовым обозначением 21.

На практике, как правило, проверяют целостность всей программы, не производя обязательной проверки каждого блока, хотя и такое решение не исключено. В принципе, очевидно, что в случае повреждения или отсутствия одного из блоков проверка всей программы в целом способна обеспечить обнаружение такой ошибки.

В случае успешного прохождения проверки команды из исполнительной области запоминающего устройства, содержащиеся в блоке 1, исполняются обычным способом. Данный шаг обозначен на фиг.5 числовым обозначением 22. По завершении такого исполнения производят проверку наличия в данном блоке указателя конца программы в качестве управляющего кода. Данная проверка обозначена на фиг.5 числовым обозначением 23. В дальнейшем описании предполагается, что такая проверка дала отрицательный результат. Производят считывание управляющего кода, расположенного в конце блока 1. Данный код содержит команды CP NXT копирования следующего блока. После исполнения данного управляющего кода, что соответствует шагу 24 на фиг.5, содержимое исполнительной области запоминающего устройства заменяют следующим подлежащим исполнению блоком. В данном примере следующим блоком является блок 2. Адрес, по которому был размещен следующий блок, может содержаться в таблице, в предыдущем блоке или определяться любым другим соответствующим методом, например, с использованием идентификатора блока.

Состояние запоминающего устройства после копирования блока представлено на фиг.3b. Как показано на схеме, исполнительная область запоминающего устройства содержит блок 2. Очевидно, что команды перемещения, составляющие часть управляющего кода и расположенные в начале блока, не должны исполняться. Одно из возможных решений состоит в том, чтобы не копировать команды перемещения при копировании расширенного блока из неисполнительной области запоминающего устройства в исполнительную область запоминающего устройства. Данные команды также могут быть пропущены, например, при помощи указателя, изменяющего свое состояние при первом исполнении команд (на шаге 17 на фиг.4). Также может быть предусмотрено стирание данных команд при перемещении блока в неисполнительную область запоминающего устройства.

В соответствии с другим частным вариантом осуществления изобретения, если управляющий код блока 2 содержит код аутентификации и/или проверки целостности, то процедура возвращается к шагу 21 на фиг.5, а в противном случае возвращается к шагу 22.

Таким образом, на данном шаге производят исполнение содержимого блока 2, после чего проверяют, содержит ли данный блок команду завершения.

Область запоминающего устройства, которая до того содержала блок 2, может быть пуста или доступна для использования. Блок 1 более в запоминающем устройстве не сохраняется.

Как и в предыдущем случае, блок 2 содержит управляющий код CP NXT, который вызывает копирование содержимого следующего блока в исполнительную область запоминающего устройства.

На фиг.3c представлено состояние запоминающего устройства после копирования такого следующего блока. Блок 3, ранее сохраненный в неисполнительной области запоминающего устройства, перемещают в исполнительную область запоминающего устройства. Блок 2 удаляют. Обработку блока 3 производят так же, как описано выше, и заканчивают копированием последнего блока, т.е. блока 4, в исполнительную область запоминающего устройства.

Как и в предыдущих случаях, производят исполнение кода блока 4. Управляющий код данного, последнего блока содержит указатель END завершения. Указатель завершения может представлять собой, например, команду, которая передает управление исполнением команд операционной системе. При завершении программы, на шаге 23 на фиг.5 происходит обнаружение такого указателя или команды завершения и выполнение программы прекращается. Завершение программы может быть произведено с очисткой исполнительной области запоминающего устройства так, чтобы в ней не оставалось каких-либо частей программы, к которым был бы возможен доступ.

Настоящее изобретение описано на примере, в котором исполняемый код разбит на четыре блока. Разумеется, число таких блоков может быть иным и, в частности, значительно большим.

В вышеописанном примере осуществления изобретения использованы управляющие сообщения типа EMM. Также могут быть использованы другие типы сообщений, в частности, сообщения индивидуально разработанных форматов.

Управляющие коды, вводимые в блоки, используют для управления перемещением команд в запоминающем устройстве как в процессе пересылки кода, так и в процессе его исполнения. Однако некоторые из управляющих кодов не являются необходимыми для успешного применения способа. В частности, коды, связанные с аутентификацией и/или проверкой целостности содержимого блоков, могут быть исключены, хотя отказ от использования таких кодов отрицательно влияет на безопасность и/или надежность работы способа по изобретению.

Способ пересылки кода по изобретению описан выше в варианте осуществления, в котором пересылку исполняемого кода осуществляют сразу, т.е. обработку кода полностью завершают до пересылки другого исполняемого кода. Однако на практике возможно осуществление пересылки сообщений, соответствующих нескольким исполняемым кодам. Поскольку пересылку сообщений обычно производят в циклическом режиме, несколько блоков нескольких разных исполняемых кодов могут быть пересланы в перекрывающиеся промежутки времени. В таком случае к сообщениям может быть добавлен идентификатор, который указывает на то, к какому исполняемому коду относится то или иное сообщение. Может быть предусмотрена фильтрация таких сообщений, которая обеспечивает одновременную обработку лишь одного из исполняемых кодов или, напротив, сохранение разных исполняемых кодов в разных областях запоминающего устройства.

В соответствии с описанием настоящего изобретения управляющие коды связывают с блоками исполняемого кода с образованием расширенных блоков. В соответствии с одним из частных вариантов осуществления изобретения управляющие коды могут быть образованы не из исполняемых кодов, а просто из указателей, каждый из которых соответствует какой-либо конкретной команде. В таком случае, модуль безопасности, осуществляющий вышеописанные действия, интерпретирует такие указатели в соответствии с их содержанием.

Способ по изобретению, с одной стороны, позволяет использовать исполнительную область запоминающего устройства сравнительно небольшого размера, что позволяет повысить безопасность системы и снижает ее уязвимость к возможным атакам, а с другой стороны, обеспечивает возможность исполнения программ большого размера, не ограниченного размером исполнительной области запоминающего устройства.

1. Способ пересылки исполняемого кода модулю безопасности, непосредственно соединенному с приемным устройством, причем модуль безопасности содержит микроконтроллер и запоминающее устройство, включающее в себя, по меньшей мере, одну исполнительную область, выполненную с возможностью сохранения в ней команд, которые могут быть исполнены микроконтроллером, и, по меньшей мере, одну неисполнительную область, в которой микроконтроллер не может исполнять команды, отличающийся тем, что включает в себя следующие стадии:а. разбивают исполняемый код на блоки;b. присоединяют к каждому из блоков, по меньшей мере, один управляющий код блока с образованием расширенного блока, причем размер такого расширенного блока не превышает размера исполнительной области запоминающего устройства;с. вводят содержимое расширенного блока в сообщение типа, пригодного к обработке в приемном устройстве, так, что весь исполняемый код содержится в нескольких сообщениях;d. пересылают приемному устройству сообщение, содержащее один из расширенных блоков, отличных от первого расширенного блока, который содержит начало исполняемой программы;е. обрабатывают указанное сообщение с обеспечением извлечения из него расширенного блока;f. сохраняют в исполнительной области запоминающего устройства исполняемый код и, по меньшей мере, один из управляющих кодов полученного блока;g. производят исполнение, по меньшей мере, одного из управляющих кодов расширенного блока, причем этот управляющий код осуществляет перемещение содержимого блока в неисполнительную область запоминающего устройства;h. повторяют шаги от d) до g) до тех пор, пока все расширенные блоки, кроме указанного первого расширенного блока, не будут сохранены в неисполнительной области запоминающего устройства;i. пересылают приемному устройству сообщение, содержащее первый расширенный блок;j. обрабатывают указанное сообщение с обеспечением извлечения из него расширенного блока;k. сохраняют исполняемый код полученного блока в исполнительной области запоминающего устройства.

2. Способ по п.1, отличающийся тем, что пересылаемые сообщения представляют собой управляющие сообщения типа EMM.

3. Способ по п.1, отличающийся тем, что сообщения для нескольких пользователей идентичны.

4. Способ по п.1, отличающийся тем, что сообщения для каждого пользователя различны и уникальны.

5. Способ по п.1, отличающийся тем, что размер расширенных блоков меньше объема исполнительной области запоминающего устройства.

6. Способ по п.1, отличающийся тем, что управляющий код содержит команды, осуществляющие, по меньшей мере, одно из следующих действий: проверку подлинности и/или целостности, по меньшей мере, одного блока исполняемого кода; перемещение или копирование содержимого блока из исполнительной области запоминающего устройства в неисполнительную область запоминающего устройства; перемещение содержимого блока из неисполнительной области запоминающего устройства в исполнительную область запоминающего устройства; установку указателя завершения программы; удаление ранее исполненного управляющего кода.

7. Способ по п.1, отличающийся тем, что управляющий код содержит, по меньшей мере, один указатель, причем исполнение управляющего кода включает в себя исполнение исполняемого кода, связанного с этим указателем.

8. Способ исполнения исполняемого кода модулем безопасности, непосредственно соединенным с приемным устройством, причем модуль безопасности содержит микроконтроллер и запоминающее устройство, включающее в себя, по меньшей мере, одну исполнительную область, выполненную с возможностью сохранения в ней команд, которые могут быть исполнены микроконтроллером, и, по меньшей мере, одну неисполнительную область, в которой микроконтроллер не может исполнять команды, причем исполняемый код пересылается в соответствии со способом по п.1, отличающийся тем, что включает в себя следующие стадии:а. производят исполнение исполняемого кода, сохраненного в исполнительной области запоминающего устройства;b. производят исполнение, по меньшей мере, одного управляющего кода, который осуществляет перемещение блока из неисполнительной области запоминающего устройства в исполнительную область запоминающего устройства, причем указанный блок представляет собой блок, следующий за последним исполненным до этого блоком;с. повторяют шаги а) и b) до завершения исполнения кода.

9. Способ по п.8, отличающийся тем, что включает в себя проверку целостности и/или подлинности кода, которую выполняют до первого исполнения кода, сохраненного в исполнительной области запоминающего устройства.

10. Способ по п.9, отличающийся тем, что включает в себя проверку целостности и/или подлинности кода, которую выполняют до последующих исполнений кода, сохраненного в исполнительной области запоминающего устройства.

11. Способ по п.9 или 10, отличающийся тем, что проверка целостности и/или подлинности кода включает в себя сравнение сигнатуры и/или показателя целостности, вычисленного в соответствии с предназначенными к исполнению командами, с сигнатурой, сохраненной в блоке.

12. Способ по п.8, отличающийся тем, что, по меньшей мере, один из блоков содержит команду завершения исполнения, которая прекращает исполнение кода.