
- •Томский университет систем управления и радиолектроники
- •Содержание
- •Введение
- •1.Основные термины и понятия
- •2.Виды карт
- •3.Разумные карты готовятся завоевать новые рынки сбыта
- •4.Преимущества микропроцессорных карт
- •5.Вопросы генерации ключей для высокозащищённых таксофонных сетей
- •Заключение
- •Список литературы:
- •Приложение а.
- •Приложение б.
4.Преимущества микропроцессорных карт
Одним из самых важных преимуществ микропроцессорных карт являются обладающие достаточно высокой степенью надежности средства защиты[3]. Следует учитывать, что средства защиты смарт-карты нельзя рассматривать отдельно от систем безопасности участников платежной системы (в первую очередь, центров авторизации и процессинговых центров). Система безопасности смарт-карты проектируется исходя из выбранной модели нарушителя, - при этом учитываются стоимость защиты, величина потенциального ущерба, ресурсы нарушителя и предполагаемая осведомленность о внутреннем устройстве смарт-карты, и т.п. Как правило, при разработке системы безопасности считается, что нарушителю известен код ОС карты и принципы построения системы безопасности. Одним из наиболее жестких критериев защищенности карты является невозможность успешной атаки на карту самими разработчиками за период профилактической смены ключей. Основная цель системы защиты карты состоит в том, чтобы максимально затруднить действия нарушителя и довести его затраты до уровня, когда они перестанут окупаться. Одним из ключевых факторов защищенности системы с использованием смарт-карт является верный выбор протоколов взаимодействия компонент системы. Выделяются три вида компонент (объектов):
- открытые объекты, эти объекты считаются доступными нарушителю без каких-либо ограничений, к таким объектам относятся каналы связи и терминальные устройства;
- защищенные объекты, для таких объектов предполагается, что вероятность успешной атаки со стороны нарушителя на такой объект не превышает заданной величины, к таким объектам относится смарт-карта;
- абсолютно защищенные объекты которые являются неуязвимыми для атак нарушителя -к таким объектам относится центр авторизации системы.
Используемые протоколы должны гарантировать, что успешный «взлом» одной смарт-карты не приведет к «взлому» всей системы, хотя, конечно, и может нанести ущерб владельцу карты. Это позволяет свести оценку защищенности системы в целом, при условии незначительного количества «взломанных» карт, к оценке криптографической стойкости используемых протоколов, а эта величина является регулируемой и предсказуемой.
Рассмотрим средства защиты микропроцессорных карт более подробно, для этого, разложим защиту на основные составляющие:
1. Физическая защита.
2. Контроль над ресурсами карты и организация разграничения доступа к данным на уровне ОС.
3. Обеспечение целостности аппаратных, программных средств карты и хранящихся на ней данных.
4. Защищенная схема инициализации данных.
Рассмотрим эти пункты несколько подробнее.
Физическая защита. В целом защита карты на физическом уровне сводится к нескольким основным вариантам противодействия вскрытию:
- карта должна содержать модуль самотестирования - при обнаружении ошибки карта должна самостоятельно принимать решение о собственной негодности;
- должны быть предусмотрены средства предотвращающие работу карты в нештатном режиме;
- разработчики микроконтроллера должны обеспечить максимальные затруднения анализа работы их изделия.
Контроль над ресурсами карты и организация разграничения доступа к данным на уровне ОС должен гарантировать невозможность доступа к ресурсам карты в обход интерфейса ОС.
Превосходство карты на микропроцессоре по отношению к обычной карте с памятью, даже защищенной, обусловлено, с одной стороны, более простым и упорядоченным протоколом связи, а с другой - способностью проводить сложную обработку данных, которые карта принимает или передает[4].
Благодаря криптографическим ресурсам карта на микропроцессоре может не дать двух идентичных ответов на один и тот же запрос, по крайней мере, если правильно использовать возможности, предлагаемые её операционной системой. Очевидно, что подобная организация в высшей степени усложняет всякую попытку повторного воздействия, то есть перехвата и последующего воспроизведения ответа карты.
Однако, даже если принять во внимание вышесказанное, некоторые секретные сведения, содержащиеся в памяти, ни в коем случае не должны покидать карту: в идеале только операционная система имеет возможность доступа к ним, используя их в качестве элементов расчетов. Притом в открытом виде может появиться только результат. Подобным образом действуют конфиденциальные коды, которые присваиваются владельцу карты (транспортный код, ключ владельца) или ее дистрибьютору: нет никакой возможности прочитать их, как с простой магнитной полосы, чтобы сравнить вне карты с кодом, набранным на клавиатуре!
Процедура обеспечения безопасности состоит в том, чтобы предъявить код карте, которая будет проверять его с помощью своей операционной системы, внутри. После проведения такой проверки карта может информировать (открыто или закодированным способом) о том, что код правилен или ложен, или довольствоваться выдачей разрешения на доступ в зону памяти, которая до этого была закрыта. Столь высокий уровень безопасности позволяет использовать карты или ключи на микропроцессоре в финансовой сфере (банковские карты, электронные кошельки и т.д.), области сотовой связи (телефоны GSM) или платного телевидения.
ОС, должна обеспечивать надежную систему разграничения доступа - разграничение доступа производится на уровне структур данных, которые регламентируются международным стандартом ISO 7816-4. Основной единицей хранения информации на карте являются файлы, которые образуют иерархическую файловую систему. Различным видам доступа могут назначаться разные наборы атрибутов и разные наборы ключей. Атрибуты могут быть общими для всех файлов директории, а также могут наследоваться от объемлющей директории. Система разграничения доступа, как правило, предусматривает спецификацию ключей - четкое определение того, как и при каких обстоятельствах, данный ключ должен быть использован. При этом определяется такие параметры как криптографический алгоритм, набор допустимых для данного ключа операций, порядок смены ключа, условия блокирования и разблокирования ключа и другие. Поскольку длина ключей аутентификации владельца карты или внешнего окружения обычно составляет не более 6 знаков, должно быть предусмотрено блокирование ключа после нескольких идущих подряд неверных предъявлений, так как при такой длине ключа вполне реальным является полный перебор вариантов в достаточно короткий промежуток времени.
Для обеспечения (или контроля) целостности ресурсов карты используются следующие процедуры:
- самотестирование при старте;
- проверка целостности памяти команд и данных при помощи контрольных сумм;
- зашита от изменения кода ОС команд при помощи криптографической контрольной суммы;
- наличие механизма восстановления данных при возникновении ошибок;
- применение буферизации данных при записи (поскольку в течении транзакции возможно прерывание, но во время записи данных не должно происходить нарушения целостности данных);
- учет эффекта старения ячеек энергонезависимой памяти.
Защищенная схема инициализации данных. Необходимость защищенной схема инициализации данных обусловлена тем, что на предварительных стадиях смарт-карта является наиболее сильно уязвимой поскольку:
- на карте отсутствуют ключи и, как следствие, не поддерживается использование криптографических протоколов аутентификации и передачи сообщений;
- на карте отсутствует идентификационная информация;
- на карте отсутствуют первичные структуры данных и поэтому, система разграничения доступа не может быть введена в действие в полном объеме.
Этапы инициализации карты:
- изготовление микроконтроллера; в процессе производственных циклов по изготовлению карты должны быть предприняты повышенные меры безопасности; при этом особое внимание должно уделяться секретности процесса изготовления маски ПЗУ кода ОС:
- тщательное тестирование карт, все отбракованные кристаллы должны гарантированно уничтожаться;
- в целях учета всех микропроцессорных карт всем произведенным картам должны быть присвоены уникальные серийные номера;
- запись на карту транспортного ключа;
- на карте должны быть созданы первичные структуры данных для ввода в действие системы разграничения доступа ОС.
Необходимо обращать внимание на то, что основную роль в организации зашиты на предварительных этапах играют организационные меры - все вышеперечисленные этапы инициализации карты должны проходить в режиме секретности, особенно в процессе непосредственного изготовления кристалла. Разумеется, разработчики программного и аппаратного обеспечения карты должны принять меры повышенной безопасности для предотвращения несанкционированной утечки конфиденциальной информации
- конструкторской документации, исходных текстов ОС, фотошаблонов и другой критической документации. Тестирование работы карты должно проходить также с соблюдением соответствующих мер безопасности и должно поручаться только специально отобранным бета-тестерам.
Помимо мер безопасности предпринимаемых для обеспечения контроля над данными смарт-карты, при проведении операций со старт-картой используется ряд механизмов аутентификации смарт-карты. Аутентификация является проверкой легальности смарт-карты. Механизм аутентификации предполагает наличие «третьей» стороны - Центра Сертификации (Certification Authority).
В настоящее время используется два механизма аутентификации - статическая аутентификация и динамическая аутентификация. В целом процедуру статической аутентификации можно представить следующим образом (Приложение А. рис.1).
1. Смарт-карта предоставляет терминалу открытый ключ эмитента PI сертифицированный закрытым ключом ЦС (Центра Сертификации) SCA.
2. Терминал использует открытый ключ ЦС РСА для проверки того, что ключ PI сертифицирован ЦС и в случае если проверка прошла успешно, смарт-карта считается легальной.
Недостатком статической аутентификации является то, что становится возможным мошенничество с использованием «белого пластика» («белого пластиком» называют неперсонализированные пластиковые карты), основными препятствиями для такого рода мошенничества являются организационные меры безопасности (см. выше Защищенная схема инициализации данных). Наиболее вероятными потенциальными злоумышленниками являются лица имеющие доступ к не персонализированным смарт-картам, в первую очередь, сотрудники банков.
Рассмотрим процедуру динамической аутентификации данных (Приложение А. рис.2). Динамическая аутентификация данных в целом описывается следующей процедурой:
1) смарт-карта посылает терминалу открытый ключ PIC сертифицированный закрытым ключом ЦС SI;
2) терминал проверяет легальность полученного ключа при помощи при помощи открытого ключа ЦС РСА;
3) в случае успешной проверки терминал посылает карте случайное число;
4) смарт-карта шифрует полученное случайное число на закрытом ключе эмитента SIC и посылает результат шифрования терминалу;
5) терминал расшифровывает полученные от смарт-карты данные на открытом ключе и если в результате получено исходное случайное число, то смарт-карта считается легальной.
Отметим, что при динамической аутентификации возможности для мошенничества с использованием «белого пластика» значительно уменьшаются - для успешного проведения процедуры динамической аутентификации необходимо знать закрытый ключ эмитента, который хранится внутри смарт-карты и никогда не передается при обмене данными между смарт-картой и терминалом.
Помимо обеспечения должного уровня безопасности смарт-карты предоставляют значительно большую гибкость при их использовании для нестандартных приложений. Эффективным механизмом значительно упрощающем адаптацию смарт-карты для конкретного приложению является включение в состав ОС смарт-карты Виртуальной Машины, позволяющей выполнять приложения пользователя (скрипты) прямо на карте. Подобный механизм позволяет пользователю держать на карте выполняемые приложении и, в то же время, нисколько не нарушает систему безопасности карты, поскольку скрипты имеют доступа к ресурсам карты только через Виртуальную Машину ОС. На сегодняшний день Виртуальная Машина включена в состав только одной ОС смарт-карт - карте CyberFlex производства Schlumberger, где реализован усеченный вариант Виртуальной Машины JAVA. Заметим, что несмотря на все достоинства языка JAVA, он все же является не самым лучшим кандидатом для языка программирования смарт-карт. Поскольку смарт-карты имеют достаточно небольшие аппаратные ресурсы (менее 1 Кб ОЗУ и менее 16Кб памяти для размещения кода приложения) значительная часть элементов языка просто не может быть реализована. Для CyberFlex «за бортом» остались такие элементы языка как нити (Threads), «сборщик мусора» (Garbage Collection & Finalization), динамическая загрузка классов (Dynamic Class Loading) и многие другие - в результате многие преимущества языка оказываются практически неиспользуемыми. Одним из главных преимуществ JAVA является аппаратная независимость позволяющая «переносить» JAVA-приложения с одной платформы на другую - в случае со смарт-картами это преимущество также практического смысла не имеет, поскольку скрипты ОС предназначаются для адаптации смарт-карты к нестандартным приложениям (таким, например, как использование смарт-карт в декодерах спутникового телевидения) которые нигде еще не реализованы и приложения просто не откуда «переносить» (подобные приложения вряд ли будут реализовываться на других платформах, кроме смарт-карт).
В области смарт - технологий Россия является одной из передовых стран - это объясняется как отсутствием инфраструктуры связанной с картами с магнитной полосой, так и наличием высокотехнологичной индустрии микроэлектроники. В России уже реализовано несколько проектов по широкомасштабному введению микропроцессорных карт зарубежного производства разных платежных систем в ряде городов с целью сокращения оборота наличных бумажных денег (среди наиболее крупных проектов самого ближайшего будущего стоит отметить программу мэрии Москвы «Карта Москвича»). В ближайшие несколько лет ожидается начало использования микропроцессорных карт в качестве основного платежного средства в крупнейших мировых системах электронных платежей. Ожидается, что в России их массовое введение начнется примерно в такие же сроки. Необходимость в замене карт с магнитной полосой более защищенными микропроцессорными картами назрела уже достаточно давно, - ежегодные потери от махинаций с кредитными картами с магнитной полосой только в США превышают один миллиард долларов. Следует отметить, что карты с памятью также не обеспечивают достаточно надежной защиты от мошенничества - в качестве примера можно привести известный случай подделки карт памяти платежной системы «Золотая Корона».
Существуют также и отечественная разработка микропроцессорной карты - разработка такой карты ведется одной из крупнейших российских процессинговых компаний «Юнион Кард». Основой для карты является RISC-микропроцессор «Тесей» - оригинальная разработка завода «Ангстрем»; и операционная система UniCOS -разработанная в дочернем предприятии «Юнион Кард» -компании «Программные Системы и Технологии» при участии ФАПСИ.
Микропроцессор «Тесей» представляет собой восьмиразрядный RISC - микрокомпьютер с одноуровневым конвейером на три команды. Одной из наиболее важных особенностей используемого микроконтроллера является наличие внутреннего тактового генератора работающего на частоте от 15 МГц. Основным преимуществом внутреннего тактового генератора, по сравнению с внешним, является возможность асинхронного режима работы процессора по отношению к частоте терминала (которая равна, в соответствии ISO 7816, 3.51 МГц).
Операционная система UniCOS является универсальной карточной ОС, ориентированной на платежные приложения. Она полностью соответствует требованиям международных стандартов ESO/IEC 7816-3, ISO/IEC 7816-4, и совместима со спецификацией ЕМV, что позволяет реализовывать EMV-приложения. В соответствии с требованиями EMV UniCOS является многоаппликационной ОС -различные приложения могут быть совершенно независимы или же совместно использовать разделяемые ресурсы карты.
ОС обеспечивает возможность оперативного наращивания функциональности приложения при помощи специальных приложений для карты. Для достижения этого используется специальная Виртуальная Машина, выполняющая приложения пользователя. Выполнение пользовательских приложений Виртуальной Машиной позволяет ОС карты полностью контролировать работу приложения, поскольку напрямую к процессору карты приложение Виртуальной Машины обратиться не может. В находящийся на стадии тестирования ОС UniCOS реализована Виртуальная Машина П-кода. Виртуальная Машина П-Кода представляет собой стековую машину с полнофункциональной системой команд, позволяющей реализовывать практически любые приложения. Система команд и архитектура разработаны с учетом того, что в дальнейшем приложения ОС будут разрабатываться на языке высокого уровня С (Виртуальная Машина UniCOS достаточно универсальна, и, в случае необходимости, возможна реализация компиляторов с других языков программирования, например JAVA). Скрипт Виртуальной Машины транслируется в код компилятором и загружается на карту в исполняемый файл. При помощи скриптов Виртуальной Машины пользователь может реализовывать приложения в соответствии с требованиями конкретной платежной системы, также возможно использование скриптов для дополнительного логического контроля условий доступа к ресурсам карты.
UniCOS содержит мощные средства защиты информации - поддерживаются криптографические протоколы, использующие алгоритмы шифрования DES, Triple DES (3DES) и ГОСТ 28147-89 (данный алгоритм был реализован ФАПСИ), ОС содержит как традиционные средства аутентификации ключей, генерации и проверки имитовставок, шифрования данных на линии передачи, так и, являющиеся отличительной особенностью UniCOS, процедуры диверсификации ключей и формирования сессионного ключа на основе ГОСТ 28147-89. Высокое быстродействие процессора позволяет карте выполнять требующие больших вычислительных затрат криптографические функции за достаточно короткое время.