СПОСОБ ЗАЩИТЫ ИСПОЛНЕНИЯ ПРОГРАММЫ Российский патент 2012 года по МПК G06F21/22 G06F12/14 

Описание патента на изобретение RU2468428C2

Настоящее изобретение касается способа защиты исполнения программы микропроцессором, в частности микропроцессором карты-носителя данных, такой как банковская карта или электронная идентификационная карта.

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

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

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

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

Объект изобретения

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

Сущность изобретения

В этой связи объектом настоящего изобретения является способ защиты исполнения главной программы, применяющей вложенные друг в друга функции, содержащий следующие этапы:

- исполняют программу управления защитой, выполненную с возможностью обновления списка текущих функций,

- сообщают программе управления защитой о начале исполнения каждой функции и обновляют список текущих функций,

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

- после каждого сообщения о завершении исполнения функции проверяют, что эта функция действительно является последней, начавшей исполнение функцией,

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

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

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

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

- инициализируют поля,

- при сообщении о начале исполнения функции идентификатор функции записывают в первое свободное поле.

Этот вариант выполнения является исключительно простым и эффективным, и его осуществление требует ограниченного использования вычислительных ресурсов и ресурсов памяти.

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

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

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

Это описание представлено со ссылками на прилагаемые чертежи, на которых:

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

Фиг.2 - схема исполнения главной программы в рамках способа в соответствии с настоящим изобретением.

Фиг.3 - схема исполнения программы управления защитой в рамках способа в соответствии с настоящим изобретением.

Подробное описание изобретения

Описание настоящего изобретения в данном случае представлено и показано на чертежах для карты 1 данных, содержащей интегральную схему, обозначенную в целом позицией 2 и содержащую микропроцессор 3, соединенный с энергозависимой памятью 4 (например, типа RAM ("Оперативное запоминающее устройство") и с энергонезависимой памятью 5, например, типа EEPROM ("Электрически стираемое программируемое постоянное запоминающее устройство") или ROM ("Постоянное запоминающее устройство").

Энергонезависимая память 5 содержит главную программу, обозначенную на фиг.2 позицией 6, применяющую вложенные друг в друга функции F1, F2, F3. Функция F1 выполнена с возможностью обращения во время своего исполнения к функции F2, которая, в свою очередь, выполнена с возможностью обращения во время своего исполнения к функции F3. В конце исполнения функции F3 исполнение функции F2 продолжается, и в конце исполнения функции F2 продолжается исполнение функции F1. Характер функций F1, F2 и F3 не имеет большого значения, и эти функции обеспечивают, например, операции считывания кода, вводимого в терминал, с которым связана электронная карта, операции вычисления, проверки этого кода, шифрования, увеличения или уменьшения значения счетчика, копирования из одной памяти в другую.

Каждая функция F1, F2 и F3 имеет идентификатор ID-F1, ID-F2 и ID-F3, обозначающий однозначным образом указанные функции. Идентификатор функций построен таким образом, чтобы содержать в закодированном виде данные, характерные для функции, и, в частности, ее уровень защиты.

Кроме того, энергонезависимая память 5 содержит программу управления защитой, обозначенную на фиг.3 позицией 7 и выполненную с возможностью обновления списка функций в ходе исполнения или стека запроса функций. Этот список представляет собой таблицу 8, содержащую последовательность полей 9, предназначенных для внесения в них идентификации функций в ходе исполнения. Программа 7 управления защитой (сама по себе известна, поэтому ее подробное описание опускается) использует индекс для указания первого свободного поля стека. Кроме того, программа управления защитой имеет доступ к таблице, связывающей защитные действия, предназначенные для осуществления, в зависимости от уровней защиты, закодированных в идентификаторе функций.

Далее следует описание способа в соответствии с настоящим изобретением.

Во время работы, когда микропроцессор 3 карточки исполняет главную программу 6, он одновременно исполняет программу 7 управления защитой.

При запуске происходит инициализация полей 9 таблицы 8 путем записи в них значения по умолчанию, в данном случае NOFCT, и индекс указывает на первое поле (называемое также свободным полем), содержащее это значение по умолчанию.

Когда главная программа исполняет функцию F1, функция F1 передает сообщение о начале своего исполнения в программу 7 управления защитой через интерфейс FUNCTION-BEGIN (такой интерфейс сам по себе известен). При этом программа 7 управления защитой записывает идентификатор ID-F1 функции F1 в первое свободное поле 9 таблицы 8 и помещает свой индекс на следующее поле 9, которое становится первым свободным полем.

Когда функция F1 обращается к функции F2, функция F2 сообщает о начале своего исполнения в программу управления защитой через интерфейс FUNCTION-BEGIN. Программа 7 управления защитой записывает идентификатор функции F2 (в данном случае ID-F2) в указанное поле 9, затем помещает индекс в следующее поле 9.

Когда функция F2 обращается к функции F3, функция F3 сообщает о начале своего исполнения в программу 7 управления защитой, которая записывает в указанное индексом поле идентификатор ID-F3 функции F3 и помещает индекс в следующее поле 9.

Когда исполнение функции F3 завершается, функция F3 сообщает о завершении своего исполнения в программу 7 управления защитой через интерфейс FUNCTION-END (такой интерфейс сам по себе известен). При этом программа 7 управления защитой проверяет, что функция F3, сообщающая о завершении своего исполнения, является последней, начавшей свое исполнение. Если это так, исполнение функции F2 продолжается до конца, при этом функция F2 сообщает в программу 7 управления защитой о завершении своего исполнения через интерфейс FUNCTION-END. Программа 7 управления защитой проверяет, что функция F2, сообщающая о завершении своего исполнения, является последней, начавшей свое исполнение. Если это так, исполнение функции F1 продолжается до конца.

Если функция, сообщающая в программу 7 управления защитой о завершении своего исполнения, не является последней, начавшей это исполнение, программа 7 управления защитой осуществляет защитное действие. В данном случае это защитное действие представляет собой тревожный сигнал, передаваемый в главную программу 6, которая прекращает свое исполнение. Защитное действие может заключаться также в блокировке карты, при этом разблокировку может произвести, например, только организация, выпустившая карты, после проверки личности ее владельца. Защитным действием может быть также защитная контрмера. Под защитной контрмерой следует понимать средство, позволяющее, в частности, избежать считывания информации хакером, например, следующим образом:

- изменяя частоту тактового генератора,

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

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

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

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

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

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

Похожие патенты RU2468428C2

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ПЕЙДЖИНГОВОЙ СВЯЗИ 1995
  • Вонг Габриел К.
  • Тсуи По С.
RU2145771C1
СПОСОБЫ АУТЕНТИФИКАЦИИ, ШИФРОВАНИЯ И ДЕКОДИРОВАНИЯ ИДЕНТИФИКАТОРА КЛИЕНТСКОГО ТЕРМИНАЛА И УСТРОЙСТВА ДЛЯ ИХ РЕАЛИЗАЦИИ 2007
  • Урьен Паскаль
  • Бадра Мохамад
RU2451398C2
МИКРОПРОЦЕССОРНАЯ СХЕМА ДЛЯ НОСИТЕЛЯ ДАННЫХ И СПОСОБ ДЛЯ ОБЕСПЕЧЕНИЯ ДОСТУПА К ДАННЫМ, ЗАГРУЖЕННЫМ В ПАМЯТЬ 2002
  • Брюкльмайр Франц-Йозеф
  • Фридингер Ханс
  • Зедлак Хольгер
  • Май Кристиан
RU2266559C2
СПОСОБ ПРОВЕРКИ ДЕЙСТВИТЕЛЬНОСТИ ЦИФРОВЫХ ОТМЕТОК О ФРАНКИРОВАНИИ 2002
  • Делиц Александер
  • Фери Петер
  • Хельмус Юрген
  • Хель Алоизиус
  • Майер Гюнтер
  • Робель Эльке
  • Штумм Дитер
RU2292591C2
СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА 2016
  • Моляков Андрей Сергеевич
RU2626350C1
ГЕНЕРАЦИЯ КРИПТОГРАФИЧЕСКОГО КЛЮЧА 2008
  • Норрман Карл
  • Неслунд Матс
RU2480925C2
СПОСОБ, СИСТЕМА И КОМПЬЮТЕРНОЕ УСТРОЙСТВО ДЛЯ ПРЕДОСТАВЛЕНИЯ УСЛУГ СВЯЗИ МЕЖДУ РЕСУРСАМИ В СЕТЯХ СВЯЗИ И ИНТЕРНЕТ С ЦЕЛЬЮ ПРОВЕДЕНИЯ ТРАНЗАКЦИЙ 2002
  • Серебренников Олег Александрович
RU2273107C2
СПОСОБ И СИСТЕМА ПРОВЕДЕНИЯ ТРАНЗАКЦИЙ В СЕТИ С ИСПОЛЬЗОВАНИЕМ СЕТЕВЫХ ИДЕНТИФИКАТОРОВ 2003
  • Серебренников Олег Александрович
RU2376635C2
СПОСОБ СИНХРОНИЗАЦИИ И ПЕРЕДАЧИ ВЫГРУЖЕННОГО СОЕДИНЕНИЯ СЕТЕВОГО СТЕКА В СЕТЕВОЙ СТЕК 2003
  • Пинкертон Джеймс
  • Гбадегесин Аболаде
  • Канийар Санджай
  • Сринивас Н.К.
RU2336652C2
СПОСОБ УПЛОТНЕНИЯ СООБЩЕНИЙ, СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО И ПРОГРАММА 2012
  • Полиньи Жан-Рош
  • Гомес Венсан
  • Джеймс Себастьен
  • Руайе Джессика
  • Поммаре Жан-Кристоф
  • Грандеманж Жером
RU2613041C2

Иллюстрации к изобретению RU 2 468 428 C2

Реферат патента 2012 года СПОСОБ ЗАЩИТЫ ИСПОЛНЕНИЯ ПРОГРАММЫ

Изобретение относится к вычислительной технике. Технический результат заключается в повышении степени защиты исполнения главной программы, содержащей вложенные функции. Способ защиты исполнения главной программы, применяющей вложенные друг в друга функции, содержит этапы, на которых: исполняют программу управления защитой, выполненную с возможностью обновления списка идентификаторов текущих функций; сообщают программе управления защитой о начале исполнения каждой функции и обновляют список идентификаторов текущих функций; сообщают программе управления защитой о завершении исполнения каждой функции; после каждого сообщения о завершении исполнения функции проверяют, что функция является последней, начавшей исполнение функцией; в случае неудачной проверки осуществляют защитное действие, выбираемое в зависимости от уровня защиты, назначенного для каждой функции. 7 з.п. ф-лы, 3 ил.

Формула изобретения RU 2 468 428 C2

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

2. Способ по п.1, в котором защитное действие состоит в испускании сигнала тревоги.

3. Способ по п.1, в котором защитное действие состоит в прерывании главной программы.

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

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

6. Способ по п.1, в котором программа управления защитой имеет доступ к таблице возможных запросов функций для каждой функции главной программы.

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

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

Документы, цитированные в отчете о поиске Патент 2012 года RU2468428C2

DE 10252347 A1, 19.05.2004
EP 1870814 A1, 26.12.2007
EP 1450232 A1, 25.08.2004
Способ приготовления мыла 1923
  • Петров Г.С.
  • Таланцев З.М.
SU2004A1
СПОСОБ КОМПЛЕКСНОЙ ЗАЩИТЫ ПРОЦЕССА ОБРАБОТКИ ИНФОРМАЦИИ В ЭВМ ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА, ПРОГРАММНЫХ ЗАКЛАДОК И ВИРУСОВ 1998
  • Насыпный В.В.
RU2137185C1
ЗАЩИЩЕННОЕ УСТРОЙСТВО 2003
  • Мацузаки Нацуме
  • Сакусима Казуо
  • Татебаяси Макото
RU2313122C2

RU 2 468 428 C2

Авторы

Декруа Давид

Гонкальв Луи-Филипп

Рудьер Гийом

Даты

2012-11-27Публикация

2009-03-12Подача