Содержание к диссертации
Введение
1. Модель нарушителя и классификация потенциально возможных типовых атак в ас на основе микропроцессорных карт . 23
2. Поиск способов увеличения эффективности использования ресурсов микропроцессорной карты 26
2.1 Построение компактной файловой системы 26
2.1.1 О проблеме увеличения эффективности использования файловой системы РИК 27
2.1.2 Выработка формальной, модели организации файловой системы 28
2.1.3 Оценка эффективности построенной модели файловой системы 37
2.2 Выполнение скриптов микропроцессорной карты непосредственно микроконтроллером карты 39
2.2.1 Выработка рекомендаций по внесению изменений в архитектуру кристалла микроконтроллера РИК 40
2.2.2 Функциональность супервизора 43
2.2.3 Оценка размера высвобождаемого масочного ПЗУ 47
2.3 Реализация гост 28147-89 на картах open platform 47
2.3.1 Введение и постановка задачи 48
2.3.2 Реализация сложения длинных двоичных слов в вычислительной архитектуре с коротким машинным словом в условиях отсутствия возможности контроля переполнения и беззнаковых типов 50
2.3.3 Реализация ГОСТ 28147-89 на JavaCard 55
2.4 Выводы к ГЛАВЕ 1 57
3. Обеспечение безопасности протоколов пла тёжных и идентификационных приложений отечественных пластиковых карт 59
3.1 Построение спецификации малоресурсного универсального платёжного приложения для рик 59
3.1.1 Введение в задачу построения спецификации малоресурсного универсального платёжного приложения 59
3.1.2 Формальная модель простейшего платёжного приложения 63
3.1.3 Защита транзакций платёжного приложения 64
3.1.4 Необходимость обеспечения уникальности транзакций 66
3.1.5 Механизм управления рисками платёжных операций 67
3.1.6 Реализация корректной обработки оборванных транзакций 70
3.1.7 Выбор набора платёжных криптографических ключей 72
3.1.8 Безопасность ключей, хранимых в терминале и особенности оффлайн-транзакций 73
3.1.9 Транзакция оффлайн-дебетования 76
3.1.10 Онлайн-транзакция 79
3.2 Построение универсального учетного приложения 85
3.2.1 Описание требований, предъявляемых к универсальному учётному приложению 87
3.2.2 Разработка схемы хранения данных универсального учётного приложения 88
3.2.3 Разработка механизмов обеспечения безопасности универсального учётного приложения.. 91
3.3 Усовершенствование технологии бесконтактных карт mifare для обеспечения возможности применения в государственных проектах 100
3.3.1 Вопросы безопасности и функциональности бесконтактных карт 100
3.3.2 Выбор продукта из линейки MIFARE в качестве прототипа отечественной бесконтактной карты 105
3.3.3 Предлагаемая архитектура отечественной бесконтактной карты 107
3.4 Выводы к главе 2 115
4. Защита программного обеспечения от несанкционированного копирования 117
4.1 Использование отечественных микропроцессорных карт в системах защиты по от несанкционированного копирования. симметричная аутентификация субъектом, не хранящим секретный ключ аутентификации 117
4.1.1 Постановка задачи разработки криптографического протокола симметричной аутентификации карты системой, не хранящей секретный ключ аутентификации 118
4.1.2 Синтез и анализ протокола аутентификации 119
4.2 Криптографический протокол голосовой активации по, защищаемого от несанкционированного копирования 127
4.2.1 Введение в задачу разработки протокола голосовой активации ПО, защищаемого от несанкционированного копирования 127
4.2.2 Генерация таблицы сервера 128
4.2.3 Генерация таблицы дистрибутива 129
4.2.4 Активация защищаемого ПО 129
4.2.5 Проверка привязки в вычислительной среде 129
4.3 выводы к главе 3 131
Заключение 132
Библиография и интернет-ресурсы по тематике диссертации
- О проблеме увеличения эффективности использования файловой системы РИК
- Введение в задачу построения спецификации малоресурсного универсального платёжного приложения
- Построение универсального учетного приложения
- Постановка задачи разработки криптографического протокола симметричной аутентификации карты системой, не хранящей секретный ключ аутентификации
Введение к работе
История развития и классификация пластиковых карт.
В настоящее время пластиковые карты [7], [10], [21], [22], [95], [132] получили широкое распространение в приложениях защиты информации. Круг их применения весьма широк и разнообразен: это и таксофонные карты, и SIM-карты в сотовых телефонах, это, конечно же, платёжные карты различных типов ([13], [41], [47], [52], [54], [101], [102], [136]), карты медицинского страхования, проезда в городском транспорте, стимулирующие спрос карты постоянного покупателя, называемые дисконтными, карты-ключи, открывающие электронный замок в двери ([62]), средства проведения аутентификации [3], [62], [78], [98], [122], [126], [129], электронные удостоверения личности, средства подтверждения оплаты и подлинности абонента в сотовой телефонии ([105], [106], [104], [99]) и спутниковом телевидении, средства аутентификации пользователей вычислительной системы ([3], [35]) и т.д.
Основное назначение пластиковых карт - хранение некоторой, относительно небольшой порции информации, идентифицирующей держателя карты, пакет услуг, срок действия и т.п. Поскольку большинство приложений пластиковых карт, так или иначе, связаны с вопросами оплаты и защиты информации, пластиковые карты должны быть устойчивы к таким атакам, как несанкционированная модификация информации, находящейся на карте, получение злоумышленником конфиденциальной информации, хранимой на карте ([1], [45], [59]), похищение карты и т.п.
Не все карты изготавливаются именно из пластика, встречаются, например, карты из картона, поэтому термин «пластиковые карты» в данном случае обозначает не материал изготовления, а некоторое собирательное понятие.
Существуют карты, информация на которые нанесена лишь полиграфическими методами. Такие карты появились с самого начала существования карточных технологий. В качестве материала таких карт в разное время использовались металлы, бумага или картон. В настоящее время в большинстве случаев применяется пластик. Существует много разнообразных
— 6 —
способов полиграфического представления информации на карте, таких как нанесение текста и/или графических изображений, в том числе фотографий, эмбоссирование, штрих-кодирование, голография и т.п. Подробное описание данных полиграфических технологий можно найти в [7].
Карты с магнитной полосой являются на сегодняшний день наиболее распространенными. Столь высокая популярность карт данного типа объясняется, прежде всего, низкой стоимостью, сочетающейся с возможностью хранить достаточно большие, по сравнению с картами из первой группы, объёмы информации. Стоимость карт имеет всё большее значение с увеличением объёма эмиссии. Кроме того, неоспоримым преимуществом карт такого типа является возможность записи информации с помощью несложного оборудования. Магнитная полоса располагается на обратной стороне карты и, согласно стандарту ISO/IEC 7811[114], состоит из трех дорожек. Из них первые две предназначены для хранения идентификационных данных, а на третью можно записывать информацию. Однако из-за невысокой надежности многократно повторяемого процесса записи/считывания, запись на магнитную полосу, как правило, не практикуется, и такие карты используются только в режиме считывания информации. Магнитная полоса достаточно быстро выходит из строя (как правило, банк-эмитент гарантирует работу карты лишь в течение одного года).
Разновидность чип-карт - карты памяти ([21],[22]), являются своего рода промежуточным звеном на пути к микропроцессорным картам - это карты со встроенной микросхемой, хранящей от нескольких десятков байт до нескольких килобайт информации, имеющей простейший встроенный механизм разграничения доступа. Кроме того, помимо хранения информации, возможна дополнительная функциональность, которая будет описана более подробно ниже. Такая микросхема помещается в пластиковый корпус карты, имеющий контактную площадку с шестью или восемью контактами, из которых фактически используются только пять. Карты памяти получили огромное распространение в качестве таксофонных карт. В картах этого типа защита хранимой информации от несанкционированной модификации осуществляется, как правило, не с помощью механизмов криптографии [4], [14], [16], [17], [18], [19], [36], [37], [38], [39], [41], [68], [76] (хотя и такое тоже возможно), а за счёт невозможности (в пределах разумной стоимости атаки) модификации информации, хранимой на карте в обход механизма разграничения доступа, - например, такого, как ввод РШ-кода. Информация на карте не может
— 7 — модифицироваться в силу аппаратных особенностей карты, или модифицируется, но особым образом: счётчик услуг может только уменьшаться или, например, какие-то биты-признаки могут только устанавливаться в единицу, обратно в ноль их перевести нельзя. Часто применяется механизм «пережигания» перемычек внутри микросхемы. В прошлом, существенным недостатком карт памяти являлась невозможность проведения картой криптографических операций. В отличие от карты с магнитной полосой, злоумышленнику, как правило, сложно изготовить копию карты, однако отсутствие реализации криптографических операций внутри карты оставляет возможность изготавливать эмуляторы карт. Например, ничто не мешает создать сокращающий телефонные расходы эмулятор обычной синхронной таксофонной карты, имеющий, с точки зрения таксофона, идентичную с картой функциональность. Поэтому в настоящее время большинство карт памяти снабжается криптографическим механизмом аутентификации и подтверждения достоверности представляемых картой данных.
Развитием карт памяти являются микропроцессорные карты [35], [45], [59], [75], [79], [93], [96], [100], [108], [111], [118], [119], [120], [121], [124], [125], [127], [130], [131], [138], [139], содержащие микросхемы, более надёжно защищенные от исследования, со встроенным микропроцессором, памятью программ (масочное ПЗУ), данных (ЭСППЗУ), оперативной памятью и интерфейсом ввода-вывода. Такая карта является, по сути, микрокомпьютером, её возможности по обработке и хранению данных ограничиваются лишь размерами областей памяти и вычислительной мощностью кристалла.
Существующие в настоящее время микропроцессорные карты могут хранить несколько килобайт информации, производить криптографические операции и вести обмен информацией с внешним миром через свой единственный интерфейс. Защита микропроцессорной карты обеспечивает невозможность (в пределах разумной стоимости атаки) несанкционированных чтения или модификации нарушителем информации, хранимой на карте.
Микропроцессорные карты имеют множество приложений, в которых затруднительно по соображениям безопасности использовать карты других типов, и, прежде всего, это платёжные системы [5], [8], [9], [11], [12], [20], [23], [34], [42], [47], [52], [53], [54], [61], [65], [77], [103], [112], [128], [133], [137], {43}, {44}, {46}, {47}, {48}, {49}, {50}, {51}, {52}.
В отечественных условиях, по экономическим причинам, единственным приемлемым решением для электронных платёжных карточных систем
— 8 — остаются микропроцессорные карты, которые могут надёжно защищать хранимую информацию от раскрытия или несанкционированной модификации. Микропроцессорные карты дают возможность:
производить криптографические операции, в том числе, с секретными ключами, секретными, в том числе, и для владельца карты,
легко настраиваться на особенности реализуемых проектов,
использовать их сразу в нескольких приложениях,
выполнять операции, запрограммированные разработчиками приложений,
осуществлять транзакции в условиях отсутствия связи с процессинговым центром1 (т.е. «в оффлайне»),
содержат многоуровневую файловую систему,
содержат механизм разграничения доступа,
противостоять атакам злоумышленника по анализу и модификации данных, передаваемых терминалом с/на карту через карточный интерфейс.
Данные карты описываются стандартом ISO/IEC 7816 «Карты идентификационные. Карты на интегральных схемах с контактами» [115].
Сегодня кристаллы микропроцессорных карт производят такие компании как Advanced Logic Corporation, Atmel {14}, Dallas Semiconductor, Hitachi Semiconductor, Inside Technologies, Microchip, Motorola, Philips, Samsung Electronics, Siemens Semiconductor, STMicroelectronics {26} и Xicor. В России есть своё производство кристаллов микропроцессорных карт - ОАО «Ангстрем». Производством карт занимаются компании American Microdevice Manufacturing Inc., Axalto, BGS {15}, Bull {16}, CardLogix, DigiCard, Gemalto {29}, Giesecke & Devrient, IBM Smart Cards, Incard, Iris Technologies, Micromodule, Motorola, NBS, Technologies Inc., Oberthur Card Systems, Orga {23}, ОТІ, Samsung Electronics, Worldtronix, XPonCard.
В России - ГУП НТЦ Атлас, АйТи, G&D Знак Кард, ОРГА Зеленоград, Розан Файненс {38}, ИВК Системе {34}, Скантек {39}, GMP-РуссКом {20}, Интервэйл {35}, Рекон Интернешнл, РУСКАРТ, СмартКардСервис и другие компании.
Процессинговый центр - вычислительный центр для обработки электронных транзакций и транзакционных данных.
— 9 —
Поскольку многие платёжные и идентификационные приложения предъявляют особые требования к интерфейсу карты, такие как невозможность или нежелательность физического контакта карты с кардридером или повышенные требования ко времени осуществления транзакции, вместо контактного интерфейса применяется антенна, представляющая собой несколько витков тонкой проволоки, размещённой внутри карты. Такая карта не имеет собственного источника питания - питание, также как и обмен информацией, осуществляется по радиоканалу. При этом рабочее расстояние между бесконтактной картой [44], [123] и ридером может быть, в зависимости от протокола обмена от нескольких сантиметров до нескольких метров. Для обеспечения функционирования системы в случае, когда в поле ридера находятся несколько различных однотипных карт, предусмотрен особый антиколлизионный механизм, позволяющий обращаться лишь к выбранной карте из числа находящихся в поле считывателя [113].
Питание по радиоканалу накладывает некоторые ограничения на объёмы передаваемой по радиоканалу информации и функциональность бесконтактных карт: они не обладают столь широкими возможностями в обработке информации, как микропроцессорные карты, однако, тем не менее, на сегодняшний день применяется криптографическая аутентификация, имеются механизмы разграничения доступа, возможна аутентификация держателя карты по PIN-коду и многое другое. Кроме того, имеет место тенденция увеличения функциональных возможностей бесконтактных карт до возможностей микропроцессорных карт.
Возможно совмещение функциональности контактной и бесконтактной карт: на одной и той же карте, называемой гибридной, находится микросхема с контактной площадкой и бесконтактная микросхема с антенной. Эти два чипа не зависят друг от друга, поэтому при перезаписи дублируемой информации необходимо осуществлять такую перезапись дважды: на контактном чипе и на бесконтактном.
Решением данной проблемы являются т.н. карты с дуальным интерфейсом, имеющие уже не два независимых чипа, а один чип с двумя интерфейсами. Раньше при работе через бесконтактный интерфейс, как правило, осуществлялось питание не всего кристалла, а лишь части, отвечающей за бесконтактный обмен. Соответственно, по бесконтактному интерфейсу была доступна лишь часть ресурсов кристалла. Сегодня современные технологии позволяют решить эту проблему и, таким образом, различия между контактным
— 10 — и бесконтактным интерфейсом остаются лишь на в протоколах канального и физического уровней.
Такие карты находят применение в проектах, с одной стороны имеющих идентификационную составляющую, критичную к времени совершения транзакции, с другой стороны, имеющих платёжный механизм, защищаемый PIN-кодом и криптографическими сертификатами. Примером такого проекта является «Социальная Карта Москвича», реализуемая Правительством Москвы, ЗАО "Розан Файненс", Банком Москвы и Российским представительством международной платежной системы VISA: для приложений оплаты транспортных расходов применяется бесконтактные чипы MIFARE и JCOP 30/31, а для различных платёжных и учётных приложений используется контактный интерфейс. На карте находится различная идентификационная информация, информация о наборе предоставляемых льгот, о медицинском страховании, платёжное приложение Visa Electron.
На сегодняшний день имеет место следующее разделение типов карт по направлениям применения:
В банковских платёжных приложениях используются карты с магнитной полосой и микропроцессорные карты в сочетании с такими дополнительными мерами защиты, как подпись владельца карты и голограмма. Во многих случаях на таких картах сохраняется и эмбоссирование.
В небанковских платёжных приложениях набор типов карт более разнообразен. На картах доступа к телекоммуникационным услугам в большинстве случаев применяются скретч-панели, в качестве средства оплаты таксофона нашли применение карты памяти, для быстрой оплаты услуг, например, транспортных, применяются бесконтактные карты (или гибридные/с дуальным интерфейсом), а в т.н. приложениях подтверждения подписки (сотовая телефония, платное спутниковое телевидение), где стоимость оказываемых услуг достаточно велика, соответственно, выше и усилия злоумышленников, применяются микропроцессорные карты.
Наиболее широкий набор типов карт применяется в идентификационных приложениях, в частности, в приложениях контроля доступа. В системах с высоким уровнем безопасности применяются бесконтактные и, реже, микропроцессорные карты. В
— 11 —
менее дорогих системах применяются карты с магнитной полосой. Нечасто, но применяются пропускающие инфракрасные карты, карты на основе эффекта Виганда, барий-ферритовые карты и карты с магнитной сеткой. В системах, с низкими требованиями к уровню безопасности, где основной задачей является идентификация, а не аутентификация субъекта, нашли применение карты Холлерита и штрих-кодирование. Лазерные карты применяются там, где требуется хранение большого количества информации - это, в основном, различные медицинские системы.
Актуальность темы.
Пластиковые карты - это достаточно новое и быстроразвивающееся направление. О его новизне говорит хотя бы тот факт, что на сегодняшний день нет устоявшейся терминологии. Так, далее самый основной термин "smart card" можно перевести на русский язык как смарткарта, интеллектуальная карта или микропроцессорная карта.
Началом развития технологии микропроцессорных карт принято считать 1974 год, когда французский инженер Ролан Морено предлагает изготавливать пластиковые карты с контактным чипом, хранящим информацию. Сейчас карты с контактным чипом, как микропроцессорные, так и карты памяти, сильно отличаются по функциональности от своих первых прототипов. Микропроцессорные карты получают всё большее распространение, вытесняя карты с магнитной полосой. Первые банкоматы появляются в США в 1975 году, а через четыре года - первые POS-терминалы. Получение удалённого доступа к данным о состоянии банковского счета стало возможным с 1987 года.
В 1995 году бельгийская компания Proton эмитирует первую микропроцессорная карту для оффлайн-транзакций. Появление спецификации EMV [101], без которой на сегодняшний день немыслимы международные электронные платежи, происходит в 1996 году.
Микропроцессорные карты, изобретённые более четверти века назад, нашли широкое применение в IT-индустрии, включающей в себя такие направления, как разработка операционных систем, прикладных программных средств, сетевые технологии, защита информации и электронные платежи.
— 12 — Необходимость развития последних двух направлений трудно переоценить. Поэтому весьма актуально развивать отечественное производство микропроцессорных карт, т.к. отказ от отечественных карт и полный переход на использование зарубежных программных и аппаратных решений в области микропроцессорных карт может привести в итоге к потере нашим государством информационной и экономической безопасности.
В 1995 году в подмосковном Зеленограде ОАО «Ангстрем» начинает разработку отечественного кристалла Российской Интеллектуальной Карты (РИК) [43], [69], [70], [71], [72], [73], [74], [90], [91], призванной стать основным носителем и ядром безопасности в государственных и частных системах, использующих микропроцессорные карты. Операционную систему для кристалла РИК, получившую название UniCOS, разрабатывают ГУП НТЦ «Атлас» и компания «UnionCard» при научно-техническом сопровождении ФАПСИ. Результат четырёхлетней работы был продемонстрирован на Четвертой Международной Конференции «Интеллектуальные Карты России ИКР-99».
В 2001 году появляется другая операционная система для того же кристалла - «ОСКАР», разработанная компанией «Терна СИС» и ГУЛ НТЦ «Атлас» при научно-техническом сопровождении ФАПСИ. Данная операционная система изначально проектировалась таким образом, чтобы соответствовать требованиям ФАПСИ по классу КС2, в 2002 году ОС «ОСКАР» была сертифицирована.
В том же 2002 году ГУЛ НТЦ «Атлас» разработало карточную операционную систему «РИК-2», получившую сертификат ФАПСИ по уровню В «Временных требований к средствам защиты конфиденциальной информации». Более подробно об истории развития отечественных микропроцессорных карт можно прочитать в [43], [69], [70], [72], [89], [74], [91], [75].
Основные характеристики отечественных и зарубежных
микропроцессорных карт описывает Таблица 0.1.
— 13 —
Таблица 0.1. Основные характеристики отечественных и зарубежных ИК
Основная проблема - в недостаточных объёмах различных типов памяти кристалла, т.е. аппаратных ресурсов кристалла. Сопроцессор модульной арифметики, USB-интерфейс и процедура PTS также требуют пусть и небольшой, но аппаратной модификации существующего кристалла. Отсутствие же поддержки остальных перечисленных в таблице опций -следствие нехватки аппаратных ресурсов, ибо реализуются программно. Таким образом, основной задачей является увеличение ресурсов, а, следовательно, функциональности кристалла.
Однако здесь есть жёсткое ограничение: кристалл микропроцессорной карты не должен иметь размеры более 5x5 мм. Соответственно, если нельзя увеличивать площадь кристалла, необходимо уменьшать норму
— 14 — проектирования, чтобы на кристалле той же площади иметь возможность размещения большего количества логических элементов. На сегодня ОАО «Ангстрем» располагает оборудованием, позволяющим производить кристаллы микропроцессорных карт с нормой проектирования до 0.8 мкм., что явно не достаточно.
Поэтому остаётся только один путь: более эффективное использование ресурсов кристалла микропроцессорной карты. Решению комплекса теоретических и практических задач, связанных с данным направлением, и посвящена данная диссертация. Также в данной работе рассматриваются вопросы реализации отечественных бесконтактных карт, интеграции импортных и отечественных карточных систем путём реализации отечественного криптоалгоритма ГОСТ 28147-89 [24] на JavaCard [89], [94], [97], [107], [109], [ПО], [135], а также применения отечественных микропроцессорных карт в области защиты ПО от несанкционированного копирования.
Целью работы является создание защищенных протоколов приложений микропроцессорных карт в условиях ограниченности аппаратных ресурсов кристалла.
Для достижения этой цели в работе решались следующие задачи:
Анализ недостатков механизмов безопасности распространённых бесконтактных карт MIFARE компании Philips Semiconductor.
Разработка схем обеспечения безопасности приложений отечественной микропроцессорной карты.
Разработка спецификации универсального платёжного приложения с высокой гибкостью и низкой ресурсоёмкостью.
Обеспечение защиты ПО микропроцессорной карты от несанкционированного копирования на основе протокола симметричной аутентификации субъектом, не хранящим секретный ключ аутентификации.
Реализация отечественного криптоалгоритма ГОСТ 28147-89 на зару бежных картах.
Научная новизна работы заключается достижением следующих результатов:
— 15 —
Разработаны оригинальные протоколы и механизмы обеспечения безопасности типовых приложений микропроцессорных карт, существенно улучшенные с точки зрения гибкости и ресурсоёмкости;
Предложена ускоренная реализация криптоалгоритма ГОСТ 28147-89 на микропроцессорных картах стандарта JavaCard, не поддерживающих опциональный тип int без необходимости модификации кода ОС карты;
На примере построения компактной файловой системы разработаны методы уменьшения ресурсоёмкости систем хранения данных;
Предложен протокол симметричной аутентификации в условиях невозможности хранения на аутентифицирующей стороне секретного ключа;
Предложен протокол активации защищаемого от несанкционированного копирования ПО в условиях ограничения на количество передач и длину передаваемых данных между участниками протокола
Методы исследования. Результаты диссертационной работы получены на основе использования методов системного и прикладного программирования, прикладной криптографии, электронной коммерции. Использованы научные положения теории сложности вычислений комбинаторики, теории множеств, математической логики, теории программирования и теории вероятностей.
Практическую значимость представляют следующие результаты, которые могут быть использованы в области разработки программно-аппаратных решений на базе микропроцессорных карт, платёжных систем, систем электронного бизнеса, систем криптографической защиты информации и систем защиты ПО от несанкционированного копирования:
реализация отечественного криптоалгоритма ГОСТ 28147-89 на зарубежных микропроцессорных картах;
механизмы обеспечения безопасности универсального платёжного приложения и универсального учётного приложения;
протокол симметричной аутентификации в условиях невозможности хранения на аутентифицирующей стороне секретного ключа;
протокол голосовой аутентификации ПО.
— 16 —
Последние два результата могут быть использованы не только при разработке систем защиты ПО от несанкционированного копирования, но и в различных других приложениях, где по каким-либо причинам затруднено использование асимметричной криптографии, невозможно хранение секретного ключа на одной из сторон, участвующих в протоколе и величина прибыли от реализации атаки сравнительно невысока.
Апробация работы. Основные результаты диссертации докладывались на:
Форуме «Технологии и решения для Электронной России» (Москва, 4-6 декабря 2001 г.), секция "Платёжные карты и электронные персональные инструменты в автоматизированных системах взаимодействия государства с населением", доклад «Российская микропроцессорная карта, как открытая платформа построения систем для взаимодействия государства с населением»;
V Московском Международном Форуме по платежным картам в России и VII Международной конференции и выставке «Интеллектуальные Карты России - 2002» (Москва, 2-4 декабря 2002 г.) [74], доклад: «Сертифицированные средства защиты информации в системах на основе интеллектуальных карт»;
Семинаре «Математические проблемы теории кодирования и криптографии», доклад: «Некоторые проблемы информационной безопасности при использовании интеллектуальных карт» (Москва, 19 февраля, 12 марта 2003 г.);
Конференции «Математика и безопасность информационных технологий» (МаБИТ-03) (Москва, 22-24 октября 2003 г.), доклад «Симметричная аутентификация в условиях невозможности хранения секретного ключа на аутентифицирующем субъекте» (стендовый доклад);
Конференции «Технологии Microsoft в теории и практике программирования» (Москва, 4-5 марта 2004 г.), доклад «Защита ПО от несанкционированного копирования путём привязки к интеллектуальной карте и протокол удалённой регистрации ПО по каналам связи, налагающим ограничение на размер передаваемых сообщений»;
Четвертой международной научно-практической конференции «Электронные средства и системы управления. Опыт
— 17 —
инновационного развития» (Томск, 31 октября - 3 ноября 2007 г.), доклады «Выполнение скриптов микропроцессорной карты непосредственно микроконтроллером карты» и (совместно с Применко Э.А.) «Синтез и анализ универсального платежного протокола для малоресурсных микропроцессорных карт и электронного кошелька на его основе» (стендовые доклады); Многие из предложенных в данной работе решений уже нашли применение в карточных и программных системах компаний «Терна СИС» и «Терна СБ»;
Публикации. Результаты диссертации опубликованы в следующих источниках:
Абрамов П.И., Матвеев П.П. Защита информации в системах с использованием смарт-карт. - Расчёты и операционная работа в коммерческом банке, №1/2002, ее. 42-47;
Абрамов П.И., Матвеев П.П. Каждому по ОСКАРу: открытая платформа разработки платёжных приложений на базе российской интеллектуальной карты. - Конфидент, №5'2001, ее. 77-79;
Матвеев П.П. Защита программного обеспечения от несанкционированного копирования с применением интеллектуальных карт. Безопасность информационных технологий, №4'2003, ее. 55-60;
Матвеев П.П. Реализация российского криптоалгоритма ГОСТ 28147-89 на интеллектуальных картах, поддерживающих технологию JavaCard. Безопасность информационных технологий, №Г2004, се. 32-38;
Матвеев П.П. Выполнение скриптов микропроцессорной карты непосредственно микроконтроллером карты. Электронные средства и системы управления. Опыт инновационного развития: Доклады Международной научно-практической конференции (31 октября - 3 ноября 2007 г.) Томск: В-Сектр, 2007. В 2 .4.2. - 324с, ее. 188-190.
Матвеев П.П., Применко Э.А. Синтез и анализ универсального платежного протокола для малоресурсных микропроцессорных карт и электронного кошелька на его основе. Электронные средства и системы управления. Опыт инновационного развития: Доклады Международной научно-практической конференции (31 октября - 3 ноября 2007 г.) Томск: В-Сектр, 2007. В 2 . 4.2. - 324с, ее. 190-193.
— 18 —
7. Отчёт о результатах работы по НИР 142-2002 «Анализ безопасности протоколов электронной коммерции и других перспективных сетевых приложений». М.: Академия Криптографии, 2002 г., ее. 458-520.
В совместных работах автору принадлежат основные результаты.
Структура и объём диссертации. Диссертация состоит из введения, списка сокращений, трёх основных глав, заключения, списка литературы из 139 наименований и списка интернет-ресурсов из 59 наименований. Общий объём диссертации составляет 156 стр. машинописного текста.
Глоссарий терминов и сокращений, встречающихся ниже:
[XX] - ссылка на печатный источник номер XX в библиографии;
{XX} - ссылка на источник в глобальной сети Интернет под номером XX в библиографии;
ОхАА - обозначение шестнадцатеричного числа ААіб;
3DES (Triple-DES) - тройной DES - американский стандарт симметричного шифрования США, пришедший на смену DES;
3GPP (3rd Generation Partnership Project) - Партнёрский проект по сетям связи третьего поколения;
A3 - алгоритм аутентификации, применяемый в сетях мобильной связи стандарта GSM;
A38 - алгоритм, производящий операции, предусмотренные алгоритмами A3 и А8;
А5 - алгоритм поточного шифрования, применяемый в сетях мобильной связи стандарта GSM;
А8 - алгоритм выработки сеансовых ключей, применяемый в сетях мобильной связи стандарта GSM;
ADF (Application Dedicated File) - файл приложения в спецификации EMV;
AID (Application Identifier) - идентификатор приложения;
APDU (Application Protocol Data Unit) - элемент данных протокола приложения карты, как правило, команда и, возможно, данные, предназначенные для передачи на карту, а также слово состояния и, возможно, данные получаемые от карты;
API (Application Programming Interface) - интерфейс прикладного программирования;
— 19 —
ASIC (Applications Specific Integrated Circuit) - специализированная интегральная схема;
ATM - Automatic Teller Machine - банкомат;
ATR (Answer to Reset) - ответ на сброс, последовательность двоичных данных, выдаваемых картой при подаче на неё питания или при сбросе;
BCD (Binary Coded Decimal) - двоично-десятичная форма хранения числа;
CAD (Card Acceptance Device) - см. УПК;
СВС (Cipher Block Chaining) - режим шифрования блочным шифром простой заменой с зацеплением;
CCITT (Comite Consultatif Internationale de Telegraphique et Telephonique) -Международный консультативный комитет по телеграфии и телефонии;
CLA (CLAss) - класс, первый байт заголовка APDU-команды;
CRC (Cyclic Redundancy Check) - контроль целостности информации посредством циклического избыточного кода;
DES (Data Encryption Standard) - американский стандарт блочного шифрования данных;
DF (Dedicated File) - файл приложения в спецификации ISO 7816-4 [115];
DS (Digital Signature) - см. ЭЦП;
ECB (Electronic Code Book) - режим шифрования блочным шифром простой заменой;
EDI - Electronic Data Interchange - электронный обмен данными;
EEPROM (Electrically Erasable Programmable Read-Only Memory) - см. ЭСППЗУ;
EF (Elementary File) - файл данных в спецификации ISO 7816-4 [115];
EFT - Electronic Funds Transfer - электронный перевод денежных средств;
EFTPOS - Electronic Funds Transfer Point of Sale - Торговый терминал, осуществляющий безналичные платежи;
ETSI (European Telecommunications Standards Institute) - Европейский институт по телекоммуникационным стандартам;
ETSI (European Telecommunications Standards Institute) - Европейский институт стандартов по телекоммуникациям;
etu (elementary time unit) - единичный такт в протоколе обмена данными между микропроцессорной картой и УПК;
GSM (Global System for Mobile communications) - глобальная система мобильной связи;
GUI (Graphical User Interface) - графический интерфейс пользователя;
— 20 —
ICA - Interbank Card Association - Межбанковская карточная ассоциация.
ICC (Integrated Circuit Card) - карта, содержащую микросхему, чип-карта, микропроцессорная карта;
ISO (International Organization for Standardization) - Международная организация по стандартизации;
JCRE (Java Card Runtime Environment) - вычислительная среда функционирования приложений Java Card;
JVM (Java Virtual Machine) - виртуальная машина Java Card;
Lc (Length of Command data) - длина данных, передаваемых УПК на микропроцессорную карту;
Le (Length of Expected data) - длина данных, ожидаемых УПК от микропроцессорной карты;
LSB (Least Significant Byte) - самый младший байт в машинном слове;
MF (Master File) - мастер-файл, корневой файл файловой системы карты в спецификации ISO 7816-4 [115], аналог корневого каталога 'V в Unix-системах;
MSB (Most Significant Bit) - самый старший байт в машинном слове;
OP (Open Platform) - спецификация Open Platform;
OTA (Over The Air) - Функция удалённого управления SIM-картой сотового телефона, дословно - по воздуху;
PI, Р2, РЗ - параметры 1, 2, 3 - третий, четвёртый и пятый байты заголовка APDU-команды, соответственно;
PAN (Primary Account Number) - первичный идентификатор счёта держателя карты;
PIN-код (Personal Identification Number) - пароль, состоящий из набора десятичных цифр, вводимый держателем карты для аутентификации и передаваемый на карту;
POS-терминал (POS - Point of Sale) - Торговый терминал;
PPS (Protocol and Parameter Select) - механизм выбора протокола и параметров обмена в канале связи между УПК и микропроцессорной картой;
RAM (Random Access Memory) - см. ОЗУ;
RFU (Reserved for Future Use) - зарезервировано для будущего использования;
ROM (Read Only Memory) - см. ПЗУ;
SFI (Short File Identificator) - короткий идентификатор файла в спецификации ISO 7816-4 [115];
— 21 —
SIM (Subscriber Identity Module) - модуль идентификации абонента на базе микропроцессорной карты в сетях мобильной связи стандарта GSM;
SM (Secure Messaging) - режим защищенного обмена данными между микропроцессорной картой и УПК;
SMS (Short Message Service) - сервис приёма/передачи коротких сообщений в сетях мобильной связи стандарта GSM;
SN (Serial Number) - серийный номер;
SW1, SW2 (Status Word 1, Status Word 2) - слова 1 и 2 состояния карты
Swipe Reader - (swipe - англ. удар) устройство чтения карт с магнитной полосой;
TLV (Tag - Length - Value) - структура данных, хранящая данные в виде последовательностей тег - длина - значение;
и16 - беззнаковый тип данных размером 2 байта;
и32 - беззнаковый тип данных размером 4 байта;
и8 - беззнаковый тип данных размером 1 байт;
u8[n] - массив данных типа и8 размером п элементов;
VM (Virtual Machine) - виртуальная машина;
Авторизация - разрешение на проведение транзакции;
АС - автоматизированная система;
Аутентификация - процесс подтверждения подлинности субъекта;
Баланс - запись о величине средств на банковском счёте или в платёжном приложении;
Дебетование - уменьшение баланса;
Диверсификация - получение семейства новых криптографических ключей на основе имеющегося, называемого мастер-ключом. Знание мастер ключа позволяет получить любой из диверсифицированных ключей, однако, зная любое количество диверсифицированных ключей, вычислительно сложно получить мастер-ключ;
Интеллектуальная (микропроцессорная) карта - пластиковая карта, снабжённая кристаллом, содержащим микропроцессор.
Кардридер - устройство чтения карт;
Карточное приложение - прикладное программное обеспечение, функционирующее в кристалле карты под управлением операционной системы;
Кредитование - увеличение баланса;
— 22 —
Криптограмма - результат криптографического преобразования, подтверждающий аутентичность субъекта или целостность защищаемых данных;
Криптографический ключ - двоичная последовательность, как правило, секретная, используемая для проведения криптографических операций;
Масочное ПЗУ - ПЗУ, содержащее исполняемый код операционной системы карты, заполняется на этапе производства кристалла, не подлежит модификации;
Мастер-ключ - ключ, над которым выполняется операция диверсификации;
ОЗУ - оперативное запоминающее устройство, оперативная память;
ОС - операционная система;
ПЗУ - постоянное запоминающее устройство;
Пластиковая карта - общее обозначение для всех карт, отличающихся по типу, принципу функционирования, приложению и даже, несмотря на термин, материалу изготовления.
ПО - программное обеспечение;
РИК - проект Российская Интеллектуальная Карта;
Сертификат - криптограмма, подтверждающая подлинность передаваемой информации;
СКЗИ - система криптографической защиты информации;
УПК - устройство приёма карт: POS-терминал, банкомат или кардридер; употребляется в контексте, когда тип устройства приёма карт не важен;
ФАПСИ - Федеральное Агентство правительственной связи и информации при Президенте РФ;
Франчайз - представительство компании или лицензия на продажу товаров/услуг в каком-либо регионе.
ЭК - электронный кошелёк;
Эквайер - субъект, принимающий от предприятий торговли информацию о совершённых транзакциях;
Эмитент - субъект, осуществляющий эмиссию (выпуск) пластиковых карт, получающий данные о транзакциях, проводимых держателями карт, осуществляет авторизацию и иные необходимые действия,
ЭСППЗУ - электрически стираемое перепрограммируемое постоянное запоминающее устройство, в микропроцессорных картах используется для энергонезависимого хранения прикладных данных;
ЭЦП - электронная цифровая подпись;
— 23 —
О проблеме увеличения эффективности использования файловой системы РИК
Очевидно, что полностью избавиться от служебных областей не удастся, но, возможно, минимизировать их размеры. Кроме того, в большинстве карточных приложений до 90% данных, хранимых в ЭСППЗУ, являются константами, и никогда в процессе эксплуатации приложения меняться не будут. Поэтому если объём эмиссии карт достаточно велик, можно создать карты с файловой системой, размещённой частично в ЭСППЗУ, а частично - в масочном ПЗУ, ведь размер масочного ПЗУ в восемь раз больше. Рассмотрим, что в данном случае можно рассматривать под достаточным объёмом эмиссии. Пусть: N - объём эмиссии, R - стоимость свободного ЭСППЗУ на одной эмитированной карте (иными словами, стоимость аренды части ЭСППЗУ на одной карте), А - дополнительная стоимость разработки и изготовления фотошаблонов.
Тогда для обеспечения экономической эффективности данного шага, очевидно, должно выполняться соотношение NR A. Т.е. минимальный объём эмиссии должен составить A/R карт. При этом экономический эффект составит A-NR.
Пусть стоимость технологического процесса по созданию новых фотошаблонов составляет порядка $10000. Тогда при стоимости карт РИК в $4 минимальным объёмом партии является цифра порядка 2.5-3 тысячи карт.
В данной ситуации эффективным выходом из положения видится построение особой файловой системы, удовлетворяющей следующим требованиям: Должны быть минимизированы потери от выравниваний; Количество уровней файловой системы должно быть не менее трёх; Допускается запрет изменений размеров файлов, но размер приложений может меняться путём добавления новых файлов; Для приложений, эмиссия которых составляет достаточный объём, должна быть возможность перемещения всех константных данных из ЭСППЗУ в свободную область масочного ПЗУ;
Должна быть реализована возможность удаления с карты приложений, имеющих константные данные в масочном ПЗУ для обеспечения возможности использования карты в иных приложениях. Поскольку удаление данных из масочного ПЗУ невозможно, должны лишь удаляться ссылки на них из ЭСППЗУ; Для обеспечения возможности использования кристаллов с отдельными сбойными участками ЭСППЗУ запрещается записывать смешения данных, хранимых в ЭСППЗУ в масочное ПЗУ; Должна быть реализована возможность удаления, однако в целях избежания повышенных расходов памяти при фрагментации данных, удаления файлов и приложений не должны носить массового характера;
Должны быть реализованы механизмы обеспечения целостности содержимого ЭСППЗУ при хранении и перезаписи; В зависимости от типа файлы могут иметь заголовки разной длины; Структура данных файловой системы должна быть улучшена с целью минимизации времени обращения к файлам; Файловая система должна обеспечивать сбалансированную нагрузку по перезаписи на сектора ЭСППЗУ, т.е. не должно быть секторов, перезаписываемых существенно чаще, чем остальные; Такая модификация не должна мешать механизмам защиты данных от сбоев при чтении или при перезаписи.
Предлагаемая ниже архитектура организации файловой системы сохраняет очень многие решения, показавшие на практике свою эффективность, например, такие как файлы, связывающие свободное пространство и сбойные участки ЭСППЗУ, а также методология заполнения ЭСППЗУ не только «сверху вниз», но и «снизу вверх». С другой стороны, данная файловая система проектировалась с целью освободиться от существующих недостатков: уменьшение быстродействия в силу контроля целостности и необходимости перечитывания всего файла с целью проверки CRC; большие потери свободного пространства ЭСППЗУ на выравниваниях; константные данные, которые никогда не изменят своего значения, всё равно должны присутствовать в ЭСППЗУ.
Основным вопросом, встающим при разработке файловой системы, является реализация механизма выбора данных из ПЗУ или ЭСППЗУ, по возможности, максимально прозрачного для прикладных механизмов файловой системы. К сожалению, на практике, константные данные переплетаются с данными, изменяемыми в процессе эксплуатации приложения. Так, например, в платёжном приложении такие данные, как баланс, счётчики и лог транзакций являются изменяемыми, в то время как, например, максимальная сумма оффлайн-дебетования, номер счёта держателя карты и код валюты могут быть константными данными.
Одним из наиболее простых вариантов было бы разделение всех файлов приложения на содержащие константные данные и содержащие изменяемые данные; одни можно хранить в масочном ПЗУ, другие в ЭСППЗУ. Однако такой подход малоэффективен: только малая часть файлов содержит полностью константные данные. И также мало файлов, содержащих только изменяемые данные. Кроме того, у таких файлов есть как минимум несколько полей в заголовке, являющихся константами, например идентификатор файла и родительского DF. Большинство же файлов содержат как константные, так и изменяемые поля. Поэтому для разделения этих типов данных требуется более гибкий подход, нежели разделение файлов на константные и изменяемые.
Поэтому предлагается использование таблицы, в которой указано, какие данные и откуда брать при чтении файла по определённому смещению. В чём-то такая таблица будет аналогична привычной FAT - file allocation table -таблице размещения файлов, но в данном случае такая информационная структура предназначена не для размещения многократно создаваемых, удаляемых и изменяемых файлов, а для обеспечения возможности размещения данных как в масочном ПЗУ, так и в ЭСППЗУ, чередующихся между собой.
Но ведь константные и изменяемые данные имеют разную длину, совсем не кратную размеру кластера, если говорить про FAT. Да, у этих данных разная длина, но и предлагаемых кластеров длина будет тоже различная, поскольку стоит задача не разработать файловую систему с изменяющимися размерами файлов, а файловую систему, позволяющую хранить часть данных в «более дешёвой» памяти - масочном ПЗУ. В том, что такой «FAT» не будет выполнять своего традиционного предназначения, нет ничего страшного: если константные данные карточного приложения размещаются в масочном ПЗУ, значит, это приложение загружается на карту на этапе инициализации карты, кроме того, это приложение является отлаженным и устоявшемся и, с огромной вероятностью, из этого приложения не будут удаляться никакие файлы. Если же это и случится - в ЭСППЗУ карты появится разрыв, который потом, возможно будет заполнен, пусть и не столь оптимальным образом, как в традиционном FAT. Кроме того, такая модель не накладывает ограничений на создание файлов и приложений, дополнительно к уже существующим на карте. А изменение размеров файлов в карточных операционных системах не принято - это сложная для карточной файловой системы задача почти не встречается на практике.
Введение в задачу построения спецификации малоресурсного универсального платёжного приложения
Взаимодействие платёжного приложения [1], [2], [58] с внешней системой происходит через команды карточной ОС, содержащие т.н. платёжные сертификаты - MAC (message authentication code - код подтверждения подлинности сообщений) или цифровую подпись. Сертификат вычисляется по определённым полям данных: передаваемых с командой (или возвращаемых) параметрам и/или внутренним полям платёжного приложения. Для обеспечения уникальности платёжных сертификатов используется механизм счётчиков. Счётчик, изменяющийся при каждой транзакции, позволяет обеспечить уникальность платёжных сертификатов, даже когда все остальные поля не меняются, и чётко ответить на вопрос о количестве проведённых транзакций. Кроме того, механизм счётчиков также позволяет убедиться в успехе или неуспехе последней онлайновой транзакции.
Разработчик платёжного приложения организует один или несколько платёжных приложений, отдельно для каждого из них задаются условия доступа на чтение, дебетование и кредитование. Для каждого из платёжных приложений задаётся набор ключей, на основе которых происходит вычисление платёжных сертификатов. Как правило, доступ к платёжным операциям защищен т.н. PIN-кодом - паролем владельца карты (PIN - Personal Identification Number) и/или механизмом аутентификации.
Платёжные приложения могут быть одновалютными или многовалютными, т.е. имеющие несколько балансов для разных валют.
Рассмотрим более подробно, с некоторым упрощением, ход платёжных транзакций. При выполнении операции дебетования проверяется ряд условий, а именно что дебетуемая сумма меньше баланса и меньше заданного предела. После чего уменьшается баланс на дебетуемую сумму, формируется сертификат дебетования, доказывающий факт успешного проведения операции дебетования, и увеличивается на единицу счётчик транзакций. При кредитовании, наоборот, сертификат кредитования поступает на карту, производится его проверка, баланс увеличивается, и происходит инкремент счётчика транзакций. Счётчик транзакций входит под соответствующие сертификаты и может только увеличиваться. По достижении максимального значения счётчика платёжные операции становятся невозможными. Это гарантирует от мошеннических атак, связанных с «проворачиванием» счётчика транзакций на 28" значений, (где п - количество байт счётчика), когда злоумышленник передаёт на карту фиктивные команды дебетования с целью получения сертификатов на одном ключе, на одно и то же значение счётчика, но на разные суммы. В то же время такое ограничение на число транзакций не создаст на практике неудобств, т.к. размер счётчика достаточно велик для того, чтобы утверждать с большой вероятностью, что срок эксплуатации карты закончится раньше, чем счётчик достигнет максимального значения. Существуют спецификации платёжных приложений, такие как: Common Electronic Purse Specifications (CEPS), EMV (Europay - MasterCard - Visa) [101], Развитие EMV Visa Smart Debit Credit (VSDC), Развитие EMV M/Chip Lite ассоциации MasterCard, Английские UKIS и Switch. Данные спецификации стали де-факто международными стандартами. Получается, что задача поиска архитектуры платёжного механизма полностью решена. Однако для отечественных микропроцессорных карт здесь имеется проблема. В то время как большинство зарубежных кристаллов как минимум, подходят для реализации данных спецификаций, а как максимум, уже несут в своём масочном ПЗУ требуемую стандартами функциональность, ресурсы отечественного кристалла, как показала практика, подчас недостаточны для реализации требуемого платёжного механизма. Хотя, картина выглядит не столь уж пессимистично: существует реализация приложения, отвечающего спецификации EMV на базе РИК с операционной системой UniCOS, однако, насколько известно, такое платёжное приложение занимало достаточно много ресурсов ЭСГШЗУ и практически не оставляло шансов на размещение на данной карте каких-либо дополнительных приложений, например, дисконтных.
С другой стороны, международные стандарты, как правило, не оставляют выбора в сфере используемых криптоалгоритмов: это DES, 3DES и RSA. В соответствии с российским законодательством в платёжных системах федерального значения должны использоваться отечественные сертифицированные средства, использующие отечественные стандартизованные или рекомендованные соответствующими государственными органами криптоалгоритмы.
Таким образом, отечественные платёжные системы не смогут одновременно удовлетворять российским [137] и зарубежным [101] требованиям.
Именно поэтому необходимо разработать спецификацию платёжного приложения, с одной стороны универсального, в том смысле, что его использование будет возможно в различных расчётно-платёжных системах, как государственных, так и частных, как федерального, так и локального уровня, с другой стороны, данная спецификация должна позволять реализацию на существующих программно-аппаратных ресурсах РИК, оставляя при этом возможность размещения дополнительных приложений на той же карте. Прямое следование стандартам EMV или CEPS - едва ли рациональный подход в силу недостаточности ресурсов РИК, поэтому необходимо найти решение, компромиссное между ресурсами РИК и требованиями к функциональности платёжного приложения.
При этом, необходимо решить проблему непротиворечивости отечественных и международных стандартов. Эту проблему можно решить двумя способами. Первый - разрешить использование иностранных криптоалгоритмов и иностранной же элементной базы в платёжных проектах. Такой путь неприемлем по многим причинам, и, прежде всего, по соображениям национальной безопасности: российские государственные органы не смогут контролировать правильность функционирования программно-аппаратных ресурсов компонентов платёжной системы, иными словами, появляется опасность потери контроля надо денежной системой государства, т.е. над национальной финансовой системой. Второй: сосуществование платёжных стандартов, такое лее, как сосуществование стандартов на криптоалгоритмы, или, скажем, стандартов на ширину железнодорожной колеи.
В то же время необходимо максимально учесть достоинства и положительные особенности существующих международных платёжных спецификаций.
Архитектура разрабатываемого платёжного приложения должна удовлетворять следующим требованиям: возможность онлайн-пополнения, дебетования, синхронизации и удалённой смены платёжных лимитов; возможность оффлайн-дебетования и, возможно, оффлайн-отмены с выполнением всех требований безопасности. возможность дебетования на мелкие суммы без ввода PIN-кода; устойчивость к сбоям связи во время онлайн-транзакции: в этом случае клиент не должен потерять средства с баланса карты, даже временно;
Построение универсального учетного приложения
Однако если вычислять сертификаты по вышеописанным правилам, невозможно будет различить сертификаты двух различных операций, проведённых по одному и тому же ЭК на одну и ту же сумму. Т.е. в этой ситуации злоумышленник, перехватив сертификат на кредитование ЭК, может прокредитовать карту не один, а два, или более раз, а также дважды представить один и тот же сертификат дебетования эмитенту для возмещения.
Для того чтобы такого не происходило, можно вносить под сертификат некоторые случайные значения, передаваемые вместе с платёжным сертификатом на карту. Размер пространства возможных случайных значений нужно будет выбрать достаточно большим, дабы вероятность коллизии (т.е. что при выполнении различных операций на одну и ту же сумму случайно окажутся одинаковые случайные значения) была пренебрежимо мала. В этом случае передача эмитенту для возмещения двух одинаковых платёжных сертификатов с большой вероятностью будет свидетельствовать о мошенничестве. Для того чтобы отслеживать такие ситуации, эмитенту необходимо будет вести специальную базу предъявленных сертификатов, что в принципе, вполне реализуемо. Однако ЭК, функционирующий внутри микропроцессорной карты, очевидно, не имеет возможности хранить все ранее предъявленные сертификаты кредитования, чтобы отследить попытку повторного предъявления сертификата. Поэтому помещение под сертификат кредитования случайного значения проблемы не решает.
Альтернативой случайным значениям выступает счётчик, ведь в данном случае от механизма случайных значений не требуется непредсказуемость, необходимо лишь, чтобы он были различными. Кроме того, механизм счётчиков позволит упорядочивать предъявляемые эмитенту платёжные сертификаты по времени проведения транзакции. Также, будет гарантироваться отсутствие коллизий при выборе случайных значений.
Таким образом, под все платёжные сертификаты будет заноситься значение счётчика, которое при выполнении каждой платёжной команды будет увеличиваться на единицу, что будет обеспечивать уникальность платёжных сертификатов. Поскольку количество байтов, отведённых под значение счётчика конечно, для предотвращения атаки, связанной с «проворачиванием» счётчика до повторного установления в ноль, по достижении максимального значения счётчика, платёжное приложение должно блокироваться.
Рассмотрим, каким должно быть максимальное значение данного счётчика, чтобы хватило на весь процесс эксплуатации приложения и карты. Иными словами, оценим сверху количество транзакций, осуществляемых с помощью одной карты за весь срок её эксплуатации. Предположим, держатель карты достаёт её из кармана для проведения транзакций N раз в день. Тогда, для того, чтобы такой держатель карты эксплуатировал её в течение трёх лет, максимальное значение счётчика должно быть не менее Nx(366+365x2)= 1096N, с учётом високосных годов. Трудно себе представить человека, ежедневно совершающего более N=50 платежей каждый день без выходных, кроме того, обычно карта выдаётся на срок до двух лет, а по истечении этого срока заменяется на новую. Это объясняется тем, что за этот срок карта изнашивается. Изнашивается поверхность контактной площадки карты, а также исчерпывается ресурс ЭСППЗУ. Т.е. максимальное значение счётчика в 1096N=54800 единиц представляется весьма надёжной верхней оценкой. Таким образом, размер счётчика транзакций в два байта представляется оправданным; счётчик будет принимать значения от 0 до 65535, что будет достаточно для наших нужд.
Итак, третьим параметром области данных ЭК становится счётчик транзакций. Присвоим ему идентификатор PurseCounter.
Для того чтобы стоимость атаки, связанной с инженерным проникновением или криптоанализом, не могла в любом случае была выше прибыли, которую способна принести злоумышленнику в случае успеха, в ЭК необходимо включить механизм управления рисками.
Во-первых, в целях управления рисками, платёжные операции могут совершаться с установлением соединения с вычислительной системой эмитента и без такового соединения. Первый случай называется онлайн-транзакцией, второй случай - оффлайн-транзакцией. Операции на крупную сумму совершаются, как правило, в онлайне. В этом случае платёжная карта логически взаимодействует не с УПК, а с вычислительной системой эмитента, которая и принимает решение о проведении операции, её сумме, а также формирует и проверяет соответствующие платёжные сертификаты. Платёжные операции на малые суммы проводятся в оффлайне, т.к. стоимость соединения с эмитентской системой в данном случае может составлять существенную часть (а то и превосходить!) сумму операции. Онлайн- и оффлайн-операции совершаются на различных платёжных ключах. Причем, как правило, по соображениям безопасности операция кредитования разрешается только в онлайне.
Во-вторых, необходимо ограничить максимальные суммы операций, а также максимальное значение текущего баланса. Т.е. введём в область данных ЭК следующие поля: MaxCredit - максимальная сумма операции кредитования (кредитование будем осуществлять только в онлайне), MaxOflDebit - максимальная сумма операции оффлайн-дебетования, MaxOnlDebit - максимальная сумма операции онлайн-дебетования, MaxBalance — максимальная сумма текущего баланса.
Карта, в случае превышения суммы операции или текущего баланса после проведения транзакции соответствующих лимитов должна отвергнуть такую команду. Для того чтобы карта смогла различать оффлайн- и онлайн-дебетование, необходимо вместо команды DebitBalance ввести две команды: DebitOffline и DebitOnline.
Значения данных констант должны задаваться эмитентом платёжных карт, на этапе персонализации и, возможно, на этапе эксплуатации приложения посредством служебной команды смены параметров ЭК.
Как уже было сказано, платёжные операции должны быть защищены PIN-кодом. Однако здесь возникает следующая проблема. Предположим, что держатель карты совершает большое количество мелких покупок на незначительные суммы: пачка сигарет, билет на автобус, газета, оплата парковки и т.п. Такие покупки на небольшую сумму могут составлять до 90% от общего количества покупок. Если делать такие покупки при помощи карты, многократный ввод PIN-кода может оказаться обременительным. Для избавления от подобного неудобства применяется т.н. механизм безпиновых транзакций. Суть его в следующем: держатель карты может совершать покупки на сумму, не превышающую заданную, не вводя PIN-код, при этом количество таких покупок ограничивается некоторым заданным числом, затем PIN-код придётся ввести, после чего безпиновые транзакции снова будут возможны.
Постановка задачи разработки криптографического протокола симметричной аутентификации карты системой, не хранящей секретный ключ аутентификации
Теперь рассмотрим, как должны происходить онлайн-операции. Для данной схемы неважно, что это за операция: дебетование или кредитование баланса платёжного приложения. Более того, решение о сумме операции, и даже её знаке, может принимать эмитент, принимая или не принимая во внимание сумму и знак операции, получаемые от терминала.
Итак, аналогично предыдущему, терминал подаёт питание на карту, выбирает платёжное приложение, производит чтение параметров приложения. Для онлайн-операций ввод PIN-кода обязателен, поэтому происходит его предъявление на карту. Производится чтение параметров платёжного приложения, аутентичность которых проверяется посредством эквайерского сертификата модулем безопасности.
После этого терминал устанавливает соединение с эмитентом и передаёт ему данные, полученные от карты, а именно: PAN карты; Amount - сумма транзакции; Тип транзакции: пополнение, списание или синхронизация; Balance - баланс платёжного приложения; значение счётчика BalancePurseCounter; значение счётчика OnlinePurseCounter; значение счётчика DebitPurseCounter; эмитентский сертификат баланса; возможно, некая информация от терминала Terminallnfo, в т.ч. счётчик транзакций терминала, входящий под сертификат баланса;
Возможно, другие данные, круг которых определяется прикладным разработчиком; Эмитент проверяет сертификат баланса и проверяет отсутствие в базе данных информации о проведении транзакций по данной карте с присланным значением BalancePurseCounter (чтение баланса), DebitPurseCounter (дебетование), OnlinePurseCounter (онлайн-операции), большими, чем переданные. Факт обнаружения подобных транзакций свидетельствует о мошеннической транзакции. Если пришедшее значение BalancePurseCounter равно хранимому в базе - это свидетельствует о мошеннической транзакции, если же пришедшее значение OnlinePurseCounter, равно хранимому в базе, а пришедшее значение BalancePurseCounter больше хранимого в базе - это свидетельствует о неудаче предыдущей онлайн-операции и необходимости её отката в базе эмитента. Если же пришедшее значение OnlinePurseCounter превышает хранимое значение более чем на единицу - это свидетельствует о мошенничестве с картой. При этом если значение счётчика BalancePurseCounter болыне хранимого в базе значений, а значение OnlinePurseCounter больше хранимого ровно на единицу - предыдущая транзакция завершена успешно, о чём делается отметка в базе. Также происходит проверка терминальных счётчиков.
Эмитент анализирует необходимость выполнения запрошенной операции в соответствии со своей прикладной логикой. Если установлена необходимость проведения транзакции, эмитент действует по следующему алгоритму. Эмитент обновляет в базе для данной карты значения счётчиков и параметры затребованной транзакции. Как уже утверждалось, сервер эмитента, руководствуясь собственной прикладной логикой, может сгенерировать сертификат на сумму больше или меньше затребованной, а также изменить тип операции, (такую сумму и тип операции будем называть фактическими). Кроме того, сервер может дать отказ в операции. В этом случае работа с картой завершается.
Сервер эмитента передаёт терминалу следующие данные: Сертификат запроса онлайновой операции; Фактический тип операции (дебетование или кредитование); Фактическая сумма операции.
Терминал передаёт данные значения на карту с соответствующей командой онлайн-операции. Полученный от карты сертификат завершения операции терминал передаёт эмитенту. В свою очередь, эмитент проверяет сертификат и заносит в базу информацию об успехе транзакции. Терминал получает от эмитента ответ о правильности сертификата и завершает соединение с эмитентом. Терминал снимает питание с карты.
В случае неполучения сертификата завершения транзакции у сервера эмитента нет возможности выяснить, успешно ли прошла онлайновая операция, поэтому до получения следующего сертификата баланса эмитент считает её условно завершённой. Такой подход позволяет защититься от мошенничества, связанного с намеренным прерыванием транзакции.
Предположим, что сертификат баланса по какой-либо причине не дошёл до эмитента. В этом случае терминал прерывает ожидание ответа по таймауту, а сервер в этом процессе вообще не участвует.
Если сертификат баланса до эмитента дошёл, а сертификат запроса онлайновой транзакции до терминала не дошёл, терминал разрывает соединение, прекращает обслуживание карты, а сервер будет считать транзакцию условно завершённой до следующей онлайн-операции.
Аналогично, если сертификат запроса транзакции дошёл до карты, а сертификат подтверждения транзакции до эмитента не дошёл, сервер будет считать транзакцию условно завершённой до следующей онлайн-операции.
В дальнейшем, неудавшуюся (что выяснится при следующем онлайн-соединении) операцию можно повторить. При незавершившейся онлайн-операции держатель карты имеет возможность совершать все предусмотренные регламентом оффлайновые операции.
Рассмотрим функционирование карты при получении запроса онлайн-операции. Карта опять же производит ряд проверок, таких, как соответствие входных данных спецификации, предъявление держателем карты PIN-кода, допуск данной операции текущим контекстом безопасности, возможность инкремента счётчика онлайн-транзакций во избежание его переполнения. Проверке правильности сертификата запроса онлайн-операции должно предшествовать уменьшение счётчика внешних аутентификаций OnlineReqCounter, который восстанавливается в максимальное значение лишь после успешной проверки сертификата. Более простой алгоритм управления счётчиком, связанный с его уменьшением после установления несовпадения сертификатов не является безопасным, т.к. злоумышленник по колебаниям напряжения в цепи питания карты может отслеживать операцию сравнения сертификатов и в случае попадания управления на ветку уменьшения счётчика - сбрасывать питание.