Современные информационные технологии/4.
Информационная безопасность
Даценко П.Е.
Национальный горный университет,
Украина
Атаки на смарт-карты и способы
противодиводействия таковым
1. Введение
Перед разработчиками была поставлена задача создания
устройства для работы с конфиденциальной информацией в условиях
враждебной среды. Результатом их работы являются смарт-карты –
высокоинтегрированные защищенные устройства. Безопасность для данных
и программ приложений обеспечивается за счет контроля доступа
к информации в памяти смарт-карт. Принципы проектирования,
безопасность приложений, аппаратное обеспечение микроконтроллера, алгоритмы
программного обеспечения операционной системы все это в той
или иной степени влияет на безопасность смарт-карт.
Смарт-карта является безопасной
при корректной совместной работе защитных механизмов корпуса карты, чипа
(аппаратного обеспечения), операционной системы, приложения. В случае
выхода из строя хотя бы одного из этих компонентов
или же неудовлетворение предъявляемых требований к определенному
компоненту гарантировать безопасность смарт-карты уже невозможно.
2. Виды атак на смарт-карты
С целью классификации атак относительно времени
их провождения могут использоваться фазы жизненного цикла смарт-карты.
В этом случае классификация таких атак будет иметь следующий вид:
· атаки на этапе разработки
смарт-карт;
· атаки на этапе производства
смарт-карт;
· атаки на этапе применения
смарт-карт.
Рассмотрим следующую классификацию
атак более подробно:
· атаки на социальном уровне;
· атаки на физическом уровне;
· атаки на логическом уровне.
Атаки на социальном уровне подразумевают под собой
атаки на людей, работающих со смарт-картами независимо от фазы
жизненного цикла смарт-карты. Главную роль в процессе отражения
и предотвращения атак данного типа являются организационные меры
безопасности, технические меры играют здесь второстепенную роль.
Организационные меры безопасности могут заключаться в установке
непрозрачных экранов по обе стороны клавиатуры, тем самым
Вы исключаете возможность подглядывания pin-кода. Одной
из организационных мер с целью предотвращения атаки данного типа
на программистов является регламентация в соответствующих документах
разработки и использования открытых процедур программистами смарт-карт.
Степень безопасности в данном варианте будет определяться секретными
ключами.
Относительно атак на физическом уровне необходимо четко уяснить,
что в связи с необходимостью в физическом доступе
к аппаратным средствам микроконтроллера смарт-карты, злоумышленнику
понадобится сложное техническое оборудование. Данные атаки могут быть либо
статическими, либо динамическими. Упомянутые подвиды атак на физическом
уровне имеют два принципиальных различия между собой. Осуществление
статических атак злоумышленником не требует наличие работающего микроконтроллера,
и не накладывает временных ограничений на злоумышленника.
Динамические атаки диктуют злоумышленнику четкие условия: работающий
микроконтроллер, определенное измерительное оборудование и высокую
скорость обработки данных.
Виды физических атак
Существует три основных вида физических атак [2].
1.
Пассивные
атаки (passive attacks). К ним относятся атаки, основанные на наблюдении за
каким-либо физическим параметром реализации, промодулированным ключевой
информацией. Примерами пассивных атак являются атаки по энергопотреблению (SPA
и DPA - differential power analysis и simple power analysis) [4], атаки по
времени (timing attacks) [5] и атаки по электромагнитному излучению. Пассивные
атаки относительно хорошо изучены и подробно освещены в открытой литературе.
Однако существует и сбалансированная система мер противодействия этим атакам.
2.
Активные
атаки без проникновения (active non-invasive attacks). К этому классу относятся
атаки, основанные на генерации случайных аппаратных ошибок во время исполнения
криптоалгоритма и последующего их анализа. Классическим примером таких атак
являются дифференциальные атаки на основе наведения аппаратных ошибок (DFA -
differential fault analysis) [6] и энергетические атаки (energy attacks),
включающие манипуляцию тактовыми сигналами и снабжение микросхемы энергией
(glitching), воздействие лазером или пучком электронов, а также другие методы.
Однако, в отличие от пассивных атак, для DFA, например, отсутствует
отработанная практическая модель защиты. В настоящий момент фирмы-производители
смарт-карт ведут интенсивную разработку таких моделей и конкретных механизмов.
3.
Активные
атаки с проникновением (active invasive attacks). Здесь речь идет об атаках на
микросхемы с проникновением в саму микросхему. Примерами таких атак являются
атаки на основе проб (probe attacks), часто комбинированные с различными
методами снятия корпуса микросхемы и послойного доступа к топологии кристалла
(machining methods) и другие атаки. Активные атаки с проникновением традиционно
являются ноу-хау лишь небольшого числа коммерческих и правительственных
организаций. Лишь малая доля этой информации публикуется.
Атаки на логическом уровне осуществляются за счет
классического криптоанализа, известных неисправностей операционной системы
смарт-карты, «троянских коней» в исполняемом коде приложений смарт-карты.
По статистике данные атаки являются наиболее успешными.
На практике же иногда
осуществляются и атаки смешанного типа.
3. Некоторые способы противодействия
Основное отличие контактных и бесконтактных смарт-карт
с точки зрения безопасности – это наличие у бесконтактных
смарт-карт радиочастотного канала связи карты и считывателя, следствием
появления которого является возможность осуществления новых атак. Например,
подслушивание, результатом которого может стать создание абсолютной копии
полноценной карты. Предотвращение прослушивания заключается
в аутентификации и шифровании данного канала связи, прерывании
работы, избежать которое можно использованием механизмов доведения транзакции
до логического конца; отказа в обслуживании, защитой которого может
быть наличие у приложений сертификатов терминалов, разрушения карты
на расстоянии с помощью разрушающего электромагнитного поля.
Микропроцессорный чип современного производства
имеет программный, аппаратный, технологический уровни защиты
от несанкционированного доступа относительно информации, содержащийся
в нем.
Программный уровень защиты заключает
в себе такие методы и средства защиты операционной системы:
При создании прикладных информационных систем
со смарт-картами должны учитываться рекомендации, приведенные
в спецификации PC / SC [3] о безопасности взаимодействия
смарт-карт и персональных компьютеров. Стандарт ISO 7816
для смарт-карт – основа интегрированной технологии PC / SC [3]. Один
из разделов данной спецификации регламентирует наличие у смарт-карт
криптографических сервисов с целью обезопасить взаимодействие смарт-карт
с персональными компьютерами. Предусмотрены следующие криптографические
сервисы:
Также в спецификации PC/SC [3]
четко предусмотрено создание сервисов хранения данных соответственно стандарту
ISO / IEC 7816–4 и создание отдельных файлов
для хранения ключей, секретов, констант, данных аутентификации.
Основой обеспечения безопасности приложений смарт-карт
являются защитные механизмы операционной системы и аппаратного
обеспечения. Процедуры аутентификации значительно повышают безопасность
приложений смарт-карт.
Pin-код – это не только
самый распространенный метод идентификации пользователя смарт-карты, но и
единственный способ защиты от несанкционированного доступа в случае
утери, кражи или подделки смарт-карты.
Практически, на pin-код
злоумышленник может осуществить две атаки: подглядывание
и угадывание. Вероятность угадывания находится в зависимости
от таких параметров pin-кода: его длина, входящие в него символы
и количество разрешенных неправильных попыток ввода, по истечению
которого ввод блокируется. Однако разблокировка процесса ввода pin-кода
должна быть обеспечена независимым средством аутентификации.
Вполне
естественно, если у авторизированного пользователя возникнет желание
проверить подлинность терминала перед вводом своего pin-кода. Процедура
проверки подлинности терминала осуществляется следующим образом:
как только смарт-карта вставлена в терминал, происходит процесс
их взаимной аутентификации. В случае если взаимная аутентификация
прошла успешно, смарт-карта разрешает терминалу доступ к файлу
с секретным паролем пользователя для последующего вывода
его на экран терминала. Видя свой секретный пароль, пользователь
может быть уверен в подлинности терминала.
Биометрические методы идентификации
являются более безопасными и удобными для пользователя
по сравнению с pin-кодами. Также следует обратить внимание
на невозможность передачи своих биометрических признаков другому человеку.
С учетом
существенного снижения скорости передачи данных при реализации шифрования,
рентабельно было бы провести четкую градацию между данными, подлежащими
и не подлежащими шифрованию.
Не стоит забывать, что есть вероятность
осуществления атаки непосредственно на криптографическую систему,
а именно, злоумышленник попытается вычислить значение секретного ключа.
Наиболее простой мерой безопасности от данной атаки является большое пространство
ключей криптографического алгоритма.
С целью защиты от атак с применением
дифференциального анализа DFA (differential fault analysis) [6] или мощного
анализа PA (power analysis) к данным добавляется префикс
в качестве случайного числа с последующим их шифрованием.
Большинство приложений применяют
к данным не шифрование, а код аутентификации сообщения MAC
(Message Authentication Code), атака на который «грубой силой» намного
сложнее, нежели на пару «открытый текст – шифрованный текст».
Применение динамических ключей, которые
меняются для каждой операции шифрования, еще более усложнит задачу
злоумышленнику.
Рекомендации спецификации
взаимодействия смарт-карт и персональных компьютеров PC/SC регламентируют
реализацию смарт-картами алгоритмов и возможностей, поддерживающих:
Аутентификация пользователя
смарт-картой,
в основном, осуществляется с помощью pin-кода.
Аутентификация пользователя
удаленным объектом может
осуществляться одним из ниже перечисленных протоколов. Первый протокол –
это протокол односторонней аутентификации с разделяемым секретом,
который злоумышленник может обойти, установив контроль над каналом после
выполнения процедуры аутентификации. Однако если присвоить каждому сообщению
код аутентификации МАС, то угроза будет предотвращена. Второй
протокол – это протокол двухсторонней аутентификации с разделяемым
секретом, обеспечивающий защищенный канал. Третий протокол – это протокол
аутентификации с использованием цифровой подписи и цифрового
сертификата, обеспечивающий аутентификацию между клиентом и сервером
в открытых сетях.
Аутентификация приложения
ПК смарт-картой осуществляется
выше упомянутым протоколом аутентификации с разделяемым секретом. Данный
протокол дает возможность приложению ПК производить контроль доступа
к конфиденциальной информации конкретных пользователей
при ее хранении на смарт-карте.
Аутентификация
смарт-карты приложением позволяет провести проверку достоверности типа и производителя
смарт-карты, что, в свою очередь, позволяет получить информацию касательно
криптографической поддержки, общей защищенности смарт-карты. С данной
целью на этапе производства в смарт-карту закладываются секретный
ключ ее производителя, который должен быть неизвлекаемым,
и сертификат открытого ключа с закодированным в нем открытым
ключом производителя.
4. Заключение
На сегодняшний день, смарт-карты
являются одним из лучших и наиболее удобных средств обеспечения надежной
аутентификации (в большинстве случаев двухфакторной). Однако их использование
порождает ряд других проблем, среди которых – возможные атаки на сами
смарт-карты. Таким образом, возникает необходимость в применении
соответствующих защитных мер.
С целью обеспечения максимальной
защищенности используемых смарт-карт были классифицированы возможные атаки на
них, а также приведены некоторые практические рекомендации для реализции защиты
от таких атак. Использование данных рекомендаций и карт, имеющих сертификат по
Общим критериям [7] в соответствии с профилем защиты [8] на уровне EAL4+ и выше, позволит максимально
убезопасить пользование смарт-карт технологиями.
Литература:
1.
Скотт
Гаттери, Тимоти Юргенсен «Смарт-карты.
Настольная книга разработчика.», 2003.-416
с.;
2.
Supporting Document Mandatory Technical
Document. Application of Attack Potential to Smartcards, Version 2.1, Revision
1. CCDB-2006-04-002;
3. Interoperability Specification for ICCs and Personal Computer Systems.
Revision 2.02.05, 2008;
4. P. Kocher.
Differential Power Analysis. CRYPTO 1999, Springer-Verlag, 1999.
5. P. Kocher.
Timing attacks on Implementations of Diffie-Hellman, RSA, DSS, and other
systems. CRYPTO1996,
Springer-Verlag, 1996.
6. E. Biham, A.
Shamir. Differential Fault Analysis of Secret Key Cryptosystems. CRYPTO 1997, 1997.
7. Common
Criteria for Information Technology Security Evaluation, Version 2.3. August 2005.
8. Smartcard IC
Platform Protection Profile BSI-PP-0002, Version 1.0, July 2001.