|
(21), (22) Заявка: 2003134151/09, 06.05.2002
(24) Дата начала отсчета срока действия патента:
06.05.2002
(30) Конвенционный приоритет:
10.05.2001 DE 10122505.9
(43) Дата публикации заявки: 27.05.2005
(46) Опубликовано: 20.11.2007
(56) Список документов, цитированных в отчете о поиске:
DE 19918620 A1, 23.10.2000. US 6192487 B1, 20.02.2001. JP 2000353144 A, 19.12.2000. US 3946366 A, 23.03.1976. US 5784577 A, 21.07.1998. DE 19701166 A, 23.07.1998. RU 206687 C1, 20.09.1996. СЕЛЛЕРС Ф. Методы обнаружения ошибок в работе ЭЦВМ. – М.: Мир, 1972, с.27-31. ЖИГАРЕВ А.Н. и др. Основы компьютерной грамоты. – Л.: Машиностроение, 1987, с.36, 37, 66, 67, рис.2.30.
(85) Дата перевода заявки PCT на национальную фазу:
10.12.2003
(86) Заявка PCT:
EP 02/04983 (06.05.2002)
(87) Публикация PCT:
WO 02/091168 (14.11.2002)
Адрес для переписки:
101000, Москва, М.Златоустинский пер., 10, кв.15, “ЕВРОМАРКПАТ”, пат.пов. Р.А.Каксису, рег.№ 899
|
(72) Автор(ы):
Вернер НЕСС (DE)
(73) Патентообладатель(и):
ГИЗЕКЕ УНД ДЕВРИЕНТ ГМБХ (DE)
|
(54) СПОСОБ ЗАЩИТЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ОТ НЕСАНКЦИОНИРОВАННОГО ВЫПОЛНЕНИЯ ОПЕРАЦИЙ С СОДЕРЖИМЫМ ЕГО РЕГИСТРОВ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ ОСУЩЕСТВЛЕНИЯ ЭТОГО СПОСОБА
(57) Реферат:
Изобретение относится к средствам защиты от несанкционированных действий. Техническим результатом является снижение объема вычислений и повышение скорости вычислений. Для этого в отдельных резервных регистрах (10а-10с) сохраняются копии содержимого защищаемых регистров (6; СК). При выполнении каждой команды содержимое защищаемого регистра сравнивается с его копией. Выполнение команды происходит только при совпадении между собой содержимого обоих регистров. Несовпадение содержимого регистров между собой интерпретируется как указание на несанкционированно выполнявшиеся операции с содержимым защищаемого регистра, в ответ на что инициируется соответствующая обработка ошибок. 3 н. и 11 з.п. ф-лы, 4 ил.
Настоящее изобретение относится к способу защиты вычислительного устройства, прежде всего микроконтроллера (МК) или микропроцессора (МП), от несанкционированного выполнения операций с содержимым их регистров. Изобретение относится также к чип-карте, в которой используется этот способ, соответственно это вычислительное устройство.
Защита компонентов и элементов вычислительного устройства от несанкционированного выполнения операций с содержащимися или хранящимися в них данными является необходимым условием эффективного применения вычислительного устройства во многих прикладных областях, например вычислительных устройств, которыми оснащаются чип-карты. Одним из известных методов защиты регистров от несанкционированного выполнения операций с их содержимым является шифрование данных.
Из DE 19918620 А1 известен способ защиты вычислительного устройства от несанкционированного выполнения операций с обрабатываемой в нем и хранящейся в его памяти информацией, в соответствии с которым после выполнения центральным процессором каждой команды программы с содержимым различных регистров выполняется логическая операция, прежде всего операция Исключающее ИЛИ, результат этой операции сохраняется в памяти, а затем перед выполнением следующей команды такая же логическая операция выполняется с содержимым тех же регистров и полученный при выполнении этой логической операции результат после этого сравнивается с ранее сохраненным в памяти результатом предыдущей логической операции. Подобный способ защиты вычислительного устройства зарекомендовал себя в качестве достаточно эффективного.
В основу настоящего изобретения была положена задача разработать альтернативный способ защиты вычислительного устройства, указанного в начале описания типа.
Для решения этой задачи в изобретении предлагается способ защиты вычислительного устройства от несанкционированного выполнения операций с содержимым его регистров, заключающийся в том, что создают и сохраняют копию содержимого защищаемого регистра и по мере необходимости содержимое защищаемого регистра сравнивают с его копией.
В контексте настоящего изобретения под выражением “сравнение по мере необходимости” подразумевается прежде всего, например, сравнение, которое осуществляется при выполнении каждой команды с целью установить, произошло ли в период времени между завершением отработки предшествующей команды и началом отработки следующей команды несанкционированное выполнение операций с содержимым защищаемого регистра. Тем самым такое сравнение позволяет связать его во времени с операцией по увеличению показаний счетчика команд, содержимое которого устанавливает последовательность отрабатываемых команд.
Для повышения степени защиты согласно одному из предпочтительных вариантов осуществления изобретения предлагается сохранять содержимое защищаемого регистра в виде его копии в модифицированном виде. Благодаря этому исключается возможность выявления определенных регистров путем несанкционированного сравнения между собой содержимого различных регистров, что тем самым делает защиту попросту бесполезной. Модификация же копируемых данных не позволяет установить соответствие между содержимым защищаемого регистра и его копией простым их сравнением друг с другом.
Модификация данных может заключаться в побитовой инверсии копируемых данных. В этом случае копия содержимого защищаемого регистра имеет вид двоичного кода, обратного исходному содержимому защищаемого регистра. Связанное с подобным подходом преимущество заключается в возможности проводить сравнение между копией содержимого защищаемого регистра и фактическим его содержимым путем, например, простого вычитания этой копии из содержимого защищаемого регистра. При соответствии копии данных их оригиналу полученная разность равняется нулю. Получение же отличного от нуля значение указывает на несанкционированное искажение данных в защищаемом регистре (или их копии).
Согласно еще одному варианту осуществления изобретения содержимое защищаемого регистра и/или содержимое регистра, в котором сохраняется копия содержимого защищаемого регистра, предлагается маскировать. Подобное маскирование может заключаться, например, в использовании косвенной адресации соответствующего регистра.
В особом варианте осуществления изобретения предлагается маскировать физические взаимосвязи между защищаемым регистром и регистром, в котором сохраняется копия содержимого защищаемого регистра. Такое маскирование может, например, заключаться в размещении регистра, в котором сохраняется копия содержимого защищаемого регистра, и защищаемого регистра в различных областях полупроводниковой памяти. Размещение предназначенного для хранения копии данных регистра в отделенной от защищаемого регистра области полупроводниковой памяти может означать не только фактическое пространственное разнесение обоих этих регистров, но и виртуальное или логическое их разделение за счет модификации адреса регистра, предназначенного для хранения копии содержимого защищаемого регистра.
Сравнение содержимого защищаемого регистра и копии этого содержимого, хранящейся в предназначенном для этого регистре, наиболее предпочтительно осуществлять с помощью аппаратного компаратора или же с помощью микропрограммы. Сравнение между собой содержимого обоих регистров с использованием подобных средств происходит с наиболее высокой скоростью и лишь незначительно замедляет процесс обработки данных по соответствующей программе. Компараторы, позволяющие выполнять побитовое сравнение содержимого различных регистров, известны. Альтернативно этой возможности сравниваемое между собой содержимое двух регистров можно проверять на предмет их взаимного соответствия путем вычитания/сложения. Если копия представляет собой не модифицированную версию исходного содержимого защищаемого регистра, то сравнение может осуществляться путем обычного вычитания содержимого одного регистра из содержимого другого регистра. При получении при таком вычитании отличного от нуля результата в центральный процессор (ЦП) вычислительного устройства выдается сигнал об имевшем место несанкционированном выполнении операций с содержимым регистра. В этом случае для обработки данных, содержащих информацию о таком выявленном факте несанкционированного выполнения операций с содержимым регистра, могут происходить переход к отработке особых команд или блоков программы.
Если же в предназначенном для хранения копии данных регистре сохранена инвертированная версия исходного содержимого защищаемого регистра, то операция вычитания просто лишь заменяется на операцию сложения сравниваемого между собой содержимого обоих регистров.
Согласно еще одному особому варианту осуществления изобретения при создании и сохранении копии содержимого защищаемого регистра можно также модифицировать не все содержимое защищаемого регистра, а только его часть. Так, например, регистр длиной (разрядностью) 8 бит можно разделить на две части одинаковой длины по четыре бита в каждой и в качестве копии сохранять первую часть содержимого защищаемого регистра в немодифицированном виде, а вторую часть – в инвертированном виде. В этом случае подобная особенность модификации копируемых данных учитывается при проводимом в последующем сравнении.
В изобретении предлагается также вычислительное устройство, выполненное в виде микроконтроллера или микропроцессора и предназначенное для осуществления описанного выше способа. Такое вычислительное устройство имеет первый блок регистров по меньшей мере с одним защищаемым регистром, второй блок регистров по меньшей мере с одним резервным (избыточным) регистром, предназначенным для сохранения в нем копии (возможно в модифицированном виде) содержимого защищаемого регистра, и компаратор, предназначенный для выполняемого по мере необходимости сравнения содержимого защищаемого регистра и содержимого резервного регистра, в зависимости от результата которого (сравнения) происходит последующая обработка данных центральным процессором вычислительного устройства.
В изобретении предлагается далее чип-карта, оснащенная описанным выше вычислительным устройством.
Ниже изобретение более подробно рассмотрено на примере некоторых вариантов его осуществления со ссылкой на прилагаемые чертежи, на которых показано:
на фиг.1 – функциональная схема изображенного в упрощенном виде вычислительного устройства, поясняющая меры по защите от несанкционированного выполнения операций с содержимым одного или нескольких его регистров,
на фиг.2 – схематичное изображение компаратора, предназначенного для сравнения содержимого защищаемого и резервного регистров,
на фиг.3 – схематичное изображение компаратора, выполненного по другому варианту, отличному от показанного на фиг.2,
на фиг.4 – схематичное изображение компаратора (схемы сравнения), предназначенного для сравнения содержимого двух регистров и выполненного по варианту, отличному от показанного на фиг.2.
На фиг.1 в виде функциональной схемы в упрощенном виде показано вычислительное устройство. Настоящее изобретение относится в первую очередь, но не исключительно, к микроконтроллеру (МК) или микропроцессору (МП). Частной областью применения изобретения является чип-карта, в чипе которой требуется защищать содержимое его определенных регистров от несанкционированного выполнения с ним операций.
В соответствии с показанной на фиг.1 схемой в выполненной в виде постоянного запоминающего устройства (ПЗУ) программной памяти 2 хранится выполняемая вычислительным устройством программа. Из этой программной памяти 2 в зависимости от содержимого счетчика 6 команд (СК) считывается следующая выполняемая команда. Эта считанная команда затем помещается в буфер или регистр 4 команд.
Счетчик 6 команд является частью блока регистров в оперативном запоминающем устройстве 20 (ОЗУ). Блок регистров обозначен на чертеже позицией 14, и помимо счетчика 6 команд в его состав входят и другие регистры P1, P2,…, а также регистр-указатель РУ (указатель стека). Остальные регистры за исключением счетчика 6 команд обозначены на фиг.1 позицией 8.
В логически и/или пространственно отделенной от блока 14 регистров области ОЗУ 20 находится второй блок 12 регистров, который в рассматриваемом примере имеет три резервных регистра 10а, 10b и 10с. В этих резервных регистрах 10а, 10b и 10с сохраняются копии содержимого счетчика команд (СК’), регистра Р1 (Р1′) и указателя стека (УК’).
С программной памятью 2, ОЗУ 20 и регистром 4 команд управляющими шинами соединен блок 100 управления (центральный процессор, ЦП), который одновременно с этим соединен с ОЗУ 20 системой шин, которые на чертеже схематично показаны в виде ШИНЫ А, подсоединенной к той области памяти, в которой организован блок 14 регистров, и ШИНЫ В, подсоединенной к той области памяти, в которой организован блок 12 регистров.
На фиг.2 схематично показана конфигурация компаратора, предназначенного для сравнения показания счетчика команд СК, хранящегося в защищаемом регистре 6, с копией СК’ показания счетчика команд, хранящегося в резервном регистре 10а. Для такого сравнения содержимое одного регистра вычитается в блоке 22 вычитания из содержимого другого регистра. При совпадении содержимого обоих регистров полученная разность равняется нулю. Отличное от нуля значение указывает не имевшее место несанкционированное выполнение операций с содержимым одного или другого регистра 6, 10а (либо обоих этих регистров).
В процессе работы вычислительного устройства показание СК счетчика команд перед считыванием очередной команды из программной памяти 2 сравнивается с его предварительно сохраненной в резервном регистре 10а копией СК’. Фактическое считывание соответствующей команды из программной памяти 2 или выполнение считанной команды, помещенной затем в регистр 4 команд, осуществляется лишь при совпадении обоих показаний счетчика команд. При отсутствии взаимного соответствия между СК и СК’ дальнейшее выполнение процесса считывания команды, соответственно ее отработка блокируется и начинается выполнение стандартной программы обработки ошибок, которая, поскольку она не имеет существенного значения для пояснения сущности настоящего изобретения, подробно не рассматривается.
В показанном на фиг.2 варианте выполнения компаратора предполагалось, что показания СК счетчика команд сохраняются в резервном регистре 10а в виде точной их копии СК’.
Однако в другом варианте содержимое защищаемого регистра при создании его сохраняемой в резервном регистре копии можно также несколько модифицировать.
На фиг.3 в качестве примера сохранения подобной модифицированной копии содержимого защищаемого регистра схематично проиллюстрирован процесс сохранения содержимого регистра Р1 в виде его создаваемой путем побитовой инверсии версии. После выполнения каждой команды содержимое регистра Р1 подвергается побитовой инверсии схематично показанным на чертеже инвертором 26, в результате чего в резервном регистре 10b в качестве копии Р1′ содержимого регистра Р1 сохраняется его полученная путем побитовой инверсии версия. В этом случае такая получаемая в результате побитовой инверсии копия Р1′ имеет вид двоичного кода, обратного исходному содержимому регистра Р1. В этом варианте сравнение между собой содержимого обоих регистров заключается в сложении содержимого одного регистра с содержимым другого регистра, при этом полученная сумма должна равняться нулю, свидетельствующему о взаимном совпадении между содержимым обоих регистров, т.е. об отсутствии несанкционированно выполнявшихся операций с содержимым регистра.
На фиг.4 показан другой модифицированный вариант выполнения компаратора, соответственно вариант осуществления процесса создания и сохранения копии содержимого защищаемого регистра, также рассматриваемый на примере регистра P1. В соответствии с показанной на фиг.4 схемой регистр Р1, который на этом чертеже обозначен позицией 30, разделен на две половины 30а и 30b одинаковой разрядности, например длиной по 4 бита каждая. При этом в процессе создания копии Р1′ содержимого защищаемого регистра 30 одна половина этого содержимого остается без изменений и сохраняется в виде точной частичной копии, а другая подвергается побитовой инверсии. Иными словами, содержимое левой половины 30а регистра без изменений копируется в резервный регистр 32, а именно, в его левую половину 32а. Содержимое же правой половины 30b регистра сначала подвергается побитовой инверсии условно показанным на чертеже инвертором 36 и в таком инвертированном виде сохраняется в правой половине 32b резервного регистра 32. В соответствии с этим копия Р1′ содержимого защищаемого регистра частично представляет собой идентичную, а частично полученную путем побитовой инверсии версию содержимого защищаемого регистра.
В этом варианте при сравнении исходного содержимого регистра с его копией в блоке 40 вычитания одно из другого вычитается содержимое левой половины 30а и 32а регистров 30 и 32, а из содержимого правой половины 30b регистра 30 вычитается предварительно вновь инвертированная инвертором 34 версия данных, сохраненных в правой половине 32b регистра 32. В этом варианте взаимное соответствие между содержимым обоих регистров, т.е. указание на отсутствие несанкционированно выполнявшихся операций с содержимым защищаемого регистра, также имеется лишь в том случае, когда результат описанных выше вычислений или сравнения содержимого обоих регистров равняется нулю.
Формула изобретения
1. Способ обнаружения несанкционированных операций с содержимым регистров вычислительного устройства, прежде всего микроконтроллера (МК) или микропроцессора (МП), отличающийся тем, что создают копию (СК’) данных, сохраненных в защищаемом регистре (СК), сохраняют эту копию в другом регистре и по мере необходимости данные, сохраненные в защищаемом регистре, сравнивают с их копией.
2. Способ по п.1, отличающийся тем, что копию данных, сохраненных в защищаемом регистре, создают и сохраняют в виде модифицированных относительно них данных.
3. Способ по п.2, отличающийся тем, что модификация заключается в побитовой инверсии копируемых данных.
4. Способ по п.1, отличающийся тем, что данные, сохраненные в защищаемом регистре, и/или копию этих данных, сохраняемую в другом регистре (10a-10с), маскируют.
5. Способ по п.4, отличающийся тем, что содержимое регистра маскируют путем косвенной адресации регистра.
6. Способ по п.1, отличающийся тем, что маскируют физические взаимосвязи между защищаемым регистром (6, 8) и регистром (10), в котором сохраняется копия данных, сохраненных в защищаемом регистре.
7. Способ по п.6, отличающийся тем, что маскирование заключается в том, что регистр, в котором сохраняется копия (СК’) данных, сохраненных в защищаемом регистре, размещают в той области памяти, которая виртуально или пространственно отделена от той области памяти, в которой размещается защищаемый регистр (6, 8).
8. Способ по п.1, отличающийся тем, что сравнение данных, сохраненных в защищаемом регистре, и копии (СК’) этих данных, осуществляют с помощью аппаратного компаратора (22, 24, 40) или с помощью микропрограммы.
9. Способ по п.1, отличающийся тем, что сравнение выполняют путем побитового сравнения данных.
10. Способ по п.1, отличающийся тем, что сравнение выполняют путем вычитания данных, сохраненных в одном регистре, из данных, сохраненных в другом регистре.
11. Устройство для обнаружения несанкционированных операций с содержимым регистров, входящих в состав вычислительного устройства, прежде всего микроконтроллера или микропроцессора, содержащего блок (100) управления, отличающееся тем, что регистры включают первый блок (14) регистров по меньшей мере с одним защищаемым регистром (6, 8) и второй блок (12) регистров по меньшей мере с одним резервным регистром (10а-10с), предназначенным для сохранения в нем копии данных, сохраненных в защищаемом регистре, а устройство содержит компаратор (22, 24, 40), предназначенный для выполняемого по мере необходимости сравнения данных, сохраненных в защищаемом регистре, и их копии, сохраненной в резервном регистре.
12. Устройство по п.11, отличающееся тем, что компаратор (22, 24, 40) работает под управлением блока (100) управления вычислительного устройства таким образом, чтобы выполнять сравнение данных, сохраненных в защищаемом регистре, и их копии, сохраненной в резервном регистре, при обработке вычислительным устройством каждой команды.
13. Чип-карта с вычислительным устройством прежде всего в виде микроконтроллера или микропроцессора, содержащим блок (100) управления, отличающаяся тем, что вычислительное устройство имеет первый блок (14) регистров по меньшей мере с одним защищаемым регистром (6, 8), второй блок (12) регистров по меньшей мере с одним резервным регистром (10а-10с), предназначенным для сохранения в нем копии данных, сохраненных в защищаемом регистре, и компаратор (22, 24, 40), предназначенный для выполняемого по мере необходимости сравнения данных, сохраненных в защищаемом регистре, и их копии, сохраненной в резервном регистре.
14. Чип-карта по п.13, отличающаяся тем, что компаратор (22, 24, 40) работает под управлением блока (100) управления вычислительного устройства таким образом, чтобы выполнять сравнение данных, сохраненных в защищаемом регистре, и их копии, сохраненной в резервном регистре, при отработке вычислительным устройством каждой команды.
РИСУНКИ
|
|