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

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

Info

Publication number
RU2463716C2
RU2463716C2 RU2010103017/08A RU2010103017A RU2463716C2 RU 2463716 C2 RU2463716 C2 RU 2463716C2 RU 2010103017/08 A RU2010103017/08 A RU 2010103017/08A RU 2010103017 A RU2010103017 A RU 2010103017A RU 2463716 C2 RU2463716 C2 RU 2463716C2
Authority
RU
Russia
Prior art keywords
block
storage device
code
area
executive
Prior art date
Application number
RU2010103017/08A
Other languages
English (en)
Other versions
RU2010103017A (ru
Inventor
Жоэль КОНУС (CH)
Жоэль КОНУС
Люка ГРАДАССИ (CH)
Люка ГРАДАССИ
Original Assignee
Награвисьон С.А.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Награвисьон С.А. filed Critical Награвисьон С.А.
Publication of RU2010103017A publication Critical patent/RU2010103017A/ru
Application granted granted Critical
Publication of RU2463716C2 publication Critical patent/RU2463716C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/167Systems rendering the television signal unintelligible and subsequently intelligible
    • H04N7/1675Providing digital key or authorisation information for generation or regeneration of the scrambling sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/418External card to be used in combination with the client device, e.g. for conditional access
    • H04N21/4181External card to be used in combination with the client device, e.g. for conditional access for conditional access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4435Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4623Processing of entitlement messages, e.g. ECM [Entitlement Control Message] or EMM [Entitlement Management Message]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Область техники, к которой относится изобретение
Настоящее изобретение касается пересылки исполняемого кода приемному устройству, содержащему модуль безопасности, а также обработки и исполнения такого кода в модуле безопасности, содержащем микроконтроллер, соединенный с запоминающим устройством. В частности, изобретение направлено на максимальное ограничение необходимого размера исполнительной области запоминающего устройства при обеспечении возможности исполнения программ большого размера.
Настоящее изобретение может быть применено, в частности, в модуле безопасности, используемом в области телевидения с ограниченным (условным) доступом.
Уровень техники
Некоторые из известных в настоящее время модулей безопасности используют запоминающие устройства, по меньшей мере, одного из следующих трех типов: запоминающие устройства типа 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. Также могут быть использованы другие типы сообщений, в частности, сообщения индивидуально разработанных форматов.
Управляющие коды, вводимые в блоки, используют для управления перемещением команд в запоминающем устройстве как в процессе пересылки кода, так и в процессе его исполнения. Однако некоторые из управляющих кодов не являются необходимыми для успешного применения способа. В частности, коды, связанные с аутентификацией и/или проверкой целостности содержимого блоков, могут быть исключены, хотя отказ от использования таких кодов отрицательно влияет на безопасность и/или надежность работы способа по изобретению.
Способ пересылки кода по изобретению описан выше в варианте осуществления, в котором пересылку исполняемого кода осуществляют сразу, т.е. обработку кода полностью завершают до пересылки другого исполняемого кода. Однако на практике возможно осуществление пересылки сообщений, соответствующих нескольким исполняемым кодам. Поскольку пересылку сообщений обычно производят в циклическом режиме, несколько блоков нескольких разных исполняемых кодов могут быть пересланы в перекрывающиеся промежутки времени. В таком случае к сообщениям может быть добавлен идентификатор, который указывает на то, к какому исполняемому коду относится то или иное сообщение. Может быть предусмотрена фильтрация таких сообщений, которая обеспечивает одновременную обработку лишь одного из исполняемых кодов или, напротив, сохранение разных исполняемых кодов в разных областях запоминающего устройства.
В соответствии с описанием настоящего изобретения управляющие коды связывают с блоками исполняемого кода с образованием расширенных блоков. В соответствии с одним из частных вариантов осуществления изобретения управляющие коды могут быть образованы не из исполняемых кодов, а просто из указателей, каждый из которых соответствует какой-либо конкретной команде. В таком случае, модуль безопасности, осуществляющий вышеописанные действия, интерпретирует такие указатели в соответствии с их содержанием.
Способ по изобретению, с одной стороны, позволяет использовать исполнительную область запоминающего устройства сравнительно небольшого размера, что позволяет повысить безопасность системы и снижает ее уязвимость к возможным атакам, а с другой стороны, обеспечивает возможность исполнения программ большого размера, не ограниченного размером исполнительной области запоминающего устройства.

Claims (12)

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, отличающийся тем, что, по меньшей мере, один из блоков содержит команду завершения исполнения, которая прекращает исполнение кода.
RU2010103017/08A 2007-07-10 2008-07-09 Способ передачи исполняемого кода в приемное устройство и способ выполнения такого кода RU2463716C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07112160.2 2007-07-10
EP07112160A EP2015561A1 (fr) 2007-07-10 2007-07-10 Procédé d'envoi d'un code exécutable à un dispositif de réception et procédé d'exécution de ce code

Publications (2)

Publication Number Publication Date
RU2010103017A RU2010103017A (ru) 2011-08-20
RU2463716C2 true RU2463716C2 (ru) 2012-10-10

Family

ID=39470166

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010103017/08A RU2463716C2 (ru) 2007-07-10 2008-07-09 Способ передачи исполняемого кода в приемное устройство и способ выполнения такого кода

Country Status (9)

Country Link
US (1) US8484484B2 (ru)
EP (2) EP2015561A1 (ru)
KR (1) KR101461698B1 (ru)
CN (1) CN101822038B (ru)
BR (1) BRPI0812617A2 (ru)
CA (1) CA2692807C (ru)
IL (1) IL203203A (ru)
RU (1) RU2463716C2 (ru)
WO (1) WO2009007403A2 (ru)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2954651B1 (fr) * 2009-12-23 2012-03-16 Viaccess Sa Procede de mise a jour d'un processeur de securite, systeme, programme d'ordinateur et processeur de securite correspondants
EP3073407B1 (en) * 2015-03-26 2019-12-18 Nagravision S.A. Method and system for searching for at least a specific datum in a user unit
WO2017188970A1 (en) * 2016-04-29 2017-11-02 Hewlett Packard Enterprise Development Lp Management processor using code from peripheral device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1256042B1 (en) * 2000-02-17 2005-07-20 General Instrument Corporation Method and system for secure downloading of software
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
RU2282888C2 (ru) * 2001-09-26 2006-08-27 Интерэкт Дивайсиз, Инк. Система и способ для обмена сигналами аудиовизуальной информации

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440632A (en) 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal
US20020138702A1 (en) * 2001-03-26 2002-09-26 Moshe Gefen Using non-executable memory as executable memory
KR100392306B1 (ko) * 2001-06-04 2003-07-22 주식회사 한단정보통신 위성방송수신기 시스템의 프로그램 처리 장치 및 방법
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
TW200500887A (en) * 2003-03-03 2005-01-01 Nagracard Sa Security modules deactivation and reactivation method
US7409675B2 (en) * 2004-02-27 2008-08-05 Microsoft Corporation Code rewriting
US7546447B2 (en) * 2004-05-08 2009-06-09 Intel Corporation Firmware interface runtime environment protection field
KR100640389B1 (ko) 2005-04-06 2006-10-30 삼성전자주식회사 Nand플래시 메모리를 구비한 장치에서 어플리케이션을실행하는 방법 및 그 장치
EP1739519A1 (en) * 2005-06-30 2007-01-03 Axalto SA Method to secure the execution of a program against attacks by radiation or other

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
EP1256042B1 (en) * 2000-02-17 2005-07-20 General Instrument Corporation Method and system for secure downloading of software
RU2282888C2 (ru) * 2001-09-26 2006-08-27 Интерэкт Дивайсиз, Инк. Система и способ для обмена сигналами аудиовизуальной информации

Also Published As

Publication number Publication date
US8484484B2 (en) 2013-07-09
KR20100037092A (ko) 2010-04-08
RU2010103017A (ru) 2011-08-20
US20100138636A1 (en) 2010-06-03
CN101822038A (zh) 2010-09-01
EP2177019A2 (fr) 2010-04-21
KR101461698B1 (ko) 2014-11-13
CA2692807A1 (en) 2009-01-15
IL203203A (en) 2013-08-29
WO2009007403A2 (fr) 2009-01-15
CA2692807C (en) 2015-11-03
WO2009007403A3 (fr) 2009-04-09
EP2015561A1 (fr) 2009-01-14
EP2177019B1 (fr) 2014-04-30
BRPI0812617A2 (pt) 2015-09-15
CN101822038B (zh) 2013-01-02

Similar Documents

Publication Publication Date Title
CN100423013C (zh) 加载可信操作系统的方法和装置
US7721114B2 (en) Method for using shared library in tamper resistant microprocessor
CN108073816B (zh) 信息处理装置
CN107924449B (zh) 一种通知消息处理方法、装置及终端
KR100917370B1 (ko) 프로그램을 저장한 컴퓨터 판독 가능 매체, 프로그램을실행하는 정보 처리 장치, 및 프로그램을 실행하기 위한프로그램 제어 방법
JPH11506240A (ja) スマートカードのデータを安全に変更する方法
JP2006522387A (ja) コンピュータソフトウェアの実行を管理するためのシステムおよび方法
WO2011134207A1 (zh) 软件保护方法
US8219978B2 (en) Information processing device
RU2463716C2 (ru) Способ передачи исполняемого кода в приемное устройство и способ выполнения такого кода
US20170124339A1 (en) Implementing method for javacard application function expansion
EP3610399B1 (en) Enabling program code on target data processing devices
KR20210022915A (ko) 실행코드를 검증하는 하드웨어 보안모듈 및 그것을 갖는 디바이스 및 그것의 동작 방법
US20080189539A1 (en) Computer system for authenticating requested software application through operating system and method thereof
US7624442B2 (en) Memory security device for flexible software environment
CN110378137A (zh) 一种硬件底层加密存储方法、系统及可读存储介质
KR20110085894A (ko) 소프트웨어 애플리케이션의 실행 방법 및 소프트웨어 애플리케이션을 위한 저장 디바이스
US20080022119A1 (en) Method and apparatus for preventing illegal access in electronic device
JP2004102635A (ja) ユーザ認証方法、情報システム、文書保存装置及びデジタル複合機
EP3416086A1 (en) Method for managing an instance of a class
CN112307481B (zh) 一种系统可信启动方法、电子设备及计算机可读存储介质
EP2202661B1 (en) Apparatus and method for protecting asset in computer system
KR101271479B1 (ko) 모바일 콘텐츠 보호를 위한 탈착형 메모리를 이용한 보안 시스템 및 그 제어방법
US20220129558A1 (en) Image forming apparatus, firmware manipulation prevention method, and computer-readable non-transitory recording medium containing manipulation prevention program
JP2003288214A (ja) 情報処理装置、情報処理方法

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20180710